Inhoudsopgave:

ICBob - een door Bob geïnspireerde tweevoetige robot - Ajarnpa
ICBob - een door Bob geïnspireerde tweevoetige robot - Ajarnpa

Video: ICBob - een door Bob geïnspireerde tweevoetige robot - Ajarnpa

Video: ICBob - een door Bob geïnspireerde tweevoetige robot - Ajarnpa
Video: Роберт Фулл о движении животных 2024, Juli-
Anonim
Image
Image
ICBob - een door Bob geïnspireerde tweebenige robot
ICBob - een door Bob geïnspireerde tweebenige robot

Wij zijn de Teen Imagineering Club van de Bridgeville Delaware Public Library. We maken coole projecten terwijl we leren over elektronica, computercodering, 3D-ontwerp en 3D-printen.

Dit project is onze aanpassing van BoB the BiPed, een op Arduino gebaseerde robot. We hebben de behuizing opnieuw ontworpen om te profiteren van onze favoriete Arduino-stroombron, de Powerbot-telefoon-powerbank. Deze goedkope oplaadbare 5 volt-stroombron is geweldig voor het voeden van onze Arduino-projecten en kan worden opgeladen met elke USB-wandoplader. We hebben ook de 3-tenige voeten van de Arduped tweebenige robot aangepast, alleen omdat ze er GEWELDIG uitzien. We laten je zien waar je de onderdelen kunt krijgen die je nodig hebt, hoe je de robot in elkaar zet en geven je zelfs een eenvoudige Arduino-code om hem te laten lopen. We hebben een geweldige tijd gehad bij het maken van onze elf ICBob-robots. Blijf lezen als je wilt leren hoe je er zelf een kunt maken.

Stap 1: Onderdelen en gereedschappen die u nodig heeft

Onderdelen en gereedschappen die u nodig heeft
Onderdelen en gereedschappen die u nodig heeft
Onderdelen en gereedschappen die u nodig heeft
Onderdelen en gereedschappen die u nodig heeft

ICBob is ontworpen voor de volgende set onderdelen. Hoewel vervangingen mogelijk zijn, moet u mogelijk het lichaam aanpassen om ze te laten werken. Onze favoriete leverancier is Yourduino.com, maar voor sommige artikelen moet je naar Amazon of Ebay gaan.

Productbeschikbaarheidsupdate - Yourduino heeft niet langer de Micro Magician en zegt dat ze worden stopgezet door Dagu. De Dagu-website heeft ze nog steeds beschikbaar https://www.dagurobot.com/goods.php?id=137 en als ze niet beschikbaar zijn, is de S4A EDU-controller een vervanging en werkt op 5 volt.

Onderdelen

  • 1x-MICRO Magician-controller
  • 4x- SG 90 servo
  • 1x- HC-SR04 Ultrasone sensor
  • 1x- Powerbot powerbank 2600mAh (de 3000mAh Powerbot heeft een grotere diameter en past niet)
  • 1x- Vrouwelijk MICRO USB naar DIP 5-pins prikbord
  • 1x- 20cm 40-pins platte kabel vrouwelijke uiteinden
  • 1x- 10k weerstand
  • 4x- 2-56 x 3/8 zelftappende schroeven (alternatieve hete lijm)

3D-afdrukken - De stl-bestanden zijn beschikbaar op Thingiverse thing:1313344

  • 1x- lichaam
  • 1x- schaal
  • 2x- knie
  • 1x- linkervoet
  • 1x- rechtervoet

Gereedschap

  • computer met Arduino IDE
  • Arduino add-on bibliotheek VarSpeedServo
  • MICRO Magician Driver (nodig voor sommige besturingssystemen)
  • 3D printer (of onderdelen laten maken)
  • Gereedschap voor het reinigen van 3D-onderdelen
  • Soldeerkit (alleen voor de pinnen op de USB-adapter)
  • Heet lijmpistool
  • Kleine Philips-schroevendraaier
  • Usb oplader

Deze Instructable gaat ervan uit dat je een basiskennis hebt van het gebruik van Arduino. Als Arduino nieuw voor u is, kunt u meer informatie vinden op

Kies voor de MICRO Magician Board - Arduino Pro of Pro Mini (3,3V, 8MHz) met ATmega328

U hebt Korman's VarSpeedServo-bibliotheek nodig om onze schetsen te gebruiken. Je kunt hier meer te weten komen over zijn bibliotheek, maar gebruik onze download hieronder die compatibel is met de nieuwere IDE. Download het VarSpeedServo.zip-bestand hieronder en pak het uit naar uw arduino/libraries-map.

Mogelijk moet u het MICRO Magician CP210x-stuurprogramma installeren als uw systeem de controller niet herkent. Deze site kan helpen bij het installeren van het stuurprogramma

Stap 2: Laten we beginnen met bouwen - monteer de poten

Laten we beginnen met bouwen - monteer de poten
Laten we beginnen met bouwen - monteer de poten
Laten we beginnen met bouwen - monteer de poten
Laten we beginnen met bouwen - monteer de poten
Laten we beginnen met bouwen - monteer de poten
Laten we beginnen met bouwen - monteer de poten

Voor deze stap heb je 2 - 3D-geprinte knieën en 4 servopakketten nodig.

Begin met het reinigen van de knieën. De 2 servohoorngaten moeten passen op de enkelzijdige servohoorns. We hebben ze schoongemaakt met een letter L (.290) formaat boor. Het ene draaigat moet in het draaipunt op de voet passen. We hebben ze schoongemaakt met een # 2 (.220) formaat boor.

Monteer de 4 servohoorns in de knieën. Bevestig de hoorn met een van de grotere schroeven die bij het servopakket zijn geleverd. Steek de schroef vanaf de kniezijde door en draai vast in een van de kleine gaatjes op de servohoorn. Voor die ene schroef moet je met de schroevendraaier schuin aandraaien maar het is goed te doen. De schroefpunten die uitsteken kunt u desgewenst met een zijkniptang knippen.

De 4 servo-assen moeten worden gecentreerd voordat ze op de knieën worden bevestigd. U kunt dit handmatig doen door de spil voorzichtig door zijn rotatie te bewegen om het halverwege punt te vinden. Een betere manier is om een servo aan pin 12 te bevestigen. Download het bestand icbob_servo_center.zip hieronder. Pak uit naar uw Arduino-map. Voer vervolgens deze Arduino-schets uit voor elke servo.

Begin met het monteren van de heup (bovenste) servo's op de knieën. Bevestig de heupservo zonder de spil te verplaatsen parallel aan de knie met de draden naar de andere servohoorn (voorkant). Zet vast met een kleine schroef uit het servopakket. Herhaal dit voor de andere knie.

Nu voor de enkel servo's. VERGEET NIET dat je linker- en rechterenkels zult hebben, zodat de benen spiegelbeelden van elkaar zijn. Je zult de knie iets moeten spreiden om de enkelservo te monteren, dus oriënteer de servo zoals op de foto voordat je hem erin knijpt. Denk eraan om de spil niet te draaien. Zet vast met een kleine schroef. Herhaal met andere knie zodat je eindigt met een rechter- en linkerbeen.

Stap 3: Bouwen - Bevestig de benen aan het lichaam

Gebouw - Benen aan lichaam bevestigen
Gebouw - Benen aan lichaam bevestigen
Gebouw - Benen aan lichaam bevestigen
Gebouw - Benen aan lichaam bevestigen
Gebouw - Benen aan lichaam bevestigen
Gebouw - Benen aan lichaam bevestigen

Voor deze stap hebt u de 2 pootmontages en de 3D-geprinte basis nodig. U hebt ook (4) 2-56x3/8 zelftappende schroeven of hete lijm nodig.

Het beensamenstel wordt door middel van de heupservo's aan de basis bevestigd. Leid eerst de 2 servodraden omhoog door de onderkant van de basis. Let op de rechten en links. Zoals de tekening laat zien, komt de enkeldraad in de halve maanuitsparing terecht, maar je moet de enkeldraad erin hebben voordat de servo wordt bevestigd. Je moet de servo kantelen zodat de heupdraad (waar deze de servo binnenkomt) eerst door het rechthoekige gat gaat (naar voren). Het zit strak, maar de achterkant moet er gewoon in glijden. Draai nu de basis om en zet de servo vast met 2 schroeven of als alternatief zou hete lijm moeten werken. Herhaal het proces voor het andere been.

Stap 4: Bouwen - Bevestig de voeten

Gebouw - Bevestig de voeten
Gebouw - Bevestig de voeten
Gebouw - Bevestig de voeten
Gebouw - Bevestig de voeten

Voor deze stap heb je een linkervoet en rechtervoet nodig om aan je montage toe te voegen. Ze zijn heet gelijmd, dus vuur het lijmpistool aan.

Zorg ervoor dat je de sleuven in de voetjes goed schoonmaakt. Test de servo voorzichtig op de voet na het reinigen. Zorg ervoor dat het scharniergat in de knie in de scharnierpen op de voet past. Het is het beste om een dunne schroevendraaier tussen de servo en de voet te gebruiken om de voet eraf te wrikken als deze vastzit. Nadat u een goede testpassing hebt gekregen, plaatst u een klodder hete lijm ter grootte van een dubbeltje op de voet en drukt u vervolgens de servo op de voet. Voorkom dat er lijm in de buurt van het draaipunt komt. Herhaal dit voor de andere kant zodat je bot op eigen benen kan staan.

Stap 5: Bedrading - Servo's en voeding

Bedrading - servo's en voeding
Bedrading - servo's en voeding
Bedrading - servo's en voeding
Bedrading - servo's en voeding
Bedrading - servo's en voeding
Bedrading - servo's en voeding

In deze stap heb je de MICRO Magician-controller, het micro-USB-adapterbord met header-pinnen, de platte kabel en je staande bot nodig. U zult in deze stap solderen en heet lijmen, dus houd die gereedschappen bij de hand.

De Powerbot powerbank wordt geleverd met een korte USB naar micro USB kabel. Voor het opladen van de batterij wordt de micro-USB in de oplaadsleuf op de batterij gestoken en de USB gaat naar de wandlader. U zult deze kabel opnieuw gebruiken om de ICBob van stroom te voorzien. De batterij-output gaat via de USB, dus we maken verbinding via de micro-USB-adapterkaart om de bot van stroom te voorzien.

Laten we eerst de adapter in elkaar zetten. Raadpleeg de foto voor de volgende stappen. Je gebruikt alleen de 2 buitenste pinnen (gnd en V+) om de bot van stroom te voorzien. Schuif de 2 buitenste pinnen voorzichtig in de kop zodat de korte zijde ongeveer 3/16 inch uitsteekt. Buig de 2 lange pinnen ongeveer 60 graden met een tang. Buig voor het solderen omdat de platen kwetsbaar zijn. Plaats de header zoals afgebeeld en soldeer alle pinnen aan de achterkant voor sterkte. Klem alle ongebruikte pinnen zo kort mogelijk, zowel voor als achter. Voordat we de adapter op het vat lijmen, bevestigt u de micro-USB-kabel zodat u voldoende speling krijgt. Doe een grote klodder hete lijm op de achterkant van de adapter en plaats deze vervolgens in de positie die op het vat wordt weergegeven. Houd vast totdat het hard wordt.

Bevestig vervolgens de 4 servoconnectoren aan de controller. We houden van de MICRO Magician omdat deze de 3-pins connectoren aan boord heeft voor eenvoudige servobedrading. De donkerdere kleur draad (bruin?) gaat naar de rand van het bord. De meegeleverde Arduino-schetsen gebruiken de volgende pinnen.

  • Rechter heup (RH) - pin 9
  • Rechter enkel (RA) - pin 10
  • Linker heup (LH) - pin 11
  • Linker enkel (LA) - pin 12

Trek voor de stroomaansluiting naar het bord een paar draden los van de platte kabel. U zult meer van deze platte kabel gebruiken voor sonarbedrading. Sluit het ene uiteinde van het paar aan op de micro-USB-adapter. De pin die zich het dichtst bij de voorkant van de bot bevindt, is geslepen en de andere V+. Het andere uiteinde wordt bevestigd aan de controller in de buurt van de schakelaar. De V+-draad wordt aangesloten op de pin met het label 'Battery IN' in de documentatie. Sluit de aardedraad aan op de 'gnd'-pin net iets boven de 'Battery IN'-pin.

BELANGRIJK! - Er is een 'V+ select'-jumper net boven de D1-pinset. Deze jumper moet op de INSIDE set pinnen zitten, anders werken de servo's niet.

Maak ten slotte de controllersleuf op de basis schoon, zodat de controller goed aansluit. U kunt de batterij aansluiten en de controller 'aan' zetten om ervoor te zorgen dat deze opstart.

Stap 6: Programmeren - Thuiskalibratiecode

Een paar woorden over onze programmeerkeuzes

Toen we het prototype voor dit project bouwden, hebben we de tutorial How to teach your BoB Biped to move gebruikt bij Let's Make Robots. De Bob Poser-software was cool en we hebben er met plezier mee gespeeld. Het probleem was dat de 600+ regels code in de navigatieschets ver boven het kennisniveau van tieners lagen. Om dit project meer een leerervaring voor hen te maken, hebben we besloten om een paar ideeën uit de Poser-code te halen en vervolgens opnieuw te beginnen met een lege pagina. De tieners hadden de VarSpeedServo-bibliotheek al gebruikt terwijl ze leerden over servo's in onze Arduino-labs. We besloten om te kijken of VarSpeedServo de timing en snelheidstaken voor de servo's aankon, zodat we ons konden concentreren op de posities. De resulterende code werkt geweldig en de volledige walk_avoid_turn-schets heeft minder dan 100 regels code. De enige nieuwe concepten waarover de tieners moesten leren, waren tweedimensionale arrays en hoe ze toegang konden krijgen tot die gegevens met code. Genieten van!

Home Kalibratie

U centreerde de servo-assen toen u ze monteerde. Nu zul je zien hoe dichtbij je bent gekomen en hun thuisposities verfijnen. Zorg ervoor dat de VarSpeedServo-bibliotheek uit stap 1 is geïnstalleerd. Download het bestand icbob_home_calibration.zip hieronder en pak het uit in je Arduino-map. Open de schets in de Arduino IDE. Zet de MICRO Magician aan met de batterij. Sluit de computer aan op het bord en upload de code. De kans is groot dat de startposities van de servo niet perfect zijn. Zoek de volgende sectie in de code. Ga door met aanpassen en uploaden totdat je het goed hebt gedaan.

//…………………………………………………….

// Begin met de 4 hm-arrayleden ingesteld op 90 graden. pas dan // deze instelling aan zodat de knieën recht naar voren en de voeten plat zijn int hm[4] = {90, 90, 90, 90}; // array om de startpositie te behouden voor elke servo RH, RA, LH, LA //…………………………………………………….

Als een van uw nummers kleiner is dan 50 of groter dan 130, moet u teruggaan en de poten demonteren en de spindels dichter bij het midden krijgen.

Zodra je een goede startpositie hebt, schrijf je de cijfers op. Deze nummers heb je nodig voor de rest van de schetsen.

Stap 7: Programmeren - Generatorcode verplaatsen

Programmeren - Generatorcode verplaatsen
Programmeren - Generatorcode verplaatsen

Nu om uw bot in beweging te krijgen. Download het bestand icbob_move_generator.zip hieronder en pak het uit in je Arduino-map. Open de schets in de Arduino IDE. Zoek het volgende gedeelte van de code. Zet de thuisposities die je voor je bot hebt vastgelegd in de schets.

// stel de leden voor de array hm in op de startposities voor uw robot

// ze kunnen worden gevonden met behulp van de icbob_home_calibration sketch const int hm [4] = {95, 95, 85, 90}; // array om de startpositie vast te houden voor elke servo RH, RA, LH, LA

Het volgende gedeelte van de code is waar de bewegingsreeksen worden ingevoerd. Elke regel heeft posities voor de 4 servo's (RH, RA, LH, LA) ten opzichte van de startpositie.

//mv-arraygegevens. Elke regel is een 'frame' of positie ingesteld voor de 4 servo's

//Meerdere lijnen creëren een groep bewegingen die in een lus kunnen worden gezet om //loop-, draai-, dans- of andere bewegingen te maken const int mvct = 6; //Maak dit getal gelijk aan het aantal regels in de array const int mv[mvct][4] = { {0, -40, 0, -20}, //Deze vooraf geladen getallen zouden een voorwaartse wandeling moeten geven {30, -40, 30, -20}, {30, 0, 30, 0}, {0, 20, 0, 40}, {-30, 20, -30, 40}, {-30, 0, -30, 0}, };

Dit is de code die de mv-arraygegevens omzet in servo slowmoves

void loop() //loop herhaalt voor altijd

{ // Verplaats reeks voor (int x=0; x<mvct; x++) {// fiets door het aantal RH.slowmove (hm[0] + mv[x][0], svsp); // regels 'frames' in de array RA.slowmove (hm[1] + mv[x][1], svsp); LH.slowmove (hm[2] + mv[x][2], svsp); LA.slowmove (hm[3] + mv[x][3], svsp); vertraging (framevertraging); } }

Uploaden naar de bot. De bot gaat gedurende 2 seconden naar de startpositie en start vervolgens een loop voorwaarts. Het werkt het beste als de tafel niet te glad is.

Als je het beu bent hem te zien lopen, kun je je eigen bewegingen proberen. Gebruik 'opslaan als' om de schets te hernoemen. Speel dan met de cijfers en kijk wat je kunt doen. Houd de cijfers tussen +50 en -50 of u kunt de servo's belasten. Onthoud dat als u regels optelt of aftrekt, u de mvct-waarde moet wijzigen om de wijziging weer te geven. Veel plezier!

Stap 8: Bedrading - HC-SR04 sonarsensor (ogen)

Bedrading - HC-SR04 sonarsensor (ogen)
Bedrading - HC-SR04 sonarsensor (ogen)
Bedrading - HC-SR04 sonarsensor (ogen)
Bedrading - HC-SR04 sonarsensor (ogen)

Voor deze stap heb je de icbob_shell 3D-print, de HC-SR04 ultrasone sensor, de vrouwelijke platte kabel en één weerstand van 10k ohm nodig. Dit zou de onderdelen op onze lijst moeten afmaken. Ja!

Reinig eerst de sensorgaten in de schaal voor een medium strakke pasvorm. Oefen niet te veel druk uit op de sensor bij het testen. Verwijder uit de schaal voor bedrading.

Trek vervolgens 4 strengen van de bandkabel af. Steek de 4 draden in de HC-SR04-sensorpinnen.

De MICRO Magician werkt intern op 3,3 volt en de pinnen kunnen slechts een signaal van 3,3 volt opnemen. Het probleem is dat de HC-SR04 op 5 volt werkt. Het kan een ingang van 3,3 volt gebruiken als het 'trigger'-signaal, maar wanneer het een 'echo'-signaal verzendt, is het 5 volt en het zal de ingang van de controller beschadigen als het rechtstreeks wordt aangesloten. We moeten een stroombegrenzingsweerstand van 10k ohm op de 'echo'-draad plaatsen om de ingang te beschermen.

UPDATE: Hoewel we geen problemen hebben gehad met alleen de 10K-weerstand inline, werd er in de opmerkingen op gewezen dat de beste praktijk aangeeft dat hier een spanningsdelercircuit moet worden gebruikt. Naast de 10K weerstand moet er een 15K weerstand tussen 'echo' en 'massa' geplaatst worden.

Snijd de weerstand leidt tot 0,5 inch. De weerstand gaat in de 'echo' draad op je platte kabel. We doen een druppel superlijm op de verbinding om hem te helpen op zijn plaats te blijven.

De schets gebruikt pin 13 voor trigger en pin 3 voor echo. Gebruik de pin 13-groep op de controller voor de 'gnd', 'vcc', 'trig' in die volgorde, werkend van de rand naar het midden. Je moet hier wat draden doorkruisen om het goed te krijgen. De 'echo'-draad met de weerstand wordt aangesloten op de vrouwelijke pin 3-aansluiting.

Als je de sensor wilt bekijken voordat je naar de volgende stap gaat, kun je de eerste schets op deze pagina https://arduino-info.wikispaces.com/UltraSonicDistance gebruiken om hem uit te testen. De batterij moet zijn aangesloten. U kunt de afstandsuitlezing op de seriële monitor zien. Zorg ervoor dat je de 'trigger_pin' op 13 en de 'echo_pin' op 3 in de schets zet.

De beste manier om de sensor in de schaal te installeren is met de pinnen naar boven gericht en de draden gevouwen en geleid tussen de sensor 'ogen' en de schaal.

Stap 9: Programmeren - Walk_Avoid_Turn-code

Alles op een rijtje. Alle onderdelen zijn gemonteerd. We zijn klaar om de volledige code te laden, de shell op te zetten en te kijken hoe hij zijn ding doet.

Je kent de routine. Download het bestand icbob_walk_avoid_turn.zip hieronder en pak het uit in je Arduino-directory. Open de schets in de Arduino IDE. Zoek het volgende gedeelte van de code. Zet de thuisposities die je voor je bot hebt vastgelegd in de schets.

// stel de leden voor de hm-array in op de startposities voor uw robot

// ze kunnen worden gevonden met behulp van de icbob_home_calibration sketch const int hm [4] = {95, 95, 85, 90}; // array om de startpositie vast te houden voor elke servo RH, RA, LH, LA

Deze sketch voegt een tweede move array en een tweede set slow move code toe voor de 'turn' move.

//arraygegevens doorsturen

const int fwdmvct = 6; //Maak dit aantal gelijk aan het aantal regels in de array const int fwdmv[fwdmvct][4] = {{0, -40, 0, -20}, //loop vooruit bewegende frames {30, -40, 30, -20}, {30, 0, 30, 0}, {0, 20, 0, 40}, {-30, 20, -30, 40}, {-30, 0, -30, 0}, }; //turn array data const int trnmvct = 5; //Maak dit aantal gelijk aan het aantal regels in de array const int trnmv[trnmvct][4] = {{-40, 0, -20, 0}, //turn move frames {-40, 30, -20, 30}, {0, 30, 0, 30}, {30, 0, 30, 0}, {0, 0, 0, 0}, };

We hebben een sonar-code voor obstakeldetectie toegevoegd, evenals een 'als' 'anders'-statement om te beslissen of we rechtdoor gaan of afslaan.

Eindmontage en opstarten

Laat de batterij los en upload de schets. Koppel het programmeersnoer los. Zorg ervoor dat de aan/uit-schakelaar op de controller in de 'aan'-positie staat. Schuif de schaal voorzichtig op de basis met het USB-netsnoer door het bovenste gat. Plaats de batterij. Sluit hem aan. Uw ICBob moet beginnen te bewegen en te draaien om obstakels te vermijden die dichterbij zijn dan 7 inch.

Stap 10: Afronding

We hopen dat u net zoveel plezier beleeft aan het bouwen van uw ICBob als wij aan het bouwen van de onze. Laat het ons weten als u vragen of opmerkingen heeft. Als je er een bouwt, laat het ons dan weten hier of op Thingiverse.

Aanbevolen: