Rocker Tubie, il robot costruito con tubi idraulici in PVC.

da | Set 18, 2018 | 9 commenti

Rocker Tubie è un rover 6WD economico, robusto, modulabile ed ecologico.

Rocker Tubie è un progetto di rover a sei ruote autocostruibile, economico, robusto e modulabile presentato dal team Fanbotica in occasione del Maker Faire Europe che si è tenuto a Roma dal 12 al 14 Ottobre 2018, nel corso del quale ha riscosso un enorme successo di pubblico.

Questo robot articolato su ruote appartiene alla categoria generale dei robot semoventi o telecomandati su ruote anche detti “rover” (vagabondi).

Nello specifico si tratta di un robot classificato come “rover 6WD”, ovvero a 6 ruote motrici.

Realizza il tuo Rocker Tubie riutilizzando tubi idraulici in PVC da 40mm!

Per realizzare il telaio del rocker puoi riutilizzare tubi idraulici in pvc da 40 mm di diametro esterno.

Consiglio: Puoi recuperarli dal materiale di scarto dei cantieri edili,  direttamente in discarica, o se non riesci a reperirli puoi acquistarli da noi in kit a partire da Dicembre 2018.

Nella versione presentata al Maker Faire ti occorreranno una decina di segmenti di tubi da circa 30 cm l’uno.

Ma essendo il progetto modulabile potresti ad esempio decidere di raddoppiare le misure fornite nel tutorial di questo progetto ed ottenere un robot grande il doppio con lo stesso hardware e la stessa elettronica!

Rocker Tubie DCK (Developer Complete Kit) Part List:

Passiamo ad esaminare insieme i componenti usati per realizzare il telaio del Roker Tubie con sospensioni a bilanciere:

  • n°2 tubi in PVC da 63 mm,
  • n°4 tubi in PVC da 110 mm,
  • n°4 tubi in PVC da 140 mm,
  • n°2 tubi in PVC da 150 mm.
  • n°2 tubi in PVC da 260 mm,
  • n°4 raccordi in PVC tipo a 90°,
  • n°4 raccordi in PVC tipo a 45°,
  • n°18 raccordi stampati in PLA (scarica e stampa files da qui),
  • n°2 staffe forate 98 mm x 20 mm
  • n°6 cuscinetti a sfera per skateboard 608 2RS 8x22x7 mm,
  • n°2 barre filettate M4, 4mm x 1000 mm,
  • n°2 barre filettate tipo M8, 8 mm x 1000 mm,
  • n°61 dadi esagonali M8 filettati autobloccanti, diametro esterno 13 mm,
  • n°16 viti M8, diametro esterno 13 mm lunghezza 60 mm,
  • n°8 viti M8, diametro esterno 13 mm lunghezza 80 mm,
  • n°61 rondelle circolari con foro M8, diametro esterno 16 mm,
  • n°16 viti M4 da 4 mm x 60 mm,
  • n°16 dadi M4 da 7 mm di diametro esterno,
  • n°20 guaine termoretraibili di varia misura,
  • n°60 distanziatori esagonali M3, 12 mm di altezza,
  • n°6 Motori a corrente continua da 12V 107rpm (giri al minuto) con riduttori, Encoder ad effetto hall e staffe di fissaggio forate,
  • n°6 Ruote da 130 mm x 60 mm.

Questa in vece l’elettronica on board del Rocker Tubie:

  • n°1 Batteria Lipo 3S – 11,1 V 5000 mAh 30-45 C (non inclusa nei kit),
  • n°1 5A XL4005 Convertitore di alimentazione step-down regolabile CC-CC,
  • n°1 Microcontrollore Arduino Mega 2560 Rev3,
  • n°1 Scheda di controllo motori DBH-12V fino a 30A 2 canali,
  • n°4 Moduli LED Full Color 10 mm RGB,
  • n°2 Sensori di prossimità Sharp 2Y0A02 (20-150 cm),
  • n°1 modulo Wi-Fi nRF24L01, corredato di antenna esterna del tipo “long-range” e del modulo addizionale di alimentazione a 5 V, (maggiori dettagli qui),
  • n°1 set da 20 ponticelli tipo Dupont Maschio/Femmina,
  • n°1 set da 20 ponticelli tipo Dupont Femmina/Femmina,

Dettagli tecnici del telaio Rocker Tubie

Rocker Tubie + Modulo RC

Il sistema di sospensione del Rocker Tubie è simile a quello dei rover Nasa impiegati per le missioni spaziali su Marte.

Infatti sono state adottate sospensioni del tipo a bilanciere, per una migliore stabilità su terreni disconnessi.

Questo tipo di tecnologia adoperata nelle sospensioni, offre il vantaggio di avere almeno cinque ruote su sei sempre in contatto col terreno, riducendo a casi estremi la possibilità del ribaltamento del mezzo.

Il Rocker Tubie inoltre presenta sei ruote indipendenti da 130 mm x 60 mm ed altrettanti motori a spazzola da 12 V e 107 rpm (giri al minuto).

La presenza di un encoder ad effetto hall su ogni albero motore, consente la rilevazione della esatta posizione, del numero di giri al minuto, e della distanza percorsa da ciascuna ruota.

Il driver dei motori è un DHB-12V a doppio canale per un max di 50 A con ponte H, al quale abbiamo già dedicato un articolo qualche tempo fa che puoi leggere qui.

Nella versione con raccordi stampati in PLA può sopportare carichi fino a 30 kg.

L’elettronica è gestita da microcontrollori Arduino Mega 2560.

La guida passo passo

Sto realizzando la guida passo passo del Rocker Tubie.

In essa spiegherò come realizzare gli elementi tubolari e i raccordi stampati in 3d, inoltre illustrerò le varie fasi di assemblaggio, cablaggio, installazione dell’elettronica e del software con relativi test funzionali.

Il progetto è stato selezionato per essere esposto in uno stand dedicato presso la Maker Faire Europe di Roma 2018 che si è tenuta con un eccellente riscontro di pubblico dal 11 al 14 Ottobre nel Padiglione n°6 della Fiera di Roma.

Download dei files STL da stampare in 3d

Prima di procedere con le fasi di assemblaggio prepara il necessario, sistemi di protezione individuale, gli strumenti che ti serviranno, e scarica dalla pagina Thingiverse del progetto i files STL (stereolitografici) delle parti da stampare in 3d, cliccando qui:

Fase 1 - Taglio dei tubi in PVC

Il primo passo del tutorial per Rocker Tubie è il sezionamento dei tubi in PVC.

Procurati due tubi in PVC della lunghezza di due metri ciascuno ed aventi il diametro esterno di 40mm.

Prendendo le misure con un metro rigido segna con una matita i punti esatti nei quali dovrai sezionare il tubo con una tagliatubi a cricchetto o un seghetto con la lama per plastica o metalli. 

Consiglio: avvolgi del nastro adesivo di carta intorno al tubo nei punti dove prevedi di segnare la linea di taglio, così sarai più preciso.

Schema sezionamento tubi in PVC

Dimensioni degli elementi tubolari in PVC

Il diametro esterno degli elementi tubolari lineari in PVC misura 40mm, come quello interno dei raccordi che vedremo in seguito.

Le dimensioni dei vari elementi tubolari da ricavare sezionando con la tagliatubi i 2 tubi da 2000 mm di lunghezza ciascuno (presenti nel kit), sono le seguenti:

  • 2 x 260 mm (elementi obliqui anteriori)
  • 4 x 140mm (elementi obliqui posteriori lunghi),
  • 2 x 63mm (elementi obliqui posteriori corti),
  • 4 x 110mm (elementi orizzontali laterali),
  • 2 x 150mm (elementi orizzontali anteriori e posteriori).

Come eseguire il taglio con la tagliatubi in sicurezza.

Indossa i guanti, gli occhiali e la mascherina di protezione e procedi al taglio cercando di mantenere la tagliatubi il più possibile perpendicolare al tubo. Man mano che azionerai il cricchetto la lama della tagliatubi comincerà a fare pressione sulla superficie di taglio del tubo, finchè questa non cederà. Continua a tagliare il tubo tenendo la mano ferma e procedi così fino a tagliare l’intero diametro del tubo.

Come accennato anche nell’articolo di descrizione dello strumento tagliatubi, è consigliabile non usare la tagliatubi per tagliare tubi di lunghezza inferiore ai 4 cm, in quanto molto probabilmente in fase di taglio un tubo di così esigua lunghezza cederà col pericolo di generare delle schegge, dunque adoperatela soltanto per tagliare tubi di lunghezza dai 4cm in su.

Una volta che avrai tagliato tutte le sezioni necessarie provvedi a limarne i bordi con della carta vetrata a grana prima grossa e poi fine, fino ad eliminare del tutto gli eventuali bordi irregolari.

Fase 2 - Stampa dei raccordi in PLA

La stampa dei raccordi in PLA è il secondo step e consiste nella stampa 3d dei 18 raccordi in PLA necessari all’assemblaggio degli elementi in PVC del telaio Rocker Tubie, e delle 4 mascherine predisposte per alloggiare sensori e led.

Li troverete disponibili per il download print-ready in basso o a breve li potrete ordinare già stampati direttamente da noi.

Gli ultimi tre files disponibili sulla mia pagina Thingiverse per il download, sono gli elementi che servono per l’assemblaggio del modulo superiore con l’elettronica di bordo e le batterie Lipo, del quale parlerò più avanti nel tutorial.

 

 Scarica i files STL da Thingiverse

I parametri di stampa dei raccordi in PLA

I parametri di stampa col filamento PLA possono variare sensibilmente a seconda delle caratteristiche di ciascuna stampante, io vi riporto quelli da me utilizzati con la stampante Anycubic Kossel Linear Plus.

Filamento: PLA 1.75 mm,

Risoluzione: 2 mm,

Letto Riscaldato a 60°,

Fill: 60%,

Supporto: Brim,

Software di slicing utilizzato: Cura 3.4.0.

 

Rocker Tubie 3D Printed Part Kit

Fase 3 - Preparazione tubi e raccordi in PVC

Foratura dei raccordi in PVC

Per procedere all’assemblaggio dei tubi in PVC e dei raccordi del Roker Tubie occorre prima praticare dei fori di 3mm passanti nel collare di ciascun raccordo in PVC, in senso perpendicolare ai lati del Rocker.

Eseguire questa operazione per tutti i raccordi in PVC (con diametro interno 40mm).

Ovvero per i 4 raccordi in PVC con curvatura a 45° che serviranno come giunzione tra gli elementi laterali e per i 4 raccordi in PVC con curvatura a 90° che serviranno a congiungere gli elementi centrali del Rocker,

Schema fori Tubi PVC.fw

 

Consiglio: Per praticare fori precisi e perfettamente perpendicolari avvolgi i terminali dei tubi con del nastro di carta adesivo, e utilizzalo anche per segnare con la matita il punto preciso dove andrai ad effettuare i fori sulle due facce di ciascun raccordo.

Foratura dei tubi in PVC

Si procederà in modo simile per forare i tubi in PVC esattamente in corrispondenza dei fori già presenti nei raccordi stampati in 3d.

Ovvero avvolgere la parte terminale dei tubi in PVC con del nastro carta adesivo, installare un raccordo in PLA sul  relativo tubo in PVC, e segnare con la matita il punto dove si praticherà il foro sul tubo. Terminata la segnatura sfilare i raccordi in PLA e procedere a forare col trapano utilizzando prima una punta da 4mm e successivamente una da 8mm.

 

Schema fori Tubi PVC da Raccordi PLA

 

Una volta realizzati tutti i fori sui tubi in PVC, ricordati di rimuovere tutti gli spezzoni di nastro adesivo di carta. 

Verniciatura (opzionale) dei tubi e/o raccordi in PVC.

A questo punto, se lo ritieni necessario, puoi procedere a verniciare i tubi e/o i raccordi in PVC.

Per eseguire una buona verniciatura spruzza su tutti i tubi prima una mano di spray Primer, e poi procedi con la verniciatura del colore che preferisci, io ho scelto il nero antracite opaco, ma puoi utilizzare qualsiasi tipo di colore spray pensi vada bene.

Consiglio: per verniciare in sicurezza usa la mascherina, gli occhiali e i guanti adatti alla verniciatura.

Serviti di un supporto di cartone abbastanza ampio da fungere come base paraspruzzi per gli oggetti da verniciare. Fai passare un filo di metallo all’interno del tubo e lega le estremità del filo a qualcosa, in modo che tu possa tenerlo sospeso in senso orizzontale per verniciare facilmente ogni suo angolo.

Fase 4 - Assemblaggio della struttura e installazione cavi motori

Seguendo lo schema con la nomenclatura dei raccordi qui di seguito assembleremo gli elementi in sequenza dalla A alla Z con i tubi in PVC da te già sezionati, forati ed eventualmente verniciati.

Per lo schema dei tubi con le relative misure consulta la sezione “Taglio dei tubi in PVC”.

 

Nomenclatura raccordi PLA

 

 Assemblaggio dei terminali “A”

Comincia ad assemblare i 6 terminali “A” (vedi schema precedente), con i 2 tubi da 260 mm e i 4 tubi da 140mm.

 

Assemblaggio terminali tipo A

 

Procedi infilando il tubo forato nel terminale A, assicurati che i fori sui due lati del tubo siano allineati a quelli del terminale.

Ora inserisci le rondelle nei 4 alloggiamenti predisposti (2 per ciascun lato del terminale), poi inserisci le viti M8 da 80mm nei fori e fissale con i dadi autobloccanti M8 dall’altra parte come indicato nello schema seguente:

 

Assemblaggio terminali A

 

Consiglio: per avvitare le viti ai dadi autobloccanti utilizza una chiave inglese che tenga bloccata la vite a testa esagonale mentre con un’altra chiave semplice o a mandrino procedi ad avvitare il dado autobloccante.

Assemblaggio elemento A in PLA con tubo in PVC

 

Posizionamento dei cavi elettrici dei motori nei terminali “A”

In questa fase del montaggio approfittiamo della facilità di accesso alle cavità dei tubi e dei terminali per posizionare al loro interno i cavi a sei fili che serviranno ad alimentare i 6 motori indipendenti del rover e quindi a ricevere i segnali dei sensori di Hall (encoder) posizionati in torno all’asse sul retro di ciascun motore.

Consiglio: per far passare agilmente le estremità di ciascun cavetto a 6 fili negli appositi fori situati lateralmente su ciascun terminale A, ungi con del grasso per ingranaggi i fori e raggruppa i fili formando un unico cavetto utilizzando dei segmenti di guaina termorestringente della lunghezza di un cm circa ciascuno, posti alla distanza di dieci centimetri l’uno dall’altro, preferibilmente lungo tutta la lunghezza del cavetto. 

inserimento_cavo_motore

 

Eseguire questo passaggio per tutti i terminali “A”. Il risultato finale è illustrato nella seguente immagine:

 

Cavo motore inserito all'interno del terminale A

 

Foratura staffe di raccordo.

Pratica dei fori da 8 mm nelle 2 staffe di raccordo distanziando i punti centrali dei primi due fori di 20 mm e il secondo e il terzo di 58 mm.

Consiglio: Per forare le staffe in sicurezza utilizza un trapano a colonna o tieni ferme in posizione le staffe con l’ausilio di una morsa da tavolo. Usa prima una punta da 3 e poi da 8 per metalli. 

Posizionamento dei cuscinetti negli alloggi dei raccordi “B”

Inserisci negli appositi alloggi i 4 cuscinetti (due per ogni raccordo).

Consiglio: utilizza molta cautela ed un martello in gomma del tipo da campeggio per inserire i cuscinetti in posizione.

Un trucco valido è preriscaldare con un saldatore ad aria o con un fon ciascun cuscinetto prima di spingerlo in posizione. L’acido polilattico (PLA) con il quale sono stati realizzati i raccordi è molto sensibile al calore e permetterà al cuscinetto di entrare senza difficoltà nell’alloggio.

Posizionamento dei cavi motore nei Raccordi “B”

Prima di fissare i raccordi “B” ai rispettivi tubi in PVC non dimenticare di far passare i cavetti motore attraverso gli appositi fori come indicato nell’immagine seguente.

 

Inserimento cavi motore in raccordo B

 

Assemblaggio dei raccordi “B”

Fatto questo procedi all’assemblaggio dei raccordi “B” come indicato nel prossimo schema.

 

Nota la presenza delle doppie rondelle in corrispondenza dei cuscinetti.

 

Assemblaggio dei raccordi B

 

Nell’immagine seguente i due terminali “A” e il raccordo “B” assemblati:

 

Rocker Tubie assemblaggio raccordo B

 

Percorso cavi motore nei raccordi “C” e “D” lato sinistro

 

Assemblaggio_raccordi_C_D

 

Assemblaggio raccordi “D1” e “E1” lato sinistro

 

Assemblaggio_raccordi_D_E

 

Raccordi D e E assemblati e passaggio cavi motore

Assemblaggio raccordi “D2” e “E2” lato destro

 

Assemblaggio_D2_E2

 

 

Assemblaggio staffe dei raccordi “B1” e “C2” lato sinistro

 

Dettaglio collegamento staffe raccordi B C

 

 

Assemblaggio mascherine portasenrori

 

Assemblaggio parti F G

 

Assemblaggio struttura ultimato

 

Rocker Tubie struttura ultimata

 

 

 

 

Fase 5 - Installazione staffe e motori

Dopo aver ribaltato la struttura portante del tuo Rocker Tubie, in modo tale da avere ben visibili le estremità dei 4 elementi terminali stampati in 3D e denominati negli schemi precedenti con la lettera “A”, sorreggendo con una mano la flangia della staffa motore in posizione procedi a fissarla al terminale mediante le apposite viti a brugola.

Presta attenzione a che tutte le staffe abbiano le flange forate (per l’installazione successiva dei motori) tutte allineate sui lati esterni destro e sinistro del Rocker.

Installazione_staffe_motori_Rocker_Tubie
Per l’avvitamento in sede ed il serraggio utilizza una chiave a brugola.

Procedi ad avvitare con calma le viti nella loro sede, non c’è alcun bisogno di forzare in questa fase.

Ripeti questo passaggio per fissare le rimanenti 5 staffe ai terminali.

Chiavino_a_brugola_Rocker_Tubie

Ora posiziona uno dei sei motori DC in dotazione nell’asola della staffa motore, facendo corrispondere esattamente i fori filettati del corpo motore con i fori passanti della flangia.

Installazione_motori_Rocker_Tubie
Fissa saldamente il motore alla staffa avvitando tutte e 6 le viti di fissaggio in dotazione.

Ripeti questa operazione per i restanti 5 motori del Roker.

Fissaggio_motori_Rocker_Tubie
Installa sull’asse del motore l’apposito mozzo fissando le piccole viti a brugola con il chiavino in dotazione nelle filettature presenti su ambo i lati del cilindretto di ottone.

Qui occorre stringere bene ma non forzare le piccole viti.

Infine installa le ruote fissandole ai mozzi con le apposite viti di fissaggio incluse con gli stessi nel kit delle ruote.

Complimenti! Hai appena terminato il montaggio del kit Staffe, motori, mozzi e ruote da Fuoristrada 1:8 del tuo Rocker Tubie!

Appena sei pronto iniziamo insieme l’ultima fase di montaggio, che prevede l’installazione del microcontrollore, del modulo radio per la ricezione dei comandi e la trasmissione dei dati telemetrici, dei sensori e di tutti gli altri apparati elettronici che formano insieme la dotazione elettronica del Rocker Tubie.

 

 

Fase 6 - Assemblaggio ed installazione Up-Box, elettronica e sensori

La procedura di assemblaggio dell’Up-Box contenente le schede elettroniche del tuo Rocker Tubie, è molto semplice ed intuitiva.

La Up-Box è costituita da 2 piastre in alluminio riciclato, una superiore ed una inferiore, e 8 elementi laterali stampati in 3d.

Basta collegare le parti laterali come nelle immagini seguenti con le apposite viti con testa ad incavo esagonale in dotazione.

 

Assemblaggio_up_box_Rocker_Tubie

Al termine gli elementi perimetrali dell’Up-Box assemblati dovrebbero apparire così.

Up_Box_con_elementi_laterali_assemblati_Rocker_Tubie

Ora installa la piastra superiore e quella inferiore avvitandole con le apposite viti a testa esagonale.

Piastra_superiore_Upbox_Rocker_Tubie

Dall’interno del box inserisci le barre filettate M4 in dotazione e avvita loro i distanziatori in plastica dal lato inferiore dell’Up-Box.

Barre_filettate_m4_Up_Box_Rocker_Tubie

Ora posiziona l’Up-Box sul Rocker Tubie facendo penetrare fino alla base dei distanziatori le barre filettate M4.

Posizionamento_Up_Box_Rocker_Tubie

Nell’immagine che segue puoi osservare l’Up-Box posizionato e fissato sul Rocker Tubie, nota al suo interno i distanziatori in plastica M4 installati per permettere il fissaggio dei vari moduli elettronici.

Up-Box_Rocker_Tubie

Siamo pronti per fissare la prima scheda elettronica ovvero quella del microcontrollore Arduino Mega 2560 R3, per facilitare le operazioni ti consiglio di effettuare prima i collegamenti tra Arduino Mega 2560 R3 e il modulo radio nRF24L01+ servendoti dei cavetti Dupont in dotazione, così come da schema illustrato qui sotto.

Schema_collegamenti_elettronica_Rocker_Tubie

Abbiamo dedicato un articolo al Modulo Wifi NRF24L01+ nella sua versione in box stampato in 3D che puoi visionare qui

Eseguiti i collegamenti tra Arduino Mega e modulo radio puoi ora procedere al fissaggio di ambedue

Nota bene che la piastra di alluminio che costituisce la base dell’Up-Box ha un foro circolare realizzato per facilitare il passaggio e consentire quindi il collegamento dei cavi ai moduli elettronici del Roker Tubie.

Allo stesso modo fissa il modulo convertitore di tensione XL4005 ma prima di farlo connetti ad esso i cavetti Dupont e il connettore di uscita dell’alimentazione che in seguito andrà collegato all’Arduino Mega 2560 R3.

Infine installa con la stessa modalità la scheda di controllo motori  DBH-12V fino a 30A 2 canali.

Ora intreccia unendole insieme le estremità dei cavi provenienti dai poli positivi dei 3 motori del lato sinistro (A), e poi fai lo stesso per le estremità dei motori del lato destro (B). Ripeti questa operazione da capo ma questa volta con i cavi provenienti dai poli negativi dei motori. Ora inserisci i terminali così realizzati e i cavi positivo e negativo dell’alimentazione rispettando il seguente ordine da sinistra a destra: Morsetto A (negativi sinistra, positivi sinistra), Morsetto Centrale (Polo alimentazione negativo, Polo alimentazione positivo, Morsetto B (positivi destra, negativi destra).

Nell’immagine seguente i cavi di alimentazione pronti per essere inseriti nel driver motori.

Nota bene: I cavi di alimentazione provengono dall’interruttore a 2 posizioni che per ora va tenuto non collegato alla sorgente di alimentazione (nelle successive fasi di test collegheremo lo stesso alla batteria a 3 celle 11.1V mediante il connettore XT60).

Alla fine dovresti avere i moduli elettronici e i collegamenti disposti come nella seguente immagine:

 

Fase 7 - Analisi del Firmware del Rocker Tubie

Per consentire al Rocker Tubie di rispondere ai comandi impartiti con la Stazione di Controllo per Rocker Tubie, su quest’ultimo è installato un apposito microcontrollore (una scheda elettronica che è il vero cervello operativo del robot rover) dotato di un apposito programma, il firmware, che interpreta i comandi impartiti in linguaggio macchina (il linguaggio comprensibile dai microchip come quelli presenti sui microcontrollori Arduino), e quindi esegue calcoli, apre o chiude le porte (alle quali si accede anche attraverso i suoi pin), invia o riceve segnali singoli o in sequenza. Il firmware scritto con l’ambiente di sviluppo Arduino (anche detto IDE Arduino) ad esempio, viene solitamente scritto in C++, linguaggio informatico più comprensibile dagli umani, e una volta finita la programmazione il programma viene “compilato” in linguaggio macchina e trasferito sulla scheda Arduino attraverso un cavo (solitamente USB/Seriale) collegato tra il pc e il microcontrollore stesso.

I firmware necessari al funzionamento del Rocker Tubie e della sua stazione di controllo puoi trovarli nel Repository ufficiale del progetto Roker Tubie su GitHub, sono ambedue basati sul microcontrollore Arduino Mega 2560 R3, e sono resi disponibili con licenza open source GNU.

Il Firmware Rocker Tubie

Il firmware “RockerTubie.ino” realizzato per il microcontrollore del Rocker Tubie include al suo interno una serie di librerie come:

Le librerie del Firmware Rocker Tubie

Wire.h -> Libreria per il protocollo di comunicazione I2C

SPI.h -> Libreria per il protocollo di comunicazione per Interfaccia Seriale Periferica

RF24.h -> Libreria specifica per la comunicazione radio con chip NRF24L01

printf.h -> Libreria per stampare valori sul monitor seriale

DBH1.h -> Libreria per facilitare l’utilizzo del driver motori DBH

Come da schema dei collegamenti di seguito pubblichiamo un elenco riportante sul lato sinistro i pin dei moduli elettronici da collegare (Scheda di controllo motori DHB, Radio NRF24L01, LED Full Color 10 mm RGB) e sulla destra i pin del microcontrollore Arduino Mega 2560 R3 ai quali collegarli.

Driver motori DBH – Arduino Mega 2560 R3 (Collegamenti pin)

ENA < Pin 2 (Abilita motori lato Sinistro)

ENB < Pin 4 (Abilita motori lato Destro)

IN1A < Pin 3 (Input per motori A (lato SX) – deve essere un pin PWM)

IN1B < Pin 5 (Input per motori B (lato DX)  – deve essere un pin PWM)

IN2A < Pin 6 (Input per motori A (lato SX)  – deve essere un pin PWM)

IN2B < Pin 9 (Input per motori B (lato DX) – deve essere un pin PWM)

CTA -> Pin 0 Analogico (Opzionale, riporta l’assorbimento istantaneo dei motori lato sinistro)

CTB -> Pin 1 Analogico (Opzionale, riporta l’assorbimento istantaneo dei motori lato destro)

Radio NRF24L01 – Arduino Mega 2560 R3 (Collegamenti pin)

GND (Ground) -> Pin GND (terra, stabilisce il riferimento di tensione comune).

VCC (5V) < Pin 5V (alimenta il modulo NRF24L01 con una tensione di 5 volt).

CE (Chip Enable) < Pin 48 (abilita o disabilita il modulo NRF24L01 e ne controlla il funzionamento).

CSN (Chip Select Not) < Pin 53 (seleziona il modulo NRF24L01 durante le operazioni di comunicazione. Quando è basso (LOW), il modulo è attivo e pronto per la comunicazione).

SCK (Serial Clock) < Pin 52 (è parte dell’interfaccia SPI e viene utilizzato per sincronizzare i dati tra l’Arduino e il modulo NRF24L01).

MOSI (Master Out Slave In) < Pin 51 (è parte dell’interfaccia SPI ed è utilizzato per inviare dati dall’Arduino al modulo NRF24L01).

MISO (Master In Slave Out) -> Pin 50 (è parte dell’interfaccia SPI ed è utilizzato per ricevere dati dal modulo NRF24L01 all’Arduino).

IRQ (Interrupt Request): In questo caso, non è collegato. L’IRQ è utilizzato per generare un’interruzione quando ci sono dati disponibili per la lettura o altri eventi speciali.

LED Full Color 10 mm RGB – Arduino Mega 2560 R3 (Collegamenti pin)

Red < Pin 44

Green < Pin 45

Blue < Pin 46

V < 5V

Alcuni dettagli sui Pin e le loro funzioni

I pin CTA e CTB sono pin della scheda di controllo motori che servono a riportare l’assorbimento istantaneo di quest’ultima al microcontrollore. La scheda di controllo motori genera su questi pin un voltaggio che corrisponde ad un valore analogico basato sull’assorbimento di corrente istantaneo.

ENA e ENB sono pin per abilitare l’uscita della scheda di controllo motori ai rispettivi motori del lato sinistro e lato destro del Rocker.

IN1A e IN2A così come IN1B e IN2B sono rispettivamente i pin di input per i motori A (lato sinistro) e B (lato destro).
Quando IN1A è impostato su LOW e a IN2A viene fornito un segnale PWM, il motore andrà in retromarcia.
Quando IN1A viene fornito un segnale PWM e IN2A viene pilotato LOW, il motore andrà avanti.

Il driver richiede un ciclo di lavoro massimo sull’ingresso PWM non superiore al 98%.
Un valore superiore potrebbe danneggiare il driver o causare instabilità.

Utilizzo della libreria DBH:

La libreria per il modulo DBH1 da me estesa è basata sul lavoro di David Williams.
Con questa libreria viene offerta la gestione del modulo driver dei motori attraverso i seguenti tipi di comandi:

I comandi del Rocker Tubie e le loro funzioni

Inizializza pin -> dbh.init(); (Questo comando inizializzerà i pin di default)

Avanti -> dbh.Forward(speedA, speedB);

Indietro -> dbh.Reverse(speedA, speedB);

Gira a destra -> dbh.TurnRight(speedA, speedB);

Gira a sinistra -> dbh.TurnLeft(speedA, speedB);

Frena -> dbh.Braking();

Folle -> dbh.Coasting();

Assorbimento Corrente -> dbh.GetCurrent();

Avanti solo Motori A (Sx) -> dbh.ForwardA(speedA);

Avanti solo Motori B (Dx) -> dbh.ForwardB(speedB);

Dietro solo Motori A (Sx) -> dbh.ReverseA(speedA);

Dietro solo Motori B (Dx) -> dbh.ReverseB(speedB);

Disabilita solo Motori A (Sx) -> dbh.DisableA();

Disabilita solo Motori B (Dx) -> dbh.DisableB();

Abilita solo Motori A (Sx) -> dbh.EnableA();

Abilita solo Motori B (Dx) -> dbh.EnableB();

Abilita Entrambi Motori A (Sx) e B (Dx) -> dbh.EnableBoth();

Disabilita Entrambi Motori A (Sx) e B (Dx) -> dbh.DisableBoth();

Il Modulo Radio NRF24L01

Il modulo radio NRF24L01 per la comunicazione wireless utilizza il protocollo di comunicazione SPI (Serial Peripheral Interface) per interfacciarsi con l’Arduino Mega 2560 R3. Di seguito, spiego come i pin elencati sono collegati e quale ruolo svolgono nella comunicazione:

GND (Ground): Collegato al pin GND (terra) dell’Arduino Mega 2560 per stabilire il riferimento di tensione comune.

VCC (5V): Collegato al pin 5V dell’Arduino Mega 2560 per alimentare il modulo NRF24L01 con una tensione di 5 volt.

CE (Chip Enable): Collegato al pin 48 dell’Arduino Mega 2560. Questo pin è utilizzato per abilitare o disabilitare il modulo NRF24L01 e controllarne il funzionamento.

CSN (Chip Select Not): Collegato al pin 53 dell’Arduino Mega 2560. Questo pin è utilizzato per selezionare il modulo NRF24L01 durante le operazioni di comunicazione. Quando è basso (LOW), il modulo è attivo e pronto per la comunicazione.

SCK (Serial Clock): Collegato al pin 52 dell’Arduino Mega 2560. Questo pin è parte dell’interfaccia SPI e viene utilizzato per sincronizzare i dati tra l’Arduino e il modulo NRF24L01.

MOSI (Master Out Slave In): Collegato al pin 51 dell’Arduino Mega 2560. Questo pin è parte dell’interfaccia SPI ed è utilizzato per inviare dati dall’Arduino al modulo NRF24L01.

MISO (Master In Slave Out): Collegato al pin 50 dell’Arduino Mega 2560. Questo pin è parte dell’interfaccia SPI ed è utilizzato per ricevere dati dal modulo NRF24L01 all’Arduino.

IRQ (Interrupt Request): In questo caso, non è collegato. L’IRQ è utilizzato per generare un’interruzione quando ci sono dati disponibili per la lettura o altri eventi speciali.

In breve, l’hardware fa uso dell’interfaccia SPI per la comunicazione tra l’Arduino Mega 2560 e il modulo NRF24L01, consentendo loro di scambiare dati in modo veloce e affidabile.

Gestione dei motori

Variabili di Controllo delle Velocità:

Nel codice, sono definite variabili come speedX, speedY, speedA, e speedB che sono utilizzate per gestire la velocità dei motori. Queste variabili rappresentano la velocità dei motori in due direzioni (X e Y) e due diversi motori (A e B).

Massima e Minima Velocità:

Il firmware definisce anche le costanti maxSpeed e minSpeed che rappresentano la massima e la minima velocità impostabili per i motori. Questi valori possono essere utilizzati per garantire che i motori non superino determinati limiti di velocità.

DeadZone (Zona Morta):

La variabile dz rappresenta la “DeadZone,” ovvero una zona in cui la lettura dei potenziometri dei joystick non è affidabile al 100%. La “DeadZone” è il punto in cui i movimenti sono considerati come “Stai fermo” e non vengono applicate velocità significative ai motori.
Calcolo delle Velocità dei Motori:

In base ai dati provenienti dai joystick (letti come XJoyReceived e YJoyReceived), il firmware calcola le velocità dei motori speedX e speedY. Questo calcolo tiene conto della “DeadZone” e mappa i valori dei joystick alle velocità dei motori all’interno dei limiti impostati.

Comandi Motori:

Dopo aver calcolato le velocità dei motori, il firmware emette comandi ai motori stessi. Questi comandi possono includere avanti, indietro, girare a sinistra o a destra, in base alle velocità calcolate.

Controllo Differenziale:

Il firmware gestisce anche il controllo differenziale dei motori quando si muove il robot in avanti o indietro. Questo significa che i motori possono girare a diverse velocità per garantire che il robot si muova nella direzione desiderata.
In sintesi, la “Gestione dei Motori” nel firmware è responsabile di leggere i dati dai joystick, calcolare le velocità dei motori in base a questi dati, applicare limiti di velocità e quindi emettere comandi ai motori del robot per consentirgli di muoversi in base agli input dei joystick. Questo è un aspetto cruciale per il controllo e il movimento del tuo robot Rocker Tubie.

Controllo del Joystick

il “Controllo del Joystick” è una parte essenziale per la gestione del movimento del robot Rocker Tubie. Ecco una spiegazione più dettagliata di come il firmware gestisce i joystick:

Lettura dei dati dai Joystick:

I dati provenienti dai joystick collegati al robot vengono letti e memorizzati in diverse variabili, tra cui XJoyReceived, YJoyReceived, HJoyReceived, TJoyReceived, SJoyReceived, AJoyReceived, e BJoyReceived. Ogni variabile rappresenta un diverso input o stato dei joystick.

Mappatura dei Valori dei Joystick:

Dopo aver letto i dati dai joystick, il firmware esegue una mappatura di questi valori utilizzando la funzione map(). Questa mappatura consente di adattare i valori dei joystick (che possono variare da 0 a 1023) a un intervallo specifico di velocità dei motori o altre funzioni. Ad esempio, è possibile mappare i dati del joystick in un intervallo di velocità da minSpeed a maxSpeed, dove minSpeed e maxSpeed sono costanti definite nel codice.

Calcolo delle Velocità dei Motori:

Dopo la mappatura, il firmware calcola le velocità dei motori in base ai dati dei joystick. Questo calcolo tiene conto delle direzioni X e Y dei joystick e può variare in base alla configurazione specifica dei tuoi motori e delle tue preferenze di controllo.

Comandi dei Motori:

Le velocità calcolate vengono utilizzate per generare comandi per i motori del robot. Questi comandi possono includere il movimento avanti, indietro, girare a sinistra o a destra, a seconda delle velocità calcolate e delle condizioni specifiche.

Pulsanti dei Joystick:

Oltre alle posizioni dei joystick, il firmware legge anche lo stato dei pulsanti dei joystick. Ad esempio, vengono letti i pulsanti A e B. Questi input possono essere utilizzati per attivare o disattivare specifiche funzionalità del robot.

Utilizzo delle Letture dei Joystick:

Una volta letti e elaborati i dati dai joystick, il firmware utilizza queste informazioni per pilotare i motori e controllare il movimento del robot. I dati possono anche essere utilizzati per altre azioni o decisioni all’interno del firmware.

In sintesi, il “Controllo dei Joystick” nel firmware è responsabile della lettura e dell’elaborazione dei dati dai joystick collegati al robot. Questi dati vengono quindi utilizzati per calcolare le velocità dei motori, generare comandi di movimento e controllare altre funzioni del robot, consentendo un controllo preciso e intuitivo del suo movimento.

Gestione e significato dei colori delle luci LED:

Pins delle Luci LED:

Nel codice, sono definiti tre pin per il controllo delle luci LED: redPin, greenPin, e bluePin. Ognuno di questi pin è associato a un colore diverso delle luci LED.

Tipo di LED (Anodo Comune o Catodo Comune):

Nel codice, c’è una dichiarazione commentata #define COMMON_ANODE. Questo commento indica che il codice è scritto considerando un possibile tipo di LED noto come “Anodo Comune.” Nei LED Anodo Comune, l’anodo (parte lunga) è collegato al positivo e il catodo (parte corta) è collegato al negativo. Se desideri utilizzare LED con configurazione “Catodo Comune” (dove il catodo è collegato al positivo), dovresti rimuovere il commento da questa riga.

Funzione setColor():

La funzione setColor(int red, int green, int blue) è responsabile per impostare i colori delle luci LED. Questa funzione accetta tre parametri: red, green, e blue, che rappresentano l’intensità luminosa dei rispettivi colori rosso, verde e blu.

Controllo dei Colori delle Luci LED:

In base ai dati ricevuti o alle condizioni del tuo robot, puoi chiamare la funzione setColor() per impostare il colore delle luci LED in base a ciò che desideri rappresentare. Ad esempio, nel codice è possibile vedere chiamate alla funzione setColor() con valori specifici per impostare i LED in vari colori come rosso, blu o verde.

In sintesi, la “Gestione delle Luci LED” nel firmware consente di controllare il colore e l’intensità luminosa delle luci LED a bordo del tuo robot Rocker Tubie. Il LED RGB da 10mm rappresenta una valida soluzione per indicare visivamente lo stato del robot o per altre funzionalità visive che desideri implementare nella tua personalizzazione del progetto.

 

 

Fase 8 - Test funzionali e personalizzazioni

Procedura per i Test Funzionali del Rocker Tubie

I test funzionali ti permetteranno di verificare il corretto funzionamento delle principali funzionalità del tuo robot Rocker Tubie, come il controllo dei motori e delle luci LED, utilizzando il firmware di base fornito. Segui questi passaggi per eseguire i test:

1. Alimentazione e Connessioni

Assicurati che il tuo robot Rocker Tubie sia collegato all’alimentazione correttamente e che tutti i cablaggi siano stabili.

2. Alimentazione del Modulo NRF24L01

Verifica che il modulo NRF24L01 sia alimentato correttamente. Questo modulo dovrebbe essere collegato al tuo Arduino Mega 2560 attraverso i pin GND e VCC (5V).

3. Verifica delle Luci LED

Avvia il robot Rocker Tubie e osserva il comportamento delle luci LED. Il firmware è progettato per cambiare il colore delle luci in base alle condizioni o alle azioni specifiche. Ad esempio, potrebbe mostrare il colore rosso quando il robot è fermo, blu quando si muove avanti e verde quando si gira. Verifica che le luci LED rispondano correttamente alle azioni del robot.

4. Test del Controllo dei Motori

Utilizza i joystick per controllare il movimento del robot. Il codice nel firmware gestisce i movimenti dei motori in base alle letture dei joystick. Ecco come puoi fare alcuni test:

Spingi il joystick in avanti per vedere se il robot si muove in avanti.
Tirare il joystick indietro per verificare se il robot si muove indietro.
Muovi il joystick a sinistra o a destra per controllare il movimento laterale del robot.

5. Test dei Pulsanti dei Joystick

Se hai impostato nel firmware funzioni speciali per i pulsanti del joystick, premi i pulsanti dei joystick (A e B) per verificare se influenzano il comportamento del robot. Ad esempio, premere un pulsante potrebbe attivare una specifica funzione o azione come l’accensione delle luci LED.

6. Regolazione delle Velocità dei Motori

Osserva come la velocità dei motori cambia quando sposti i joystick più o meno lontano dalla posizione neutra. Verifica che i motori rispondano in modo fluido alle variazioni di velocità.

7. Controllo Differenziale

Se il tuo robot supporta il controllo differenziale, esegui test di movimento in avanti e indietro mentre giri i joystick per vedere come il robot risponde e come variano le velocità dei motori.

8. Conclusione dei Test

Dopo aver completato i test, fai una valutazione generale del comportamento del robot. Verifica se tutte le funzionalità sembrano funzionare come previsto e se le luci LED rispondono ai comandi.
Questi test ti aiuteranno a verificare il corretto funzionamento del tuo robot Rocker Tubie basato sul firmware base fornito, consentendoti di esplorare le funzionalità di controllo dei motori, delle luci LED e dei pulsanti dei joystick.

9. Le tue personalizzazioni

Una delle caratteristiche più interessanti del tuo Rocker Tubie è la possibilità di personalizzarlo secondo le tue preferenze. Ecco alcune delle personalizzazioni possibili:

Cambio dei Colori delle Luci LED: Il firmware del Rocker Tubie è progettato per consentire il controllo completo dei colori delle luci LED. Puoi sperimentare combinazioni di colori diverse o assegnare colori specifici a determinate azioni o condizioni del robot. Questa è un’ottima opportunità per dare al tuo robot un aspetto unico.

Regolazione delle Velocità dei Motori: Il codice firmware ti permette di regolare le velocità dei motori in base alle tue preferenze. Puoi aumentare o diminuire la velocità massima dei motori per adattarla al tipo di movimento che desideri dal tuo robot.

Personalizzazione dei Comandi dei Joystick: Se sei un appassionato di elettronica e programmazione, puoi personalizzare i comandi dei joystick per eseguire azioni specifiche o funzioni aggiuntive. Questo richiede conoscenze avanzate di programmazione, ma ti offre un controllo completo sul comportamento del tuo robot.

Aggiunta di Sensori: Se desideri migliorare le capacità del tuo Rocker Tubie, puoi aggiungere sensori come sensori di distanza, telecamere o altri dispositivi. Questi sensori possono essere integrati nel codice firmware per consentire al robot di reagire in modo intelligente all’ambiente circostante.

Se avrai bisogno di supporto in qualsiasi momento ti occorra, dalle fasi di progettazione a quelle di assemblaggio e test del tuo personale Rocker Tubie, noi siamo qui sempre disponibili a consigliarti e ad aiutarti. Contattaci attraverso i social networks Fanbotica o gli altri canali dedicati, sperimenta e divertiti nel creare il tuo robot rover personalizzato unico nel suo genere.

9 Commenti

  1. Lumitilla

    Salve, volevo chiederle quando saranno disponibili i kit del Rocker Tubie?

    Rispondi
    • Francesco Onorati

      Gentile Lumitilla,
      A breve saranno resi disponibili i kit Base e Combo della piattaforma Rocker Tubie, occorre pazientare ancora qualche giorno in quanto stiamo organizzando le forniture anche in vista della partecipazione del progetto al Maker Faire di Roma che si terrà dal 12 al 14 Ottobre. Appena saremo pronti pubblicheremo su tutti i nostri canali prezzi e disponibilità.

      Rispondi
  2. Francesco

    Ciao Francesco,
    sono Francesco di San giorgio ci siamo conosciuti in fiera attendo ansioso la guida al tuo progetto specialmente la parte riguardante il controllo del rover con il joystik logitech grazie per avermi aperto un mondo a presto…

    Rispondi
    • Francesco Onorati

      Buonasera Francy, siamo appena rientrati da Roma, domattina mi impegno a scrivere un post dettagliato esclusivamente dedicato alla stazione di controllo, un abbraccio e a domani.

      Rispondi
  3. mirko

    ciao ma il progetto è fermo?
    sto realizzando un mio rover mi piacerebbe partire dalla base del tuo ottima la stazione di controllo, ma puoi caricare anche i collegamenti dell rocker? per favore

    Rispondi
    • Francesco Onorati

      Buonasera Mirko, assolutamente no il progetto Rocker Tubie è attivo, come avrai certamente notato stiamo realizzando la nuova interfaccia grafica del sito Fanbotica, in home page troverai a breve (stimo un paio di giorni) tutti i progetti attivi, Rocker Tubie in primis, la timeline è quasi completa dunque troverai nei dettagli le fasi di montaggio della piattaforma, abbiamo realizzato una serie di tutorial esplicativi in merito. Scusaci per il disagio tecnico di questi giorni, chiedimi pure nel frattempo ogni dettaglio che ti occorre e te lo fornirò in tempi ancora più rapidi.

      Rispondi
  4. Ciro

    Buongiorno,
    sarei interessato all’ acquisto del kit. Volevo chiedere se aggiornerete le restanti fasi di montaggio (dalla 5 in poi). Complimenti per il progetto.
    Grazie

    Rispondi

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Pin It on Pinterest

Share This