sandwichUna caratteristica eccezionale di Arduino è il fatto di avere sul mercato una ricca scelta di schede aggiuntive (shield) che permettono di espandere notevolmente le funzionalità di Arduino e senza perdere ore e ore per i collegamenti e la configurazione hardware.


L'uso di shield compatibili con la scheda Arduino rende il tutto più semplice, basta infatti impilare le varie schede una sopra l'altra, come se fosse un sandwich!

 

Nel caso di questo progetto, ecco come ho impilato le shield:

No. Nome shield Descrizione
1  Arduino UNO Core shield che include la CPU e un collegamento USB (comunicazione PC)
2  Motor Shield  Scheda per il controllo dei motori
3  XBee Shield V1.1  Scheda adapter per schedine XBee (wireless COM)
4  XBee module  Schedina XBee

 

IMG 0375 r

 

 

Ora che abbiamo preparato tutti i componenti del progetto, possiamo dedicarci al collegamento elettrico di tutti i componenti.

Essendo il numero di elementi aumentati man mano che prendeva forma il progetto, ho voluto schematizzare l'elenco di ingressi e uscite necessari e iniziare a distinguere i fabbisogni di porte analogiche e digitali. Questo è lo schizzo:

idea progetto porte r

A questo scopo ho preparato anche uno schema dove ho riportato un po' tutti i collegamenti del mio progetto, alcuni collegamenti sono approssimativi per mancanza del disegno del componente corretto (ad esempio il display LCD), ma in linea di massima i collegamenti corrispondono.

Questo lo schema del progetto:

Virux bb

 

La tabella seguente mostra l'attribuzione delle rispettive porte con arduino, questo è molto importante in quanto tutto il software si riferisce a questa configurazione. Inoltre va ricordato che alcune porte di Arduino sono particolari e non possono essere invertite. Mi riferisco ad esempio alle funzioni PWM, disponibili soltanto su alcune porte o alle porte per la comunicazione tramite porta I2C.

 

Progetto Big Wheely
V1.0  
Pin Descrizione
D0 RX Xbee Serial wireless
D1 TX Xbee Serial wireless
D2 Infrared rotazione Ruota SX [S.SX]
D3 PWM AD - Rotor Shield
D4 Trigger - HCRS04 Sonar distance
D5 RX LCD display
D6 TX LCD display
D7 Echo - HCRS04 Sonar distance
D8 Brake SD - Motor shield
D9 Brake AD - Motor shield
D10 Servo rotaz. Dist. Sonar
D11 PWM SD - Motor shield
D12 Direction AD - Motor shield
D13 Direction SD - Motor shield
   
A0 Current sensing AD - motor shield
A1 Current sensing SD - motor shield
A2  
A3  
A4 SDA (DATA) Bus I2C Compass
A5 SCL (Clock) Bus I2C Compass

 

 

Contrariamente a quanto iniziamente avevo pensato, il numero di porte disponibile su questo modello di Arduino non è così eccessivo. Sono infatti tutte utilizzate, ad eccezione di un paio di porte analogiche che però intendo sfruttare in futuro per il collegamento di pulsanti o altri sensori.

È giunto il momento di collegare un po' di fili e iniziare ad assemblare il progetto, in particolare vogliamo ora collegare il modulo che dovrà indicarci la direzione.

Il modulo HMC5883L è un minuscolo circuito con include solo una manciata di componenti che però implementa una vera e propria bussola!

IMG 0080 r

 

Questo componente è molto semplice da collegare ad Arduino, forse meno semplice è la sua gestione, ma questa è un'altra storia. Per ora limitiamoci a collegarlo, ecco come ho fatto io:

compass collegamento bb

 

 

 

compass collegamento schem

 

Il modulo che ho usato io dispone di 6 pin, oltre a quelli indicati nello schema ha un pin 3V3 (alimentazione a 3.3V invece che a 5V) e il pin DRDY, non usato nel nostro progetto.

IMG 0079 r

Il fissaggio del sensore di distanza (sonar) al micro servo non è semplice.

L'idea di base è quella di poter ruotare il sensore in modo da poter sfruttare un sensore solo per identificare gli ostacoli presenti davanti e laterali.

La scheda elettronica del sensore di distanza è molto compatta e malgrado siano presenti dei fori sulla scheda, è piuttosto difficile sfruttarli perchè sono molto piccoli. Inoltre non è possibile, o poco consigliato, montare il tutto su una struttura metallica. 

La soluzione che ho trovato per ora è di utilizzare la plastica di imballaggio trasparente spesso utilizzata in molti acquisti.
Quella che ho utilizzato io è stata recuparata dalla confezione del deodorante per WC !!!
Sì, proprio così, questa:

 IMG 0372 r

 

Dopo averla ritagliata e apportato dei buchi in prossimità dei fori della schedina, ho fissato il sensore usando dei laccetti metallici (rivestiti di plastica)

IMG 0075 r IMG 0076 r

 

Ho potuto fissare il servo e il sensore nella parte superiore della webcam utilizzando una piastrina di alluminio

IMG 0373 r

Mi rendo conto che questa soluzione non è ancora ottimale, sarebbe utile poter regolare l'inclinazione del sensore ma per ora è ancora un po' instabile, ma comunque per ora questo funziona già discretamente bene.

 

Per fissare il display LCD era necessario avere un supporto piano e solido, ho quindi recuperato una piastra di ferro dal fondo di una vecchia tastiera!!

IMG 0071 r

IMG 0070 r

IMG 0069 r IMG 0371 r

IMG 0073 r

IMG 0077 r IMG 0078 r

IMG 0074 r