Innehållsförteckning:

Jasper Arduino Hexapod: 8 steg (med bilder)
Jasper Arduino Hexapod: 8 steg (med bilder)

Video: Jasper Arduino Hexapod: 8 steg (med bilder)

Video: Jasper Arduino Hexapod: 8 steg (med bilder)
Video: Jasper Arduino Hexapod Robot 2024, November
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

Projektdatum: november 2018

ÖVERSIKT (JASPER)

Sex ben, tre servo per ben, 18 servosystem som styrs av en Arduino Mega. Servos anslutna via Arduino Mega sensor shield V2. Kommunikation med Hexapod via Bluetooth BT12 -modul som pratar med skräddarsydd Android -applikation. Systemet drivs av 2 x 18650, 3400mAh och 2 x 2400mA batteri som var och en hålls med kardborre under hexapodens kropp. En strömbrytare för både servo- och kontrollsystem tillhandahålls liksom en grön LED -indikatorlampa på hexapodens huvud. Kommandon upprepas till en 16x2 LCD -skärm. Videoflöde, ljusring och undvikande av ultraljudshinder finns i huvudet.

OBS: För förnuftets skull rekommenderar jag starkt att du använder servon av god kvalitet, jag började med MG995 -servon, 20 av dem, varav 11 antingen brann ut, förlorade förmågan att centrera eller helt enkelt slutade fungera.

www.youtube.com/embed/ejzGMVskKec

Steg 1: UTRUSTNING

UTRUSTNING
UTRUSTNING
UTRUSTNING
UTRUSTNING
UTRUSTNING
UTRUSTNING
UTRUSTNING
UTRUSTNING

1. 20 x DS3218 servon

2. 1x Hexapod -baskit

3. 1x Arduino Mega R3

4. 1x Arduino Mega sensorsköld v2

5. 1 x 2 fack 18650 batterihållare

6. 2 x tvåpolig strömbrytare

7. Grönt LED -ljus och 220kohm motstånd

8. 2 x 6v 2800mAh batteripaket med kardborreband

9. 2 x 18650 x 3400mAh batterier

10. 1x HC-SR04 ekolodsmodul

11. 1x BT12 Bluetooth -modul

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

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

14. 1 x Pixie Neon 16 LCD -ljusring

15. 1 x 16x2 rad LCD -skärm med ansluten IIC -adapter.

16. 1 x 5v strömkontakt för Arduino Mega

17. 1 x 5v mikro -USB -kontakt för NodeMcu -modul.

18. 1 x DC till DC Buck -omvandlarmodul

19. 1 x 70 mm x 120 mm x 39 mm fyrkantig svart plastlåda (kropp)

20. 1 x 70 mm x 50 mm x 70 mm svart plastlåda (huvud)

21. 4 x 40 mm M3 -mässingsstativ plus 4 gummistödsstöd

22. Olika han- till hankopplingskablar, lödning, m3 skruvar och bultar, och hett lim

Rörelse av ben med skräddarsydd logik. Kamerarörelse via två oberoende servon som ger upp, ner, vänster, höger och centrerad rörelse. Kameran styrs av WIFI -anslutning, visas i WebView -vyn i Android -applikationen.

Steg 2: SERVOS

SERVOS
SERVOS
SERVOS
SERVOS
SERVOS
SERVOS

Var och en har max 180 grader till

minst 0 graders rörelse.

Varje servo identifierad med kombination av tre nummer, LegCFT; där C är kroppen (COXA), F är låret (FEMUR) och T är armbågen (TIBIA), så 410 skulle hänvisa till det fjärde benet och Tibia servo, på liknande sätt skulle 411 hänvisa till det fjärde benet och Tibia servo. Numreringssekvensen skulle vara 100 till 611. Varje servoben ska ha gummibaserad fot för att dämpa stötar och för att ge bättre grepp.

Ben 1: 100, 110, 111 Fram

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 Rygg

Ben 6: 600, 610, 611

Standardläget för alla Coax Servos är 90 grader.

Standardpositionen för Femur Servos är 90 grader, 45 grader är viloläget.

Standardläge för Tibia Servos för alla ben är 90 grader, ben 1, 3 och 5 använder 175 grader som viloläge och ben 2, 4 och 6 använder 5 grader.

Hals 1: 700 Begränsad till 75 till 105 grader för rörelse upp och ner

Hals 2: 800 Begränsad till 45 till 135 grader för vänster och höger rörelse

Servorörelse begränsad till tre "skriver" innan en fördröjning på 10 millisekunder ingår, innan ytterligare "skriv" -kommandon utfärdas. Detta hjälper till att minska belastningen på batterierna.

Steg 3: KOMMANDOER

KOMMANDOER
KOMMANDOER
KOMMANDOER
KOMMANDOER
KOMMANDOER
KOMMANDOER

A = Stopp - Stå i standardläge.

B = framåt - walk_forward

C = omvänd - walk_backward

D = höger - sväng höger

E = vänster - sväng_vänster

F = vänster i sidled - crab_left

G = höger i sidled - crab_right

H = Rear_crouch (ben 1 och 2 maximalt, 3 och 4 ben i neutralläge, ben 5 och 6 i lägsta läge)

I = Front_crouch (ben 1 och 2 i lägsta position, 3 och 4 ben i neutralläge, ben 5 och 6 vid maxläge)

J = kamera galopperad - mitt (hals 1 och hals 2 i mittläge, standardläge)

K = kamera vänster - pan_vänster (hals 1, mittläge, hals 2 servo lägsta position)

L = kamera höger - pan_right (Neck 1, mittläge, Neck 2 servo max position)

M = kamera upp - pan_up (nack 1 maximal position, hals 2 servo mittläge)

N = kamera ner - pan_down (minsta position 1, hals 2 servo mittläge)

O = Vila (Hexapod) sitter på stöd.

P = Standing Up - Hexapod står upp till standardpositionen.

F = Tänds

R = Grönt ljus på Pixie Neon light ring.

S = Rött ljus på Pixie Neon light ring.

T = Blått ljus på Pixie Neon light ring.

U = Vitt ljus på Pixie Neon light ring.

V = Frambenen vinkar.

W = Ljudhorn.

X = Svep huvudet från vänster till höger.

Y = Play Tune.

Steg 4: RÖRELSE

RÖRELSE
RÖRELSE
RÖRELSE
RÖRELSE
RÖRELSE
RÖRELSE

Coax servopositionen är längsgående mot kroppens axel så rakt fram är 0 grader och direkt bak är 180 grader. Denna Coax och alla andra servon skulle dock begränsas till 45 till 135 grader.

Benrörelse framåt, bakåt, vänster och höger skulle alla börja med att lyfta benet med hjälp av lårbenet och skenbenet, sedan följt av kroppsservorörelsen och slutligen sänkning av samma ben igen med hjälp av lårbenet och skenbenet..

Framåt och bakåt

För att flytta framåt eller bakåt bena i par, 1 och 2, 3 och 4, 5 och 6. En enkel rörelse framåt består av ben 1 och 2 som rör sig från sin nuvarande position till så långt fram som möjligt, sedan ben 3 och 4, och slutligen upprepar 5 och 6 ben samma åtgärd. Sedan flyttar alla sex Coax -servon från detta förlängda framåtläge tillbaka till sitt ursprungliga utgångsläge. Baksidan av denna process används för att gå bakåt. Som en del av förflyttningsprocessen kommer HC_SR04 ultraljudsenheten att kontrollera om det finns hinder framåt och om en hittas, vrid Hexapod antingen vänster eller höger slumpmässigt.

Vänster och höger

För att flytta vänster eller höger benpar arbetar tillsammans men i motsatta riktningar. Så till exempel för att svänga höger ben 1 flyttas från det aktuella läget tillbaka till 135 graders läge medan ben 2 rör sig framåt till 45 graders läge. Detta upprepas för benpar 3 och 4 och 5 och 6 ben. Vid vilken tidpunkt förflyttar Coax -servon sin ursprungliga position tillbaka till sin nya position för att vrida kroppen i rörelseriktningen, dvs. höger. Denna process fortsätter tills den nödvändiga rotationen till vänster har slutförts. Baksidan av denna process används för att svänga vänster, så ben 1 rör sig från sin nuvarande position framåt till 45-gradersläget, medan ben 2 rör sig bakåt till 135-gradersläget.

Stå upp och vila

Båda dessa processer använder inte Coax -servo på något av benen, så för att stå upp rör sig Tibia -servon för alla ben från sin nuvarande position till sina maximala 45 grader, medan samma Femur -servon vilar till sitt lägsta läge, 175 eller 5 grader. Samma rörelse gäller Tibia -servon som rör sig till maximalt 45 grader, för stående och minimalt, dvs. 175 eller 5 grader för vila.

Crouch framåt och Crouch bakåt

Även här är processerna spegelbilder av varandra. För att huka framåt är ben 1 och 2 i sitt lägsta läge, medan ben 5 och 6 är på sitt högsta läge. I båda fallen intar benen 4 och 5 ett neutralt läge som är i linje med benen 1 och 2 och 5 och 6. För att böja bakåt är ben 1 och 2 i sitt högsta läge medan benen 5 och 6 är i sitt lägsta läge.

Steg 5: HEAD CAMERA/SONAR

HEAD CAMERA/SONAR
HEAD CAMERA/SONAR
HEAD CAMERA/SONAR
HEAD CAMERA/SONAR
HEAD CAMERA/SONAR
HEAD CAMERA/SONAR

Huvudet består av en fyrkantig plastlåda 38mm x 38mm x 38mm med ett avtagbart lock. Lådan/huvudet kommer att ha begränsad vertikal och horisontell rörelse. Rörelse kommer att uppnås med hjälp av två servon, en fäst vid robotens kropp och en andra fäst vid den första servokroppen och armen fäst vid huvudet. 7,4v som levereras av två 18650 batterier kommer att driva Arduino V3 NodeMcu Lua WIFI ESP8266 12E IOT utvecklingsbräda DEVKIT, ansluten till en Arducam Mini Module Camera Shield med OV2640 2 megapixels objektiv. Detta arrangemang gör att roboten kan upptäcka hinder och strömma livevideo via inbyggt Wi-Fi. Ekolod som använder en HC-SR04 och möjlig ljushanteringsinformation skulle flöda tillbaka till Arduino Mega.

Mitt tack till Dmainmun för hans artikel om Arducam Instructables, som var till stor hjälp i min första förståelse för hur Arducam kan användas för att strömma video.

Batteri

Det beslutades att använda två batteripaket, ett för huvudets komponenter och Arduino Mega -kort, och ett andra paket för att leverera ström till alla servon. Det första paketet bestod av 2 x 18650 3400mAh batterier som levererar 7,4v. Det andra paketet bestod av 2 x 6V 2800mAh batteripaket anslutna parallellt vilket ger en 6,4V försörjning men ökad kapacitet på 5600mAh fäst på undersidan av Hexapod med kardborreband.

Steg 6: BENRÖRELSE

BENRÖRELSE
BENRÖRELSE
BENRÖRELSE
BENRÖRELSE
BENRÖRELSE
BENRÖRELSE

Armar kan antingen fungera i par eller enskilt. Varje arm består av kroppsled som kallas en koax med 45 till 135 graders rörelse, en lårled som heter Femur, med 45 till 135 graders rörelse, och slutligen en armbågsled som heter Tibia, eller ändeffekt, med 45 till 135 graders rörelse. Skräddarsydd programvara skrevs för att ge rörelser i benen.

Typer av benrörelser:

För Coax är 45 grader vända bakåt från huvudet, 90 grader är neutralläge och 135 grader är vända framåt.

För lårbenet är 45 grader det högsta läget från marken, 90 grader är det neutrala läget och 135 grader är det lägsta läget från marken.

För skenbenet är 45 grader det mest avlägsna läget från kroppen, 90 grader är neutralläget och 135 grader är det närmaste läget till kroppen.

Antag att alla servon är i neutralläge, 90 grader.

Framåt: Ben 1 och 2, Lårbenet lyfts till 135 grader, Coax rör sig till 45 grader, Tibia rör sig till 45 grader mest avstånd från kroppen, Lårbenet sänks till 45 grader. Detta upprepas för benpar 3 och 4 och benpar 5 och 6. Alla 6 Coax -servon rör sig från 45 grader bakåt till 90 grader, neutralläge, alla 6 Femur -servon rör sig från 45 grader upp till 90 grader, neutralläge. Slutligen rör sig alla Tibia -servon upp från 45 grader till 90 grader, neutralläge.

Omvänd: Börjar med ben 5 och 6, sedan 3 och 4, och slutligen ben 1 och 2, annars är rörelsen densamma för Coax, Femur och Tibia.

Vänster: Ben 1, 3 och 5 rör sig i omvänd riktning, medan ben 2, 4 och 6 rör sig framåt. Både rörelse framåt och bakåt överensstämmer med standardrörelsen framåt och bakåt. För att slutföra svängen alla sex Coax -servon, flytta 45 grader vilket vänder kroppen.

Höger: Ben 2, 4 och 6 rör sig i omvänd riktning, medan ben 1, 3 och 5 rör sig i en riktning framåt. Både rörelse framåt och bakåt överensstämmer med standardrörelsen framåt och bakåt. Koaxrörelse liknar ovan men i omvänd riktning.

Vila: Alla Coax- och Femur -servon i neutralläge, alla Tibia -servon i lägsta läge 45 grader, som effektivt hukar både fram-, mitten- och bakbenen.

Crouch bak, stå fram: Ben 1 och 2 i högsta läget, ben 3 och 4 i neutralt läge och ben 5 och 6 i lägsta läge.

Stå bak, huk fram: Ben 1 och i lägsta läge, ben 3 och 4 i neutralt läge, och ben 5 och 6 i högsta position.

Krabba vänster: Ben 1 och 5 lyfter och sträcker sig utåt till vänster, samtidigt som ben 2 och 6 lyfter och drar ihop sig under kroppen. Med alla dessa fyra ben på marken återvänder alla Tibias till sin neutrala position. Slutligen upprepar ben 3 och 4 samma process.

Krabba höger: Ben 2 och 6 lyfter och sträcker sig utåt till höger, samtidigt som ben 1 och 5 lyfter och drar ihop sig under kroppen. Med alla fyra av dessa ben på marken återvänder alla skenben till sitt neutrala läge. Slutligen upprepar ben 3 och 4 samma process.

Vänster huvudrörelse: hals 1 servo 45 grader. Båda servona återgår till 90 neutralläge.

Höger huvudrörelse: hals 1 servo 135 grader

Upp huvudrörelse: hals 2 servo 45 grader

Rörelse nedåt huvud: hals 2 servo 135 grader

Panhuvudrörelse: nacke 2 rör sig från 45 till 135 grader

SERVOS

Efter inledande testning av MG995 och MG996 servon där alla ersattes. Alla 20 servon ersattes med DS32228 20kg servon vilket gav mycket förbättrad centrering och ökad lastkapacitet.

Det är viktigt att noggrant testa varje servo med hjälp av ett lämpligt testprogram. Jag modifierade det enkla "svepande" exempelprogrammet för att specifikt testa för 0, 90 och 180 positioner, denna testrutin kördes i minst 5 minuter för varje servo och upprepades sedan en dag senare.

OBS! Om du använder ett vanligt Arduino Uno -kort som drivs med en USB -kabel kanske inte ger tillräckligt med spänning för att köra vissa servon. Jag upptäckte att 4,85v servon som mottogs från Uno orsakade oregelbundna beteenden med DS3218 -servon, vilket ökade denna spänning till 5,05v botade detta problem. Så jag bestämde mig för att köra servon på 6v. Till slut fann jag att en spänning på 6,4v var nödvändig eftersom 6v orsakade oregelbundna beteenden hos servon.

Steg 7: KONSTRUKTION

KONSTRUKTION
KONSTRUKTION
KONSTRUKTION
KONSTRUKTION
KONSTRUKTION
KONSTRUKTION

BEN

Började med att lägga ut Hexapod kit delar. Alla servo -cirkulära horn krävde förstoring av matthålet i båda ändarna av lårbenet och alla Coax -hål. Varje servohorn fästes på motsvarande Coax och Femur med fyra skruvar och en femte skruv genom mitten av servohuvudet. Alla servokroppar var fästa med fyra bultar och muttrar. Coax servofästet, för vart och ett av de sex benen, hade ett lager fäst vid botten av fästet med en enda bult och mutter. Varje Coax servomontage fästes med fyra bultar och muttrar till dess Femur servomontage med denna montering roterad 90 grader. Huvudet på Femur servo fästes i ena änden av Femur armen med den andra änden av Femur fäst vid Tibia servo huvudet. De sex Tibia -servona fästes på toppen av de sex benen med fyra bultar och muttrar. Varje benändes effektor var täckt med en mjuk gummistövel för att ge extra grepp. Det visade sig att det medföljande servohornet var för stort för att fästas i Coax-, Femur- och Tibia -anslutningarna så att alla mitthål förstorades till 9 mm. Mitt tack till “Toglefritz” för hans Capers II instruerbara angående konstruktionselementen i Hexapod -satsen. Jag avvek dock från konstruktionen i ett område nämligen fästningen av servohornen på båda ändarna av lårbenet. Jag bestämde mig för att förstora mitthålet på lårbenet för att låta servohornets mitt passera genom det, vilket ger servohornet extra styrka när det var närmare servon och dessa två leder upplevde maximalt vridmoment. Varje servohorn fästes på lårbenet med två M2.2 självgängande skruvar, ändarna på dessa skruvar avlägsnades och placerades platta. Alla M3 -bultar hade låstät applicering.

KROPP

Kroppen består av två plattor var och en med sex hål, varje hål som används för att fästa Coax servohornet. Två 6V 2800mAh batterier fästes på undersidan av bottenplattan med kardborreband. Fyra M3 -avstånd som sträckte sig precis förbi botten av batterihållaren var fästa, var och en med en mjuk gummistövel som gled ner på botten, vilket ger en stabil bas som Hexapod kan vila på. Den övre delen av bottenplattan har Arduino Mega och dess sensorsköld fäst med fyra 5 mm avstånd. På toppen av bottenplattan fästes 4 x M3 -stativ 6 cm i höjd, dessa omgav Arduino Mega och gav stöd för topplattan. Topplattan hade en 120 mm x 70 mm x 30 mm låda fäst vid den, den här kommer att rymma den första av nackserverna och LCD -skärmen. En andra 2 -fack, 2 x 18650 batterihållare var fäst på undersidan av topplattan på baksidan av Arduino Mega -kortet mot framsidan av Hexapod.

Topplattan har sex servohorn vardera fästa med fyra M2.2 -skruvar. På toppen av plattan är en 70 mm x 120 mm x 30 mm låda installerad i vilken en 2 -fack 18650 batterihållare, tvåpolig switch, grön LED och en IC2 16 x 2 LCD -skärm är installerade. Dessutom är den första halsen servo också installerad, ström och den andra halsen servodatakabel passerar genom ett hål för att mata den andra servon och Arduino V3 NodeMcu -modulen. Ytterligare en datakabel passerar genom den övre lådan och matar HC-SR04 ultraljudsmodulen, återigen placerad i huvudet. En andra data- och strömkabel är också förbi till huvudet för att driva pixie led -ringen.

De två servodatakablarna och datakabeln HC-SR04 matas genom topplattan medan Bluetooth-modulen är ansluten till plattans undersida med en neonformad platta och varmt lim. Kabelhantering av de återstående 18 servodatakablarna måste vara på plats innan varje försök att fixera topplattan till bottenplattan med 4 x M3 -skruvar som passar in i de 4 x M3 -ställen som fästes på bottenplattan. Som en del av den övre bottenplattans fästprocess måste alla sex Coax -servon också placeras i rätt läge med lagerbeslaget i bottenplattans hål och servohuvudet i toppplåtens horn. Efter montering sitter topparna på de sex Coax -servona fast med 6 M3 -skruvar. På grund av servohornens position för de sex Coax -servona behövde de 4 x M3 -ställen minskas i höjd med 2 mm, så att Coax servolager satt korrekt i bottenplattan.

HUVUD

Huvudet består av två servon 90 grader mot varandra, ett inrymt i lådan fäst på topplattan, och det andra fäst på det första via servohornet med en U-formad sektion av mässingsplatta. Det andra servohornet är fäst på en L -formad mässingsfäste som i sig är fäst vid en 70 mm x 70 mm x 50 mm låda med två bultar och muttrar. Lådan utgör huvudet, inuti vilket är installerad Ardcam-kamera, ultraljudsmodul HC-SR04 och Arduino V3 NodeMcu-modul och ström-LED. Både ultraljudsmodulen sänder och tar emot sensorhuvuden sticker ut genom lådans framsida liksom kameralinsen. Runt linsen på utsidan av lådan finns en 16 LCD Nero pixie ring. NodeMcu -strömindikatorn ses via ett hål i huvudets bakre platta, strömkabel, datakabel från ultraljudsmodulen och pixie Neon -datakraftkablar går in via ett hål mellan bakplattan och huvudplattan.

ELEKTRONIK

Följande Fritzing -diagram visar kropps- och huvudelektroniken. VCC- och GRD -linjerna visas inte för de 20 servona för att underlätta diagrammet. Bluetooth -modulen, via Android -appen., Styr Hexapod -rörelsen inklusive dess nackservos. Den WIFI -baserade Arduino NodeMcu -modulen styr Arducam -kameramodulen. Alla servon är anslutna till Arduino sensorskölden via ett enda block som innehåller VCC, GRD och signalledningar. Standard 20 cm DuPont-bygelkablar används för att ansluta Bluetooth BT12, HC-SR04 och IC2 LCD.

BENKALIBRERING

Detta är ett av de svåraste beredningsområdena innan arbetet med Hexapods rörelse. Den första idén är att alla ben ska ställas in på följande, Coax servos 90 grader, Femur servos till 90 grader och Tibia servos inställda på 90 med den fysiska benpositionen inställd på 105 grader för ben 2, 4 och 6 och 75 grader för ben 1, 3 och 5. Hexapoden placerades på en plan yta som vilade på de fyra stöden under batterihuset. Det är ben där de är placerade på lika avstånd mellan varje ben och på lika avstånd från kroppen. Alla dessa positioner var markerade på den plana ytan. Under konstruktionen av benen hittades mittpunkten för varje servo, detta borde vara servos 90-graders position. Denna 90-graders standardposition används med alla servon.

Coax servos 2 och 5 innerytor är parallella med varandra, detta gäller servos 1 och 6, och 3 och 4. Alla Femur och Coax servos är fixerade tillsammans i 90 grader mot varandra under konstruktionsfasen. Alla Femur-servon har femurarmen fäst vid dem i en 90-graders vinkel. Alla Tibia -servon är fästa på Tibia vid 90 grader. 2, 4 och 6 Tibia -servon är fästa på lårbenarmen vid 105 grader, medan Tibia -servon 1, 3 och 5 är fästa på lårbenets arm vid 75 grader.

Det är viktigt att notera att vid testning bör alla servon övervakas för temperatur, en varm servo betyder att servon arbetar för hårt och kan misslyckas, de flesta servon kommer att vara varma vid beröring.

Den första kalibreringen är att flytta Hexapod från sitt viloläge, efter att ha slagits på, till ett stående läge som är både stabilt, stabilt, jämnt och det viktigaste är att ingen av servona är överhettade. För att behålla en stabil position är det nödvändigt att skriva till varje servo med en fördröjning mindre än 20 millisekunder, 10 millisekunder användes. Alla servon kan bara röra sig från 0 till 180 grader och från 180 grader tillbaka till 0, så för alla Femur -servon är 0 och 180 grader vertikala och 90 grader är horisontella.

Innan varje servo fästes skickades en initialiseringsskrivning till var och en av de tidigare definierade servon som gav den sin nuvarande vilovinkel, dvs. den aktuella positionen som servon befinner sig i medan den vilar. Detta var 90 grader för alla Coax servon, 55 grader för Femur och Tibia servos 1, 3 och 5 och 125 grader för Femur och Tibia servos 2, 4 och 6.

Det är viktigt att notera att batterierna alltid ska vara fulladdade i början av kalibreringssessionen.

Hexapoden utgår alltid från en viloläge, hela kroppen stöds av de fyra fötterna. Från denna position cyklas alla Femur- och Tibia -servon från sina startpositioner upp till sitt stående läge, då är alla servon 90 grader. För att slutföra den stående positionen utfärdas "stå" -kommandot. Detta kommando kräver att alla ben lyfts upp och sätts ner igen i två uppsättningar av tre benrörelser, ben 1, 5 och 4 och 2, 6 och 3.

Steg 8: PROGRAMVARA

Programvaran består av tre delar, del ett är Arduino -koden som körs på Arduino Mega, del två är Arduino -koden som körs på NodeMcu -modulen i huvudet. Kommunikationen sker via Bluetooth BT12 -enheten som tar emot kommandon från Android -surfplattan, nämligen en Samsung Tab 2, som kör en Android Studio -byggd anpassad applikation. Det är denna applikation som skickar kommandon till Hexapod. Samma applikation tar också emot livevideoflöde från NodeMcu -modulen via dess inbyggda WIFI.

ANDROID -KOD

Den skräddarsydda Android -koden, utvecklad med Android Studio, tillhandahåller plattformen som applikationen för två skärmar körs på. Programmet har två skärmar, på huvudskärmen kan användaren utfärda kommandon till Hexapod och se videoflöden som kommer från hexapodhuvudet. Den andra skärmen, som nås via WIFI -knappen, tillåter användaren att ansluta till för det första hexapoden Bluetooth och för det andra WIFI -hotspot som genereras av NodeMCU Arduino -kortet i hexapodhuvudet. Programmet skickar kommandon med en bokstav, via en seriell 9600 Baud, från surfplattan via den inbyggda Bluetooth till BT12 Bluetooth ansluten till hexapoden.

ARDUINO -KOD

Kodutvecklingen började med utvecklingen av ett testprogram som var utformat för att testa de grundläggande funktionerna i Hexapod, dess huvud och kropp. Eftersom huvudet och dess funktion är helt separat från kroppen testades dess mjukvaruutveckling parallellt med kroppsfunktionskoden. Huvudoperationskoden var till stor del baserad på en tidigare utveckling med inkludering av servorörelse. Koden inkluderade drift av en 16x2 LCD-skärm, HC-SR04 ultraljudsmodul och en 16 LED-ljusring. Ytterligare kodutveckling krävdes för att ge WIFI -åtkomst till livevideoflöden från huvudet.

Kroppsfunktionskoden utvecklades ursprungligen för att ge initial servofäste och utgångsläge i vila. Från denna position var Hexapoden programmerad att helt enkelt stå. Utvecklingen fortsatte sedan med ytterligare rörelser av Hexapod och kombinationen av huvud- och kroppskodssektionerna med seriekommunikationen med Android -appen.

Testservokoden tillät utveckling av ben- och kroppsrörelser, nämligen:

1. InitLeg - Medger vilolägesläge, stående benläge, krabba initial benläge för antingen vänster eller höger gång, initial benställning för framåt eller bakåtgående gång.

2. Wave - Tillåter frambenen att vinka, fyra gånger innan de återgår till stående position.

3. TurnLeg- Låter Hexapoden svänga åt vänster eller höger.

4. MoveLeg- Låter Hexapoden gå framåt eller bakåt.

5. CrouchLeg- Tillåter Hexapoden att antingen huka framåt på frambenen eller bakåt på bakbenen.

Benrörelserna bygger på att par ben arbetar tillsammans, så ben 1 och 2, 3 och 4, 5 och 6 fungerar som par. Rörelse består av två grundläggande åtgärder, en framåtsträckning och dragning, och en bakåtdrivning. För att gå bakåt är dessa två rörelser omvända, så att till exempel gå framåt, ben 1 och 2 drar, medan ben 5 och 6 skjuter, ben 3 och 4 ger stabilitet. Krabba promenader är helt enkelt samma handlingar men inställda på 90 grader mot kroppen, i detta fall rör ben 3 och 4 också på samma sätt som de andra benen. Medan gåbenpar rör sig omväxlande, men medan krabba går ben 1 och 5 som ett par medan ben 3 arbetar på alternativa steg till ben 1 och 5.

Rörelse Funktionsbeskrivning följer för var och en av de stora rörelsefunktionerna som var och en består av rörelseelement sammanförda och agerade i en uppsatt sekvens.

VILNING: Från en stående position rör sig alla Femur -servon uppåt för att sänka kroppen på de fyra stöden. Samtidigt rör sig alla Tibia -servon inåt.

STÅENDE: Från viloläget rör sig alla Tibia-servon utåt, när detta är klart flyttar alla Femur-servon till 90-gradersläge, slutligen flyttar alla Tibia-servon till 90-gradersläget samtidigt.

VÄNT VÄNSTER: Ben 1, 3 och 5 rör sig bakåt från huvudet med 45 grader, samtidigt som ben 2, 4 och 6 rör sig framåt mot huvudet. När alla Coax-servon är färdiga flyttar de från sin nuvarande position tillbaka till standard 90-graders position, denna rörelse skulle vara moturs mot kroppen.

VÄNGER HÖGER: Ben 1, 3 och 5 rör sig framåt mot huvudet med 45 grader, samtidigt som ben 2, 4 och 6 rör sig bakåt från huvudet huvudet. När alla Coax-servon är färdiga flyttar de från sin nuvarande position tillbaka till standard 90-graders position, denna rörelse skulle vara medurs till kroppen.

CROUCH FORWARD: Ben 1 och 2 sänks med Femur och Tibia servos, medan ben 5 och 6 höjs med femur och Tibia servos, ben 3 och 4 förblir i standardläget.

FRAMBAKGRUND: Ben 1 och 2 är höjda med femur- och tibia -servon, medan ben 5 och 6 sänks med deras lårben- och tibia -servon, ben 3 och 4 förblir i standardpositionen.

VINNING: Denna rutin använder bara ben 1 och 2. Coax-servon rör sig i en 50-graders båge, medan lårbenet och skenbenet också rör sig i en 50-graders båge. Ben 3 och 4 rör sig framåt mot huvudet med 20 grader, detta ger en mer stabil plattform.

FRAMGÅNG: Ben 1 och 6, 2 och 5 och 3 och 4 måste fungera tillsammans. Så medan ben 1 drar i kroppen måste ben 6 trycka på kroppen, så snart denna åtgärd är klar måste ben 2 och 5 utföra samma åtgärd, medan var och en av dessa åtgärdscykler sker ben 3 och 4 måste utföra sina gå vidare rutin.

De första testbenmodulens funktioner möjliggjorde en design för var och en av de tre benrörelserna. Tre benrörelser krävs eftersom motsatta ben helt enkelt utför omvända rörelser. En ny kombinerad ben 1, 3 och 6 modul utvecklades, testades och kopierades för en andra omvänd ben 2, 4 och 5 ben modul. Att testa hexapodbenets rörelser uppnåddes genom att placera hexapoden på ett upphöjt block så att benen till fullo rör sig utan att röra marken. Mätningar togs medan benen rörde sig och det visade sig att alla ben rör sig horisontellt ett avstånd på 80 mm samtidigt som de förblev 10 mm från marken vid sin lägsta punkt under rörelse. Det betyder att Hexapod helt enkelt kommer att gunga från sida till sida under rörelse och att alla ben kommer att ha samma dragkraft under rörelse.

BAKGRUND:

KRABBVANDRING VÄNSTER: Initial rörelse börjar med ben 1, 2, 5 och 6 som alla roterar 45 grader mot färdriktningen. Detta placerar alla ben i linje med färdriktningen, ben 3 och 4 är redan i rätt riktning. Lårbenet och skenbenet på varje ben som börjar i standardläget 90 grader. Denna gång består av två uppsättningar med tre ben som arbetar på alternerande steg, ben 1, 5 och 4 och ben 3, 2 och 6. Varje uppsättning med tre ben fungerar genom att dra med frambenen, dvs 1 och 5 och trycka med ben 4, denna rörelse vänds sedan så ben 3 drar medan ben 2 och 6 trycker, ingen av Coax -servon gör något arbete under denna rörelse. Varje uppsättning med tre ben lyfter den stationära andra uppsättningen ben när den första uppsättningen rör sig.

KRABBVANDRING HÖGER:

OBS: Huvudet kommer att vända i riktning mot krabban promenad antingen vänster eller höger. Detta gör att ultraljudsdetekteringen HC-SR04 kan användas när du går.

BENINSTÄLLNING: För att Hexapoden ska stå vågrätt är det nödvändigt att alla ben står med samma höjd. Att placera Hexapod på block och sedan använda stativ- och vilorutiner var det möjligt att mäta avståndet från marken för varje ändeffektor. Jag lade till gummistövlar till varje ändeffekt för att först lägga till grepp men också för att möjliggöra en liten justering av benlängden, med målet 5 mm eller mindre mellan alla ben. Att ställa in varje servo till 90 grader var enkelt, men fästningen av varje servohorn på båda ändarna av lårbenet kan och orsakade problem eftersom mycket små skillnader i hornens rotationsvinklar gör att benhöjderna skiljer sig med 20 mm. Genom att byta skruvarna till olika fästhål i servohornen korrigerades denna 20 mm höjdskillnad. Jag var fast besluten att åtgärda detta problem med denna metod snarare än att behöva kompensera för dessa höjdskillnader med hjälp av programvara.

Rekommenderad: