Sei sulla pagina 1di 11

Home Project

ARDUINO INCONTRA
UN RASAERBA:
NASCE
SOLAR
MOWER
Versione “Arduino-powered”
del robot presentato nel
2009, taglia l’erba rimanendo
all’interno di un’area
delimitata, evita gli ostacoli
e funziona in completa
autonomia ricaricandosi da sè
mediante un pannello solare.
dell’Ing. MIRCO SEGATELLO

T agliare l’erba è un’incombenza che un po’ tutti,


specie quando fa molto caldo, ci risparmieremmo
volentieri; è forse per questo, che l’avvento dei rasaer-
140, abbiamo proposto una nuova versione, alimenta-
ta ad energia solare, utiliz
zando soluzioni hardware e software più avanzate.
ba automatici è stato accolto con grande favore da chi Ora torniamo a parlare di robot rasaerba e lo facciamo
non vedeva l’ora di delegare il compito a un “opera- con un progetto capace di operare con la sola energia
tore” fidato senza spendere i soldi che un giardiniere pulita del sole; questo differenzia nettamente il nostro
richiederebbe. Questo genere di apparati robotizzati dai prodotti commerciali, che necessitano di una sta-
si divide in base alle funzioni implementate; comun- zione di ricarica collegata alla rete elettrica. La struttu-
que, mediamente un rasaerba automatico è costruito ra meccanica che andremo ad utilizzare è la stessa del
in modo da percorrere il prato tagliandone l’erba e progetto descritto nei fascicoli n° 139 e n° 140, rivisto
lasciandola al suolo, evitando gli ostacoli e seguendo nell’elettronica e nel firmware.
un percorso o rimanendo in una zona preventivamen-
te delimitata. I più prestanti rilevano la scarica della PROBLEMATICHE DI PROGETTO
batteria e vanno a raggiungere la stazione di ricarica. Per poter realizzare un rasaerba alimentato ad energia
Qualche anno fa (nel fascicolo n° 130, per l’esattezza...) solare è essenziale che la maggior parte dell’ener-
anche noi vi abbiamo proposto il progetto di un rasa- gia utilizzata giunga dal sole; il massimo sarebbe se
erba robotico, che oggi col “senno di poi” definirem- l’energia solare fosse sufficiente ad alimentare com-
mo rudimentale; un anno dopo, nei fascicoli n° 139 e n° pletamente il robot, ma è un obiettivo difficilmente

Elettronica In ~ Luglio / Agosto 2014 47


[schema elettrico MOWER SHIELD]

raggiungibile a causa della bassa rato che l’energia solare non sarà questa situazione la batteria funge
efficienza degli odierni pannelli sempre disponibile, perché in un da tampone, accumulando energia
solari. Nel nostro progetto abbia- giardino molte zone sono in ombra quando è disponibile in abbon-
mo deciso di ricoprire di pannelli o comunque non colpite diretta- danza e fornendola quando invece
solari l’intera superficie superiore mente dal sole. Dobbiamo quindi il robot è in ombra; da questo
del robot, quindi sappiamo già mettere in conto considerevoli cali punto di vista gli accumulatori più
quanta è l’area esposta al sole di potenza, compensati soltanto idonei sono quelli al piombo, ma
e perciò la potenza ottenibile; se il robot dispone di un accumu- nulla vieta l’utilizzo di batterie più
almeno quella di picco (i cosiddetti latore in grado di fornire energia performanti in termini di densi-
Wp), perché in realtà va conside- quando non arriva dal sole. In tà di energia (rapporto energia

48 Luglio / Agosto 2014 ~ Elettronica In


[piano di MONTAGGIO Mower shield]

Elenco Componenti:
R1: 10 Mohm (0805) C5: 100 nF ceramico (0805) F1: RUEF300
R2: 100 kohm (0805) C6: 100 nF ceramico (0805) D1: GF1M
R3: 10 Mohm (0805) C7: 22 nF ceramico (0805)
R4: 100 kohm (0805) C8: 1 nF ceramico (0805) Varie:
R5: 390 ohm (0805) C9: 1 nF ceramico (0805) - Morsetto 2 poli (4 pz.)
R6: 4,7 kohm (0805) C10: 22 nF ceramico (0805) - Strip maschio 2 vie (5 pz.)
R7: 2,2 kohm (0805) C11: 1 nF ceramico (0805) - Strip maschio 3 vie (2 pz.)
R8: 6,8 kohm (0805) C12: 1 nF ceramico (0805) - Strip maschio 4 vie (3 pz.)
C1: 100 µF 25 VL elettrolitico (D) U1: ACS712ELCTR-05B-T - Strip Maschio/Femmina 6 vie
C2: 100 nF ceramico (0805) U2: ACS712ELCTR-05B-T - Strip Maschio/Femmina 8 vie (2 pz.)
C3: 470 nF ceramico (0805) U3: CD4069UBM - Strip Maschio/Femmina 10 vie
C4: 470 nF ceramico (0805) U4: ASSR-1611-301E - Circuito stampato

accumulabile/peso) come quelle rasaerba, perciò il nostro progetto applicazione il rasaerba lavora
al litio. Il pannello solare scelto, in è stato concepito non tanto per finché nella batteria è disponibile
pieno sole è in grado di ricaricare sostituire in tutto un rasaerba energia, e quando si ricarica torna
la batteria interna con una corrente a comando manuale, da usarsi a tagliare. Questo modo di fun-
di circa 0,6 A, per un totale di circa saltuariamente quando l’erba è zionamento presenta il vantaggio
8 Wp; è una potenza minore di troppo alta, ma per un taglio conti- che il taglio continuo assicura che
quella che occorrerebbe a qualsiasi nuo e costante del prato. In questa l’erba sia sempre fresca e morbida,

Schema d’insieme del rasaerba


L’elettronica del - BATTERIA
robot è composta M
da Arduino UNO O - PANNELLO
su cui sono T SOLARE
applicati un O
- RADAR US
Motorshield e il R
Mower Shield
descritto in
I
D
MOTOR ARDUINO MOWER - DISPLAY

queste pagine:
al primo si
U SHIELD UNO SHIELD - BOBINE
T
collegano i
- MICROSWITCH
T
motoriduttori O - REED
delle ruote, R
al secondo I - ESC MOTORE
tutto il resto. TAGLIO

Elettronica In ~ Luglio / Agosto 2014 49


ed essendo tagliata in pezzettini è di taglio al giorno, normalmente ristica, rispetto alla versione
destinata a sfaldarsi in poco tempo, sufficienti per mantenere in ordine 2009 abbiamo aggiunto solo due
fungendo da concime per il prato. un giardino fino a 500 m². microswitch azionati da un’asta
Possiamo farci un’idea dell’au- Vista la piccola potenza in gioco, i posta sul frontale del rasaerba, che
tonomia e di quanto lavoro sia motori per la trazione e quello per comunica l’urto di un ostacolo. Per
possibile compiere in una giorna- il taglio sono di potenza ridotta; quanto riguarda la delimitazione
ta, valutando gli assorbimenti di nulla vieta di adottare motori di dell’area di lavoro, inizialmente
corrente, che sono circa 1,4 A per maggior potenza, fermo restando volevamo abbandonare il sistema a
il motore di taglio, 0,07 A circa per che l’autonomia del robot calerà o “recinto elettromagnetico” a 34 kHz
l’elettronica, 0,4 A per i motori di che bisognerà aggiungere pannelli (che obbliga a interrare un cavo
trazione; la corrente fornita dal solari. nel perimetro entro cui il rasaer-
pannello fotovoltaico ammonta a Nello sviluppare questo nuovo ba deve operare), a favore di un
0,6A circa. Si evince che la corrente rasaerba, abbiamo risolto uno dei sensore di colore che distinguesse
necessaria al funzionamento è il problemi della versione 2009: il l’erba dal bordo del prato facen-
triplo di quella fornita dal pannello surriscaldamento del driver per do rientrare l’apparato una volta
fotovoltaico, ovvero, per un’ora di il controllo dei motori di trazione, uscito. Purtroppo nessuna delle
lavoro servono tre ore di ricarica, decisamente poco potente e ina- soluzioni provate ha assicurato la
con una percentuale di impiego datto ad un uso intensivo, dovuto dovuta affidabilità, essenziale in
utile del 30%; considerando che in anche all’uso sotto il sole; ora i un robot di questo tipo, anche per-
estate in condizioni ottimali si può motori di trazione sono gestiti da ché le condizioni luminose esterne
disporre di circa nove ore di sole, un controller meno sensibile. sono molto variabili. Abbiamo
possiamo ipotizzare circa tre ore Per quando riguarda la senso- anche verificato la possibilità di un
sistema di localizzazione tramite
GPS, soluzione assai raffinata ed
elegante, che però è miseramente
fallita in quanto i ricevitori reperi-
Il cablaggio bili in commercio non hanno una

del Motorshield precisione sufficiente per delimita-


re le zone di taglio in un prato.
Siamo quindi tornati al sistema a
I motori di trazione vengono controllati
filo interrato, preciso e affidabile.
dal Motorshield, del quale vedete in
basso il cablaggio (non serve alimentare
Anche se nel 2009 abbiamo già
la morsettiera, perché l’alimentazione descritto come funziona, vale la
proviene dal Mower Shield tramite i pena rinfrescarsi la memoria: tutto
pin standard per Arduino) e in alto a si basa sull’utilizzo di un semplice
destra l’impostazione dei ponticelli per filo elettrico in guaina posato pochi
garantire il corretto funzionamento nel centimetri sotto al terreno e con-
rasaerba. Il Motorshield va posto subito nesso ai due capi a una centralina
sopra Arduino. che lo alimenta con una tensione
variabile di una decina di volt a
una frequenza di 34 kHz. Nella
parte bassa del telaio del rasaerba
si trovano due induttanze (bobine),
una sulla destra ed una sulla sini-
stra, collegate ciascuna in parallelo
con un condensatore, a formare un
circuito antirisonante accordato
alla frequenza di 34 kHz; quando
rilevano il campo elettromagnetico
indotto dal filo interrato, le bobine
presentano un segnale molto am-
pio (grazie all’antirisonanza) solo
con i 34 kHz, mentre se captano,

50 Luglio / Agosto 2014 ~ Elettronica In


Il cablaggio del Mower Shield
PANNELLO SOLARE
I collegamenti di sensori, attuatori Il controller del motore brushless
e motore di taglio allo shield; il si collega per l’alimentazione
reed è il sensore di rotazione della all’apposita morsettiera e per i
ruota pivotante e va piazzato di segnali al connettore J7.
fronte ad essa, collegandolo con Il Mower Shield va sopra il
due fili a J9 (ENCODER). Motorshield.

BATTERIA
DISPLAY LCD

MICROSWITCH SX

MICROSWITCH DX

INTERRUTTORE
ON/OFF REED
BOBINA 1

MOTORE LAME
ESC
SRF02

BOBINA 2

SRF02 PDW PUP PEN

ad esempio, l’induzione dovuta a meno esperti. L’uso di Arduino realizzazione, ma comporta lo


un filo collegato alla rete elettrica dovrebbe permette a molti di spe- svantaggio che quando il rasaer-
(50 Hz) la tensione risultante è rimentare la realizzazione del rasa- ba è in stand-by, eventualità che
quasi nulla. erba e sicuramente i contributi da potrebbe capitare durante la notte
Bene, ora analizziamo dettagliata- parte della comunità non manche- quando il robot rimane senza fonte
mente, l’hardware di questo nuovo ranno, con consigli e suggerimenti di alimentazione, la batteria deve
progetto. per un ulteriore miglioramento del far fronte a un’alimentazione
progetto. prolungata della scheda Arduino e
L’ELETTRONICA Siccome Arduino da solo non può degli shield.
L’importante novità è la sostitu- far tutto, lo equipaggiamo con due La gestione dei motori usati per la
zione della scheda montata nel ra- shield: uno è il Mower Shield, de- trazione viene effettuata dal Mo-
saerba 2009 con una board Ardui- scritto in queste pagine; l’altro, una torshield di Futura Elettronica che
no Uno, che permette di avere un vecchia conoscenza: il Motorshield è l’unico shield del genere in com-
progetto più user-friendly e mag- (pubblicato nel fascicolo n° 160). mercio a permettere di modificare
giormente manipolabile, anche dai La soluzione adottata è di facile l’assegnazione dei pin di controllo;

Elettronica In ~ Luglio / Agosto 2014 51


Fig. 1 - Modifica della pista A5-A3
sul Motorshield.

staccare il pannello, in quanto una glio; la versione con portata di 5A


sovra carica è ben supportata; se ci è sembrata più che sufficiente.
però utilizzate delle più moderne Questi integrati sfruttano la tecno-
batterie al litio, è fondamentale che logia ad effetto Hall per fornire in
seguite la Tabella 1 per assegnare la carica venga sospesa al raggiun- uscita una tensione proporzionale
correttamente i pin di Arduino. gimento della tensione limite, pena alla corrente circolante nel circuito
Questo shield prevede anche un il danneggiamento della batteria di potenza, mantenendo la sepa-
partitore di tensione utile per rile- o, nel peggiore dei casi, un’esplo- razione galvanica con lo stadio di
vare la tensione della fonte di ali- sione. uscita. La possibilità di misurare
mentazione, che però occupa il pin Due integrati siglati ACS712 la corrente del pannello solare sarà
A5 di Arduino, necessario invece, permettono di misurare la corrente fondamentale per rilevare la zona
in questo progetto, per il bus I²C. fornita dal pannello solare e la più idonea per la ricarica della
Lo shield permette di gestire due corrente assorbita dal motore di ta- batteria: infatti durante il funziona-
motori che assorbano al massimo 2
A ciascuno; noi abbiamo usato dei Pin Arduino name Description
motoriduttori Micromotors RH- A0 Button_pin Push button
158-12-200, che assicurano suffi- A1 ICut_pin Motor cut current
ciente potenza alla trazione. Nulla A2 IPanel_pin Solar panel current
vieta di utilizzare altri tipi di driver A3 VBat_pin Battery voltage (from MOTORSHIELD)
per motori (e quindi motori più A4 SDA_pin I2C BUS
potenti) ma è determinante che il A5 SCL_pin I2C BUS
tipo scelto disponga di due segnali D0 RXD_pin GPS or bluetooth

di comando per ciascun motore: D1 TXD_pin GPS or bluetooth

uno per definire la direzione e l’al- D2 Encoder_pin Encoder ruota pivotante


D3 PWMA_pin PWM motor A MOTORSHIELD
tro per il segnale PWM, necessario
D4 DIRA_pin Direction motor A MOTORSHIELD
al controllo della velocità. L’inter-
D5 BWFR_pin Buried Wire Fence Right
faccia con le varie parti, ossia tutto
D6 BWFL_pin Buried Wire Fence Left
eccetto i motoriduttori, si trova
D7 Panel_pin ON/OFF pannel
sul Mower Shield, che abbiamo
D8 ESC_pin ESC cut motor signal
progettato utilizzando componenti
D9 SWOL_pin Obstacle switch Right
recenti in SMD: solo così abbiamo D10 SWOR_pin Obstacle switch Left
contenuto tutto nelle dimensioni D11 PWMB_pin PWM motor B MOTORSHIELD
di uno shield compatibile con D12 DIRB_pin Direction motor B MOTORSHIELD
Arduino UNO. Analizziamo lo D13 LCD_pin Serial LCD
schema elettrico dello shield: la
sezione adibita al rilevamento del Tabella 1 - Connessioni del Mower Shield.
filo interrato è stata copiata esatta-
mente dal progetto precedente e si connettore funzione
basa su di un integrato contenente J1 Interruttore di accensione
sei porte NOT di tipo CD4069. Con J2 Alimentazione della batteria
questo integrato, semplicemente J3 Pannello fotovoltaico
squadriamo il debole segnale pre- J4 Variatore di velocità per motore del taglio (ESC)
sente ai capi del circuito risonante J5 Switch rilevamento ostacolo sinistro
parallelo, portandolo a livello TTL. J6 Switch rilevamento ostacolo destro

Anche in questo progetto abbiamo J7 Segnale di comando per il regolatore di velocità del motore del taglio
J8 Display LCD
previsto la possibilità di attivare o
J9 Contatto reed per la ruota pivotante posteriore
disattivare il pannello solare; per
J10 Bobina da 1mH per rilevamento filo interrato sinistro
questo ci siamo affidati all’inte-
J11 Bobina da 1mH per rilevamento filo interrato destro
grato ASSR 1611, uno switch MOS
J12 Sensore ad ultrasuoni SRF-02 destro
allo stato solito controllato da un J13 Sensore ad ultrasuoni SRF-02 sinistro
optoisolatore. A riguardo va detto
J14 pulsanti
che se la batteria tampone utiliz-
zata è al piombo, non è necessario Tabella 2 - Collegamenti dei connettori dello shield.

52 Luglio / Agosto 2014 ~ Elettronica In


I componenti del rasaerba
A parte la Arduino Uno e i due shield, la costruzione
del rasaerba richiede questi componenti:
- 2 motoriduttori micromotors RH-158-12-200;
mento viene memorizzato il livello - 2 ruote 100 mm con mozzi WHEEL100;
di corrente fornito dal pannello, - 2 sensori a ultrasuoni SRF02;
dato riutilizzato successivamente - 1 batteria al piombo 2,1Ah (NP21-12);
- 1 pannello solare STP10M 10W 0,59A;
quando il tagliaerba dovrà trovare
- 1 display LCD seriale 1446-LCDSER16X2NV;
una zona di ricarica, qualora la - 1 motore brushless da aeromodellismo BMA20-22L;
batteria risultasse quasi scarica. Il - 1 regolatore di velocità per motori brushless ESC-18A;
robot non conosce la reale situa- - 1 sensore magnetico per sistemi d’allarme.
zione atmosferica (soleggiato o
Tutti questi componenti si possono acquistare presso
nuvoloso) né la presenza o meno
Futura Elettronica (www.futurashop.it) e i codici identificativi di ciascuno si
di zone ombreggiate, né tantome- riferiscono proprio al catalogo Futura Elettronica.
no se si trova all’imbrunire, quindi
cercherà semplicemente una zona
sufficientemente luminosa, rispet- to alla massima intensità luminosa, I/O di Arduino) per il riconosci-
rilevata durante l’ultima sessione mento di ostacoli anteriormente;
di lavoro. questo in aggiunta ai collaudati
La misura della corrente assorbita sensori ad ultrasuoni connessi al
dal motore del taglio serve per co- bus I²C, che rilevano oggetti nella
noscere lo sforzo durante il taglio parte anteriore. Gli switch servono
ed è fondamentale per prevedere perché i sensori ad ultrasuoni po-
l’arresto del taglio in situazione di trebbero essere ingannati da ogget-
anomalia. ti dalla superficie particolarmente
A completare lo shield, c’è il diodo ridotta come una rete metallica o
D1 necessario ad evitare che la da oggetti molto frastagliati come
tensione della batteria finisca sul un cespuglio.
pannello fotovoltaico, nel caso Per il taglio dell’erba, ci siamo affi-
fosse poco illuminato, e i due dati ancora una volta ad un motore
connettori per rendere disponibile di tipo brushless per impieghi in
il bus I²C. Sono stati previsti anche ambito aeromodellistico, al quale
tre pulsanti di uso generico con- è abbinata una lama da taglio rea-
nessi tramite una rete di resistenze lizzata accoppiando due lame da
all’ingresso analogico A0; usiamo cutter e avvitandole su un mozzo a
un solo input perché tutti i pin vite. Il motore è da 200 W ma viene
digitali sono già occupati. L’input utilizzato per non più del 20 % in
analogico, tramite l’opportuna quanto, la sua massima potenza, è
connessione delle resistenze R6, R7, consentita solo quando è installato
R8, legge le tensioni causate dalla a bordo di un aeromodello in cui è
chiusura di uno dei tre pulsanti. assicurata un’elevata ventilazione;
Nella Tabella 1 sono riportate all’interno di una scatola, per di
tutte le connessioni dello shield. più in pieno sole, non possiamo
Un ingresso digitale di Arduino pretendere di più. Il controllo
L’elettronica utilizzata nella nuova è utilizzato da un sensore reed del motore è affidato ad un ESC
versione del rasaerba comprende una che viene posizionato a ridosso (Electronic Speed Control) del tipo
board ARDUINO UNO sulla quale gira della ruota pivotante posteriore e usato in modellismo, che si coman-
il programma di gestione dell’intera azionato da un piccolo magnete da con un semplice segnale PWM,
macchina, lo shield di gestione dei inserito nella ruota stessa ad ogni facilmente gestibile con Arduino,
motori di trazione MOTORSHIELD e lo rotazione. Con questo sensore (Fig. perché è già presente la relativa
shield MOWERSHIELD_FE descritto in 6) è possibile determinare se il ro- funzione nella libreria di sistema.
queste pagine ed al quale fanno capo bot si muove regolarmente oppure Per la misura della tensione ai
il pannello fotovoltaico, il display, la
una o più ruote risultano bloccate capi della batteria utilizziamo il
batteria, il motore brushless che aziona
la lama, i sensori ad ultrasuoni, le o girano a vuoto. partitore di tensione già presente
bobine che captano il segnale a 34 kHz, Rispetto alla precedente versione, nel Motorshield; è però necessario
i microswitch del sensore di tocco e abbiamo aggiunto due switch modificare la pista che porta la
pulsanti e interruttori di controllo. (connessi ad altrettante linee di tensione in uscita dal partitore dal

Elettronica In ~ Luglio / Agosto 2014 53


pioggia, o meglio un sensore di tutti i parametri, i più importanti
umidità dell’erba che permette- sono quelli di seguito elencati.
rebbe al robot di fermarsi in attesa - ESC_MAX_SIGNAL 2000:
di migliori condizioni per il taglio. definisce la durata in microse-
Come sicurezza abbiamo imple- condi del segnale relativo alla
mentato un encoder sulla ruota massima potenza dell’ESC per il
pivotante e a supporto sarebbe controllo del motore di taglio.
stato possibile aggiungere encoder - #define ESC_MIN_SIGNAL
anche sulle ruote di trazione, oltre, 1000: definisce la durata in mi-
magari, a un sensore per la misura crosecondi del segnale relativo
della corrente assorbita. La parte allo stop dell’ESC per il control-
elettrica prevede anche l’uso di un lo del motore di taglio.
display seriale con caratteri neri - #define VBat_Level_Min 9.0:
su fondo verde, utilizzabile per la definisce la minima tensione
funzione di debug, ma non neces- della batteria al di sotto del-
Fig. 2 - Schermata di Serial Monitor sario al normale funzionamento la quale tutte le funzioni del
durante il test dei motori della trazione. del tosaerba. rasaerba (tranne la ricarica da
Per i collegamenti elettrici dello pannello solare) vengono disat-
shield, fate riferimento alla Tabel- tivate.
la 2. Tutti i componenti si possono - #define VBat_Level_Max: defi-
acquistare presso Futura Elettroni- nisce la massima tensione della
ca (www.futurashop.it). batteria oltre la quale viene
Ricordiamo che per i dettagli della interrotta la ricarica da pannel-
parte meccanica, compresi i piani lo solare. Il valore minimo e
costruttivi, potete fare riferimento massimo sono usati anche per
all’articolo pubblicato sui nu- determinare il livello di carica
meri 139 e 140 di Elettronica In; della batteria.
trovate i rispettivi articoli online - #define ICut_Min: definisce la
sul nostro sito, cercando (nella minima corrente assorbita dal
sezione Arretrati) i fascicoli n° 139 motore del taglio al di sotto
e n° 140, scaricabili gratuitamente della quale viene generato un
ai link www.elettronicain.it/MyMain/ allarme.
riviste/p_rivista.asp?nrRivista=EI139 - #define ICut_Max: definisce la
per la prima puntata e www.elet- massima corrente assorbita dal
tronicain.it/MyMain/riviste/p_rivista. motore del taglio al di sopra del-
asp?nrRivista=EI140 per la seconda. la quale viene ridotta la velocità
Fig. 3 - Schermata di Serial Monitor di avanzamento.
durante il test dei sensori. IL FIRMWARE - #define accelerateTime: defi-
Il firmware di questo rasaerba è nisce la durata dell’accelera-
pin A5 al pin A3, in modo che i stato completamente riscritto, dato zione per i motori adibiti alla
pin A4 e A5 siano disponibili per il l’utilizzo di un diverso micro- movimentazione; il tempo
BUS I²C (Fig. 1). controllore e le nuove funzioni totale di accelerazione vale
Le due linee digitali D0 e D1 sono implementate nell’hardware. Lo accelerateTime*255[ms].
usate per la comunicazione con il sketch è stato diviso in più file, - #define USdistance: distanza in
PC, però, una volta programmato ciascuno con un preciso compito, centimetri entro la quale viene
Arduino, possono essere usate per permettendo di mettere in ordine riconosciuto un ostacolo ed il
la comunicazioni con altre periferi- le funzioni e rendere più agevole robot cambia direzione.
che come GPS o Bluetooth. la lettura; vediamo di seguito i file - #define timeReverse: durata in
L’hardware è abbastanza completo che compongono lo sketch. ms della retromarcia del robot
e lo shield svolge egregiamente il Il file configuration.h contiene tutti i in seguito al riconoscimento di
proprio lavoro, anche se potrebbe- define utilizzati per impostare i pa- un ostacolo.
ro essere inserite ulteriori funzioni, rametri di funzionamento e l’asse- - #define timeRotate: durata in
come ad esempio un sensore di gnazione dei pin per Arduino. Tra ms della rotazione del robot du-

54 Luglio / Agosto 2014 ~ Elettronica In


rante la manovra per modificare funzionalità e del cablaggio; allo
la direzione di marcia dopo aver scopo, nel programma principale
rilevato un ostacolo. sono state previste tre specifiche
utility. Nell’eseguire i test, racco-
Il file SerLCD.ino contiene le mandiamo di non montare (o di
funzioni per l’inizializzazione ed rimuoverle, se fate il test a rasa-
il controllo del display LCD. Il file erba completato) le lame sino a
debug.ino contiene le funzioni per quando non terminerete le prove.
l’inizializzazione e la visualizza- All’accensione, oppure alla pressio-
zione sul display LCD dei valori ne del pulsante di reset di Arduino
misurati durante il funzionamento, o all’avvio di Serial Monitor (se
contiene anche le funzioni utilizza- connesso ad Arduino), il firmware
te per inviare al PC i dati misurati. comincia la sua elaborazione e
Il file sensor.ino contiene le funzioni come prima operazione verifica
utilizzate alla lettura dei sensori; se uno dei pulsanti è premuto, nel
tutti i valori misurati sono scalati qual caso avvia la specifica pro- Fig. 4 - Schermata di Serial Monitor
in ampere e volt per una facile cedura di set-up come di seguito durante il test del motore del taglio.
comparazione. Di particolare in- indicato:
teresse la funzione FreqCounter(int - pulsante PUP premuto = si
pin, unsigned long gateTime) che entra nel test sensori;
permette di misurare il numero - pulsante PDW premuto = si
di impulsi giunti dagli ingressi entra nel test motori;
utilizzati per il rilevamento del - pulsante PEN premuto = si
filo interrato. Il segnale ad onda entra nel test dell’ESC.
quadra ottenuto dal circuito di rile-
vamento del filo interrato presenta La procedura di test dell’ESC
infatti una particolare frequenza permette di calibrare i valori di
presente solo nel caso il filo venga massimo e minimo; notate che
correttamente rilevato. Il parame- non si tratta di una sequenza di
tro gateTime è la durata del rileva- programmazione, per la quale
Fig. 5 - Schermata di Serial Monitor
mento del segnale e rappresenta invece occorre fare riferimento prima dell’avvio.
anche il tempo necessario alla allo specifico manuale dell’ESC da
funzione per misurare il conteggio, voi utilizzato. La procedura di test
che per impostazione predefinita dell’ESC è la seguente. dificare il valore del cutPower e
vale 100 ms. 1. Entrati in procedura test ESC, verificare il corretto funzionamen-
Il file TestMotor.ino contiene la impostare il cutPower al massi- to del motore.
funzione utilizzata durante il test mo utilizzando il pulsante PUP Per la verifica dei motori di
dei motori di trazione. (100%=2.000 µs). trazione avviate la procedura di
Per ogni funzione del rasaerba vie- 2. Alimentare l’ESC ed attendere test motori, che provvederà ad
ne data conferma sul display LCD la configurazione del punto di avviare in sequenza i due motori
e uguali messaggi sono inviati al massimo (si udrà l’apposito accelerandoli e decelerandoli gra-
PC, il display LCD garantisce una segnale acustico). datamente. Verificate che il senso
maggiore comodità di gestione 3. Impostare cutPower al minimo di rotazione sia in accordo con
dei dati senza la necessità di un utilizzando il pulsante PDW i messaggi visualizzati su Serial
collegamento con il PC. (si udirà un apposito segnale Monitor di Arduino (Fig. 2) o sul
Il programma principale è conte- acustico). display LCD: se il verso di rota-
nuto nel file SolarMower.ino; esso zione dovesse essere discorde sarà
sovraintende tutte le operazioni e Fatto ciò, la calibrazione è termi- sufficiente invertire i fili dei motori.
si occupa di richiamare le funzioni nata. L’ESC imposterà i limiti in Verificate anche che al motore DX
nella giusta sequenza. modo automatico in un range 10- corrisponda effettivamente il mo-
Non appena avete completato la 30% per il minimo e 70-100% per tore destro e viceversa, altrimenti
parte elettrica del rasaerba, dove- il massimo. Agendo sui pulsanti scambiate i connettori sui morsetti
te provvedere alla verifica delle PUP e PDW sarà possibile mo- del Motorshield.

Elettronica In ~ Luglio / Agosto 2014 55


Il generatore del segnale delimitatore

Elenco Componenti:
R1: 3,3 kohm PT1: Ponte diodi W06M
R2: 12 kohm U1: NE555
R3: 100 ohm
R4: Trimmer 4,7 kohm MV Varie:
C1: 1.000 µF 35 VL elettrolitico - Plug alimentazione
C2, C4: 100 nF multistrato - Morsettiera 2 poli
C3: 1,2 nF 63 VL poliestere - Zoccolo 4+4
C5: 1 µF 63 VL poliestere - Circuito stampato

Il recinto entro cui il rasaerba


si sposterà si definisce
posando (interrato di qualche
centimetro ad evitare che le
ruote o la lama lo tocchino)
sotto l’erba un filo elettrico
che parte da uno dei morsetti
del circuito generatore e si
chiude sull’altro, a formare
un anello. In questo modo,
la corrente nel filo indurrà
nei dintorni un campo
elettromagnetico a 34 kHz,
rilevabile dalle induttanze
del rasaerba (che sono poste
nella parte più bassa della
scocca).

Passiamo adesso alla procedura di andremo a modificare l’indirizzo di input funzionano correttamente;
test per i sensori: prima di avviarla, del sensore destro. Per fare questo, sia sul display LCD (se presente)
occorre fare un discorso a parte connettiamo allo shield il solo sia su Serial Monitor (se connes-
sui sensori ad ultrasuoni, perché, sensore destro ed apriamo l’esem- so con Arduino) sarà possibile
essendo entrambi connessi allo pio SRF02_address.ino, contenuto vedere i dati acquisiti dai sensori
stesso BUS I²C, è necessario che nella libreria SRF02 fornita assieme di corrente, il valore degli ingressi
uno dei due venga programmato ai file di questo progetto: carichia- digitali e la presenza o meno di
con un indirizzo differente da molo in Arduino e, automatica- ostacoli rilevati.
quello predefinito. I sensori sono mente, l’indirizzo sarà modificato. Quando siete sicuri che tutto fun-
del tipo SRF02 e vengono venduti Potete utilizzare il programma di ziona correttamente, potete fare le
con assegnato l’indirizzo di valore esempio, sempre contenuto nella prime prove sul campo: è sufficien-
HEX0x70 e quindi due sensori libreria, per verificare il corretto te premere il pulsante PEN dalla
appena acquistati, se connessi allo cambio di indirizzo. schermata principale per avviare
stesso BUS andrebbero in conflit- Avviate la procedura di test dei il rasaerba, mentre, premendo uno
to. Lasceremo il sensore sinistro sensori e qui avrete la possibilità dei due tasti PUP e PDW, si ha l’ar-
con l’indirizzo predefinito 0x70 e di verificare se tutte le periferiche resto immediato.

56 Luglio / Agosto 2014 ~ Elettronica In


con secondario da 9 V e primario
da rete da 220 Vca.
Seguendo la filosofia di questo
progetto, potete rinunciare all’ali-
mentazione da rete e ottenere i 12
volt tramite un pannello solare e
una batteria tampone.
Ponendo in serie un ponte raddriz-
zatore, si evita che quando la ten-
sione della batteria supera quella
fornita dal pannello fotovoltaico
(nei periodi di scarsa insolazione)
la corrente si riversi in esso. Il
Fig. 6 - Posizionamento del Fig. 7 - Posizionamento pannello va scelto di potenza tale
sensore magnetico sulla ruota delle induttanze del sensore per il da ricaricare la batteria e alimen-
posteriore. filo interrato. tare il circuito di giorno, mentre
l’accumulatore va dimensionato
In ogni caso, prima di sollevare o in cui la batteria è quasi scarica, il per fornire alimentazione per tutto
maneggiare il tagliaerba consi- motore per il taglio è fermo ed il il periodo in cui mancherà la luce
gliamo di spegnerlo tramite l’in- robot cerca una posizione lumino- del sole.
terruttore generale: solo questo vi sa per ricaricarsi. Una volta completato il circui-
garantirà che nessun meccanismo Se la variabile di stato assume il to, l’unica taratura da eseguire
entrerà in funzione. valore 4, sul display è riportata la consiste nella regolazione della
Senza descrivere nei dettagli l’inte- dicitura BATLOW: è lo stato in cui frequenza del segnale inviato al
ro firmware, vediamo quali sono le la batteria è completamente sca- filo interrato: avvicinate il filo alle
linee essenziali implementate; il ra- rica; non è stato possibile trovare bobine del rasaerba (Fig. 7) e ruo-
saerba è un automa a stati finiti in una posizione di ricarica soddisfa- tate il trimmer sino ad ottenere la
cui lo stato di funzionamento è me- cente, vengono spenti anche i mo- miglior lettura possibile (utilizzate
morizzato nella variabile mowerSta- tori per la trazione ed il robot ri- la procedura di test dei sensori). g
tus. Quando essa assume il valore mane fermo in ricarica. Quando la
0 sul display è riportata la dicitura variabile di stato assume il valore
CHARGE: si tratta dello stato 5, il display mostra CHARGE RS:
iniziale dopo l’accensione (il robot il robot è in posizione di ricarica e per il MATERIALE
è fermo ed in carica in attesa che pronto a ripartire non appena la
venga premuto il pulsante PEN batteria sarà completamente carica. Tutti i componenti utilizzati in questo
di avvio). Quando la variabile di Se la variabile di stato assume il progetto sono facilmente reperibili in
stato assume il valore 1, sul display valore 6, sul display è riportata la commercio. Gli accessori, i motori, i
è riportata la dicitura RUN: è lo dicitura CUTERROR: significa che sensori e tutti gli altri elementi che
stato principale in cui il robot ese- il robot è fermo perché ha rilevato compongono il rasaerba (come indicato
gue il taglio dell’erba e nel contem- un’anomalia nell’assorbimento del a pag. 53), sono reperibili presso Futu-
po verifica la presenza di ostacoli, motore per il taglio. ra Elettronica così come tutta l’elettro-
nel qual caso avvia una semplice nica che comprende la board Arduino
Uno (Euro 24,50), lo shield MOWER-
procedura che permette la modifi- IL RECINTO A 34 KHZ
SHIELD_FE (descritto in questo artico-
ca della direzione di marcia. Se la Per restare nella zona da noi voluta, lo) e che costa 36,00 Euro già montato
variabile di stato assume il valore 2, il rasaerba è programmato in modo e il MOTORSHIELD (cod. KA03) che
il display mostra STUCK: significa da indietreggiare quando rileva il costa 18,00 Euro. Tutti i prezzi si inten-
che il robot è rimasto bloccato. La campo elettromagnetico a 34 kHz dono IVA compresa.
situazione viene rilevata perché la irradiato dal filo interrato, per ali-
ruota posteriore non gira più e non mentare il quale è sufficiente il cir- Il materiale va richiesto a:
fornisce alcun segnale alla scheda. cuito astabile visibile nella pagina Futura Elettronica, Via Adige 11,
Quando la variabile di stato assu- accanto: è lo stesso della versione 21013 Gallarate (VA)
me il valore 3, sul display è ripor- 2009 del rasaerba e prevede, per Tel: 0331-799775 • Fax: 0331-792287
tata la dicitura SEARCH: è lo stato l’alimentazione, un trasformatore http://www.futurashop.it

Elettronica In ~ Luglio / Agosto 2014 57

Potrebbero piacerti anche