Sommario:

Serpente robotico bioispirato: 16 passaggi (con immagini)
Serpente robotico bioispirato: 16 passaggi (con immagini)

Video: Serpente robotico bioispirato: 16 passaggi (con immagini)

Video: Serpente robotico bioispirato: 16 passaggi (con immagini)
Video: QUESTA SCOPERTA IN EGITTO HA SCIOCCATO IL MONDO 2024, Dicembre
Anonim
Image
Image

Sono stato ispirato a iniziare questo progetto dopo aver visto i video di ricerca di entrambi i serpenti robotici che si arrampicano sugli alberi e le anguille robotiche. Questo è il mio primo tentativo di costruire robot usando la locomozione a serpentina, ma non sarà l'ultimo! Iscriviti su YouTube se vuoi vedere gli sviluppi futuri.

Di seguito descrivo la costruzione di 2 diversi serpenti insieme ai file per la stampa 3D e una discussione sul codice e sugli algoritmi per ottenere un movimento simile a un serpente. Se desideri continuare a saperne di più, dopo aver letto questo tutorial ti suggerisco di leggere i collegamenti nella sezione dei riferimenti in fondo alla pagina.

Questo istruibile è tecnicamente un 2 in 1, in quanto spiego come realizzare 2 diverse versioni di un serpente robotico. Se sei interessato solo a costruire uno dei serpenti, ignora le istruzioni per l'altro serpente. Questi 2 diversi serpenti saranno d'ora in poi indicati usando le seguenti frasi in modo intercambiabile:

  1. Serpente ad asse singolo, serpente 1D o serpente giallo e nero
  2. Serpente a doppio asse, serpente 2D o serpente bianco

Ovviamente puoi stampare i serpenti in qualsiasi filamento di colore tu voglia. L'unica differenza tra i due snake è che nello snake 2D ogni motore è ruotato di 90 gradi rispetto al precedente, mentre nello snake 1D tutti i motori sono allineati su un unico asse.

Un'ultima premessa è che mentre ognuno dei miei serpenti ha solo 10 servi è possibile realizzare i serpenti con più o meno servi. Una cosa da considerare è che con meno servi otterrai un movimento meno efficace, e con più servi probabilmente avrai più successo con il movimento a serpentina, ma dovrai considerare il costo, l'assorbimento di corrente (vedi note successive) e il numero di pin disponibile su Arduino. Sentiti libero di modificare la lunghezza del serpente, tuttavia tieni presente che dovrai anche modificare il codice per tenere conto di questo cambiamento.

Passaggio 1: componenti

Questo è un elenco di parti per un singolo serpente, se vuoi creare entrambi i serpenti dovrai raddoppiare il volume dei componenti.

  • 10 servi MG996R*
  • Filamento di stampa 3D da 1,75 mm
  • 10 cuscinetti a sfera, numero parte 608 (ho recuperato il mio dal bordo esterno degli spinner Jitterspin)
  • 20 cuscinetti a sfera piccoli, codice r188, per le ruote** (il mio l'ho recuperato dalla parte interna dei fidget spinner Jitterspin)
  • 40 viti a testa philips 6-32 x 1/2" (o simili)
  • 8 viti più lunghe (non ho un codice ma hanno lo stesso diametro delle viti sopra)
  • Almeno 20 pezzi di zip da 4 pollici (dipende da te quanti ne vuoi usare)
  • 5 m ciascuno di filo rosso e nero calibro 20 o più spesso***
  • Cavo calibro 22 standard
  • 30 piedini maschio (divisi in 10 lotti da 3)
  • Arduino Nano
  • Parti stampate in 3D (vedi sezione successiva)
  • Qualche forma di alimentazione (vedi la sezione: "Alimentazione del serpente" per maggiori informazioni), ho utilizzato personalmente un alimentatore ATX modificato
  • Condensatore elettrolitico 1000uF 25V
  • Tubo termoretraibile di varie dimensioni, saldatura, colla e altri strumenti vari

*puoi usare altri tipi ma dovrai riprogettare i file 3D per adattarli ai tuoi servi. Inoltre, se provi a utilizzare servi più piccoli come l'sg90, potresti scoprire che non sono abbastanza forti (non l'ho testato e starà a te sperimentare).

** non è necessario utilizzare piccoli cuscinetti a sfera per le ruote, ho solo avuto un sacco di cose in giro. In alternativa puoi usare le ruote LEGO o altre ruote giocattolo.

***Questo cavo può avere fino a 10 ampere che lo attraversano, troppo sottile e la corrente lo fonderà. Vedi questa pagina per maggiori informazioni.

Passaggio 2: componenti di stampa 3D

Assemblea dei Serpenti
Assemblea dei Serpenti

Se stai facendo stampare questi pezzi al serpente 1D.

Se stai facendo stampare questi pezzi al serpente 2D.

Nota importante: la bilancia potrebbe essere sbagliata! Progetto i miei componenti in Fusion 360 (in unità mm), ho esportato il progetto come file.stl nel software MakerBot e poi l'ho stampato su una stampante Qidi Tech (una versione clone di MakerBot Replicator 2X). Da qualche parte lungo questo flusso di lavoro c'è un bug e tutte le mie stampe risultano troppo piccole. Non sono stato in grado di identificare la posizione del bug ma ho una soluzione temporanea per ridimensionare ogni stampa al 106% delle dimensioni nel software MakerBot, questo risolve il problema.

Detto questo, tieni presente che se stampi i file sopra, potrebbero essere ridimensionati in modo errato. Suggerisco di stampare solo un pezzo e di verificare se si adatta al tuo servo MG996R prima di stamparli tutti.

Se stampi uno dei file, per favore fammi sapere qual è il risultato: se la stampa è troppo piccola, giusta, troppo grande e di quanta percentuale. Lavorando insieme come una comunità, possiamo risolvere la posizione del bug utilizzando diverse stampanti 3D e affettatrici.stl. Una volta risolto il problema, aggiornerò questa sezione e i link sopra.

Fase 3: assemblaggio dei serpenti

Assemblea dei Serpenti
Assemblea dei Serpenti
Assemblea dei Serpenti
Assemblea dei Serpenti
Assemblea dei Serpenti
Assemblea dei Serpenti

Il processo di assemblaggio è per lo più lo stesso per entrambe le versioni del serpente. L'unica differenza è che nello snake 2D ogni motore è ruotato di 90 gradi rispetto al precedente, mentre nello snake 1D tutti i motori sono allineati su un unico asse.

Inizia svitando il servo, salva le viti e rimuovi i pezzi superiore e inferiore del telaio di plastica nera, e fai attenzione a non perdere nessuno degli ingranaggi! Fai scorrere il servo nel telaio stampato in 3D, orientato come nelle immagini sopra. Riposizionare la parte superiore della custodia del servo e avvitarla in posizione con quattro viti da 6-32 1/2 . Salvare la parte inferiore della struttura del servo (nel caso in cui si desideri utilizzarla di nuovo in progetti successivi) e sostituirla con il 3D stampato, l'unica differenza è la manopola aggiuntiva per far scivolare un cuscinetto a sfere. Riavvitare il servo insieme, ripetere 10 volte.

IMPORTANTE: prima di continuare è necessario caricare il codice su Arduino e spostare ogni servo a 90 gradi. In caso contrario, potresti rompere uno o più servo e/o i telai stampati in 3D. Se non sei sicuro di come spostare un servo a 90 gradi, consulta questa pagina. Fondamentalmente collegare il filo rosso del servo a 5V su Arduino, il filo marrone a GND e il filo giallo al pin digitale 9, quindi caricare il codice nel collegamento.

Ora che ogni servo è a 90 gradi, continua:

Collega i 10 segmenti inserendo la manopola stampata in 3D da una cassa del servo nel foro di un secondo segmento, quindi con un po' di forza spingi l'asse del servo nel suo foro (vedi le immagini sopra e il video per chiarezza). Se stai creando il serpente 1D, tutti i segmenti dovrebbero essere allineati, se stai creando il serpente 2D, ogni segmento dovrebbe essere ruotato di 90 gradi rispetto al segmento precedente. Nota che la coda e il telaio della testa sono solo la metà della lunghezza degli altri segmenti, collegali ma non commentare i pezzi a forma di piramide fino a quando non avremo finito il cablaggio.

Fissare il braccio del servo a forma di X e avvitarlo in posizione. Infilare il cuscinetto a sfera sulla manopola stampata in 3D, ciò richiederà di schiacciare delicatamente i 2 semicerchi insieme. A seconda della marca di filamento che usi e della densità di riempimento, i pali potrebbero essere troppo fragili e spezzarsi, non credo che sarà così, ma comunque non usare una forza eccessiva. Personalmente ho usato il filamento PLA con il 10% di riempimento. Una volta che il cuscinetto a sfere è inserito, dovrebbe rimanere bloccato dalle sporgenze sulla manopola.

Passaggio 4: circuito

Circuito
Circuito
Circuito
Circuito
Circuito
Circuito

Il circuito è lo stesso per entrambi i serpenti robotici. Durante il processo di cablaggio assicurati che ci sia spazio sufficiente per ogni segmento per ruotare completamente, specialmente nel serpente 2D.

Sopra c'è uno schema elettrico per il cablaggio con solo 2 servi. Ho provato a disegnare un circuito con 10 servi ma è diventato troppo sovraffollato. L'unica differenza tra questa immagine e la vita reale è che è necessario collegare altri 8 servi in parallelo e collegare i fili del segnale PWM ai pin dell'Arduino Nano.

Durante il cablaggio delle linee elettriche ho usato un unico pezzo di cavo calibro 18 (abbastanza spesso da resistere a 10 ampere) come linea principale da 5 V che corre lungo la lunghezza del serpente. Usando spelafili ho rimosso una piccola sezione di isolante a 10 intervalli regolari e ho saldato un breve pezzo di filo da ciascuno di questi intervalli un gruppo di 3 pin di intestazione maschio. Ripetere questa operazione una seconda volta per il filo GND nero calibro 18 e un secondo pin di intestazione maschio. Infine saldare un filo più lungo al terzo pin dell'intestazione maschio, questo pin porterà il segnale PWM al servo dall'Arduino Nano nella testa del serpente (il filo deve essere abbastanza lungo da raggiungere, anche quando i segmenti si piegano). Fissare il tubo termoretraibile come richiesto. Collegare i 3 pin dell'intestazione maschio ai 3 pin dell'intestazione femmina dei cavi del servo. Ripetere 10 volte per ciascuno dei 10 servi. In definitiva, ciò che si ottiene è il cablaggio dei servi in parallelo e l'esecuzione di cavi di segnale PWM al Nano. Il motivo per i perni dell'intestazione maschio/femmina era che puoi facilmente smontare i segmenti e sostituire i servi se si rompono senza dissaldare tutto.

Saldare i fili GND e 5V a una scheda perforata a 3x7 fori nella coda con un condensatore e terminali a vite. Lo scopo del condensatore è rimuovere eventuali picchi di assorbimento di corrente causati all'avvio dei servi, che possono ripristinare l'Arduino Nano (se non si dispone di un condensatore probabilmente si può farne a meno, ma è meglio essere sicuri). Ricorda che il polo lungo dei condensatori elettrolitici deve essere collegato alla linea 5V e il polo più corto alla linea GND. Saldare il filo GND al pin GND del Nano e il filo 5V al pin 5V. Nota se stai usando una tensione diversa, (vedi sezione successiva), diciamo una batteria Lipo con 7,4 V, quindi collega il filo rosso al pin Vin, NON il pin 5V, così facendo si distruggerà il pin.

Saldare i 10 fili del segnale PWM ai pin dell'Arduino Nano. Ho cablato il mio nel seguente ordine, puoi scegliere di cablare il tuo in modo diverso, ma ricorda solo che dovrai quindi modificare le righe servo.attach() nel codice. Se non sei sicuro di cosa sto parlando, collegalo come ho fatto io e non avrai problemi. In ordine dal servo alla coda del serpente alla testa del serpente, ho cablato entrambi i miei serpenti nel seguente ordine. Collegamento dei pin di segnale a: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7.

Usa le zip per pulire il cablaggio. Prima di continuare, verificare che tutti i segmenti possano muoversi con spazio sufficiente affinché i fili si muovano senza essere strappati. Ora che il cablaggio è fatto possiamo avvitare i cappucci piramidali di testa e coda. Nota che la coda ha un foro per l'uscita del cavo e la testa ha un foro per il cavo di programmazione Arduino.

Passaggio 5: alimentare il serpente

Alimentare il serpente
Alimentare il serpente
Alimentare il serpente
Alimentare il serpente
Alimentare il serpente
Alimentare il serpente

Poiché i servi sono collegati in parallelo, ricevono tutti la stessa tensione, ma la corrente deve essere sommata. Guardando la scheda tecnica dei servi MG996r, possono assorbire fino a 900 mA ciascuno durante il funzionamento (supponendo che non si verifichino stalli). Quindi l'assorbimento di corrente totale se tutti e 10 i servi si muovono contemporaneamente è 0.9A*10=9A. Pertanto, un normale adattatore per presa a muro da 5 V e 2 A non funzionerà. Ho deciso di modificare un alimentatore ATX, capace di 5v a 20A. Non spiegherò come farlo, poiché è già stato discusso molto su Instructables e YouTube. Una rapida ricerca online ti mostrerà come modificare uno di questi alimentatori.

Supponendo che tu abbia modificato l'alimentatore, si tratta semplicemente di collegare un cavo lungo tra l'alimentatore e i terminali a vite sul serpente.

Un'altra opzione è quella di utilizzare un pacco batteria lipo integrato. Non l'ho provato, quindi spetterà a te progettare un supporto per le batterie e collegarle. Tieni a mente le tensioni operative, l'assorbimento di corrente dei servi e dell'Arduino (non saldare altro che 5v a il pin 5v su Arduino, vai al pin Vin se hai una tensione maggiore).

Passaggio 6: verifica che tutto funzioni

Prima di continuare, testiamo che tutto funziona. Carica questo codice. Il tuo serpente dovrebbe muovere ogni servo individualmente tra 0-180 e poi finire posando in linea retta. In caso contrario, qualcosa non va, molto probabilmente il cablaggio non è corretto oi servi non erano inizialmente centrati a 90 gradi come menzionato nella sezione "Assemblaggio dei serpenti".

Passaggio 7: codice

Al momento non esiste un telecomando per il serpente, tutto il movimento è preprogrammato e puoi scegliere quello che vuoi. Svilupperò un telecomando nella versione 2, ma se vuoi controllarlo da remoto ti suggerisco di guardare altri tutorial su Instructables e adattare il serpente per essere compatibile con il bluetooth.

Se stai facendo il serpente 1D, carica questo codice.

Se stai facendo il serpente 2D, carica questo codice.

Ti incoraggio a giocare con il codice, apportare le tue modifiche e creare nuovi algoritmi. Leggi le prossime sezioni per una spiegazione dettagliata di ogni tipo di locomozione e di come funziona il codice.

Passaggio 8: bilancia contro ruote

Bilancia Vs Ruote
Bilancia Vs Ruote
Bilancia Vs Ruote
Bilancia Vs Ruote
Bilancia Vs Ruote
Bilancia Vs Ruote
Bilancia Vs Ruote
Bilancia Vs Ruote

Uno dei modi principali in cui i serpenti sono in grado di andare avanti è attraverso la forma delle loro squame. Le scale consentono un movimento in avanti più facile. Per un'ulteriore spiegazione, guarda questo video dalle 3:04 in poi per vedere come le squame aiutano il serpente ad andare avanti. Guardando 3:14 nello stesso video mostra l'effetto quando i serpenti sono in una manica, rimuovendo l'attrito delle squame. Come mostrato nel mio video di YouTube, quando il serpente robotico 1D prova a strisciare sull'erba senza scaglie, non si muove né in avanti né all'indietro poiché le forze si sommano a uno zero netto. Pertanto, dobbiamo aggiungere alcune scale artificiali al ventre del robot.

La ricerca sulla ricreazione della locomozione tramite scale è stata condotta presso l'Università di Harvard e dimostrata in questo video. Non sono stato in grado di escogitare un metodo simile per spostare le scale su e giù sul mio robot e invece ho deciso di attaccare le scale passive stampate in 3D al ventre.

Sfortunatamente questo si è rivelato inefficace (vedi nel mio video di YouTube alle 3:38) poiché le squame continuavano a scorrere sulla superficie del tappeto invece di impigliarsi nelle fibre e aumentare l'attrito.

Se desideri sperimentare le scale che ho realizzato, puoi stampare i file in 3D dal mio GitHub. Se fai il tuo con successo fammelo sapere nei commenti in basso!

Usando un approccio diverso ho provato a usare ruote realizzate con cuscinetti a sfera r188 con guaina termorestringente all'esterno come "pneumatici". Puoi stampare in 3D gli assi delle ruote in plastica dai file.stl sul mio GitHub. Sebbene le ruote non siano biologicamente accurate, sono analoghe alle scale in quanto la rotazione in avanti è facile ma il movimento da un lato all'altro è significativamente più difficile. Puoi vedere il risultato positivo delle ruote nel mio video di YouTube.

Passaggio 9: movimento strisciante (serpente ad asse singolo)

Primo premio al concorso Make it Move

Consigliato: