Serial_bitbloq__USB_mini

In questo post impareremo ad utilizzare la porta seriale USB per comunicare dati dal computer alla scheda di controllo. In altre parole: inviare informazioni e comandi alla tua scheda  con il cavo USB.

La comunicazione avviene per mezzo di due componenti, un trasmettitore ed un ricevitore. Per fare ciò, abbiamo bisogno di due cose:

  1. Un programma nella scheda di controllo che spedisce/riceve dati. (useremo bitbloq)
  2. Un programma nel computer che spedisce/riceve dati. (Useremo il Monitor Seriale di Arduino)

Serial_bitbloq__USB

Apri bitbloq e scarica Arduino IDE. Se hai una scheda ZUM BT-328 o una FreaduinoUNO, collegala al computer tramite il cavo USB… E si parte!

 

“Robonauta chiama Eco Base, mi ricevi?”

SCRIVERE TRAMITE PORTA SERIALE


Serial_bitbloq__USB__1

Il prossimo esempio invia la parola ‘BLACK‘ dalla scheda di controllo quando un sensore IR rileva questo colore. Collega il sensore al pin 3 digitale:

zum_IR3

Parte 1: Trasmissione – Programmata con bitbloq

Per programmare la scheda e inviare dati  con bitbloq, tutto ciò che ti occorre è il blocco Serial Print.

Questo fa diventare semplice creare un programma che compara il valore del sensore ogni secondo (1000 ms) e se è corretto, invia la parola. Carica questo programma sulla tua scheda:

Parte 2: RICEVITORE – Usando il monitor seriale della  IDE di Arduino

Come detto precedentemente, useremo il Monitor Seriale della IDE di Arduino. Con la scheda collegata, apri il programma Arduino e chiudi bitbloq.

Seleziona la scheda di controllo nel menu Strumenti/Scheda. Se stai utilizzando la ZUM BT-328 seleziona la scheda “Arduino BT w/ATmega328” o se stai utilizzando la scheda FreaduinoUNO, seleziona “Arduino UNO“.

ardu_seleccion_placa

Seleziona la porta seriale a cui è collegata la tua scheda dal menu Strumenti/Porta:

ardu_seleccion_puerto

Ora possiamo avviare il Monitor Seriale dal menu Strumenti/Monitor Seriale.

ardu_seleccion_MonitorSerial

Apparirà questa finestra dove andremo a verificare che la velocità di trasmissione è impostata su 9600 baud.

ardu_serie_sol_1

Se il sensore ad infrarossi inizia a rilevare, la parola ‘NERO’ apparirà ripetutamente sul video:

ardu_serie_sol_2

Per vedere i risultati in modo più ordinato, possiamo usare il blocco  “Serial PrintIn”:

Questo fornirà una risposta più comprensibile:

ardu_serie_sol_3

LEGGERE LA PORTA SERIALE


Serial_bitbloq__USB__2

Parte 1: RICEVITORE – Programmato con bitbloq

In questo esempio il ricevitore è la scheda di controllo. Per ogni dato ricevuto dalla scheda, useremo il blocco Bluetooth Serial Available do per verificare se è arrivato qualche dato alla porta seriale:

Se ricevuto, leggeremo il dato ricevuto e lo salveremo come una variabile:

Ora possiamo eseguire una comparazione e reagire di conseguenza al dato ricevuto. Per esempio, se riceviamo una A maiuscola, accenderemo il LED sulla scheda (D13). Oppure per qualsiasi altro dato ricevuto, spegneremo il LED. Questo è il programma:

“Ma aspetta, hai comparato il dato con il numero 65?! –”  Ovviamente, caro robonauta, perchè bitbloq non ha un blocco per comparare variabili di testo char al momento, (è possibile solamente con le stringhe). Non preoccuparti se questo suona come greco per te, tutto quello che ti serve sapere in questo esempio è che stiamo utilizzando numeri per identificare lettere.

La lettera A corrisponde al numero decimale 65 nel ASCII code (guarda la abella alla fine di questo post).

Parte 2: TRASMETTITORE – Usando il Monitor Seriale della IDE di Arduino

Ora la scheda è pronta per ricevere. Chiudi bitbloq e apri nuovamente il Monitor Seriale della IDE di Arduino. Questa volta assicurati di selezionare l’opzione “Nessun fine riga” ed anche la velocità di 9600 baud.

ardu_serie_sol_4

Scrivi una A maiuscola e premi Invia. Il LED si accende? Prova a inviare qualsiasi altro carattere per spegnere il LED D13.

Qui sotto puoi vedere la tabella ASCII così da poter comparare lettere e caratteri trasmessi attraverso la porta seriale:

Ascii_A