Indholdsfortegnelse:

Jasper the Arduino Hexapod: 8 trin (med billeder)
Jasper the Arduino Hexapod: 8 trin (med billeder)

Video: Jasper the Arduino Hexapod: 8 trin (med billeder)

Video: Jasper the Arduino Hexapod: 8 trin (med billeder)
Video: Jasper Arduino Hexapod Robot 2024, Juli
Anonim
Jasper Arduino Hexapod
Jasper Arduino Hexapod
Jasper Arduino Hexapod
Jasper Arduino Hexapod
Jasper Arduino Hexapod
Jasper Arduino Hexapod
Jasper Arduino Hexapod
Jasper Arduino Hexapod

Projektdato: november 2018

OVERSIGT (JASPER)

Seks ben, tre servoer pr. Ben, 18 servobevægelsessystem styret af en Arduino Mega. Servoer tilsluttet via Arduino Mega sensor shield V2. Kommunikation med Hexapod via Bluetooth BT12 -modul, der taler til skræddersyet Android -applikation. System drevet af 2 x 18650, 3400mAh og 2 x 2400mA batterisæt hver holdt med velcro under hexapodens krop. Der er en strømkontakt til både servo- og kontrolsystemerne, ligesom en grøn tændt indikatorlampe på hexapodens hoved. Kommandoer gentages til et 16x2 LCD -display. Videofeed, lysring og undgåelse af forhindringer ved ultralyd er placeret i hovedet.

BEMÆRK: For sundheds skyld anbefaler jeg stærkt brugen af servoer af god kvalitet, jeg startede med MG995 servoer, 20 af dem, hvoraf 11 enten brændte ud, mistede evnen til at centrere eller simpelthen stoppede med at arbejde.

www.youtube.com/embed/ejzGMVskKec

Trin 1: UDSTYR

UDSTYR
UDSTYR
UDSTYR
UDSTYR
UDSTYR
UDSTYR
UDSTYR
UDSTYR

1. 20 x DS3218 servoer

2. 1x Hexapod bundsæt

3. 1x Arduino Mega R3

4. 1x Arduino Mega sensor skjold v2

5. 1 x 2 bay 18650 batteriholder

6. 2 x to -polet afbryder

7. Grønt LED -lys og 220kohm modstand

8. 2 x 6v 2800mAh batteripakker med velcrolukning

9. 2 x 18650 x 3400mAh batterier

10. 1x HC-SR04 Ekkolodsmodul

11. 1x BT12 Bluetooth -modul

12. 1 x Arduino V3 NodeMcu Lua WIFI ESP8266 12E IOT udviklingskort

13. 1 x Arducam Mini Module Camera Shield med OV2640 2 megapixel linse

14. 1 x Pixie Neon 16 LCD -lysring

15. 1 x 16x2 line LCD -display med påsat IIC -adapter.

16. 1 x 5v strømstik til Arduino Mega

17. 1 x 5v mikro USB -stik til NodeMcu -modul.

18. 1 x DC til DC Buck -konvertermodul

19. 1 x 70 mm x 120 mm x 39 mm firkantet sort plastkasse (krop)

20. 1 x 70 mm x 50 mm x 70 mm sort plastikæske (hoved)

21. 4 x 40 mm M3 messingstands plus 4 gummihvilestøtter

22. Forskellige han- til han -jumperkabler, loddetin, m3 skruer og bolte og varm lim

Bevægelse af ben ved hjælp af skræddersyet logik. Kamerabevægelse via to uafhængige servoer, der giver op, ned, venstre, højre og centreret bevægelse. Kamera styret af WIFI -forbindelse, der vises i WebView -visning i Android -applikation.

Trin 2: SERVOS

SERVOS
SERVOS
SERVOS
SERVOS
SERVOS
SERVOS

Hver har maksimalt 180 grader til

mindst 0 graders bevægelse.

Hver servo identificeret med kombination af tre tal, LegCFT; hvor C er kroppen (COXA), F er låret (FEMUR), og T er albuen (TIBIA), så 410 ville referere til det fjerde ben og Tibia servo, tilsvarende ville 411 referere til det fjerde ben og Tibia servo. Nummereringssekvensen ville være 100 til 611. Hvert servoben skal have gummibaseret fod for at dæmpe slag og give bedre greb.

Ben 1: 100, 110, 111 Foran

Ben 2: 200, 210, 211 ben2-ben1

Ben 3: 300, 310, 311 ben4-ben3

Ben 4: 400, 410, 411 ben6-ben5

Ben 5: 500, 510, 511 Ryg

Ben 6: 600, 610, 611

Standardpositionen for alle Coax Servoer er 90 grader.

Standardposition for Femur Servos er 90 grader, 45 grader er hvilestilling.

Standardposition for Tibia Servoer for alle ben er 90 grader, ben 1, 3 og 5 bruger 175 grader som hvilestilling og ben 2, 4 og 6 bruger 5 grader.

Hals 1: 700 Begrænset til 75 til 105 grader for bevægelse op og ned

Hals 2: 800 Begrænset til 45 til 135 grader for venstre og højre bevægelse

Servobevægelse begrænset til tre "skriver", inden en forsinkelse på 10 millisekunder er inkluderet, før yderligere "skriv" -kommandoer udsendes. Dette hjælper med at reducere belastningen på batterierne.

Trin 3: KOMMANDOER

KOMMANDOER
KOMMANDOER
KOMMANDOER
KOMMANDOER
KOMMANDOER
KOMMANDOER

A = Stop - Stå i standardposition.

B = fremad - gå_ fremad

C = omvendt - walk_backward

D = højre - drej til højre

E = venstre - drej_venstre

F = venstre sideværts bevægelse - krabbe_ venstre

G = højre sideværts bevægelse - crab_right

H = Rear_crouch (ben 1 og 2 maksimalt, 3 og 4 ben i neutral position, ben 5 og 6 i minimum position)

I = Front_crouch (ben 1 og 2 i minimumsposition, 3 og 4 ben i neutral position, ben 5 og 6 ved maksimal position)

J = kamera galopperet - i midten (Hals 1 og Hals 2 ved midterposition, standardposition)

K = kamera venstre - pan_ venstre (hals 1, midterstilling, hals 2 servo minimumsposition)

L = kamera højre - pan_right (Hals 1, midterstilling, hals 2 servo maksimal position)

M = kamera op - pan_up (hals 1 maksimal position, hals 2 servo midtposition)

N = kamera ned - pan_down (Hals 1 minimumsposition, Hals 2 servo midtposition)

O = Hvile (Hexapod) sidder på understøtninger.

P = Standing Up - Hexapod står op til standardpositionen.

Q = Lyser slukket

R = Grønt lys på Pixie Neon light ring.

S = Rødt lys på Pixie Neon light ring.

T = Blåt lys på Pixie Neon light ring.

U = Hvidt lys på Pixie Neon light ring.

V = Forbenene vinker.

W = Lydhorn.

X = Fej hovedet fra venstre mod højre.

Y = Afspil melodi.

Trin 4: BEVÆGELSE

BEVÆGELSE
BEVÆGELSE
BEVÆGELSE
BEVÆGELSE
BEVÆGELSE
BEVÆGELSE

Coax servopositionen er i længderetningen til kroppens akse, så lige frem er 0 grader og direkte bagud er 180 grader. Denne Coax og alle andre servoer ville imidlertid være begrænset til 45 til 135 grader.

Benbevægelse fremad, baglæns, venstre og højre ville alle blive startet med løft af benet ved hjælp af Femur og Tibia servoer, derefter efterfulgt af body servo bevægelse og til sidst sænkning af det samme ben igen ved hjælp af Femur og Tibia servoer.

Frem og tilbage

For at bevæge benene fremad eller bagud arbejdes i par, 1 og 2, 3 og 4, 5 og 6. En enkel bevægelse fremad består af ben 1 og 2, der bevæger sig fra deres nuværende position til så langt frem som muligt, derefter ben 3 og 4, og endelig gentager 5 og 6 ben den samme handling. Derefter bevæger alle seks Coax -servoer sig fra denne forlængede fremadposition tilbage til deres oprindelige startposition. Omvendt af denne proces bruges til at bevæge sig bagud. Som en del af fremadgående bevægelsesproces vil HC_SR04 ultralydsenheden kontrollere, om der er forhindringer forude, og hvis en findes, drejes Hexapod enten tilfældigt til venstre eller højre.

Venstre og højre

At flytte venstre eller højre benpar arbejder sammen, men i modsatte retninger. Så for eksempel at dreje højre ben 1 bevæger sig fra den aktuelle position tilbage til 135 graders position, mens ben 2 bevæger sig fremad til 45 graders position. Dette gentages for benpar 3 og 4 og 5 og 6 ben. På hvilket tidspunkt Coax servoer flytter deres oprindelige position tilbage til deres nye position og herved vrider kroppen i bevægelsesretningen, dvs. ret. Denne proces fortsættes, indtil den nødvendige rotation til venstre er fuldført. Bagsiden af denne proces bruges til at dreje til venstre, så ben 1 bevæger sig fra sin nuværende position frem til 45-graders position, mens ben 2 bevæger sig tilbage til 135-graders position.

Stå op og hvile

Begge disse processer bruger ikke Coax -servoen på nogen af benene, så for at stå op skifter Tibia -servoen for alle ben fra sin nuværende position til sine maksimale 45 grader, mens de samme Femur -servoer hviler til deres laveste position, 175 eller 5 grader. Den samme bevægelse gælder for Tibia servoer, der bevæger sig til deres maksimum på 45 grader, for at stå og deres minimum, dvs. 175 eller 5 grader til hvile.

Crouch Forward og Crouch Backward

Her er processerne igen spejlbilleder af hinanden. Til huk fremad er ben 1 og 2 i deres laveste position, mens ben 5 og 6 er i deres højeste position. I begge tilfælde indtager ben 4 og 5 en neutral position, der er på linje med ben 1 og 2 og 5 og 6. For at hænge bagud er ben 1 og 2 i deres højeste position, mens ben 5 og 6 er i deres laveste position.

Trin 5: HEAD CAMERA/SONAR

HOVEDKAMERA/SONAR
HOVEDKAMERA/SONAR
HOVEDKAMERA/SONAR
HOVEDKAMERA/SONAR
HOVEDKAMERA/SONAR
HOVEDKAMERA/SONAR

Hovedet består af en firkantet plastkasse 38 mm x 38 mm x 38 mm med et aftageligt låg. Kassen/hovedet vil have begrænset lodret og vandret bevægelse. Bevægelse opnås ved brug af to servoer, en fastgjort til robotens krop og en anden fastgjort til den første servokrop og dens arm fastgjort til hovedet. 7,4v leveret af to 18650 batterier driver Arduino V3 NodeMcu Lua WIFI ESP8266 12E IOT udviklingsbord DEVKIT, knyttet til et Arducam Mini Module Camera Shield med OV2640 2 megapixel linse. Dette arrangement gør det muligt for robotten at opdage forhindringer og streame livevideo via indbygget Wi-Fi. Ekkolod ved hjælp af en HC-SR04 og mulig lysstyringsinformation vil strømme tilbage til Arduino Mega.

Min tak til Dmainmun for hans artikel om Arducam Instructables, som var til stor hjælp i min første forståelse af, hvordan Arducam kunne bruges til at streame video.

Batteri

Det blev besluttet at bruge to batteripakker, en til hovedets komponenter og Arduino Mega board, og en anden pakke til at levere strøm til alle servoer. Den første pakke bestod af 2 x 18650 3400mAh batterier, der leverede 7,4v. Den anden pakke bestod af 2 x 6V 2800mAh batteripakker, der var forbundet parallelt, hvilket gav en 6,4V forsyning, men øget kapacitet på 5600mAh fastgjort til undersiden af Hexapod ved hjælp af velcrobånd.

Trin 6: BENBEVÆGELSE

BENBEVÆGELSE
BENBEVÆGELSE
BENBEVÆGELSE
BENBEVÆGELSE
BENBEVÆGELSE
BENBEVÆGELSE

Arme kan enten arbejde parvis eller enkeltvis. Hver arm består af kropsledd kaldet en koaks med 45 til 135 graders bevægelse, et lårled kaldet lårben med 45 til 135 graders bevægelse og til sidst et albueled kaldet Tibia eller endeffektor med 45 til 135 graders bevægelse. Skræddersyet software blev skrevet til at give bevægelse af benene.

Typer af benbevægelser:

For Coax vender 45 grader bagud fra hovedet, 90 grader er i neutral position, og 135 grader vender fremad.

For lårbenet er 45 grader den højeste position fra jorden, 90 grader er den neutrale position, og 135 grader er den laveste position fra jorden.

For skinnebenet er 45 grader den fjerneste position fra kroppen, 90 grader er neutral position, og 135 grader er den nærmeste position til kroppen.

Antag at alle servoer er i neutral position, 90 grader.

Fremad: Ben 1 og 2, Lårbenet løftes til 135 grader, Coax bevæger sig til 45 grader, Tibia bevæger sig til 45 grader mest fjernt fra kroppen, Lårben sænkes til 45 grader. Dette gentages for benpar 3 og 4 og benpar 5 og 6. Alle 6 Coax -servoer bevæger sig fra 45 grader bagud til 90 grader, neutral position, alle 6 Femur -servoer bevæger sig fra 45 grader op til 90 grader, neutral position. Endelig bevæger alle Tibia servoer sig op fra 45 grader til 90 grader, neutral position.

Omvendt: Starter med ben 5 og 6, derefter 3 og 4 og til sidst ben 1 og 2, ellers er bevægelse den samme for Coax, Femur og Tibia.

Venstre: Ben 1, 3 og 5 bevæger sig i omvendt retning, mens ben 2, 4 og 6 bevæger sig fremad. Både frem og tilbage bevægelse er i overensstemmelse med standard frem og tilbage bevægelse. For at fuldføre drejningen skal alle seks Coax -servoer flyttes 45 grader, hvilket vender kroppen.

Højre: Ben 2, 4 og 6 bevæger sig i omvendt retning, mens ben 1, 3 og 5 bevæger sig fremad. Både frem og tilbage bevægelse er i overensstemmelse med standard frem og tilbage bevægelse. Koaks -bevægelse ligner ovenstående, men i omvendt retning.

Hvile: Alle Coax- og Femur -servoer i neutral position, alle Tibia -servoer i laveste position 45 grader, der effektivt krummer både for-, midter- og bagben.

Crouch bag, stå foran: Ben 1 og 2 i højeste position, ben 3 og 4 i neutral, og ben 5 og 6 i laveste position.

Stå bagud, huk foran: Ben 1 og i laveste position, ben 3 og 4 i neutral, og ben 5 og 6 i højeste position.

Krabbe til venstre: Ben 1 og 5 løfter og strækker sig udad til venstre, samtidig med at ben 2 og 6 løfter og trækker sig sammen under kroppen. Med alle disse fire ben på jorden vender alle Tibias tilbage til deres neutrale position. Endelig gentager ben 3 og 4 den samme proces.

Krabbe til højre: Ben 2 og 6 løfter og strækker sig udad til højre, samtidig løfter ben 1 og 5 sig og trækker sig sammen under kroppen. Med alle disse fire ben på jorden vender alle Tibias tilbage til deres neutrale position. Endelig gentager ben 3 og 4 den samme proces.

Venstre hovedbevægelse: hals 1 servo 45 grader. Begge servoer vender tilbage til 90 neutral position.

Højre hovedbevægelse: hals 1 servo 135 grader

Hovedbevægelse opad: hals 2 servo 45 grader

Nedadgående hovedbevægelse: hals 2 servo 135 grader

Pan hoved bevægelse: hals 2 bevæger sig fra 45 til 135 grader

SERVOS

Efter indledende test blev MG995 og MG996 servoerne udskiftet. Alle 20 servoer blev erstattet med DS32228 20 kg servoer, hvilket gav meget forbedret centrering og øget lastkapacitet.

Det er vigtigt at teste hver servo grundigt ved hjælp af et passende testprogram. Jeg ændrede det enkle "sweep" eksempelprogram til specifikt at teste for 0, 90 og 180 positioner, denne testrutine blev kørt i mindst 5 minutter for hver servo og derefter gentaget en dag senere.

BEMÆRK: Brug af et standard Arduino Uno -kort drevet af et USB -kabel giver muligvis ikke nok spænding til at køre visse servoer. Jeg fandt ud af, at den 4,85v, servoen modtog fra Uno, forårsagede uregelmæssig adfærd med DS3218 -servoerne, hvilket øgede denne spænding til 5,05v helbredte dette problem. Så jeg besluttede at køre servoerne ved 6v. Til sidst fandt jeg ud af, at en spænding på 6,4v var nødvendig, da 6v forårsagede uregelmæssig opførsel af servoerne.

Trin 7: KONSTRUKTION

KONSTRUKTION
KONSTRUKTION
KONSTRUKTION
KONSTRUKTION
KONSTRUKTION
KONSTRUKTION

BEN

Startede med udlægningen af Hexapod kit dele. Alle servo -cirkulære horn krævede forstørrelse af mattehullet i begge ender af lårbenet og alle Coax -huller. Hvert servohorn blev fastgjort til dets tilsvarende Coax og Femur med fire skruer og en femte skrue gennem midten af servohovedet. Alle servokroppe blev fastgjort ved hjælp af fire bolte og møtrikker. Coax servomontage til hvert af de seks ben havde et leje fastgjort til bunden af beslaget ved hjælp af en enkelt bolt og møtrik. Hver Coax servomontage blev fastgjort ved hjælp af fire bolte og møtrikker til dens Femur servomontage med denne montering drejet 90 grader. Hovedet på Femur servo var fastgjort til den ene ende af Femur armen med den anden ende af Femur fastgjort til Tibia servo hovedet. De seks Tibia -servoer blev fastgjort til toppen af de seks ben med fire bolte og møtrikker. Hver benendeffektor var dækket med en blød gummistøvle for at give ekstra greb. Det blev konstateret, at det medfølgende servohorn var for stort til at kunne fastgøres i Coax-, Femur- og Tibia -forbindelserne, så alle centerhuller blev forstørret til 9 mm. Min tak til "Toglefritz" for hans Capers II instruerbare vedrørende konstruktionselementerne i Hexapod -sættet. Jeg afveg dog fra konstruktionen i et område, nemlig fastgørelse af servohornene til begge ender af lårbenet. Jeg besluttede at forstørre Femurens midterste hul for at lade servohornets midte passere igennem det, hvilket gav servohornet ekstra styrke, da det var tættere på servoen, og disse to led oplevede det maksimale drejningsmoment. Hvert servohorn blev fastgjort til lårbenet ved hjælp af to M2.2 selvskærende skruer, hvor enderne af disse skruer blev fjernet og anbragt fladt. Alle M3 bolte var låst tæt på.

LEGEME

Kroppen består af to plader hver med seks huller, hvert hul bruges til at fastgøre Coax servohornet. To 6V 2800mAh batterier blev fastgjort til undersiden af bundpladen ved hjælp af velcro. Fire M3 stand -offs, der strækker sig lige forbi bunden af batteriholderen, blev fastgjort, hver med en blød gummistøvle, der gled ned på bunden, hvilket giver en stabil base, hvorpå Hexapod kan hvile. Den øverste del af bundpladen har Arduino Mega og dens sensorbeskyttelse fastgjort ved hjælp af fire 5 mm stand -offs. På toppen af bundpladen var der fastgjort 4 x M3 -stander på 6 cm i højden, disse omgav Arduino Mega og gav støtte til toppladen. Toppladen havde en 120 mm x 70 mm x 30 mm boks fastgjort til den, denne vil rumme den første af nakkeservoerne og LCD -skærmen. En anden 2 bay, 2 x 18650 batteriholder blev fastgjort til undersiden af toppladen på bagsiden af Arduino Mega -kortet, der vender mod fronten af Hexapod.

Toppladen har seks servohorn, der hver er fastgjort med fire M2.2 -skruer. På toppen af pladen er der installeret en 70 mm x 120 mm x 30 mm boks, i hvilken en 2 -bay 18650 batteriholder, to -polet switch, grøn LED og et IC2 16 x 2 LCD -display er installeret. Derudover er den første hals -servo også installeret, strøm og det anden hals -servodatakabel passerer gennem et hul for at fodre det andet servo og Arduino V3 NodeMcu -modul. Et yderligere datakabel passerer gennem den øverste boks og føder ultralydsmodulet HC-SR04, der igen er placeret i hovedet. Et andet data- og strømkabel er også forbi hovedet for at drive pixie -ledringen.

De to servodatakabler og HC-SR04-datakablet føres gennem toppladen, mens Bluetooth-modulet er fastgjort til pladens underside ved hjælp af en neonformblok og varm lim. Kabelforvaltning af de resterende 18 servodatakabler skal være på plads, før ethvert forsøg på at fastgøre toppladen til bundpladen ved hjælp af 4 x M3 skruer, der passer ind i de 4 x M3 stand -offs, der blev fastgjort til bundpladen. Som en del af den øverste bundplades vedhæftningsproces skal alle seks Coax -servoer også placeres i deres korrekte position med lejebeslaget i bundpladehullet og servohovedet i toppladehornet. Når de er monteret, er toppen af de seks Coax servoer fastgjort med 6 M3 skruer. På grund af placeringen af servohornene til de seks Coax -servoer skulle de 4 x M3 -stand -offs reduceres i højden med 2 mm, så Coax -servolagrene sad korrekt i bundpladen.

HOVED

Hovedet består af to servoer 90 grader i forhold til hinanden, den ene er anbragt i kassen fastgjort til den øverste plade, og den anden er fastgjort til den første via servohornet ved hjælp af en U-formet sektion af messingplade. Det andet servos horn er fastgjort til et L -formet messingbeslag, der selv er fastgjort til en 70 mm x 70 mm x 50 mm kasse med to bolte og møtrikker. Boksen danner hovedet, inden i hvilket er installeret Ardcam kamera, HC-SR04 ultralydsmodul og Arduino V3 NodeMcu modul og strøm LED. Både ultralydsmodulet sender og modtager sensorhoveder stikker ud gennem kassens forside, ligesom kameralinsen. Omkring linsen på ydersiden af æsken er en 16 LCD Nero pixie ring. NodeMcu -strøm -LED'en ses via et hul i hovedets bagplade, strømkabel, datakabel fra ultralydsmodul og pixie Neon -datastrømkabler, der kommer ind via et hul mellem bagpladen og hovedpladen.

ELEKTRONIK

Følgende Fritzing -diagrammer viser hus og hovedelektronik. VCC- og GRD -linjerne er ikke vist for de 20 servoer for at gøre diagrammet mere klart. Bluetooth -modulet, via Android -appen., Styrer Hexapod -bevægelsen inklusive dets nakkeservoer. Det WIFI -baserede Arduino NodeMcu -modul styrer Arducam -kameramodulet. Alle servoer er fastgjort til Arduino sensorskærmen via en enkelt blok, der indeholder VCC, GRD og signallinjer. Standard 20 cm DuPont-jumperkabler bruges til at forbinde Bluetooth BT12, HC-SR04 og IC2 LCD.

BENKALIBRERING

Dette er et af de vanskeligste forberedelsesområder inden arbejdet med Hexapods bevægelse. Den første idé er at indstille alle ben til følgende, Coax servoer 90 grader, Femur servoer til 90 grader og Tibia servoer indstillet til 90 med den fysiske benstilling sat til 105 grader for ben 2, 4 og 6 og 75 grader til ben 1, 3 og 5. Hexapoden blev placeret på en plan overflade, der hvilede på de fire understøtninger under batterihuset. Det er ben, hvor de er placeret på lige store punkter mellem hvert ben og i lige stor afstand fra kroppen. Alle disse positioner var markeret på den jævne overflade. Under konstruktionen af benene blev midtpunktet for hver servo fundet, dette skulle være servos 90-graders position. Denne 90-graders standardposition bruges til alle servoer.

Coax servoer 2 og 5 indvendige flader er parallelle med hinanden, dette gælder servoer 1 og 6 og 3 og 4. Alle Femur og Coax servoer er fastgjort sammen ved 90 grader til hinanden i konstruktionsfasen. Alle Femur servoer har Femur armen fastgjort til dem i en 90 graders vinkel. Alle Tibia -servoer er fastgjort til Tibia ved 90 grader. 2, 4 og 6 Tibia servoer er fastgjort til lårbenets arm ved 105 grader, mens Tibia servoer 1, 3 og 5 er fastgjort til lårbenets arm ved 75 grader.

Det er vigtigt at bemærke, at under testning skal alle servoer overvåges for temperatur, en varm servo betyder, at servoen arbejder for hårdt og kan mislykkes, de fleste servoer vil være varme at røre ved.

Den indledende kalibrering er at flytte Hexapod fra sin hvilestilling, efter at den er blevet tændt, til en stående position, der er både stabil, stabil, plan og mest vigtig, at ingen af servoerne er overophedet. For at opretholde en stabil position er det nødvendigt at skrive til hver servo med en forsinkelse på mindre end 20 millisekunder, 10 millisekunder blev brugt. Alle servoer kan kun bevæge sig fra 0 til 180 grader og fra 180 grader tilbage til 0, så for alle Femur -servoer er 0 og 180 grader lodrette og 90 grader er vandrette.

Inden hver servo blev vedhæftet, blev der sendt en initialiseringsskrivning til hver af de tidligere definerede servoer, der gav den sin nuværende hvilevinkel, dvs. den aktuelle position, servoen er i, mens den hviler. Dette var 90 grader for alle Coax servoer, 55 grader for Femur og Tibia servoer 1, 3 og 5 og 125 grader for Femur og Tibia servoer 2, 4 og 6.

Det er vigtigt at bemærke, at batterier altid skal være fuldt opladet ved starten af kalibreringssessionen.

Hexapod starter altid fra en hvilestilling, idet hele kroppen understøttes af de fire fødder. Fra denne position cykler alle Femur og Tibia servoer fra deres startpositioner op til deres stående position, på hvilket tidspunkt alle servoer er 90 grader. For at fuldføre stående position udstedes "stand" -kommandoen. Denne kommando kræver, at alle ben løftes og sættes ned igen i to sæt med tre benbevægelser, ben 1, 5 og 4 og 2, 6 og 3.

Trin 8: SOFTWARE

Softwaren består af tre dele, del et er Arduino -koden, der kører på Arduino Mega, del to er Arduino -koden, der kører på NodeMcu -modulet i hovedet. Kommunikationen sker via Bluetooth BT12 -enheden, der modtager kommandoer fra Android -tabletten, nemlig en Samsung Tab 2, som kører en Android Studio -bygget brugerdefineret applikation. Det er denne applikation, der sender kommandoer til Hexapod. Den samme applikation modtager også live videofeed fra NodeMcu -modulet via dets indbyggede WIFI.

ANDROID KODE

Den skræddersyede Android -kode, udviklet ved hjælp af Android Studio, giver den platform, som applikationen med to skærme køres på. Applikationen har to skærme, hovedskærmen giver brugeren mulighed for at udstede kommandoer til Hexapod og se videofeedet, der kommer fra hexapodhovedet. Den anden skærm, der er tilgængelig via WIFI -knappen, giver brugeren mulighed for først at oprette forbindelse til hexapod Bluetooth og for det andet WIFI -hotspot, der genereres af NodeMCU Arduino -kortet i hexapodhovedet. Applikationen sender kommandoer med enkelt bogstav via en seriel 9600 Baud fra tabletten via den indbyggede Bluetooth til BT12 Bluetooth, der er knyttet til hexapoden.

ARDUINO KODE

Kodeudvikling startede med udviklingen af et testprogram, der var designet til at teste de grundlæggende funktioner i Hexapod, dens hoved og krop. Da hovedet og dets funktion er fuldstændig adskilt fra kroppen, blev dens softwareudvikling testet parallelt med kropsfunktionskoden. Hovedoperationskoden var stort set baseret på en tidligere udvikling med inklusion af servobevægelse. Koden omfattede betjening af et 16x2 LCD-display, HC-SR04 ultralydsmodul og en 16 LED lysring. Yderligere kodeudvikling var påkrævet for at give WIFI -adgang til livevideofeedet fra hovedet.

Kropsfunktionskoden blev oprindeligt udviklet til at give indledende servotilslutning og udgangsposition i ro. Fra denne position blev Hexapod programmeret til ganske enkelt at stå. Udviklingen fortsatte derefter med yderligere bevægelser af Hexapod og kombinationen af hoved- og kropskodesektioner med seriel kommunikation med Android -appen.

Test -servokoden tillod udvikling af ben- og kropsbevægelser, nemlig:

1. InitLeg - Gør det muligt at hvile benstilling, stående benstilling, krabbe indledende benposition for enten venstre eller højre gang, indledende benstilling til fremadgående eller bagudgående gang.

2. Wave - Tillader forbenene at vinke fire gange, før de vender tilbage til stående position.

3. TurnLeg- Tillader Hexapod at dreje til venstre eller højre.

4. MoveLeg- Tillader Hexapod at gå fremad eller bagud.

5. CrouchLeg- Tillader Hexapod at enten krumme fremad på sine forben eller bagud på sine bagben.

Benbevægelse er baseret på benpar, der arbejder sammen, så ben 1 og 2, 3 og 4, 5 og 6 fungerer som par. Bevægelse består af to grundlæggende handlinger, en rækkevidde og træk fremad og et skub bagud. For at gå baglæns vendes disse to bevægelser, så for eksempel at gå fremad trækker ben 1 og 2, mens ben 5 og 6 skubber, ben 3 og 4 giver stabilitet. Krabbeklædning er simpelthen de samme handlinger, men indstillet til 90 grader til kroppen, i dette tilfælde bevæger ben 3 og 4 også på samme måde som de andre ben. Mens gåbenpar bevæger sig skiftevis, mens krabbe -ben 1 og 5 fungerer som et par, mens ben 3 arbejder på alternative skridt til ben 1 og 5.

Bevægelse Funktionel beskrivelse følger for hver af de store bevægelsesfunktioner, som hver består af bevægelseselementer, der er samlet og handlet i en bestemt sekvens.

HØJNING: Fra en stående stilling bevæger alle Femur -servoer sig opad for at sænke kroppen på de fire understøtninger. På samme tid bevæger alle Tibia servoer sig alle indad.

STÅENDE: Fra hvilepositionen bevæger alle Tibia-servoer sig udad, når dette er fuldført, bevæger alle Femur-servoer sig til 90-graders position, endelig flytter alle Tibia-servoer sig til 90-graderspositionen samtidigt.

VENDE VENSTRE: Ben 1, 3 og 5 bevæger sig bagud væk fra hovedet med 45 grader, samtidig med at ben 2, 4 og 6 bevæger sig fremad mod hovedet. Når alle Coax-servoer er færdige, bevæger de sig fra deres nuværende position tilbage til standardpositionen på 90 grader, og denne bevægelse vil være mod uret mod kroppen.

Drejende til højre: Ben 1, 3 og 5 bevæger sig 45 grader frem mod hovedet, samtidig med at ben 2, 4 og 6 bevæger sig baglæns væk fra hovedet. Når alle Coax-servoer er færdige, bevæger de sig fra deres nuværende position tilbage til standardpositionen på 90 grader, og denne bevægelse vil være med uret til kroppen.

CROUCH FREM: Ben 1 og 2 sænkes ved hjælp af Femur og Tibia servoer, mens ben 5 og 6 hæves ved hjælp af deres Femur og Tibia servoer, ben 3 og 4 forbliver i standardpositionen.

CROUCH BACKWARD: Ben 1 og 2 hæves ved hjælp af Femur og Tibia servoer, mens ben 5 og 6 sænkes ved hjælp af deres Femur og Tibia servoer, ben 3 og 4 forbliver i standardpositionen.

WAVING: Denne rutine bruger kun ben 1 og 2. Coax servoer bevæger sig i en 50-graders bue, mens lårbenet og skinnebenet også bevæger sig i en 50-graders bue. Ben 3 og 4 bevæger sig frem mod hovedet med 20 grader, hvilket giver en mere stabil platform.

FREMTUR: Ben 1 og 6, 2 og 5 og 3 og 4 skal arbejde sammen. Så mens ben 1 trækker i kroppen, skal ben 6 skubbe til kroppen, så snart denne handling er fuldført, skal ben 2 og 5 udføre den samme handling, mens hver af disse handlingscyklusser forekommer ben 3 og 4 skal udføre deres gå videre rutine.

De første testbenmodulfunktioner tillod et design for hver af de tre benbevægelser. Tre benbevægelser er påkrævet, da de modsatte ben simpelthen udfører de omvendte bevægelser. Et nyt kombineret ben 1, 3 og 6 modul blev udviklet, testet og kopieret til et andet omvendt ben 2, 4 og 5 ben modul. Afprøvning af hexapodbenets bevægelser blev opnået ved at placere hexapoden på en hævet blok, så benene fik fuld bevægelse uden at røre jorden. Målinger blev taget, mens benene bevægede sig, og det blev konstateret, at alle ben bevæger sig vandret en afstand på 80 mm, mens de samtidig forblev 10 mm fra jorden på deres laveste punkt under bevægelse. Det betyder, at Hexapod simpelthen vil vugge fra side til side under bevægelse, og at alle ben vil have en lige trækkraft under bevægelse.

BAGGRUND:

KRABVANDRING VENSTRE: Indledende bevægelse starter med ben 1, 2, 5 og 6, der alle roterer 45 grader mod kørselsretningen. Dette placerer alle ben på linje med kørselsretningen, ben 3 og 4 er allerede i den korrekte retning. Lårbenet og skinnebenet for hvert ben starter i standard 90-graders position. Denne gangart består af to sæt med tre ben, der arbejder på alternative skridt, ben 1, 5 og 4 og ben 3, 2 og 6. Hvert sæt med tre ben arbejder ved at trække med forbenene, det vil sige 1 og 5 og skubbe med ben 4, denne bevægelse vendes derefter, så ben 3 trækker, mens ben 2 og 6 skubber, ingen af Coax -servoerne gør noget arbejde under denne bevægelse. Hvert sæt med tre ben løfter det stationære andet sæt ben, når det første sæt bevæger sig.

KRABB GÅR HØJRE:

BEMÆRK: Hovedet vil dreje i retning af krabbegangen enten til venstre eller højre. Dette gør det muligt at bruge HC-SR04 ultralydsdetektering, mens du går.

BENINDSTILLING: For at Hexapod kan stå i niveau, er det nødvendigt for alle ben at stå med samme højde. Placering af Hexapod på blokke og derefter brug af stativ- og hvilerutiner var det muligt at måle afstanden fra jorden for hver endeeffektor. Jeg tilføjede gummistøvler til hver endeeffektor for først at tilføje greb, men også for at muliggøre en lille justering af benlængden med et mål på 5 mm eller mindre mellem alle benene. Det var let at indstille hver servo til 90 grader, men vedhæftningen af hvert servohorn til begge ender af lårbenet kan og forårsagede problemer, da meget små forskelle i rotationsvinklerne på hornets indre rygsøjler får benhøjder til at afvige med 20 mm. Skift af skruerne til forskellige fikseringshuller i servohornene korrigerede denne 20 mm højdeforskel. Jeg var fast besluttet på at løse dette problem ved hjælp af denne metode frem for at skulle kompensere for disse højdeforskelle ved hjælp af software.

Anbefalede: