[DIY] Come aggiungere una webcam e il controllo remoto al vostro robot

Gli appassionati di robotica sanno quanto sia importante aggiungere una funzionalità particolare quale una webcam a un piccolo robot o auto radiocomandata, con la possibilità di visualizzare il video remotamente, su uno smartphone o su un tablet. Non meno importante e utile è la possibilità di controllare i movimenti del robot tramite un dispositivo mobile dotato di un’opportuna applicazione Android. In questo articolo presenteremo due progetti DIY (Do-It-Yourself) che vi mostreranno, passo per passo, come raggiungere questi due avvincenti traguardi.

Prima parte: controllo remoto del robot

In questo progetto vedremo come sia possibile controllare remotamente un robot o un veicolo radiocomandato tramite un’applicazione Android e uno smartphone o tablet. I componenti richiesti per la realizzazione del progetto sono elencati di seguito:

Hardware

  1. una board Arduino;
  2. due servo motori a rotazione continua;
  3. un modulo Bluetooth con UART TTL 5V (come ad esempio il Bluesmirf Gold/Silver);
  4. un ball caster per robot;
  5. due ruote per robot;
  6. un telaio (chassis) per robot - una piccola scatola di materiale plastico dovrebbe essere sufficiente per questo scopo;
  7. quattro pile AA e relativo contenitore.

Software

  1. ambiente di sviluppo (IDE) per Arduino;
  2. Eclipse per la programmazione in Android (opzionale, non è strettamente richiesto). Per ulteriori informazioni si può fare riferimento al relativo tutorial.

Principio di funzionamento

Il robot comunica con l’applicazione in esecuzione sul dispositivo remoto Android tramite l’interfaccia Bluetooth. Quando, infatti, si preme un tasto qualsiasi sul pannello dell'interfaccia utente dell’applicazione, i corrispondenti comandi vengono inviati tramite la connessione Bluetooth al modulo installato sul robot. Tutti i comandi sono in formato ASCII, e sono quindi composti da una sequenza di caratteri. Il software in esecuzione sulla board Arduino presente sul robot controlla poi i comandi ricevuti e, se questi corrispondono a quelli attesi, attiva i servo motori in funzione dello specifico comando, causando il movimento in avanti, indietro, a sinistra, a destra, oppure l’arresto del robot.

Lo schema a blocchi del progetto relativo al robot controllato da un’applicazione Android è visibile in Figura 1.

Figura 1: schema a blocchi del robot controllato remotamente

Vediamo ora in dettaglio i vari passi su cui si articola la realizzazione del robot a controllo remoto.

Step 1 - assemblaggio dei componenti

Prendete la piastra di materiale plastico e posizionate i servo motori in corrispondenza dei bordi laterali destro e sinistro utilizzando della normale colla a caldo per il fissaggio. Aggiungete poi il ball caster. Sul lato superiore della piastra andrà poi posizionata la board Arduino, utilizzando del nastro bi-adesivo; un’operazione analoga andrà eseguita per il contenitore delle batterie. Il risultato è mostrato nelle Figure 2 e 3.

Figura 2: vista dall’alto del robot con i componenti già posizionati

 

Figura 3 – vista dal basso del robot con in evidenza il ball caster

Figura 3: vista dal basso del robot con in evidenza il ball caster

Step 2 - setup del collegamento con Android

In questo step vedremo come realizzare i collegamenti a livello hardware con la scheda Arduino e con i servomotori. A differenza dei normali servomotori, quelli a rotazione continua non possono essere controllati e impostati su uno specifico valore di angolo. Questo tipo di servomotore dispone di tre fili per il collegamento: rosso (alimentazione), nero (ground) e bianco oppure giallo (segnale PWM /PPM).

Il filo bianco/giallo del servomotore sul lato sinistro andrà collegato al pin digitale 9 di Arduino, mentre il filo bianco/giallo del servomotore posto sul lato destro andrà collegato al pin digitale 10 di Arduino. I fili neri di entrambi i servomotori andranno collegati al pin GND di Arduino, mentre i fili rossi andranno collegati al terminale positivo del portabatterie. Il pin RX del modulo Bluetooth va collegato al pin TX (pin digitale 1) di Arduino, mentre il pin TX del modulo Bluetooth va collegato al pin RX di Arduino (pin digitale 0). I pin VCC e GND dello stesso modulo vanno collegati ai corrispondenti pin di Arduino. Il terminale negativo del portabatterie va infine collegato al pin GND di Arduino. Lo schema completo dei collegamenti è visibile in Figura 4.

Figura 4: schema dei collegamenti del robot controllato da Arduino

Step 3 - caricamento dello sketch Arduino

Lo sketch Arduino relativo al progetto del robot controllato remotamente può essere scaricato al nostro indirizzo. Una volta scaricato il codice, potete uploadarlo sulla board Arduino.

Nota importante: poichè il modulo Bluetooth è collegato ai pin RX e TX di Arduino, esso andrebbe rimosso prima di trasferire il codice dello sketch dal PC alla board Arduino. Il modulo andrà collegato solo dopo aver completato la programmazione della board.

Lo sketch utilizza la libreria per i servomotori di Arduino, oltre a qualche semplice comando.

I servomotori vengono controllati tramite comandi del tipo:

servo.write(90)  -> arresta il movimento del servomotore
servo.write(180) -> fa ruotare il servomotore in senso orario
servo.write(0)   -> fa ruotare il servomotore in senso antiorario

Uno screenshot dello sketch è visibile in Figura 5.

Figura 5: screenshot relativo allo sketch Arduino

Step 4 - download dell’app Android e impostazione del Bluetooth

Per installare l’applicazione Android sullo smartphone, occorre trasferire il file.apk (unzip la cartella) dal PC al dispositivo Android, e poi cliccare su di esso per eseguirne l’installazione. Per chi volesse modificare l’app Android, sono disponibili i relativi sorgenti del progetto. Assicuratevi, inoltre, di aver spuntato l’opzione che consente l’installazione di app non provenienti dallo Store.

Una volta installata l’applicazione, prima di aprirla occorre eseguire il pairing e la connessione con il modulo Bluetooth. Per fare ciò occorre alimentare sia la board Arduino che il modulo Bluetooth, e poi abilitare la connessione Bluetooth sullo smartphone. Si può, a questo punto, attivare la ricerca di nuovi dispositivi Bluetooth (Figura 6) e, una volta selezionato il modulo dalla lista proposta, inserire il codice richiesto per il pairing (normalmente questo codice è "1234" oppure "0000").

Figura 6 – ricerca dei dispositivi sulla rete Bluetooth

Figura 6: ricerca dei dispositivi sulla rete Bluetooth

Prendete nota del nome del vostro dispositivo (in questo caso è “HC-06”). Dopo aver eseguito il pairing con il robot, andate sull’app Android (“DIY RC car”) e inserite il nome del vostro modulo Bluetooth che vi siete annotati in precedenza, e cliccate su “OK”. A questo punto, lo smartphone si collegherà con il robot, e quest’ultimo si muoverà in accordo con i tasti premuti sull’applicazione Android (Figura 7).

Figura 7: l’app Android per il controllo remoto del robot

Seconda parte: aggiungiamo una webcam al robot

Dotare di una webcam un piccolo robot o un veicolo radiocomandato è sicuramente un’operazione utile e vantaggiosa che permette, ad esempio, di vedere esattamente dove il veicolo si sta dirigendo tramite una connessione wi-fi ed uno smartphone o tablet. Vediamo, quindi, come realizzare questo progetto utilizzando un Raspberry Pi e una webcam USB. Il flusso video catturato dalla webcam potrà essere visualizzato (con un ritardo minimo e del tutto trascurabile) su un monitor collegato al Raspberry Pi, oppure su un altro dispositivo connesso alla stessa rete locale.

Materiale richiesto

La dotazione hardware richiesta per la realizzazione del progetto prevede l’utilizzo di:

  1. una scheda Raspberry Pi, equipaggiata con una scheda di memoria SD già programmata con un sistema operativo;
  2. un dongle WiFi o al limite la versione Raspberry Pi 3 con il modulo Wireless incorporato;
  3. una webcam USB;

Per quanto riguarda invece la componente software, si utilizzeranno la distribuzione Raspbian (probabilmente quella più diffusa per il Raspberry Pi) e il linguaggio HTML.

Principio di funzionamento

Vediamo ora di esaminare il principio di funzionamento del progetto. La webcam USB collegata al Raspberry Pi viene normalmente associata al device /dev/video0. Installando il servizio di streaming “mjpg streamer”, è possibile poi trasmettere il video all’indirizzo IP e alla porta locale del Raspberry Pi. Sia la risoluzione del video che il frame rate possono essere impostati tramite dei comandi Linux, anche con il servizio mjpg già attivo. Il video può essere, inoltre, riprodotto su un qualunque dispositivo collegato alla rete locale aprendo un file HTML in un browser, e puntando all’indirizzo IP e alla porta del Raspberry Pi. [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2365 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend