Sommario:

Robot educativo fai-da-te Micro:bit: 8 passaggi (con immagini)
Robot educativo fai-da-te Micro:bit: 8 passaggi (con immagini)

Video: Robot educativo fai-da-te Micro:bit: 8 passaggi (con immagini)

Video: Robot educativo fai-da-te Micro:bit: 8 passaggi (con immagini)
Video: How to Make a Mini Robot bug 2024, Novembre
Anonim
Micro educativo fai-da-te: bit Robot
Micro educativo fai-da-te: bit Robot
Micro educativo fai-da-te: bit Robot
Micro educativo fai-da-te: bit Robot

Questo tutorial ti mostrerà come costruire un robot relativamente accessibile, capace ed economico. Il mio obiettivo nel progettare questo robot era proporre qualcosa che la maggior parte delle persone potesse permettersi, per insegnare loro l'informatica in modo coinvolgente o per impararla.

Una volta costruito questo robot, puoi goderti la sua varietà di sensori e attuatori per fare cose di base ma anche abbastanza avanzate a seconda della versione che costruisci (fornirò due versioni). Con questo robot stai dando occhi (vista a 180°!) e gambe (con movimento preciso possibile!) al micro:bit mentre il micro:bit ti fornisce grandi caratteristiche come la matrice LED, la comunicazione radio, la comunicazione bluetooth, l'accelerometro, compas, ma anche accedere a tutta quella roba con MicroPython o con un linguaggio di programmazione visuale simile a scratch (in realtà anche in C++ e javascript ma trovo quelli meno adatti all'istruzione).

Lavorerò anche su questo istruttivo in modo da poter mettere i lettori e i produttori sulla buona strada per scoprire di più sulla robotica mobile, l'elettronica, la progettazione e il taglio del legno. Per fare ciò, ho progettato tutto per essere il più modulare possibile. Ad esempio, non userò alcuna colla per consentire di montare e smontare liberamente, rendendo più facili gli aggiornamenti e il debug. Farò anche i passaggi il più incrementali possibile, in modo che tu possa capire progressivamente cosa sta succedendo, controllare che le cose funzionino come dovrebbero e arrivare alla fine con un robot che funziona.

Passaggio 1: raccogliere i pezzi

Raccogliere i pezzi
Raccogliere i pezzi

Per questo progetto l'orso minimo di cui avrai bisogno è:

  • Legno MDF spesso 5 mm e un laser cutter per lo scheletro
  • 1x18650 batteria al litio, 1x protezione batteria per l'energia e un interruttore
  • 1xMicro: scheda bit e 1xMicro: scheda di estensione bit per il cervello (sebbene entrambi possano essere facilmente sostituiti da un Arduino)
  • Motori passo-passo 2x28BYJ-5V, driver motore passo-passo 2xA4988 e scheda di sviluppo 2x per montare i driver per le gambe
  • 1x TOF10120 e 1x Mini 9g Servomotore per gli occhiAlcuni cavi e viti
  • 1x ruota universale, altezza = 15 mm

Tra queste, solo tre parti non sono standard, quindi ecco i link per trovarle: trova la scheda di estensione che ho usato qui (ma ti consiglio di usare questa invece per la versione ordinata del robot. Dovrai non cambia quasi nulla al design e renderà il cablaggio molto più semplice con le intestazioni femmina-femmina piegate), lo scudo della batteria qui e la ruota universale qui.

Idealmente avrai anche a tua disposizione:

  • Un multimetro
  • Una breadboard
  • Un saldatore

Per quelli oltre al taglio laser, controlla se hai qualche fablab intorno a casa tua! Questi sono ottimi posti per incontrare alcuni creatori stimolanti!

Passaggio 2: preparare le gambe

Preparare le gambe
Preparare le gambe
Preparare le gambe
Preparare le gambe
Preparare le gambe
Preparare le gambe
Preparare le gambe
Preparare le gambe

La tua prima missione, se accetti, sarà far ruotare il nostro motore passo-passo usando il micro:bit come controller! Perché un motore passo-passo? Avrei potuto optare per un motore DC con riduttori, ma li ho provati e trovo difficile ottenere motori economici per funzionare a bassa velocità. Ho anche pensato che sarebbe bello sapere con precisione a che velocità girano le mie ruote. Per questi motivi i motori passo-passo erano l'opzione migliore.

Quindi ora, come controllare un motore 28BYJ usando un driver 4988? La risposta è… un po' lunga. Non sono riuscito a farlo entrare in modo ordinato in questo istruibile, quindi ne ho fatto un altro solo per questo scopo che troverai qui. Vi invito a seguire questi passaggi fino alla fine con la creazione di una piccola scheda di prototipazione 26x22mm grande con fori 2x2mm 17 mm a parte per montarla sui lati come mostrato nella foto sopra (notare che come indicato nell'articolo di riferimento il filo giallo a sinistra che sporge è lì solo per ricordarti di saldare SLP e RST insieme).

Dopo averlo fatto funzionare con un motore con la scheda di prototipazione, ho anche progettato il mio PCB per rendere le cose un po' più ordinate. Ho allegato il file easyEDA corrispondente. È un file txt ma puoi comunque aprirlo con la piattaforma di editing online gratuita easyEDA.

Passaggio 3: vedo la luce !! (Opzionale)

Vedo la luce !! (Opzionale)
Vedo la luce !! (Opzionale)
Vedo la luce !! (Opzionale)
Vedo la luce !! (Opzionale)
Vedo la luce !! (Opzionale)
Vedo la luce !! (Opzionale)

Se vuoi solo costruire e nient'altro, passa a quello prima dell'ultimo paragrafo di questo passaggio per vedere come collegare un TOF10120 al micro:bit. Se non segui.

Poiché il nostro micro:bit non viene fornito con alcuna fotocamera o sensore di prossimità, lo rende una sorta di cieco per qualsiasi applicazione di robotica mobile. Viene fornito con un emettitore radio e un ricevitore che ci permetterebbero di costruire lo scheletro su ciò che già abbiamo e ottenere un robot telecomandato. Ma non sarebbe fantastico rendere autonomo il nostro robot? Sì lo sarebbe! Quindi vediamo come arrivarci.

Ciò che ci interessa ora è dotare il nostro robot di sensori, affinché il nostro robot acquisisca alcune informazioni sul suo ambiente. Ci sono molti tipi di sensori disponibili, ma qui ci concentreremo sul sensore di prossimità. Quando stavo progettando questo robot, il mio obiettivo era principalmente che il robot non si schiantasse contro nulla, quindi volevo che rilevasse gli ostacoli. Per questo ci sono anche alcune opzioni. Una prima, molto semplice, potrebbe essere quella di utilizzare i paraurti, ma trovo le informazioni sull'ambiente un po' limitate. All'estremo opposto, potresti pensare di aggiungere una telecamera (o un Lidar o un Kinect!). Amo le fotocamere, la visione artificiale e tutte quelle cose, ma sfortunatamente Micro:bit non le supporta (dovremmo usare un Raspberry Pi per supportare tali dispositivi, non un micro:bit o Arduino).

Quindi cosa supporta micro:bit che si trova tra una fotocamera e i paraurti? Ci sono piccoli sensori attivi che inviano luce nell'ambiente e controllano ciò che viene ricevuto per ottenere alcune informazioni sul mondo. Quello che già conoscevo era il GP2Y0A41SK0F che utilizza un metodo di triangolazione per stimare la distanza dagli ostacoli. Tuttavia mi chiedevo se potevo trovare qualcosa di meglio, quindi ho fatto qualche ricerca e alla fine ho scoperto il TOF10120 (e il GY-VL53L0XV2 ma non l'ho ancora ricevuto:(). Ecco un bell'articolo per scoprirlo. Fondamentalmente questo sensore emette un segnale infrarosso che si riflette sugli ostacoli e poi riceve la luce riflessa. A seconda del tempo impiegato dalla luce per andare avanti e indietro, il sensore può stimare la distanza dell'ostacolo (da cui il nome TOF=tempo di volo Per le sue piccole dimensioni, distanza e potenza richiesta ho deciso di utilizzare il TOF10120.

Mentre la mia prima idea era di metterne tre sul robot (uno davanti e due sui lati), il capodanno cinese e la pandemia di COVID-19 non hanno voluto che fosse così perché sembrava causare problemi con le spedizioni. Quindi, poiché ero limitato a un TOF10120, che volevo vedere anche sui lati e che avevo dei servomotori in giro, ho deciso di montare il mio sensore su un servo. Quindi ora mancano due cose: come uso il TOF10120 con il micro:bit ? E stessa domanda con il servo.

Per fortuna il micro:bit è dotato di protocollo di comunicazione I2C e ci semplifica la vita: collegate il filo rosso a 3.3V, il nero a massa, il verde a SCL e il blu a SDA e il gioco è fatto per la parte hardware. Per il software, ti incoraggio a leggere un po' sulla comunicazione I2C e a provare il codice Python che ho allegato al micro:bit. Quel programma dovrebbe stamparti la distanza misurata dal sensore sul REPL (Read Evaluate Print Loop). Questo è tutto. Abbiamo appena dato vista al nostro micro:bit.

Ora facciamogli girare il collo se mi permettete di continuare le mie analogie con l'anatomia animale. L'unica cosa di cui abbiamo bisogno è guidare un servomotore con il micro: bit. Questa parte sta diventando lunga quindi ti darò solo questo link che contiene tutte le informazioni di cui avrai bisogno e il codice che ho usato per testarlo. Se vuoi ho aggiunto anche un semplice codice per controllare il servo tramite pin0. Basta non dimenticare di alimentare il servo con 5V e non 3,3V.

Passaggio 4: hackerare lo scudo della batteria

Hackerare lo scudo della batteria
Hackerare lo scudo della batteria
Hackerare lo scudo della batteria
Hackerare lo scudo della batteria
Hackerare lo scudo della batteria
Hackerare lo scudo della batteria

Ora che abbiamo i nostri attuatori e sensori pronti, è il momento di dare un'occhiata al sistema di gestione della batteria. Per saperne di più sullo scudo della batteria che ho scelto, ti consiglierei di leggere questo articolo. Lo trovo molto chiaro e accessibile. Da questo articolo possiamo vedere molti vantaggi di questo scudo batteria, ma c'è un importante inconveniente che non volevo accettare: l'interruttore ON/OFF ha effetto solo sull'uscita USB. Ciò significa che se si spegne l'interruttore, tutti gli altri pin da 3,3 V e 5 V verranno alimentati. Di conseguenza, poiché stiamo usando quei pin per il nostro robot, l'interruttore non farà nulla…

Ma voglio essere in grado di spegnere il mio robot per non scaricare la batteria per niente, quindi ho dovuto hackerare lo scudo della batteria. Non sarà carino, ma funziona e non costa nulla. Pertanto voglio un interruttore per aprire o chiudere il circuito in modo che isoli la cella della batteria dallo scudo della batteria. Non ho l'attrezzatura per toccare il PCB, ma ho pezzi di plastica tutt'intorno. Quindi ora immagina di tagliare un pezzo di plastica in modo che possa adattarsi a un'estremità della cella della batteria nello scudo come nella prima immagine sopra. Il circuito è ora aperto e la mia batteria è conservata al sicuro.

Sì, ma non voglio dover aprire il robot per accedere allo scudo della batteria per mettere e rimuovere questo pezzo di plastica! Facile: procurati un interruttore e fissa due quadratini di alluminio a ciascuno dei fili collegati all'interruttore. Ora fissa questi due pezzi di alluminio al pezzo di plastica per avere i due pezzi di alluminio isolati l'uno dall'altro e per avere l'alluminio esposto all'esterno del tuo sistema. Normalmente dovrebbe andare bene. Inserisci la tua nuova creazione nello scudo della batteria accanto alla cella e l'interruttore dovrebbe consentirti di aprire o chiudere il circuito collegato alla cella.

Un'ultima cosa: per facilitare il montaggio e lo smontaggio del robot, ti consiglio di saldare i connettori femmina sullo scudo della batteria. In questo modo puoi facilmente collegare e scollegare ciò che costruisci con i motori e i loro driver.

Passaggio 5: progettazione e taglio 3D

Progettazione e taglio 3D
Progettazione e taglio 3D
Progettazione e taglio 3D
Progettazione e taglio 3D

L'unica cosa che manca ora è costruire la struttura che terrà insieme tutti i nostri componenti. Per farlo ho utilizzato la piattaforma online tinkercad. Questo è un ambiente davvero carino per fare un CAD di base che è spesso sufficiente per progettare cose per il taglio laser.

Dopo aver riflettuto per un po', è arrivato il momento di armeggiare. Per fare ciò ho iniziato a mettere insieme i modelli 3D delle diverse parti che avevo (prima mantenendo il servo e il TOF fuori dall'equazione). Ciò include la batteria e lo scudo, i motori passo-passo e i driver del motore e, naturalmente, il micro: bit con la sua scheda di estensione. Ho allegato tutti i modelli 3D corrispondenti come file stl. Per facilitare il processo, ho deciso di rendere il mio robot simmetrico. Di conseguenza ho armeggiato solo con metà del robot e ho raggiunto il design mostrato nell'immagine sopra.

Da questo sono nate alcune versioni, di cui ne ho selezionate due:

  • Uno abbastanza ordinato, senza il sensore di prossimità, che permette di non far apparire fili. Pur non essendo autonoma questa versione può essere comunque programmata via bluetooth tramite un iPad ad esempio, oppure può essere programmata per essere controllata tramite segnali radio che possono ad esempio essere inviati da un altro micro:bit come mostrato nel video qui sopra.
  • Uno molto meno ordinato che permette di andare molto oltre nella robotica mobile in quanto permette di catturare la distanza dell'ostacolo con una visuale a 180° grazie al sensore di prossimità costruito su un servomotore.

Per costruirlo vai nel tuo Fablab preferito e usa il laser cutter che trovi per tagliare il modello che preferisci: il primo corrispondente ai file design1_5mmMDF.svg e design1_3mmMDF che corrispondono rispettivamente alle parti da tagliare nell'MDF 5mm legno e quelli da tagliare da quello da 3mm; il secondo corrisponde al file design2_5mmMDF.svg. Imposta i contorni neri da tagliare e quelli rossi da incidere.

Nota a margine: ho aggiunto il motivo rosso solo per abbellirlo. Questa è una funzione di riempimento Hilbert che ho generato utilizzando il codice Python allegato.

Passaggio 6: montare la bestia

Montare la Bestia
Montare la Bestia
Montare la Bestia
Montare la Bestia
Montare la Bestia
Montare la Bestia

I passaggi che ho seguito per montare la prima versione del robot sono i seguenti (le immagini dovrebbero normalmente essere nell'ordine corretto):

  1. Rimuovere il cappuccio blu dei motori e tagliarlo un po' per far fuoriuscire il cavo dal retro del motore.
  2. Montare i motori su ciascun lato utilizzando viti e bulloni M2.
  3. Montare la scheda di prototipazione sui lati utilizzando i fori 2x2mm e alcune viti e bulloni.
  4. Metti i driver A4988 e fissa i cavi del motore per tenerlo in ordine.
  5. Montare la ruota universale sotto la parte inferiore e aggiungere i lati.
  6. Montare la scheda di estensione del micro:bit sulla parte superiore.
  7. Montare la parte inferiore del coperchio anteriore flessibile.
  8. Mettere lo scudo delle batterie e collegare il tutto (per farlo, visto che ero ancora in attesa della consegna della scheda di estensione che volevo e che ne avevo solo una con i connettori femmina sporgenti, ho riciclato un cavo IDE da un vecchio computer per riuscire a non ho i miei cavi che attaccano la scheda per coprire tutto questo con il coperchio anteriore pieghevole). Sebbene il codice che ho fornito sia molto facile da adattare, per usarlo direttamente, dovrai collegare lo STEP sinistro al pin 2, lo STEP destro al pin 8, il DIR sinistro al pin 12, il DIR destro al pin 1.
  9. Metti il micro:bit nell'estensione.
  10. Verifica che tutto funzioni con MoveTest.py prima di procedere oltre.
  11. Montare l'interruttore sulla parte superiore e posizionare la punta di plastica accanto alla cella al litio.
  12. Avvitare la parte superiore del coperchio anteriore.
  13. Monta il retro e il gioco è fatto! uff! Non mi aspettavo così tanti passaggi! È molto più facile pensarci e farlo che spiegarlo a parole! (E sono sicuro che mancheranno ancora informazioni!)

Se stai costruendo la seconda versione con il sensore di prossimità, allora:

  1. Segui le istruzioni sopra. L'unica differenza sarà che dovrai aggiungere alcuni distanziatori M2 nel passaggio 7 (anche se è quello che ho fatto ma non è necessario), ignorare il passaggio 8 e il passaggio 13 (poiché non c'è il coperchio anteriore)
  2. Montare il servomotore con viti M2 e collegare il VCC e GND del servo direttamente sui 5V dello scudo della batteria, e collegare l'ingresso di controllo al pin 0 del micro:bit.
  3. Montare i due pezzi di legno che andranno sopra il servo con una vite, avvitare il sensore TOF su questo e il pezzo di plastica bianca che viene fornito con il servo.
  4. Montare quest'ultima unità sul servo e collegare il sensore utilizzando I2C di micro:bit come descritto nel passaggio 3.

Passaggio 7: programma

Questo è tutto ! Hai un robot che puoi programmare in micro:python o in makecode. Ho allegato qui del codice di esempio che ho usato per fare i video sopra:

  • Esempio 1: Metti radioControl.py sul micro:bit del robot e ReadAccelero.py su un altro micro:bit per controllare il robot utilizzando l'inclinazione del secondo micro:bit.
  • Esempio 2: Metti Autonomous.py sulla versione 2 del robot che esplorerà l'ambiente.

Questi sono solo esempi di base che puoi usare per andare molto, molto oltre. Ad esempio, mi piace molto la localizzazione e la mappatura simultanee, e normalmente c'è tutto ciò di cui hai bisogno nella versione 2 di questo robot per farlo! Anche se un grosso svantaggio per me nel realizzare un progetto del genere è che il driver micro:bit PWM è un driver software che utilizza lo stesso timer per tutti i canali, il che significa che tutti i PWM che impostiamo devono avere la stessa frequenza (che è qualcosa che ho fatto non so quando ho scritto i codici di esempio anche se ho rilevato qualcosa di strano quando ho scritto Autonomous.py).

Passaggio 8: andare oltre

Non esitate a migliorare il design, risolvete alcuni problemi che non vedevo. Ad esempio, vorrei alla fine:

  • Aggiungi un sensore IR nella parte inferiore del robot per fargli rilevare se il terreno è nero o bianco o se sta raggiungendo la fine della mia scrivania.
  • Cambia il sistema di gestione della batteria perché non sono ancora soddisfatto. Infatti, al momento, per ricaricare la batteria, è necessario smontare il robot per estrarre la cella o lo scudo della batteria… Propongo quindi di: 1. aggiungere un connettore mini-USB sul retro del robot che ho mi collegherò allo scudo della batteria, così posso ricaricarla; 2. Tagliare un foro nella parte inferiore per vedere i LED dallo scudo della batteria per vedere quando la carica è terminata.
  • Verificare se esiste un modo accettabile per emettere PWM con frequenze diverse.
  • Prova il VL53L0XV2 per sostituire il TOF10120 in quanto potrebbe essere un'opzione più economica che lo renderebbe accessibile a ancora più persone. Anche se ho letto di più su questo sensore e sembra che l'azienda che lo ha reso economico lo abbia reso apposta molto difficile da affrontare…
  • Prova diversi design per le ruote per renderle più durevoli (In questo momento mi aspetto che se prendo e tolgo le ruote molte volte, il legno verrà progressivamente danneggiato. Se rendo il legno più elastico modificando il design potrei riuscire a farlo durare più a lungo)

Un grande ringraziamento alle persone del team di robotica mobile (ora parte del laboratorio di Biorobotica) dell'EPFL che mi hanno aiutato molto ad ampliare le mie conoscenze di elettronica e meccanica!

Consigliato: