Inhoudsopgave:

Jasper de Arduino Hexapod - Ajarnpa
Jasper de Arduino Hexapod - Ajarnpa

Video: Jasper de Arduino Hexapod - Ajarnpa

Video: Jasper de Arduino Hexapod - Ajarnpa
Video: Jasper Arduino Hexapod Robot 2024, Juli-
Anonim
Jasper de Arduino Hexapod
Jasper de Arduino Hexapod
Jasper de Arduino Hexapod
Jasper de Arduino Hexapod
Jasper de Arduino Hexapod
Jasper de Arduino Hexapod
Jasper de Arduino Hexapod
Jasper de Arduino Hexapod

Projectdatum: november 2018

OVERZICHT (JASPISCH)

Zes been, drie servo per been, 18 servo bewegingssysteem bestuurd door een Arduino Mega. Servo's aangesloten via Arduino Mega-sensorschild V2. Communicatie met Hexapod via Bluetooth BT12-module die praat met op maat gemaakte Android-applicatie. Systeem aangedreven door 2 x 18650, 3400mAh en 2 x 2400mA batterijset, elk vastgehouden met klittenband onder het lichaam van de hexapod. Er is een stroomtuimelschakelaar voor zowel het servo- als het besturingssysteem aanwezig, evenals een groen led-aan-indicatielampje op de kop van de hexapod. Commando's worden herhaald op een 16x2 LCD-scherm. Videofeed, lichtring en ultrasone obstakelvermijding bevinden zich in de kop.

OPMERKING: Omwille van uw gezond verstand raad ik het gebruik van servo's van goede kwaliteit ten zeerste aan, ik begon met MG995-servo's, 20 van hen, waarvan 11 ofwel doorgebrand, het vermogen om te centreren verloren of gewoon stopten met werken.

www.youtube.com/embed/ejzGMVskKec

Stap 1: UITRUSTING

APPARATUUR
APPARATUUR
APPARATUUR
APPARATUUR
APPARATUUR
APPARATUUR
APPARATUUR
APPARATUUR

1. 20 x DS3218-servo's

2. 1x Hexapod-basisset

3. 1x Arduino Mega R3

4. 1x Arduino Mega-sensorschild v2

5. 1 x 2 bay 18650 batterijhouder

6. 2 x tweepolige stroomschakelaar

7. Groen led-licht en 220kohm-weerstand:

8. 2 x 6v 2800mAh-batterijpakketten met klittenbandbevestiging

9. 2 x 18650 x 3400mAh-batterijen

10. 1x HC-SR04 Sonarmodule

11. 1x BT12 Bluetooth-module

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

13. 1 x Arducam Mini Module Camera Shield met OV2640 2 Megapixels Lens

14. 1 x Pixie Neon 16 LCD-lichtring

15. 1 x 16x2 regel LCD-scherm met aangesloten IIC-adapter.

16. 1 x 5v stekker voor Arduino Mega

17. 1 x 5v micro-USB-stekker voor NodeMcu-module.

18. 1 x DC naar DC Buck-convertermodule

19. 1 x 70 mm x 120 mm x 39 mm vierkante zwarte plastic doos (lichaam)

20. 1 x 70 mm x 50 mm x 70 mm zwarte plastic doos (kop)

21. 4 x 40 mm M3 messing afstandhouders plus 4 rubberen steunsteunen

22. Verschillende mannelijke naar mannelijke startkabels, soldeer, m3-schroeven en -bouten en hete lijm

Beweging van benen met behulp van op maat gemaakte logica. Camerabeweging via twee onafhankelijke servo's die op, neer, links, rechts en gecentreerde beweging geven. Camera bestuurd door WIFI-verbinding, weergegeven in WebView-weergave in Android-applicatie.

Stap 2: SERVOS

SERVOS
SERVOS
SERVOS
SERVOS
SERVOS
SERVOS

Elk heeft maximaal 180 graden to

minimaal 0 graden beweging.

Elke servo geïdentificeerd met een combinatie van drie cijfers, LegCFT; waarbij C het lichaam is (COXA), F de dij is (FEMUR) en T de elleboog is (TIBIA), dus 410 zou verwijzen naar het vierde been en de Tibia-servo, op dezelfde manier zou 411 verwijzen naar het vierde been en de Tibia-servo. De nummeringvolgorde zou 100 tot en met 611 zijn. Elke servopoot heeft een op rubber gebaseerde voet om de impact te dempen en om een betere grip te bieden.

Poot 1: 100, 110, 111 Voor

Been 2: 200, 210, 211 been2-been1

Poot 3: 300, 310, 311 Poot4-poot3

Been 4: 400, 410, 411 been6-been5

Poot 5: 500, 510, 511 Terug

Poot 6: 600, 610, 611

De standaardpositie voor alle Coax-servo's is 90 graden.

De standaardpositie voor dijbeenservo's is 90 graden, 45 graden is de rustpositie.

Standaardpositie voor Tibia Servo's voor alle benen is 90 graden, benen 1, 3 en 5 gebruiken 175 graden als rustpositie en benen 2, 4 en 6 gebruiken 5 graden.

Nek 1: 700 Beperkt tot 75 tot 105 graden voor op en neer beweging

Nek 2: 800 Beperkt tot 45 tot 135 graden voor beweging naar links en rechts

Servobeweging beperkt tot drie "schrijfopdrachten" voordat een vertraging van 10 milliseconden is opgenomen, voordat verdere "schrijfopdrachten" worden gegeven. Dit helpt de belasting van de batterijen te verminderen.

Stap 3: COMMANDO'S

OPDRACHTEN
OPDRACHTEN
OPDRACHTEN
OPDRACHTEN
OPDRACHTEN
OPDRACHTEN

A=Stop – Sta in standaardpositie.

B=vooruit - walk_forward

C=reverse - walk_backward

D=rechts - draai_rechts

E=links - draai_links

F=links zijwaartse beweging - crab_left

G=rechts zijwaartse beweging - crab_right

H=Rear_crouch (benen 1 en 2 maximaal, 3 en 4 benen in neutrale positie, benen 5 en 6 in minimale positie)

I= Front_crouch (benen 1 en 2 in minimale positie, 3 en 4 benen in neutrale positie, benen 5 en 6 in maximale positie)

J= camera in galop – midden (Nek 1 en Hals 2 in middenpositie, standaardpositie)

K=camera links - pan_links (Nek 1, middenpositie, Hals 2 servo minimumpositie)

L=camera rechts - pan_rechts (Nek 1, middenpositie, Hals 2 servo maximale positie)

M=camera omhoog - pan_up (Nek 1 maximale positie, Hals 2 servo middenpositie)

N=camera omlaag - pan_down (Nek 1 minimumpositie, Hals 2 servo middenpositie)

O=Rustend (Hexapod) zit op steunen.

P=Standing Up – Hexapod staat op in de standaardpositie.

Q=Licht uit

R=Groen licht op Pixie Neon-lichtring.

S=Rood licht op Pixie Neon lichtring.

T=Blauw licht op Pixie Neon lichtring.

U=Wit licht op Pixie Neon-lichtring.

V = Voorbenen zwaaien.

W = Geluidshoorn.

X=Sweep hoofd van links naar rechts.

Y=Speel melodie af.

Stap 4: BEWEGING

BEWEGING
BEWEGING
BEWEGING
BEWEGING
BEWEGING
BEWEGING

De Coax-servopositie is longitudinaal ten opzichte van de as van het lichaam, dus recht vooruit is 0 graden en direct achter is 180 graden. Deze Coax en alle andere servo's zouden echter beperkt zijn tot 45 tot 135 graden.

Beenbewegingen van vooruit, achteruit, links en rechts zouden allemaal worden gestart met het optillen van het been met behulp van de dijbeen- en scheenbeen-servo's, gevolgd door de lichaamsservobeweging en tenslotte het laten zakken van hetzelfde been met behulp van de dijbeen- en scheenbeen-servo's.

Vooruit en achteruit

Om voorwaarts of achterwaarts te bewegen, werkt u in paren, 1 en 2, 3 en 4, 5 en 6. Een eenvoudige voorwaartse beweging bestaat uit benen 1 en 2 die van hun huidige positie naar zo ver mogelijk naar voren gaan, dan benen 3 en 4, en tenslotte herhalen 5 en 6 benen dezelfde actie. Vervolgens gaan alle zes Coax-servo's van deze uitgeschoven voorwaartse positie terug naar hun oorspronkelijke startpositie. Het omgekeerde van dit proces wordt gebruikt om achteruit te gaan. Als onderdeel van het voorwaartse bewegingsproces controleert de HC_SR04 ultrasone eenheid op obstakels die voor u liggen en als er een wordt gevonden, draait u de Hexapod willekeurig naar links of rechts.

Links en rechts

Om linker- of rechterbeenparen te bewegen, werken ze samen, maar in tegengestelde richtingen. Dus om bijvoorbeeld rechts te draaien, beweegt been 1 van de huidige positie terug naar de 135 graden positie terwijl been 2 naar voren beweegt naar de 45 graden positie. Dit wordt herhaald voor pootparen 3 en 4, en 5 en 6 poten. Op dat moment verplaatsen de Coax-servo's hun oorspronkelijke positie terug naar hun nieuwe positie, waarbij ze het lichaam in de bewegingsrichting draaien, d.w.z. Rechtsaf. Dit proces wordt voortgezet totdat de vereiste rotatie naar links is voltooid. Het omgekeerde van dit proces wordt gebruikt om naar links te draaien, dus been 1 beweegt van zijn huidige positie naar voren naar de positie van 45 graden, terwijl been 2 achteruit beweegt naar de positie van 135 graden.

Sta op en rust

Beide processen gebruiken de Coax-servo van geen van de benen, dus om op te staan, beweegt de Tibia-servo voor alle benen van zijn huidige positie naar zijn maximale 45 graden, terwijl om te rusten dezelfde Femur-servo's naar hun laagste punt gaan stand, 175 of 5 graden. Dezelfde beweging is van toepassing op de Tibia-servo's die tot hun maximum van 45 graden bewegen, om te staan, en hun minimum, d.w.z. 175 of 5 graden voor rust.

Buig vooruit en hurk achteruit

Ook hier zijn de processen spiegelbeelden van elkaar. Om voorover te hurken, staan poten 1 en 2 in hun laagste stand, terwijl poten 5 en 6 in hun hoogste stand staan. In beide gevallen nemen benen 4 en 5 een neutrale positie in die in lijn ligt met benensets 1 en 2 en 5 en 6. Voor achterover hurken zijn benen 1 en 2 in hun hoogste positie terwijl benen 5 en 6 in hun laagste positie staan.

Stap 5: HOOFDCAMERA/SONAR

HOOFDCAMERA/SONAR
HOOFDCAMERA/SONAR
HOOFDCAMERA/SONAR
HOOFDCAMERA/SONAR
HOOFDCAMERA/SONAR
HOOFDCAMERA/SONAR

De kop zal bestaan uit een vierkante plastic doos 38 mm x 38 mm x 38 mm met een afneembaar deksel. De doos/kop zal een beperkte verticale en horizontale beweging hebben. Beweging wordt bereikt door gebruik te maken van twee servo's, een bevestigd aan het lichaam van de robot en een tweede bevestigd aan het eerste servolichaam en zijn arm aan het hoofd. 7.4v geleverd door twee 18650-batterijen zal het Arduino V3 NodeMcu Lua WIFI ESP8266 12E IOT-ontwikkelbord DEVKIT van stroom voorzien, bevestigd aan een Arducam Mini Module Camera Shield met OV2640 2 Megapixels Lens. Door deze opstelling kan de robot obstakels detecteren en live video streamen via de ingebouwde wifi. Sonar met behulp van een HC-SR04 en mogelijke lichtmanagementinformatie zou terugvloeien naar de Arduino Mega.

Mijn dank aan Dmainmun voor zijn Arducam Instructables-artikel, dat van grote hulp was bij mijn eerste begrip van hoe de Arducam kon worden gebruikt voor videostreaming.

Accu

Er werd besloten om twee batterijpakketten te gebruiken, één voor de componenten van de kop en het Arduino Mega-bord, en een tweede pakket om alle servo's van stroom te voorzien. Het eerste pakket bestond uit 2 x 18650 3400mAh-batterijen die 7.4v leveren. Het tweede pakket bestond uit 2 x 6V 2800mAh-batterijpakketten die parallel waren aangesloten, waardoor een voeding van 6,4 V werd verkregen, maar een verhoogde capaciteit van 5600 mAh, bevestigd aan de onderkant van de Hexapod met behulp van klittenbandstrips.

Stap 6: BEENBEWEGING

BEENBEWEGING
BEENBEWEGING
BEENBEWEGING
BEENBEWEGING
BEENBEWEGING
BEENBEWEGING

Armen kunnen zowel in paren als afzonderlijk werken. Elke arm bestaat uit een lichaamsgewricht genaamd Coax met een beweging van 45 tot 135 graden, een dijgewricht genaamd Femur, met een beweging van 45 tot 135 graden, en tenslotte een ellebooggewricht genaamd Tibia, of eindeffector, met een beweging van 45 tot 135 graden. Op maat gemaakte software is geschreven om de beweging van de benen te verzorgen.

Soorten beenbewegingen:

Voor de Coax is 45 graden naar achteren gericht vanaf het hoofd, 90 graden is de neutrale positie en 135 graden is naar voren gericht.

Voor het dijbeen is 45 graden de hoogste positie vanaf de grond, 90 graden is de neutrale positie en 135 graden is de laagste positie vanaf de grond.

Voor het scheenbeen is 45 graden de meest afgelegen positie van het lichaam, 90 graden is de neutrale positie en 135 graden is de positie die het dichtst bij het lichaam ligt.

Neem aan dat alle servo's in de neutrale positie staan, 90 graden.

Voorwaarts: been 1 en 2, dijbeen omhoog tot 135 graden, coax beweegt tot 45 graden, scheenbeen beweegt tot 45 graden het verst van het lichaam verwijderd, dijbeen daalt tot 45 graden. Dit wordt herhaald voor pootparen 3 en 4 en pootpaar 5 en 6. Alle 6 Coax-servo's bewegen van 45 graden naar achteren naar 90 graden, neutrale positie, alle 6 Femur-servo's bewegen van 45 graden tot 90 graden, neutrale positie. Ten slotte gaan alle Tibia-servo's omhoog van 45 graden naar 90 graden, neutrale positie.

Keerzijde: Begin met been 5 en 6, dan 3 en 4, en tenslotte been 1 en 2, anders is de beweging hetzelfde voor Coax, Femur en Tibia.

Links: benen 1, 3 en 5 bewegen in omgekeerde richting, terwijl benen 2, 4 en 6 in voorwaartse richting bewegen. Zowel voorwaartse als achterwaartse beweging voldoen aan de standaard voorwaartse en achterwaartse beweging. Om alle zes de Coax-servo's te draaien, moet u 45 graden bewegen, waardoor het lichaam wordt gedraaid.

Rechts: benen 2, 4 en 6 bewegen in omgekeerde richting, terwijl benen 1, 3 en 5 in voorwaartse richting bewegen. Zowel voorwaartse als achterwaartse beweging voldoen aan de standaard voorwaartse en achterwaartse beweging. Coax beweging is vergelijkbaar met hierboven, maar in de omgekeerde richting.

Rust: alle coax- en femur-servo's in neutrale positie, alle Tibia-servo's in de laagste positie 45 graden, waarbij beide voor-, midden- en achterpoten effectief worden gehurkt.

Buig achterover, sta voor: poten 1 en 2 in de hoogste stand, poten 3 en 4 in neutraal en poten 5 en 6 in de laagste stand.

Achteraan staan, vooraan gehurkt: poten 1 en in de laagste stand, poten 3 en 4 in neutraal en poten 5 en 6 in de hoogste stand.

Krab links: Benen 1 en 5 heffen op en strekken zich naar links uit, terwijl benen 2 en 6 tegelijkertijd optillen en samentrekken onder het lichaam. Met alle vier deze benen op de grond keren alle Tibia's terug naar hun neutrale positie. Ten slotte herhalen benen 3 en 4 hetzelfde proces.

Krab rechts: Benen 2 en 6 gaan omhoog en strekken zich naar rechts uit, terwijl benen 1 en 5 tegelijkertijd omhoog komen en onder het lichaam samentrekken. Met alle vier deze benen op de grond keren alle Tibia's terug naar hun neutrale positie. Ten slotte herhalen benen 3 en 4 hetzelfde proces.

Linker hoofdbeweging: nek 1 servo 45 graden. Beide servo's keren terug naar 90 neutrale positie.

Rechter hoofdbeweging: nek 1 servo 135 graden

Opwaartse beweging van het hoofd: nek 2 servo 45 graden

Neerwaartse hoofdbeweging: nek 2 servo 135 graden

Pan hoofdbeweging: nek 2 beweegt van 45 tot 135 graden

SERVOS

Na de eerste test werden de MG995 en MG996 servo's allemaal vervangen. Alle 20 servo's werden vervangen door DS32228 servo's van 20 kg, wat zorgde voor een veel betere centrering en een groter laadvermogen.

Het is belangrijk om elke servo grondig te testen met een geschikt testprogramma. Ik heb het eenvoudige "sweep" -voorbeeldprogramma aangepast om specifiek te testen voor 0, 90 en 180 posities, deze testroutine werd minimaal 5 minuten voor elke servo uitgevoerd en een dag later herhaald.

OPMERKING: Het gebruik van een standaard Arduino Uno-bord dat wordt gevoed door een USB-kabel, levert mogelijk niet voldoende spanning om bepaalde servo's te laten werken. Ik ontdekte dat de 4,85v die de servo van de Uno ontving, onregelmatig gedrag veroorzaakte met de DS3218-servo's, waardoor dit probleem werd verholpen door deze spanning te verhogen tot 5,05v. Dus besloot ik de servo's op 6v te laten werken. Uiteindelijk vond ik dat een spanning van 6.4v nodig was omdat de 6v grillig gedrag van de servo's veroorzaakte.

Stap 7: BOUW

BOUW
BOUW
BOUW
BOUW
BOUW
BOUW

POTEN

Begonnen met de lay-out van de Hexapod kit onderdelen. Alle servo-ronde hoorns vereisten de vergroting van het matgat in beide uiteinden van het dijbeen en alle coax-gaten. Elke servohoorn werd met vier schroeven en een vijfde schroef door het midden van de servokop aan de bijbehorende coax en dijbeen bevestigd. Alle servobody's werden bevestigd met vier bouten en moeren. De Coax-servobevestiging, voor elk van de zes poten, had een lager bevestigd aan de onderkant van de bevestiging met behulp van een enkele bout en moer. Elke Coax-servobevestiging werd met vier bouten en moeren aan de Femur-servobevestiging bevestigd, waarbij deze bevestiging 90 graden werd gedraaid. De kop van de dijbeenservo was bevestigd aan het ene uiteinde van de dijbeenarm en het andere uiteinde van het dijbeen was bevestigd aan de tibia-servokop. De zes Tibia-servo's waren met vier bouten en moeren aan de bovenkant van de zes poten bevestigd. Elke beeneffector was bedekt met een zachte rubberen laars voor extra grip. Het bleek dat de meegeleverde servohoorn te groot was om in de Coax-, Femur- en Tibia-aansluitingen te bevestigen, dus werden alle centrale gaten vergroot tot 9 mm. Mijn dank aan "Toglefritz" voor zijn Capers II instructable met betrekking tot de constructie-elementen van de Hexapod-kit. Ik ben echter op één gebied afgeweken van de constructie, namelijk het bevestigen van de servohoorns aan beide uiteinden van het dijbeen. Ik besloot om het middengat van het dijbeen te vergroten om het midden van de servohoorn er doorheen te laten gaan, waardoor de servohoorn extra sterkte kreeg omdat het dichter bij de servo was en deze twee verbindingen het maximale koppel ervoeren. Elke servohoorn werd aan het dijbeen bevestigd met behulp van twee M2.2 zelftappende schroeven, de uiteinden van deze schroeven werden verwijderd en vlak gevijld. Alle M3-bouten waren vergrendeld.

LICHAAM

Het lichaam bestaat uit twee platen met elk zes gaten, elk gat wordt gebruikt om de Coax-servohoorn te bevestigen. Twee 6V 2800mAh-batterijen werden met klittenband aan de onderkant van de bodemplaat bevestigd. Vier M3-stand-offs die zich net voorbij de onderkant van de batterijhouder uitstrekken, werden bevestigd, elk met een zachte rubberen laars die op de bodem werd geschoven, dit zorgt voor een stabiele basis waarop de Hexapod kan rusten. Op het bovenste gedeelte van de bodemplaat zijn de Arduino Mega en het sensorschild bevestigd met behulp van vier afstandhouders van 5 mm. Aan de bovenzijde van de bodemplaat waren 4 x M3 stand-offs van 6 cm hoog bevestigd, deze omringden de Arduino Mega en boden ondersteuning voor de bovenplaat. Aan de bovenplaat was een doos van 120 mm x 70 mm x 30 mm bevestigd, deze bevat de eerste van de nekservo's en een LCD-scherm. Een tweede 2 bay, 2 x 18650 batterijhouder was bevestigd aan de onderkant van de bovenplaat aan de achterkant van het Arduino Mega-bord dat naar de voorkant van de Hexapod was gericht.

De bovenplaat heeft zes servohoorns die elk zijn bevestigd met vier M2.2-schroeven. Op de bovenkant van de plaat is een doos van 70 mm x 120 mm x 30 mm geïnstalleerd waarin een 18650-batterijhouder met 2 vakken, een tweepolige schakelaar, een groene LED en een IC2 16 x 2 LCD-scherm zijn geïnstalleerd. Daarnaast is ook de eerste nekservo geïnstalleerd, stroom en de tweede nekservo-datakabel gaan door een gat om de tweede servo en Arduino V3 NodeMcu-module te voeden. Een verdere datakabel loopt door de topbox en voedt de HC-SR04 ultrasone module, die zich opnieuw in de kop bevindt. Een tweede data- en stroomkabel is ook naar het hoofd geleid om de pixie led-ring van stroom te voorzien.

De twee servo-datakabels en de HC-SR04-datakabel worden door de bovenplaat gevoerd, terwijl de Bluetooth-module aan de onderkant van de plaat wordt bevestigd met behulp van een neon-vormpad en hete lijm. Het kabelbeheer van de resterende 18 servodatakabels moet op hun plaats zitten voordat u probeert de bovenplaat op de bodemplaat te bevestigen met behulp van 4 x M3 schroeven die passen in de 4 x M3 afstandhouders die op de bodemplaat waren bevestigd. Als onderdeel van het bevestigingsproces van de bovenste bodemplaat moeten alle zes Coax-servo's ook in hun juiste positie worden geplaatst met de lagerfitting in het gat in de bodemplaat en de servokop passend in de hoorn van de bovenplaat. Eenmaal gemonteerd worden de toppen van de zes Coax-servo's vastgezet met 6 M3-schroeven. Door de positie van de servohoorns voor de zes Coax servo's moesten de 4 x M3 standoffs 2 mm in hoogte worden verkleind, zodat de Coax servolagers goed in de bodemplaat zaten.

HOOFD

De kop bestaat uit twee servo's die 90 graden ten opzichte van elkaar staan, één in de doos die aan de bovenplaat is bevestigd en de tweede die via de servohoorn aan de eerste is bevestigd met behulp van een U-vormig gedeelte van koperen plaat. De hoorn van de tweede servo is bevestigd aan een L-vormige koperen beugel die zelf is bevestigd aan een doos van 70 mm x 70 mm x 50 mm met twee bouten en moeren. De doos vormt de kop, waarin de Ardcam-camera, de HC-SR04 ultrasone module en de Arduino V3 NodeMcu-module en de power-LED zijn geïnstalleerd. Zowel de zend- als ontvangsensorkoppen van de ultrasone module steken door de voorkant van de doos uit, net als de cameralens. Rondom de lens aan de buitenkant van de doos bevindt zich een 16 LCD Nero Pixie-ring. De NodeMcu-voedings-LED wordt gezien via een gat in de achterplaat van de kop, stroomkabel, datakabel van ultrasone module en pixie Neon-gegevensstroomkabels komen binnen via een gat tussen de achterplaat en de kopplaat.

ELEKTRONICA

De volgende Fritzing-diagrammen tonen de body- en head-elektronica. De VCC- en GRD-lijnen worden niet getoond voor de 20 servo's om de duidelijkheid van het diagram te vergemakkelijken. De Bluetooth-module bestuurt via de Android-app de Hexapod-beweging inclusief de nekservo's. De op WIFI gebaseerde Arduino NodeMcu-module bestuurt de Arducam-cameramodule. Alle servo's zijn bevestigd aan het Arduino-sensorschild via een enkel blok met VCC-, GRD- en signaallijnen. Er worden standaard DuPont-startkabels van 20 cm gebruikt om de Bluetooth BT12, HC-SR04 en IC2 LCD aan te sluiten.

BEEN KALIBRATIE

Dit is een van de moeilijkste gebieden van voorbereiding voorafgaand aan het werk aan de beweging van de Hexapod. Het oorspronkelijke idee is om alle benen in te stellen op het volgende, Coax-servo's 90 graden, Dijbeenservo's op 90 graden en Tibia-servo's ingesteld op 90 met de fysieke beenpositie ingesteld op 105 graden voor benen 2, 4 en 6, en 75 graden voor poten 1, 3 en 5. De Hexapod werd op een vlak oppervlak geplaatst dat op de vier steunen onder de batterijbehuizing rust. Zijn benen zijn op gelijke afstand tussen elk been en op gelijke afstand van het lichaam gepositioneerd. Al deze posities waren gemarkeerd op het vlakke oppervlak. Tijdens de constructie van de poten is het middelpunt van elke servo gevonden, dit zou de 90 graden positie van de servo's moeten zijn. Deze standaardpositie van 90 graden wordt bij alle servo's gebruikt.

Coax servo's 2 en 5 binnenvlakken zijn parallel aan elkaar, dit geldt voor servo's 1 en 6, en 3 en 4. Alle Femur en Coax servo's worden tijdens de bouwfase aan elkaar vastgezet op 90 graden ten opzichte van elkaar. Op alle Femur-servo's is de Femur-arm in een hoek van 90 graden bevestigd. Alle Tibia-servo's zijn op 90 graden aan de Tibia bevestigd. 2, 4 en 6 Tibia-servo's zijn op 105 graden aan de dijbeenarm bevestigd, terwijl Tibia-servo's 1, 3 en 5 onder 75 graden aan de dijbeenarm zijn bevestigd.

Het is belangrijk op te merken dat tijdens het testen alle servo's moeten worden gecontroleerd op temperatuur, een hete servo betekent dat de servo te hard werkt en zou kunnen falen, de meeste servo's zullen warm aanvoelen.

De eerste kalibratie is om de Hexapod vanuit zijn rustpositie te verplaatsen, nadat hij is ingeschakeld, naar een staande positie die zowel stabiel, stabiel en waterpas is, en het belangrijkste is dat geen van de servo's oververhit raakt. Om een stabiele positie te behouden, is het noodzakelijk om naar elke servo te schrijven met een vertraging van minder dan 20 milliseconden, 10 milliseconden werden gebruikt. Alle servo's kunnen alleen van 0 naar 180 graden bewegen en van 180 graden terug naar 0, dus voor alle Femur-servo's is 0 en 180 graden verticaal en 90 graden is horizontaal.

Voorafgaand aan het bevestigen van elke servo werd een initialisatie-schrijfactie naar elk van de eerder gedefinieerde servo's gestuurd, waardoor deze de huidige rusthoek kreeg, d.w.z. de huidige positie waarin de servo zich bevindt tijdens het rusten. Dit was 90 graden voor alle Coax servo's, 55 graden voor Femur en Tibia servo's 1, 3 en 5, en 125 graden voor Femur en Tibia servo's 2, 4 en 6.

Het is belangrijk op te merken dat batterijen altijd volledig moeten worden opgeladen aan het begin van de kalibratiesessie.

De Hexapod vertrekt altijd vanuit een rustpositie, waarbij het hele lichaam wordt ondersteund door de vier poten. Vanuit deze positie worden alle Femur- en Tibia-servo's van hun startpositie naar hun staande positie gefietst, op welk punt alle servo's op 90 graden staan. Om de staande positie te voltooien, wordt het "sta"-commando gegeven. Dit commando vereist dat alle benen optillen en weer gaan zitten in twee sets van drie beenbewegingen, benen 1, 5 en 4, en 2, 6 en 3.

Stap 8: SOFTWARE

De software bestaat uit drie delen, deel één is de Arduino-code die op de Arduino Mega draait, deel twee is de Arduino-code die op de NodeMcu-module in het hoofd draait. Communicatie verloopt via de Bluetooth BT12-eenheid die opdrachten ontvangt van de Android-tablet, namelijk een Samsung Tab 2, waarop een door Android Studio gebouwde aangepaste applicatie wordt uitgevoerd. Het is deze applicatie die commando's naar de Hexapod stuurt. Dezelfde applicatie ontvangt ook live videofeed van de NodeMcu-module via de ingebouwde WIFI.

ANDROID-CODE

De op maat gemaakte Android-code, ontwikkeld met Android Studio, biedt het platform waarop de applicatie met twee schermen wordt uitgevoerd. De applicatie heeft twee schermen, op het hoofdscherm kan de gebruiker opdrachten geven aan de Hexapod en de videofeed bekijken die uit de hexapod-kop komt. Het tweede scherm, toegankelijk via de WIFI-knop, stelt de gebruiker in staat om verbinding te maken met ten eerste de hexapod Bluetooth en ten tweede de WIFI-hotspot die wordt gegenereerd door de NodeMCU Arduino-kaart in de hexapod-kop. De applicatie verzendt commando's van één letter, via een seriële 9600 Baud, van de tablet via de ingebouwde Bluetooth naar de BT12 Bluetooth die is aangesloten op de hexapod.

ARDUINO-CODE

De ontwikkeling van de code begon met de ontwikkeling van een testprogramma dat is ontworpen om de basisfuncties van de Hexapod, zijn hoofd en lichaam, te testen. Omdat het hoofd en de werking ervan volledig gescheiden zijn van het lichaam, werd de softwareontwikkeling parallel aan de lichaamsfunctiecode getest. De hoofdbedieningscode was grotendeels gebaseerd op een eerdere ontwikkeling met de opname van servobewegingen. De code omvatte de bediening van een 16x2 LCD-scherm, HC-SR04 ultrasone module en een 16 LED-lichtring. Verdere code-ontwikkeling was nodig om WIFI-toegang tot de live videofeed van het hoofd te bieden.

De lichaamsfunctiecode is oorspronkelijk ontwikkeld om de initiële servobevestiging en initiële positie in rust te bieden. Vanuit deze positie is de Hexapod geprogrammeerd om gewoon te staan. De ontwikkeling ging vervolgens verder met extra bewegingen van de Hexapod en het combineren van de hoofd- en lichaamscodesecties met de seriële communicatie met de Android-app.

De testservocode maakte de ontwikkeling van been- en lichaamsbewegingen mogelijk, namelijk:

1. InitLeg - Maakt rustbeenpositie, staande beenpositie, krabbenige beenpositie voor zowel links als rechts lopen mogelijk, initiële beenpositie voor vooruit of achteruit lopen.

2. Zwaaien – Hiermee kunnen de voorpoten vier keer zwaaien voordat ze terugkeren naar de staande positie.

3. TurnLeg- Hiermee kan de Hexapod naar links of rechts draaien.

4. MoveLeg- Hiermee kan de Hexapod vooruit of achteruit lopen.

5. CrouchLeg- Hiermee kan de Hexapod naar voren hurken op zijn voorpoten of achteruit op zijn achterpoten.

Beenbewegingen zijn gebaseerd op paren die samenwerken, dus benen 1 en 2, 3 en 4, 5 en 6 werken als paren. Beweging bestaat uit twee basisacties, een voorwaartse reikwijdte en trekkracht en een achterwaartse duw. Om achteruit te lopen worden deze twee bewegingen omgekeerd, dus bijvoorbeeld vooruit lopen, benen 1 en 2 trekken, terwijl benen 5 en 6 duwen, benen 3 en 4 zorgen voor stabiliteit. Krabbenlopen is gewoon dezelfde actie, maar ingesteld op 90 graden ten opzichte van het lichaam, in dit geval bewegen de benen 3 en 4 ook op dezelfde manier als de andere benen. Terwijl lopende pootparen afwisselend bewegen, terwijl krabben lopen 1 en 5 als een paar werken, terwijl poot 3 afwisselend met poten 1 en 5 werkt.

Bewegingsfunctiebeschrijving volgt voor elk van de belangrijkste bewegingsfuncties, die elk bestaan uit bewegingselementen die in een vaste volgorde worden samengebracht en uitgevoerd.

RUST: Vanuit een staande positie gaan alle Femur-servo's omhoog om het lichaam op de vier steunen te laten zakken. Tegelijkertijd bewegen alle Tibia-servo's allemaal naar binnen.

STAAND: Beginnend vanuit de rustpositie bewegen alle Tibia-servo's naar buiten, wanneer dit is voltooid, gaan alle Femur-servo's naar de 90-graden positie, tenslotte bewegen alle Tibia-servo's tegelijkertijd naar de 90-graden positie.

LINKS DRAAIEN: Benen 1, 3 en 5 gaan 45 graden achteruit, weg van het hoofd, terwijl benen 2, 4 en 6 naar voren bewegen in de richting van het hoofd. Eenmaal voltooid, bewegen alle Coax-servo's van hun huidige positie terug naar de standaard 90-graden positie, deze beweging zou tegen de klok in zijn ten opzichte van het lichaam.

RECHTS DRAAIEN: Benen 1, 3 en 5 bewegen 45 graden naar voren in de richting van het hoofd, terwijl benen 2, 4 en 6 tegelijkertijd naar achteren van het hoofd af gaan. Eenmaal voltooid, gaan alle Coax-servo's van hun huidige positie terug naar de standaardpositie van 90 graden, deze beweging zou met de klok mee naar het lichaam zijn.

BUIG VOORUIT: Benen 1 en 2 gaan omlaag met behulp van dijbeen- en scheenbeen-servo's, terwijl poten 5 en 6 omhoog worden gebracht met behulp van hun dijbeen- en scheenbeen-servo's, poten 3 en 4 blijven in de standaardpositie.

KRUIK ACHTERUIT: Benen 1 en 2 worden omhoog gebracht met behulp van dijbeen- en scheenbeen-servo's, terwijl poten 5 en 6 worden verlaagd met behulp van hun dijbeen- en scheenbeen-servo's, poten 3 en 4 blijven in de standaardpositie.

WAVING: Deze routine gebruikt alleen benen 1 en 2. De Coax-servo's bewegen in een boog van 50 graden, terwijl de Femur en Tibia ook in een boog van 50 graden bewegen. Benen 3 en 4 bewegen 20 graden naar voren richting het hoofd, dit zorgt voor een stabieler platform.

VOORUIT LOPEN: Benen 1 en 6, 2 en 5, en 3 en 4 moeten samenwerken. Dus terwijl been 1 het lichaam trekt, moet been 6 het lichaam duwen, zodra deze actie is voltooid, moeten benen 2 en 5 dezelfde actie uitvoeren, terwijl elk van deze actiecycli plaatsvindt, moeten benen 3 en 4 hun routine vooruit gaan.

De initiële functies van de testbeenmodule maakten een ontwerp mogelijk voor elk van de drie beenbewegingen. Er zijn drie beenbewegingen nodig, omdat de tegenovergestelde benen gewoon de omgekeerde bewegingen uitvoeren. Een nieuwe gecombineerde leg 1, 3 en 6 module is ontwikkeld, getest en gekopieerd voor een tweede omgekeerde leg 2, 4 en 5 leg module. Het testen van de beenbewegingen van de hexapod werd bereikt door de hexapod op een verhoogd blok te plaatsen, zodat de benen volledig konden bewegen zonder de grond te raken. Er werden metingen gedaan terwijl de benen bewogen en er werd vastgesteld dat alle benen horizontaal over een afstand van 80 mm bewegen, terwijl ze tijdens de beweging 10 mm van de grond op hun laagste punt bleven. Dit betekent dat de Hexapod tijdens beweging eenvoudig heen en weer zal schommelen en dat alle benen een gelijke trekkracht zullen hebben tijdens beweging.

ACHTERUIT LOPEN:

KRAB LOPEN LINKS: De eerste beweging begint met benen 1, 2, 5 en 6 die allemaal 45 graden in de rijrichting draaien. Hierdoor worden alle benen in lijn met de rijrichting geplaatst, benen 3 en 4 staan al in de juiste richting. Het dijbeen en scheenbeen van elk been beginnen in de standaardpositie van 90 graden. Deze gang bestaat uit twee sets van drie benen die afwisselend met passen werken, benen 1, 5 en 4, en benen 3, 2 en 6. Elke set van drie benen werkt door te trekken met de voorbenen, dwz 1 en 5 en duwen met been 4, deze beweging wordt dan omgekeerd zodat been 3 trekt terwijl benen 2 en 6 duwen, geen van de Coax servo's doet enig werk tijdens deze beweging. Elke set van drie poten tilt de stationaire andere set poten op terwijl de eerste set beweegt.

KRAB LOPEND RECHTS:

OPMERKING: Het hoofd zal naar links of naar rechts draaien in de richting van de krabbenloop. Hierdoor kan de HC-SR04 ultrasone detectie tijdens het lopen worden gebruikt.

BEENINSTELLING: Om ervoor te zorgen dat de Hexapod waterpas staat, moeten alle benen op dezelfde hoogte staan. Door de Hexapod op blokken te plaatsen en vervolgens de standaard- en rustroutines te gebruiken, was het mogelijk om de afstand tot de grond van elke eindeffector te meten. Ik heb rubberen laarzen aan elke eindeffector toegevoegd om eerst grip toe te voegen, maar ook om een kleine aanpassing aan de beenlengte mogelijk te maken, met als doel 5 mm of minder tussen alle benen. Het instellen van elke servo op 90 graden was eenvoudig, maar de bevestiging van elke servohoorn aan beide uiteinden van het dijbeen kan problemen veroorzaken, aangezien zeer kleine verschillen in rotatiehoeken van de interne stekels van de hoorns ervoor zorgen dat de beenhoogte 20 mm verschilt. Door de schroeven te vervangen door verschillende bevestigingsgaten in de servohoorns werd dit 20 mm hoogteverschil gecorrigeerd. Ik was vastbesloten om dit probleem met deze methode op te lossen in plaats van deze hoogteverschillen met software te moeten compenseren.

Aanbevolen: