Sommario:

Jasper the Arduino Hexapod: 8 passaggi (con immagini)
Jasper the Arduino Hexapod: 8 passaggi (con immagini)

Video: Jasper the Arduino Hexapod: 8 passaggi (con immagini)

Video: Jasper the Arduino Hexapod: 8 passaggi (con immagini)
Video: Управление несколькими сервоприводами с помощью Raspberry Pi и PCA9685 через веб-браузер 2024, Luglio
Anonim
Jasper l'Esapode Arduino
Jasper l'Esapode Arduino
Jasper l'Esapode Arduino
Jasper l'Esapode Arduino
Jasper l'Esapode Arduino
Jasper l'Esapode Arduino
Jasper l'Esapode Arduino
Jasper l'Esapode Arduino

Data del progetto: novembre 2018

PANORAMICA (JASPER)

Sistema di movimento a sei gambe, tre servo per gamba, 18 servomotori controllato da un Arduino Mega. Servi collegati tramite Arduino Mega sensor shield V2. Comunicazione con Hexapod tramite il modulo Bluetooth BT12 che comunica con l'applicazione Android su misura. Sistema alimentato da 2 batterie da 18650, 3400 mAh e 2 batterie da 2400 mA ciascuna fissata con velcro sotto il corpo dell'esapode. Viene fornito un interruttore di alimentazione per entrambi i sistemi Servo e Control, così come una spia di accensione a led verde sulla testa dell'esapode. I comandi vengono ripetuti su un display LCD 16x2. Il feed video, l'anello luminoso e l'evitamento degli ostacoli ultrasonici si trovano nella testa.

NOTA: Per motivi di sanità mentale consiglio vivamente l'uso di servi di buona qualità, ho iniziato con i servi MG995, 20 dei quali, 11 dei quali si sono bruciati, hanno perso la capacità di centrarsi o semplicemente hanno smesso di funzionare.

www.youtube.com/embed/ejzGMVskKec

Fase 1: ATTREZZATURA

ATTREZZATURA
ATTREZZATURA
ATTREZZATURA
ATTREZZATURA
ATTREZZATURA
ATTREZZATURA
ATTREZZATURA
ATTREZZATURA

1. 20 servi DS3218

2. 1x kit base esapode

3. 1x Arduino Mega R3

4. 1x Scudo sensore Arduino Mega v2

5. Portabatteria 18650 1 x 2 alloggiamenti

6. Interruttore di alimentazione 2 x due poli

7. Luce led verde e resistenza da 220 kohm

8. 2 batterie da 6v 2800mAh con fissaggio in velcro

9. 2 batterie 18650 x 3400 mAh

10. 1x modulo ecoscandaglio HC-SR04

11. 1x modulo Bluetooth BT12

12. 1 scheda di sviluppo Arduino V3 NodeMcu Lua WIFI ESP8266 12E IOT

13. 1 x schermo per fotocamera mini modulo Arducam con obiettivo OV2640 da 2 megapixel

14. 1 anello luminoso LCD Pixie Neon 16

15. Display LCD 1 x 16x2 righe con adattatore IIC collegato.

16. 1 x spina di alimentazione 5v per Arduino Mega

17. 1 presa micro USB 5v per modulo NodeMcu.

18. 1 x modulo convertitore buck da CC a CC

19. 1 scatola di plastica nera quadrata da 70 mm x 120 mm x 39 mm (corpo)

20. 1 scatola di plastica nera da 70 mm x 50 mm x 70 mm (testa)

21. 4 x 40 mm di supporti in ottone M3 più 4 supporti di supporto in gomma

22. Vari cavi jumper maschio-maschio, saldatura, viti e bulloni m3 e colla a caldo

Movimento delle gambe utilizzando una logica personalizzata. Movimento della telecamera tramite due servi indipendenti che danno movimento in alto, in basso, a sinistra, a destra e al centro. Telecamera controllata dalla connessione WIFI, visualizzata nella vista WebView nell'applicazione Android.

Passaggio 2: SERVI

SERVI
SERVI
SERVI
SERVI
SERVI
SERVI

Ciascuno ha un massimo di 180 gradi per

movimento minimo di 0 gradi.

Ogni servo identificato con tre combinazioni di numeri, LegCFT; dove C è il corpo (COXA), F è la coscia (FEMUR) e T è il gomito (TIBIA), quindi 410 si riferirebbe alla quarta gamba e al servo Tibia, allo stesso modo 411 si riferirebbe alla quarta gamba e al servo Tibia. La sequenza di numerazione va da 100 a 611. Ogni gamba del servo deve avere un piede a base di gomma per attutire l'impatto e fornire una presa migliore.

Gamba 1: 100, 110, 111 anteriore

Tappa 2: 200, 210, 211 gamba2-gamba1

Tappa 3: 300, 310, 311 gamba4-gamba3

Tappa 4: 400, 410, 411 gamba6-gamba5

Gamba 5: 500, 510, 511 Indietro

Tappa 6: 600, 610, 611

La posizione predefinita per tutti i servi coassiali è di 90 gradi.

La posizione predefinita per i servi del femore è 90 gradi, 45 gradi è la posizione di riposo.

La posizione predefinita per i servo tibia per tutte le gambe è 90 gradi, le gambe 1, 3 e 5 usano 175 gradi come posizione di riposo e le gambe 2, 4 e 6 usano 5 gradi.

Collo 1: 700 Limitato da 75 a 105 gradi per il movimento su e giù

Collo 2: 800 Limitato a 45-135 gradi per il movimento sinistro e destro

Movimento del servo limitato a tre "scritture" prima che venga incluso un ritardo di 10 millisecondi, prima che vengano emessi ulteriori comandi di "scrittura". Questo aiuta a ridurre il carico sulle batterie.

Passaggio 3: COMANDI

COMANDI
COMANDI
COMANDI
COMANDI
COMANDI
COMANDI

A=Stop – Rimanere nella posizione predefinita.

B=avanti - cammina_avanti

C=reverse - walk_backward

D=destra - svolta_destra

E=sinistra - svolta_sinistra

F=movimento laterale sinistro - crab_left

G=movimento laterale destro - crab_right

H=Rear_crouch (gambe 1 e 2 al massimo, 3 e 4 gambe in posizione neutra, gambe 5 e 6 in posizione minima)

I= Front_crouch (gambe 1 e 2 in posizione minima, 3 e 4 gambe in posizione neutra, gambe 5 e 6 in posizione massima)

J= camera al galoppo – centro (collo 1 e collo 2 in posizione centrale, posizione predefinita)

K=camera sinistra - pan_sinistra (collo 1, posizione centrale, posizione minima servo collo 2)

L=fotocamera destra - pan_destra (collo 1, posizione centrale, posizione massima servo collo 2)

M=camera su - pan_up (posizione massima del collo 1, posizione centrale del servo del collo 2)

N=camera down - pan_down (posizione minima Neck 1, posizione intermedia servo Neck 2)

O=Riposo (Hexapod) si trova su supporti.

P=In piedi – Hexapod si alza nella posizione predefinita.

Q=Luci spente

R=Luce verde sull'anello luminoso Pixie Neon.

S=Luce rossa sull'anello luminoso Pixie Neon.

T=Luce blu sull'anello luminoso Pixie Neon.

U=Luce bianca sull'anello luminoso Pixie Neon.

V=Gambe anteriori che ondeggiano.

W=Corno sonoro.

X=Sposta la testa da sinistra a destra.

Y=Riproduci brano.

Fase 4: MOVIMENTO

MOVIMENTO
MOVIMENTO
MOVIMENTO
MOVIMENTO
MOVIMENTO
MOVIMENTO

La posizione del servo coassiale è longitudinale all'asse del corpo, quindi dritto in avanti è di 0 gradi e direttamente dietro è di 180 gradi. Tuttavia, questo coassiale e tutti gli altri servi sarebbero limitati da 45 a 135 gradi.

Il movimento della gamba di avanti, indietro, sinistra e destra sarebbe iniziato con il sollevamento della gamba usando i servi di femore e tibia, quindi seguito dal movimento del servo del corpo e infine l'abbassamento della stessa gamba di nuovo usando i servi di femore e tibia.

Avanti e indietro

Per muovere le gambe in avanti o indietro lavorare a coppie, 1 e 2, 3 e 4, 5 e 6. Un semplice movimento in avanti consiste nelle gambe 1 e 2 che si spostano dalla loro posizione attuale il più avanti possibile, quindi le gambe 3 e 4, e infine 5 e 6 gambe ripetono la stessa azione. Quindi tutti e sei i servi coassiali si spostano da questa posizione avanzata in avanti alla loro posizione iniziale originale. Il contrario di questo processo viene utilizzato per spostarsi all'indietro. Come parte del processo di movimento in avanti, l'unità a ultrasuoni HC_SR04 controllerà la presenza di ostacoli davanti a sé e, se ne trova uno, girerà l'Hexapod a sinistra oa destra in modo casuale.

Sinistra e destra

Per muovere le coppie di gambe sinistra o destra lavorano insieme ma in direzioni opposte. Quindi, per esempio, per girare a destra la gamba 1 si sposta dalla posizione attuale alla posizione di 135 gradi mentre la gamba 2 si sposta in avanti alla posizione di 45 gradi. Questo viene ripetuto per le coppie di gambe 3 e 4 e 5 e 6 gambe. A quel punto i servi coassiali riportano la loro posizione originale nella nuova posizione, ruotando così il corpo nella direzione del movimento, ad es. Giusto. Questo processo continua fino al completamento della rotazione a sinistra richiesta. Il contrario di questo processo viene utilizzato per girare a sinistra, quindi la gamba 1 si sposta dalla sua posizione attuale in avanti alla posizione di 45 gradi, mentre la gamba 2 si sposta indietro alla posizione di 135 gradi.

Alzati e riposati

Entrambi questi processi non utilizzano il servo coassiale di nessuna delle gambe, quindi per alzarsi il servo della tibia, per tutte le gambe, si sposta dalla sua posizione attuale ai suoi 45 gradi massimi, mentre per riposare questi stessi servi del femore si spostano alla loro posizione più bassa posizione, 175 o 5 gradi. Lo stesso movimento vale per i servi Tibia che si spostano al loro massimo di 45 gradi, per stare in piedi, e al loro minimo, cioè. 175 o 5 gradi per il riposo.

Abbassati in avanti e accucciati all'indietro

Anche in questo caso i processi sono immagini speculari l'uno dell'altro. Per accucciarsi in avanti, le gambe 1 e 2 sono nella posizione più bassa, mentre le gambe 5 e 6 sono nella posizione più alta. In entrambi i casi le gambe 4 e 5 assumono una posizione neutra che è in linea con le serie di gambe 1 e 2 e 5 e 6. Per accovacciarsi all'indietro le gambe 1 e 2 sono nella loro posizione più alta mentre le gambe 5 e 6 sono nella loro posizione più bassa.

Passaggio 5: TELECAMERA TESTA/SONAR

TELECAMERA/SONAR
TELECAMERA/SONAR
TELECAMERA/SONAR
TELECAMERA/SONAR
TELECAMERA/SONAR
TELECAMERA/SONAR

La testa sarà composta da una scatola di plastica quadrata 38 mm x 38 mm x 38 mm con un coperchio rimovibile. La scatola/testa avrà un movimento verticale e orizzontale limitato. Il movimento sarà ottenuto mediante l'uso di due servi, uno attaccato al corpo del robot e un secondo attaccato al primo corpo dei servi e al suo braccio attaccato alla testa. 7.4v forniti da due batterie 18650 alimenteranno la scheda di sviluppo IOT Arduino V3 NodeMcu Lua WIFI ESP8266 12E DEVKIT, collegata a uno scudo per fotocamera Mini Modulo Arducam con obiettivo OV2640 da 2 Megapixel. Questa disposizione consentirà al robot di rilevare gli ostacoli e di trasmettere video in diretta tramite il Wi-Fi di bordo. Il sonar che utilizza un HC-SR04 e le possibili informazioni sulla gestione della luce torneranno all'Arduino Mega.

I miei ringraziamenti a Dmainmun per il suo articolo su Arducam Instructables, che è stato di grande aiuto nella mia comprensione iniziale di come Arducam potesse essere utilizzato per lo streaming video.

Batteria

Si è deciso di utilizzare due pacchi batteria, uno per i componenti della testata e la scheda Arduino Mega, e un secondo pacco per alimentare tutti i servi. Il primo pacchetto consisteva di 2 batterie 18650 3400mAh che forniscono 7.4v. Il secondo pacco consisteva di 2 batterie da 6 V 2800 mAh collegate in parallelo, fornendo così un'alimentazione di 6,4 V ma una maggiore capacità di 5600 mAh attaccate alla parte inferiore dell'Hexapod mediante strisce di velcro.

Fase 6: MOVIMENTO DELLE GAMBE

MOVIMENTO DELLE GAMBE
MOVIMENTO DELLE GAMBE
MOVIMENTO DELLE GAMBE
MOVIMENTO DELLE GAMBE
MOVIMENTO DELLE GAMBE
MOVIMENTO DELLE GAMBE

Le braccia possono funzionare in coppia o singolarmente. Ogni braccio è costituito da un'articolazione del corpo chiamata coassiale con movimento da 45 a 135 gradi, un'articolazione della coscia chiamata femore, con movimento da 45 a 135 gradi, e infine un'articolazione del gomito chiamata tibia, o effettore finale, con movimento da 45 a 135 gradi. Il software su misura è stato scritto per fornire il movimento delle gambe.

Tipi di movimento delle gambe:

Per il coassiale, 45 gradi è rivolto all'indietro rispetto alla testa, 90 gradi è la posizione neutra e 135 gradi è rivolto in avanti.

Per il femore, 45 gradi è la posizione più alta da terra, 90 gradi è la posizione neutra e 135 gradi è la posizione più bassa da terra.

Per la tibia, 45 gradi è la posizione più distante dal corpo, 90 gradi è la posizione neutra e 135 gradi è la posizione più vicina al corpo.

Supponiamo che tutti i servi siano in posizione neutra, 90 gradi.

Avanti: gamba 1 e 2, sollevamento del femore a 135 gradi, coassiale si sposta a 45 gradi, tibia si sposta a 45 gradi più distante dal corpo, femore si abbassa a 45 gradi. Questo viene ripetuto per le coppie di gambe 3 e 4 e per le coppie di gambe 5 e 6. Tutti e 6 i servi coassiali si spostano da 45 gradi indietro a 90 gradi, posizione neutra, tutti e 6 i servi Femore si spostano da 45 gradi fino a 90 gradi, posizione neutra. Infine, tutti i servi Tibia si spostano da 45 gradi a 90 gradi, posizione neutra.

Inverso: inizia con le gambe 5 e 6, poi 3 e 4, e infine le gambe 1 e 2, altrimenti il movimento è lo stesso per coassiale, femore e tibia.

Sinistra: le gambe 1, 3 e 5 si muovono in direzione opposta, mentre le gambe 2, 4 e 6 si muovono in avanti. Sia il movimento avanti che indietro sono conformi al movimento standard avanti e indietro. Per completare la rotazione di tutti e sei i servi coassiali, muovi di 45 gradi che ruotano il corpo.

A destra: le gambe 2, 4 e 6 si muovono in direzione opposta, mentre le gambe 1, 3 e 5 si muovono in avanti. Sia il movimento avanti che indietro sono conformi al movimento standard avanti e indietro. Il movimento coassiale è simile al precedente ma nella direzione inversa.

Riposo: tutti i servi coassiale e femorale in posizione neutra, tutti i servi tibia nella posizione più bassa di 45 gradi, accovacciando efficacemente entrambe le gambe anteriori, centrali e posteriori.

Accovacciarsi dietro, stare in piedi davanti: gambe 1 e 2 nella posizione più alta, gambe 3 e 4 in posizione neutra e gambe 5 e 6 nella posizione più bassa.

Stare in piedi dietro, accovacciarsi davanti: gambe 1 e nella posizione più bassa, gambe 3 e 4 in posizione neutra e gambe 5 e 6 nella posizione più alta.

Granchio a sinistra: le gambe 1 e 5 si sollevano e si estendono verso sinistra, allo stesso tempo le gambe 2 e 6 si sollevano e si contraggono sotto il corpo. Con tutte e quattro queste gambe a terra, tutte le tibie tornano nella loro posizione neutra. Infine le gambe 3 e 4 ripetono lo stesso processo.

Granchio a destra: le gambe 2 e 6 si sollevano e si estendono verso destra, allo stesso tempo le gambe 1 e 5 si sollevano e si contraggono sotto il corpo. Con tutte e quattro queste gambe a terra, tutte le tibie tornano nella loro posizione neutra. Infine le gambe 3 e 4 ripetono lo stesso processo.

Movimento della testa a sinistra: collo 1 servo 45 gradi. Entrambi i servi tornano alla posizione neutra di 90.

Movimento della testa a destra: collo 1 servo 135 gradi

Movimento della testa in alto: collo 2 servo 45 gradi

Movimento della testa in basso: collo 2 servo 135 gradi

Movimento della testa panoramica: il collo 2 si sposta da 45 a 135 gradi

SERVI

Dopo i test iniziali, i servi MG995 e MG996 sono stati tutti sostituiti. Tutti i 20 servi sono stati sostituiti con servi DS32228 da 20 kg che hanno fornito un centraggio molto migliorato e una maggiore capacità di carico.

È importante testare accuratamente ogni servo utilizzando un programma di prova adatto. Ho modificato il semplice programma di esempio "sweep" per testare specificamente 0, 90 e 180 posizioni, questa routine di test è stata eseguita per un minimo di 5 minuti per ciascun servo e poi ripetuta il giorno dopo.

NOTA: l'utilizzo di una scheda Arduino Uno standard alimentata da un cavo USB potrebbe non fornire una tensione sufficiente per far funzionare determinati servi. Ho scoperto che i 4,85 V che il servo ha ricevuto dall'Uno ha causato un comportamento irregolare con i servi DS3218, aumentando questa tensione a 5,05 V ha risolto questo problema. Quindi, ho deciso di far funzionare i servi a 6v. Alla fine ho scoperto che era necessaria una tensione di 6.4v poiché i 6v causavano un comportamento irregolare dei servi.

Fase 7: COSTRUZIONE

COSTRUZIONE
COSTRUZIONE
COSTRUZIONE
COSTRUZIONE
COSTRUZIONE
COSTRUZIONE

GAMBE

Iniziato con la disposizione delle parti del kit Hexapod. Tutte le squadrette servo circolari hanno richiesto l'allargamento del foro di stuoia in entrambe le estremità del femore e tutti i fori coassiali. Ogni squadretta del servo era fissata al corrispondente coassiale e femorale con quattro viti e una quinta vite attraverso il centro della testa del servo. Tutti i corpi servo sono stati fissati mediante quattro bulloni e dadi. Il supporto del servo coassiale, per ciascuna delle sei gambe, aveva un cuscinetto attaccato alla parte inferiore del supporto utilizzando un singolo bullone e dado. Ogni supporto del servo coassiale è stato fissato, utilizzando quattro bulloni e dadi, al suo supporto del servo Femur con questo supporto ruotato di 90 gradi. La testa del servo del femore era attaccata a un'estremità del braccio del femore con l'altra estremità del femore attaccata alla testa del servo della tibia. I sei servi di Tibia sono stati attaccati alla parte superiore delle sei gambe con quattro bulloni e dadi. Ogni effettore di estremità della gamba è stato coperto con uno stivale in gomma morbida per fornire una presa extra. È stato riscontrato che la squadretta del servo in dotazione era troppo grande per essere fissata nelle connessioni coassiale, femorale e tibiale, quindi tutti i fori centrali sono stati allargati a 9 mm. I miei ringraziamenti a "Toglefritz" per il suo Capers II istruito sugli elementi di costruzione del kit Hexapod. Tuttavia, ho deviato dalla costruzione in un'area, vale a dire il fissaggio delle squadrette del servo a entrambe le estremità del femore. Ho deciso di allargare il foro centrale del femore per consentire al centro della squadretta del servo di attraversarlo, dando così una forza extra alla squadretta del servo poiché era più vicino al servo e questi due giunti hanno sperimentato la coppia massima. Ogni squadretta del servo è stata attaccata al femore usando due viti autofilettanti M2.2, le estremità di queste viti sono state rimosse e piatte. Tutti i bulloni M3 avevano un blocco applicato.

CORPO

Il corpo è costituito da due piastre ciascuna con sei fori, ogni foro utilizzato per fissare la squadretta del servo coassiale. Due batterie da 6V 2800mAh sono state attaccate alla parte inferiore della piastra inferiore tramite velcro. Sono stati fissati quattro supporti M3 che si estendono appena oltre la parte inferiore del supporto della batteria, ciascuno con uno stivale in gomma morbida scivolato sul fondo, questo fornisce una base stabile su cui può poggiare l'Hexapod. La sezione superiore della piastra inferiore ha l'Arduino Mega e il suo scudo del sensore collegati tramite quattro distanziatori da 5 mm. Sulla parte superiore della piastra inferiore erano fissati 4 supporti M3 di 6 cm di altezza, questi circondavano l'Arduino Mega e fornivano supporto per la piastra superiore. La piastra superiore aveva una scatola da 120 mm x 70 mm x 30 mm attaccata ad essa, che ospiterà il primo dei servi del collo e lo schermo LCD. Un secondo portabatteria a 2 alloggiamenti, 2 x 18650 è stato fissato alla parte inferiore della piastra superiore sul retro della scheda Arduino Mega rivolta verso la parte anteriore dell'Hexapod.

La piastra superiore ha sei squadrette dei servi ciascuna fissata con quattro viti M2.2. Sulla parte superiore della piastra è installata una scatola da 70 mm x 120 mm x 30 mm in cui sono installati un portabatteria 18650 a 2 alloggiamenti, un interruttore a due poli, un LED verde e un display LCD IC2 16 x 2. Inoltre, viene installato anche il primo servo del collo, l'alimentazione e il secondo cavo dati del servo del collo passano attraverso un foro per alimentare il secondo servo e il modulo Arduino V3 NodeMcu. Un ulteriore cavo dati passa attraverso il bauletto e alimenta il modulo ad ultrasuoni HC-SR04, sempre posizionato nella testata. Un secondo cavo dati e alimentazione è anche passato alla testa per alimentare l'anello led pixie.

I due cavi dati servo e il cavo dati HC-SR04 vengono fatti passare attraverso la piastra superiore mentre il modulo Bluetooth è collegato alla parte inferiore della piastra utilizzando un pad al neon e colla a caldo. La gestione dei cavi dei restanti 18 cavi dati servo deve essere in posizione prima di qualsiasi tentativo di fissare la piastra superiore alla piastra inferiore utilizzando viti 4 x M3 che si inseriscono nei supporti 4 x M3 che erano fissati alla piastra inferiore. Come parte del processo di fissaggio della piastra inferiore superiore, tutti e sei i servi coassiali devono essere posizionati nella loro posizione corretta con il cuscinetto inserito nel foro della piastra inferiore e la testa del servo inserita nel corno della piastra superiore. Una volta montati, le parti superiori dei sei servi coassiali sono fissate con 6 viti M3. A causa della posizione delle squadrette dei sei servi coassiali, i 4 x M3 distanziatori dovevano essere ridotti in altezza di 2 mm, in modo che i cuscinetti dei servi coassiali fossero posizionati correttamente nella piastra inferiore.

TESTA

La testa è composta da due servi a 90 gradi l'uno rispetto all'altro, uno alloggiato nella scatola attaccata alla piastra superiore, e il secondo attaccato al primo tramite la squadretta del servo utilizzando una sezione a forma di U di piastra di ottone. La squadretta del secondo servo è fissata a una staffa in ottone a forma di L che è a sua volta fissata a una scatola da 70 mm x 70 mm x 50 mm con due bulloni e dadi. La scatola forma la testa, all'interno della quale è installata la fotocamera Ardcam, il modulo ad ultrasuoni HC-SR04 e il modulo Arduino V3 NodeMcu e il LED di alimentazione. Sia il modulo ad ultrasuoni che trasmette e riceve le testine dei sensori sporgono dalla parte anteriore della scatola così come l'obiettivo della fotocamera. Intorno all'obiettivo all'esterno della scatola c'è un anello pixie Nero da 16 LCD. Il LED di alimentazione NodeMcu è visibile tramite un foro nella piastra posteriore della testa, il cavo di alimentazione, il cavo dati del modulo a ultrasuoni e i cavi di alimentazione dati Pixie Neon entrano attraverso un foro tra la piastra posteriore e la piastra della testa.

ELETTRONICA

I seguenti diagrammi di Fritzing mostrano l'elettronica del corpo e della testa. Le linee VCC e GRD non sono mostrate per i 20 servi per aiutare la chiarezza del diagramma. Il modulo Bluetooth, tramite l'app Android, controlla il movimento Hexapod compresi i suoi servi al collo. Il modulo Arduino NodeMcu basato su WIFI controlla il modulo fotocamera Arducam. Tutti i servi sono collegati allo scudo del sensore Arduino tramite un singolo blocco contenente VCC, GRD e linee di segnale. Per collegare Bluetooth BT12, HC-SR04 e IC2 LCD vengono utilizzati cavi jumper DuPont standard da 20 cm.

CALIBRAZIONE DELLA GAMBA

Questa è una delle aree più difficili della preparazione prima di lavorare sul movimento dell'Hexapod. L'idea iniziale è quella di impostare tutte le gambe come segue, servi Coax a 90 gradi, servi Femur a 90 gradi e servi Tibia a 90 con la posizione fisica delle gambe impostata a 105 gradi per le gambe 2, 4 e 6 e 75 gradi per le gambe 1, 3 e 5. L'Hexapod è stato posizionato su una superficie piana appoggiata sui quattro supporti sotto l'alloggiamento della batteria. Le gambe erano posizionate a punti equidistanti tra ciascuna gamba e ad uguale distanza dal corpo. Tutte queste posizioni erano segnate sulla superficie piana. Durante la costruzione delle gambe è stato trovato il punto medio di ogni servo, questa dovrebbe essere la posizione dei servi a 90 gradi. Questa posizione predefinita di 90 gradi viene utilizzata con tutti i servi.

Le facce interne dei servi coassiali 2 e 5 sono parallele tra loro, questo vale per i servi 1 e 6 e 3 e 4. Tutti i servi Femur e Coax sono fissati insieme a 90 gradi l'uno rispetto all'altro durante la fase di costruzione. Tutti i servi del femore hanno il braccio del femore attaccato ad essi con un angolo di 90 gradi. Tutti i servi della tibia sono attaccati alla tibia a 90 gradi. I servi 2, 4 e 6 della tibia sono fissati al braccio del femore a 105 gradi, mentre i servi della tibia 1, 3 e 5 sono fissati al braccio del femore a 75 gradi.

È importante notare che durante il test, tutti i servi devono essere monitorati per la temperatura, un servo caldo significa che il servo sta lavorando troppo duramente e potrebbe guastarsi, la maggior parte dei servi sarà calda al tatto.

La calibrazione iniziale consiste nello spostare l'Hexapod dalla sua posizione di riposo, dopo essere stato acceso, a una posizione eretta che sia stabile, stabile, livellata e, cosa più importante, nessuno dei servi si surriscalda. Per mantenere una posizione stabile, è necessario scrivere su ciascun servo con un ritardo inferiore a 20 millisecondi, sono stati utilizzati 10 millisecondi. Tutti i servi possono spostarsi solo da 0 a 180 gradi e da 180 gradi indietro a 0, quindi per tutti i servi Femur 0 e 180 gradi sono verticali e 90 gradi sono orizzontali.

Prima di collegare ogni servo, è stata inviata una scrittura di inizializzazione a ciascuno dei servo precedentemente definiti dandogli il suo attuale angolo di riposo, cioè la posizione attuale in cui si trova il servo mentre è a riposo. Questo era di 90 gradi per tutti i servi coassiali, 55 gradi per i servi femore e tibia 1, 3 e 5 e 125 gradi per i servi femore e tibia 2, 4 e 6.

È importante notare che le batterie devono essere sempre completamente caricate all'inizio della sessione di calibrazione.

L'Esapode parte sempre da una posizione di riposo, l'intero corpo è sostenuto dai quattro piedi. Da questa posizione tutti i servi del femore e della tibia vengono ciclati dalle loro posizioni di partenza fino alla loro posizione in piedi, a quel punto tutti i servi sono a 90 gradi. Per completare la posizione eretta viene impartito il comando "in piedi", questo comando richiede che tutte le gambe si alzino e si riposino in due serie di tre movimenti delle gambe, gambe 1, 5 e 4 e 2, 6 e 3.

Passaggio 8: SOFTWARE

Il software è composto da tre parti, la prima è il codice Arduino che gira su Arduino Mega, la seconda è il codice Arduino che gira sul modulo NodeMcu nella testa. La comunicazione avviene tramite l'unità Bluetooth BT12 che riceve i comandi dal tablet Android, ovvero un Samsung Tab 2, che esegue un'applicazione personalizzata realizzata da Android Studio. È questa applicazione che invia i comandi all'Hexapod. La stessa applicazione riceve anche feed video dal vivo dal modulo NodeMcu tramite il WIFI integrato.

CODICE ANDROID

Il codice Android su misura, sviluppato utilizzando Android Studio, fornisce la piattaforma su cui viene eseguita l'applicazione a due schermate. L'applicazione ha due schermate, la schermata principale consente all'utente di impartire comandi all'Hexapod e visualizzare il feed video proveniente dalla testa dell'Hexapod. La seconda schermata, accessibile tramite il pulsante WIFI, consente all'utente di connettersi in primo luogo all'hexapod Bluetooth e in secondo luogo all'hot spot WIFI generato dalla scheda Arduino NodeMCU nella testa dell'hexapod. L'applicazione invia comandi a lettera singola, tramite seriale 9600 Baud, dal Tablet tramite il Bluetooth integrato al Bluetooth BT12 collegato all'esapode.

CODICE ARDUINO

Lo sviluppo del codice è iniziato con lo sviluppo di un programma di test progettato per testare le funzioni di base di Hexapod, la testa e il corpo. Poiché la testa e il suo funzionamento sono completamente separati dal corpo, il suo sviluppo del software è stato testato in parallelo con il codice della funzione del corpo. Il codice di funzionamento della testa era in gran parte basato su uno sviluppo precedente con l'inclusione del movimento servo. Il codice includeva il funzionamento di un display LCD 16x2, modulo a ultrasuoni HC-SR04 e un anello luminoso a 16 LED. È stato necessario un ulteriore sviluppo del codice per fornire l'accesso WIFI al feed video in diretta dalla testa.

Il codice della funzione del corpo è stato inizialmente sviluppato per fornire il collegamento del servo iniziale e la posizione iniziale a riposo. Da questa posizione l'Hexapod è stato programmato per stare semplicemente in piedi. Lo sviluppo è poi proseguito con ulteriori movimenti dell'Hexapod e la combinazione delle sezioni di codice della testa e del corpo con le comunicazioni seriali con l'app Android.

Il codice del servo di prova ha consentito lo sviluppo dei movimenti delle gambe e del corpo, vale a dire:

1. InitLeg - Consente la posizione della gamba di riposo, la posizione della gamba in piedi, la posizione iniziale della gamba del granchio per camminare a sinistra oa destra, la posizione iniziale della gamba per camminare in avanti o indietro.

2. Onda: consente alle gambe anteriori di ondeggiare, quattro volte, prima di tornare in posizione eretta.

3. TurnLeg- Consente all'Hexapod di girare a sinistra oa destra.

4. MoveLeg: consente all'Hexapod di camminare avanti o indietro.

5. CrouchLeg- Consente all'Hexapod di accucciarsi in avanti sulle zampe anteriori o all'indietro sulle zampe posteriori.

Il movimento delle gambe si basa su coppie di gambe che lavorano insieme, quindi le gambe 1 e 2, 3 e 4, 5 e 6 funzionano in coppia. Il movimento consiste in due azioni fondamentali, un allungamento e una trazione in avanti e una spinta all'indietro. Per camminare all'indietro questi due movimenti sono invertiti, quindi per esempio camminando in avanti le gambe 1 e 2 tirano, mentre le gambe 5 e 6 spingono, le gambe 3 e 4 danno stabilità. La camminata del granchio è semplicemente queste stesse azioni ma impostate a 90 gradi rispetto al corpo, in questo caso anche le gambe 3 e 4 si muovono allo stesso modo delle altre gambe. Mentre le coppie di gambe che camminano si muovono alternativamente, mentre le gambe 1 e 5 che camminano a granchio funzionano come una coppia mentre la gamba 3 lavora a passi alternati alle gambe 1 e 5.

Movimento Segue una descrizione funzionale per ciascuna delle principali funzioni di movimento, ciascuna delle quali consiste in elementi di movimento riuniti e azionati in una sequenza prestabilita.

RIPOSO: Partendo da una posizione eretta tutti i servi Femore si muovono verso l'alto per abbassare il corpo sui quattro supporti. Allo stesso tempo, tutti i servi della tibia si muovono verso l'interno.

IN PIEDI: Partendo dalla posizione di riposo tutti i servi della Tibia si spostano verso l'esterno, quando questo è completo tutti i servi del Femore si spostano alla posizione di 90 gradi, infine tutti i servi della Tibia si spostano contemporaneamente alla posizione di 90 gradi.

GIRARE A SINISTRA: Le gambe 1, 3 e 5 si spostano indietro di 45 gradi allontanandosi dalla testa, contemporaneamente le gambe 2, 4 e 6 si spostano in avanti verso la testa. Una volta completato, tutti i servi Coax si spostano dalla loro posizione attuale alla posizione standard di 90 gradi, questo movimento sarebbe in senso antiorario rispetto al corpo.

VOLTA A DESTRA: le gambe 1, 3 e 5 si spostano in avanti verso la testa di 45 gradi, contemporaneamente le gambe 2, 4 e 6 si spostano indietro allontanandosi dalla testa. Una volta completato, tutti i servi coassiali si spostano dalla loro posizione attuale alla posizione standard di 90 gradi, questo movimento sarebbe in senso orario rispetto al corpo.

ABBASSATI IN AVANTI: le gambe 1 e 2 si abbassano usando i servi di femore e tibia, mentre le gambe 5 e 6 si alzano usando i loro servi di femore e tibia, le gambe 3 e 4 rimangono nella posizione standard.

ABBASSATI ALL'INDIETRO: le gambe 1 e 2 vengono sollevate utilizzando i servi di femore e tibia, mentre le gambe 5 e 6 vengono abbassate utilizzando i loro servi di femore e tibia, le gambe 3 e 4 rimangono nella posizione standard.

WAVING: questa routine utilizza solo le gambe 1 e 2. I servi coassiali si muovono in un arco di 50 gradi, mentre anche il femore e la tibia si muovono in un arco di 50 gradi. Le gambe 3 e 4 si muovono in avanti verso la testa di 20 gradi, questo fornisce una piattaforma più stabile.

CAMMINATA IN AVANTI: Le gambe 1 e 6, 2 e 5 e 3 e 4 devono lavorare insieme. Quindi, mentre la gamba 1 sta tirando il corpo, la gamba 6 deve spingere il corpo, non appena questa azione è completata, le gambe 2 e 5 devono eseguire la stessa azione, mentre ciascuno di questi cicli di azione si sta verificando, le gambe 3 e 4 devono eseguire la loro andare avanti con la routine.

Le funzioni iniziali del modulo di prova per le gambe hanno consentito un design per ciascuno dei tre movimenti delle gambe. Sono necessari tre movimenti delle gambe poiché le gambe opposte eseguono semplicemente i movimenti inversi. Un nuovo modulo combinato per le gambe 1, 3 e 6 è stato sviluppato, testato e copiato per un secondo modulo per le gambe invertite 2, 4 e 5 gambe. Il test dei movimenti delle gambe dell'esapode è stato ottenuto posizionando l'esapode su un blocco rialzato in modo da consentire il movimento completo delle gambe senza toccare il suolo. Le misurazioni sono state effettuate mentre le gambe si muovevano e si è riscontrato che tutte le gambe si spostano orizzontalmente a una distanza di 80 mm mentre allo stesso tempo sono rimaste a 10 mm da terra nel punto più basso durante il movimento. Ciò significa che l'Hexapod oscillerà semplicemente da un lato all'altro durante il movimento e che tutte le gambe avranno la stessa forza di trazione durante il movimento.

CAMMINATA INVERSA:

CAMMINATA DI GRANCHIO A SINISTRA: Il movimento iniziale inizia con le gambe 1, 2, 5 e 6 che ruotano tutte di 45 gradi verso la direzione di marcia. Questo mette tutte le gambe in linea con la direzione di marcia, le gambe 3 e 4 sono già nell'orientamento corretto. Il femore e la tibia di ciascuna gamba iniziano nella posizione predefinita di 90 gradi. Questa andatura consiste in due serie di tre gambe che lavorano a passi alternati, gambe 1, 5 e 4, e gambe 3, 2 e 6. Ogni serie di tre gambe funziona tirando con le zampe anteriori, cioè 1 e 5 e spingendo con gamba 4, questo movimento viene quindi invertito in modo che la gamba 3 tiri mentre le gambe 2 e 6 spingono, nessuno dei servi coassiali fa alcun lavoro durante questo movimento. Ogni set di tre gambe solleva l'altro set di gambe stazionario mentre il primo set si muove.

GRANCHIO CHE CAMMINA A DESTRA:

NOTA: la testa girerà nella direzione della camminata del granchio a sinistra oa destra. Ciò consente di utilizzare il rilevamento ad ultrasuoni HC-SR04 mentre si cammina.

REGOLAZIONE DELLE GAMBE: Affinché Hexapod stia in posizione orizzontale, è necessario che tutte le gambe siano alla stessa altezza. Posizionando l'Hexapod sui blocchi e quindi utilizzando le routine di supporto e di riposo è stato possibile misurare la distanza da terra di ciascun effettore finale. Ho aggiunto stivali di gomma a ciascun effettore di estremità per aggiungere prima aderenza ma anche per consentire una piccola regolazione della lunghezza della gamba, con l'obiettivo di 5 mm o meno tra tutte le gambe. L'impostazione di ciascun servo a 90 gradi è stata facile, tuttavia l'attacco di ciascuna squadretta del servo a entrambe le estremità del femore può causare problemi poiché differenze molto piccole negli angoli di rotazione delle spine interne delle corna fanno sì che l'altezza delle gambe differisca di 20 mm. La sostituzione delle viti in diversi fori di fissaggio nelle squadrette dei servo ha corretto questa differenza di altezza di 20 mm. Ero determinato a risolvere questo problema utilizzando questo metodo piuttosto che dover compensare queste differenze di altezza utilizzando il software.

Consigliato: