Sommario:

Bipede robotico controllato da Arduino: 13 passaggi (con immagini)
Bipede robotico controllato da Arduino: 13 passaggi (con immagini)

Video: Bipede robotico controllato da Arduino: 13 passaggi (con immagini)

Video: Bipede robotico controllato da Arduino: 13 passaggi (con immagini)
Video: Использование кнопки скорости шагового двигателя 28BYJ-48 с 8 проектами: Ultimate Video Tutorial, урок 107 2024, Dicembre
Anonim
Image
Image
Bipede robotico controllato da Arduino
Bipede robotico controllato da Arduino
Bipede robotico controllato da Arduino
Bipede robotico controllato da Arduino

Progetti Fusion 360 »

Sono sempre stato incuriosito dai robot, specialmente quelli che tentano di imitare le azioni umane. Questo interesse mi ha portato a provare a progettare e sviluppare un bipede robotico che potesse imitare la camminata e la corsa umane. In questo Instructable, ti mostrerò il design e l'assemblaggio del bipede robotico.

L'obiettivo principale durante la creazione di questo progetto era rendere il sistema il più robusto possibile in modo tale che durante la sperimentazione di varie andature di camminata e corsa, non dovessi preoccuparmi costantemente del guasto dell'hardware. Questo mi ha permesso di spingere l'hardware al limite. Un obiettivo secondario era quello di rendere il bipede relativamente economico utilizzando parti di hobby prontamente disponibili e la stampa 3D, lasciando spazio per ulteriori aggiornamenti ed espansioni. Questi due obiettivi combinati forniscono una solida base per eseguire vari esperimenti, consentendo di sviluppare il bipede in base a requisiti più specifici.

Continua a creare il tuo Robotic Biped controllato da Arduino e lascia un voto nel "Concorso Arduino" se ti è piaciuto il progetto.

Passaggio 1: processo di progettazione

Processo di progettazione
Processo di progettazione
Processo di progettazione
Processo di progettazione
Processo di progettazione
Processo di progettazione

Le gambe umanoidi sono state progettate nel software di modellazione 3D Fusion 360 gratuito di Autodesk. Ho iniziato importando i servomotori nel progetto e ho costruito le gambe attorno ad essi. Ho progettato staffe per il servomotore che forniscono un secondo punto di articolazione diametralmente opposto all'albero del servomotore. Avere due alberi su entrambe le estremità del motore conferisce stabilità strutturale al design ed elimina qualsiasi inclinazione che può verificarsi quando le gambe sono fatte per sopportare un carico. I collegamenti sono stati progettati per contenere un cuscinetto mentre le staffe hanno utilizzato un bullone per l'albero. Una volta che i collegamenti sono stati montati sugli alberi utilizzando un dado, il cuscinetto fornirebbe un punto di articolazione liscio e robusto sul lato opposto dell'albero del servomotore.

Un altro obiettivo durante la progettazione del bipede è stato quello di mantenere il modello il più compatto possibile per sfruttare al massimo la coppia fornita dai servomotori. Le dimensioni dei collegamenti sono state realizzate per ottenere un ampio raggio di movimento riducendo al minimo la lunghezza complessiva. Renderli troppo corti farebbe urtare le staffe, riducendo il raggio di movimento e rendendolo troppo lungo eserciterebbe una coppia non necessaria sugli attuatori. Infine, ho progettato il corpo del robot su cui montare Arduino e altri componenti elettronici.

Nota: le parti sono incluse in uno dei seguenti passaggi.

Passaggio 2: il ruolo di Arduino

Il ruolo di Arduino
Il ruolo di Arduino

In questo progetto è stato utilizzato un Arduino Uno. L'Arduino era responsabile del calcolo dei percorsi di movimento delle varie andature che sono state testate e ha incaricato gli attuatori di spostarsi ad angoli precisi a velocità precise per creare un movimento di camminata fluido. Un Arduino è un'ottima scelta per lo sviluppo di progetti grazie alla sua versatilità. Fornisce una serie di pin IO e fornisce anche interfacce come seriale, I2C e SPI per comunicare con altri microcontrollori e sensori. Arduino fornisce anche un'ottima piattaforma per la prototipazione rapida e il test e offre anche agli sviluppatori spazio per miglioramenti ed espandibilità. In questo progetto, ulteriori versioni includeranno un'unità di misurazione inerziale per l'elaborazione del movimento come il rilevamento delle cadute e la locomozione dinamica su terreni irregolari e un sensore di misurazione della distanza per evitare gli ostacoli.

L'IDE Arduino è stato utilizzato per questo progetto. (Arduino fornisce anche un IDE basato sul web)

Nota: i programmi per il robot possono essere scaricati da uno dei seguenti passaggi.

Passaggio 3: materiali necessari

Materiale necessario
Materiale necessario
Materiale necessario
Materiale necessario
Materiale necessario
Materiale necessario
Materiale necessario
Materiale necessario

Ecco l'elenco di tutti i componenti e le parti necessarie per creare il tuo robot Bipedal alimentato da Arduino. Tutte le parti dovrebbero essere comunemente disponibili e facili da trovare.

ELETTRONICA:

Arduino Uno x 1

Servomotore Towerpro MG995 x 6

Perfboard (dimensioni simili all'Arduino)

Pin di intestazione maschio e femmina (circa 20 di ciascuno)

Ponticelli (10 pezzi)

MPU6050 IMU (opzionale)

Sensore a ultrasuoni (opzionale)

HARDWARE:

Cuscinetto per skateboard (8x19x7mm)

Dadi e bulloni M4

Filamento per stampante 3D (nel caso in cui non possiedi una stampante 3D, dovrebbe esserci una stampante 3D in un'area di lavoro locale o le stampe possono essere eseguite online a un prezzo abbastanza economico)

Escludendo l'Arduino e la stampante 3D il costo totale di questo progetto è di 20$.

Passaggio 4: parti stampate in 3D

Parti stampate in 3D
Parti stampate in 3D
Parti stampate in 3D
Parti stampate in 3D
Parti stampate in 3D
Parti stampate in 3D
Parti stampate in 3D
Parti stampate in 3D

Le parti necessarie per questo progetto dovevano essere progettate su misura, quindi è stata utilizzata una stampante 3D per stamparle. Le stampe sono state realizzate con un riempimento del 40%, 2 perimetri, ugello da 0,4 mm e un'altezza dello strato di 0,1 mm con PLA, colore a scelta. Di seguito puoi trovare l'elenco completo delle parti e gli STL per stampare la tua versione.

Nota: Da qui in poi si farà riferimento alle parti utilizzando i nomi nell'elenco.

  • supporto per servo a pedale x 1
  • specchio supporto servo a pedale x 1
  • supporto servo ginocchio x 1
  • specchio supporto servo ginocchio x 1
  • supporto per servo a pedale x 1
  • specchio supporto servo a pedale x 1
  • collegamento del cuscinetto x 2
  • collegamento clacson servo x 2
  • collegamento del piede x 2
  • ponte x 1
  • supporto per elettronica x 1
  • distanziale elettronica x 8 (opzionale)
  • spazio per squadretta servo x 12 (opzionale)

In totale, esclusi i distanziali, ci sono 14 parti. Il tempo di stampa totale è di circa 20 ore.

Passaggio 5: preparazione delle staffe dei servi

Preparazione delle staffe dei servi
Preparazione delle staffe dei servi
Preparazione delle staffe dei servi
Preparazione delle staffe dei servi
Preparazione delle staffe dei servi
Preparazione delle staffe dei servi

Una volta che tutte le parti sono state stampate, puoi iniziare impostando i servi e le relative staffe. Spingere prima un cuscinetto nel supporto del servo del ginocchio. La misura dovrebbe essere aderente ma consiglierei di levigare un po' la superficie interna del foro invece di forzare il cuscinetto che potrebbe rischiare di rompere la parte. Quindi passare un bullone M4 attraverso il foro e serrarlo con un dado. Quindi, afferrare il collegamento del piede e fissarvi una squadretta del servo circolare utilizzando le viti in dotazione. Attacca il collegamento del piede al supporto del servo del ginocchio usando le viti che utilizzerai per fissare anche il servomotore. Assicurati di allineare il motore in modo che l'albero si trovi sullo stesso lato del bullone che avevi attaccato in precedenza. Infine fissa il servo con il resto dei dadi e dei bulloni.

Fai lo stesso con il supporto del servo dell'anca e il supporto del servo del piede. Con questo, dovresti avere tre servomotori e le loro staffe corrispondenti.

Nota: sto fornendo istruzioni per costruire una gamba, l'altra è semplicemente speculare.

Passaggio 6: creare i pezzi di collegamento

Fare i pezzi di collegamento
Fare i pezzi di collegamento
Fare i pezzi di collegamento
Fare i pezzi di collegamento
Fare i pezzi di collegamento
Fare i pezzi di collegamento

Una volta che le staffe sono assemblate, inizia a creare i collegamenti. Per realizzare il collegamento del cuscinetto, carteggiare ancora una volta leggermente la superficie interna dei fori per il cuscinetto, quindi spingere il cuscinetto nel foro su entrambi i lati. Assicurarsi di spingere il cuscinetto fino a quando un lato non è a filo. Per costruire il collegamento della squadretta del servo, prendi due squadrette del servo circolari e le viti fornite. Posiziona le corna sulla stampa 3D e allinea i fori, quindi avvita il corno sulla stampa 3D fissando la vite dal lato della stampa 3D. Consiglio di utilizzare un distanziatore del clacson del servo stampato in 3D per queste viti. Una volta che i collegamenti sono stati costruiti, puoi iniziare a montare la gamba.

Passaggio 7: assemblaggio delle gambe

Assemblare le gambe
Assemblare le gambe
Assemblare le gambe
Assemblare le gambe
Assemblare le gambe
Assemblare le gambe
Assemblare le gambe
Assemblare le gambe

Una volta assemblati i collegamenti e le staffe, puoi combinarli per costruire la gamba del robot. Innanzitutto, utilizzare il collegamento della squadretta del servo per collegare insieme la staffa del servo dell'anca e la staffa del servo del ginocchio. Nota: non avvitare ancora la squadretta al servo poiché c'è una fase di installazione nella fase successiva e sarebbe un inconveniente se la squadretta fosse avvitata sul servomotore.

Sul lato opposto montare il collegamento del cuscinetto sui bulloni sporgenti utilizzando i dadi. Infine, fissa la staffa del servo a pedale inserendo il bullone sporgente attraverso il cuscinetto sul supporto del servo a ginocchio. E fissa l'albero del servo alla squadretta del servo collegata al supporto del servo del ginocchio sull'altro lato. Questo potrebbe essere un compito difficile e consiglierei un secondo paio di mani per questo.

Ripeti i passaggi per l'altra gamba. Usa le immagini allegate a ogni passaggio come riferimento.

Passaggio 8: PCB e cablaggio personalizzati

PCB e cablaggio personalizzati
PCB e cablaggio personalizzati
PCB e cablaggio personalizzati
PCB e cablaggio personalizzati
PCB e cablaggio personalizzati
PCB e cablaggio personalizzati

Questo è un passaggio facoltativo. Per rendere il cablaggio più ordinato ho deciso di creare un PCB personalizzato utilizzando la scheda perf e i pin di intestazione. Il PCB contiene porte per collegare direttamente i cavi del servomotore. Inoltre, ho anche lasciato porte extra nel caso volessi espandere e aggiungere altri sensori come le unità di misurazione inerziale o i sensori di distanza a ultrasuoni. Contiene anche una porta per la fonte di alimentazione esterna necessaria per alimentare i servomotori. Una connessione jumper viene utilizzata per passare da USB a alimentazione esterna per Arduino. Montare Arduino e PCB su entrambi i lati del supporto dell'elettronica utilizzando le viti e i distanziatori stampati in 3D.

Nota: assicurati di scollegare il ponticello prima di collegare Arduino al computer tramite USB. Non farlo potrebbe danneggiare l'Arduino.

Se decidi di non utilizzare il PCB e invece di utilizzare una breadboard, ecco i collegamenti dei servo:

  • Anca sinistra >> pin 9
  • Anca destra >> pin 8
  • Ginocchio sinistro >> perno 7
  • Ginocchio destro >> pin 6
  • Piede sinistro >> perno 5
  • Piede destro >> perno 4

Se decidi di fare in modo che il PCB segui lo stesso ordine sopra usando le porte sul PCB da destra a sinistra con la porta IMU rivolta verso l'alto. E usa i normali cavi jumper maschio-femmina per collegare il PCB all'Arduino usando i numeri di pin sopra. Assicurati di collegare anche il pin di terra e creare lo stesso potenziale di terra e il pin Vin per quando decidi di eseguirlo senza alimentazione USB.

Passaggio 9: assemblaggio del corpo

Assemblaggio del corpo
Assemblaggio del corpo
Assemblaggio del corpo
Assemblaggio del corpo
Assemblaggio del corpo
Assemblaggio del corpo

Una volta assemblate le due gambe e l'elettronica, combinale insieme per costruire il corpo del robot. Usa il pezzo del ponte per collegare le due gambe insieme. Utilizzare gli stessi fori di montaggio sul supporto del servo dell'anca e dadi e bulloni che tengono il servomotore. Infine, collega il supporto per l'elettronica al ponte. Allineare i fori sul ponte e sul supporto dell'elettronica e utilizzare dadi e bulloni M4 per realizzare il giunto.

Fare riferimento alle immagini allegate per assistenza. Con questo, hai completato la build hardware del robot. Quindi, entriamo nel software e diamo vita al robot.

Passaggio 10: configurazione iniziale

Configurazione iniziale
Configurazione iniziale
Configurazione iniziale
Configurazione iniziale
Configurazione iniziale
Configurazione iniziale

Quello che ho notato durante la costruzione di questo progetto è che i servomotori e le trombe non devono allinearsi perfettamente per rimanere relativamente paralleli. Questo è il motivo per cui la "posizione centrale" di ogni servomotore deve essere regolata manualmente per allinearsi con le gambe. Per ottenere ciò, rimuovere le squadrette dei servi da ciascun servo ed eseguire lo schizzo initial_setup.ino. Una volta che i motori si sono assestati nella loro posizione centrale rimontare le trombe in modo che le gambe siano perfettamente dritte e il piede sia perfettamente parallelo al suolo. Se questo è il caso, sei fortunato. In caso contrario, aprire il file constants.h che si trova nella scheda adiacente e modificare i valori di offset del servo (righe 1-6) fino a quando le gambe sono perfettamente allineate e il piede è piatto. Gioca con i valori e avrai un'idea di ciò che è necessario nel tuo caso.

Una volta impostate le costanti, annotare questi valori poiché saranno necessari in seguito.

Fare riferimento alle immagini per aiuto.

Passaggio 11: un po' di cinematica

Un po' di cinematica
Un po' di cinematica
Un po' di cinematica
Un po' di cinematica
Un po' di cinematica
Un po' di cinematica

Per far compiere al bipede azioni utili come correre e camminare le varie andature devono essere programmate sotto forma di percorsi di movimento. I percorsi di movimento sono percorsi lungo i quali l'effettore finale (i piedi in questo caso) viaggiano. Ci sono due modi per raggiungere questo obiettivo:

  1. Un approccio sarebbe quello di alimentare gli angoli di giunzione dei vari motori in un modo a forza bruta. Questo approccio può richiedere molto tempo, noioso e anche pieno di errori poiché il giudizio è puramente visivo. Invece, c'è un modo più intelligente per ottenere i risultati desiderati.
  2. Il secondo approccio ruota attorno all'alimentazione delle coordinate dell'effettore finale invece di tutti gli angoli del giunto. Questo è ciò che è noto come cinematica inversa. L'utente immette le coordinate e gli angoli del giunto si regolano per posizionare l'effettore finale alle coordinate specificate. Questo metodo può essere considerato come una scatola nera che prende come input una coordinata ed emette gli angoli del giunto. Per coloro che sono interessati a come sono state sviluppate le equazioni trigonometriche di questa scatola nera possono guardare il diagramma sopra. Per chi non fosse interessato, le equazioni sono già programmate e possono essere utilizzate utilizzando la funzione pos che prende come input x, z ed emette tre angoli corrispondenti ai motori.

Il programma che contiene queste funzioni si trova nel passaggio successivo.

Passaggio 12: programmazione di Arduino

Programmare Arduino
Programmare Arduino
Programmare Arduino
Programmare Arduino

Prima di programmare Arduino, è necessario apportare piccole modifiche al file. Ricordi le costanti che ti avevo chiesto di cancellare? Modifica le stesse costanti con i valori impostati nel file constants.h.

Nota: se hai utilizzato i design forniti in questo Instructable, non hai nulla da cambiare. Nel caso in cui alcuni di voi abbiano creato i propri progetti, sarà necessario modificare alcuni valori in più insieme agli offset. La costante l1 misura la distanza tra il perno dell'anca e il perno del ginocchio. La costante l2 misura la distanza tra il perno del ginocchio e il perno della caviglia. Quindi, se hai progettato il tuo modello, misura queste lunghezze e modifica le costanti. Le ultime due costanti sono usate per le andature. La costante stepClearance misura quanto in alto si alzerà il piede mentre si fa avanti dopo un passo e la costante stepHeight misura l'altezza dal suolo all'anca mentre fa i passi.

Una volta che tutte le costanti sono state modificate secondo le tue necessità, puoi caricare il programma principale. Il programma principale inizializza semplicemente il robot in una posizione di camminata e inizia a fare dei passi in avanti. Le funzioni possono essere modificate in base alle tue necessità per esplorare le varie andature, velocità e lunghezze dei passi per vedere cosa funziona meglio.

Fase 13: Risultati finali: è tempo di sperimentare

Risultati finali: tempo di sperimentare
Risultati finali: tempo di sperimentare
Risultati finali: tempo di sperimentare
Risultati finali: tempo di sperimentare
Risultati finali: tempo di sperimentare
Risultati finali: tempo di sperimentare

Il bipede può compiere passi che variano da 10 a 2 cm di lunghezza senza ribaltarsi. Anche la velocità può essere variata mantenendo l'andatura equilibrata. Questo bipede combinato con la potenza di Arduino fornisce una piattaforma robusta per sperimentare varie altre andature e altri obiettivi come saltare o tenersi in equilibrio mentre si calcia una palla. Ti consiglierei di provare a cambiare i percorsi di movimento delle gambe per creare le tue andature e scoprire come le varie andature influenzano le prestazioni del robot. Sensori come un IMU e un sensore di distanza possono essere aggiunti al sistema per aumentarne le funzionalità, mentre i sensori di forza possono essere aggiunti alle gambe per sperimentare la locomozione dinamica su superfici irregolari.

Spero che questo Instructable ti sia piaciuto e che sia abbastanza di ispirazione per costruirne uno tuo. Se il progetto ti è piaciuto, sostienilo lasciando un voto nel "Concorso Arduino".

Fare felice!

Concorso Arduino 2020
Concorso Arduino 2020
Concorso Arduino 2020
Concorso Arduino 2020

Primo Premio al Concorso Arduino 2020

Consigliato: