La versione 3.0 del "Progetto Terrina" gestisce un servo per alzare e abbassare la telecamera.
Cliccando sulla colonna nera a destra si controlla l'altezza della telecamera con sette inclinazioni possibili.
La parte "meccanica" è forse troppo complessa per un JFFP (Just For Fun Project) come questo e confesso che non l'ho realizzato in questa occasione. Si tratta di una prova di lavorazione con una fresa CNC che costruii alcuni anni fa. Prossimamente dedicherò un post anche al progetto CNC.
Ecco un breve video:
Il servo è collegato alla porta 11 della scheda Arduino Yùn.
I file della versione 3.0 del "Progetto Terrina" sono scaricabili da qui:
Questo è il primo video del Rover 2.0 in missione "all'esterno":
Per installare e configurare la telecamera ho utilizzato le istruzioni di questo blog www.lucadentella.it.
E' esattamente quello che mi serviva ed inoltre è spiegato ottimamente. Quindi mi sono procurato la telecamera LifeCam HD-3000 ed ecco la telecamera montata sul rover.
Ho dovuto aggiornare lo sketch Arduino Yùn e la pagina HTML nel web server per visualizzare lo streaming video otre a piccoli aggiustamenti per regolare la velocità dei servi.
Una volta scaricato il progetto su Arduino yùn e aperto il REST API ACCESS dal menu di configurazione di Arduino Yùn.
sarà possibile connettersi tramite un tablet o un PC connesso nella stessa rete all'IP scelto per Arduino yùn. Quindi per aprire la pagina web per controllare il rover, bisogna digitare: IP + /sd/rover.
Nel mio caso:
http://192.168.1.36/sd/rover/
Apparirà la pagina WEB ROVER:
Sono presenti i tasti di avanzamento rotazione e stop. I campi numerici servono per impostare il numero di cicli del loop Arduino durante i quali verrà eseguito il comando di avanzamento o rotazione. Quindi, avendo impostato un delay di 50 ms, l'avanzamento o la rotazione durerà 2 secondi. Questo serve ad evitare che il rover mantenga l'ultimo comando all'infinito in caso di problemi di connessione sulla rete ethernet. Nelle prossime versioni aggiungerò un meccanismo automatico di controllo della connessione.
Il codice HTML della pagina web inclusa nel progetto è composta essenzialmente da due parti:
una tabella con le immagini dei tasti e i campi numerici.
4 funzioni javascript. Due per inviare comandi e due per ricevere la risposta dal rover.
La pressione di uno dei tasti creati tramite il seguente codice:
La sendCommand non fa altro che mandare una HttpRequest (che equivale a scrivere un indirizzo su un browser e premere invio) con l'indirizzo: IP/arduino/mode/3/40.
Tramite il Web Server e la libreria Bridge, questa stringa arriva allo sketch Arduino che si preoccupa di estrarre il numero tre che rappresenta il comando e il numero 40 che rappresenta la durata che tale comando deve avere. Tramite la funzione all'interno dello sketch Arduino: client.readStringUntil('/'); ripetuta tre volte vengono letti nell'ordine "mode", "3" e "40".
La riga di codice richiesta.onreadystatechange = sendCommandResponse; prenota la risposta da parte di Arduino e la informa che verrà gestita dalla funzione "sendCommandResponse".