Cuprins:

ICBob - un robot biped inspirat de Bob: 10 pași (cu imagini)
ICBob - un robot biped inspirat de Bob: 10 pași (cu imagini)

Video: ICBob - un robot biped inspirat de Bob: 10 pași (cu imagini)

Video: ICBob - un robot biped inspirat de Bob: 10 pași (cu imagini)
Video: NEET Biology: Human Reproduction - L9 | Class 12 | Live Daily 2.0 | Unacademy NEET | Sachin Sir 2024, Iulie
Anonim
Image
Image
ICBob - un robot biped inspirat de Bob
ICBob - un robot biped inspirat de Bob

Suntem Teen Imagineering Club de la Bridgeville Delaware Public Library. Realizăm proiecte interesante în timp ce învățăm despre electronică, codificare computerizată, design 3D și imprimare 3D.

Acest proiect este adaptarea noastră a BoB BiPed, un robot bazat pe Arduino. Am reproiectat corpul pentru a profita de sursa noastră preferată de energie Arduino, banca de alimentare a telefonului Powerbot. Această sursă de energie reîncărcabilă ieftină de 5 volți este excelentă pentru alimentarea proiectelor noastre Arduino și se reîncarcă cu orice încărcător de perete USB. De asemenea, am adaptat cele 3 picioare de la robotul biped Arduped doar pentru că arată ARĂTOR. Vă vom arăta de unde să obțineți piesele de care aveți nevoie, cum să asamblați robotul și chiar să vă oferim un cod Arduino ușor pentru a-l face să meargă. Continuați să citiți dacă doriți să învățați cum să vă faceți unul.

Pasul 1: Piese și instrumente de care veți avea nevoie

Piese și instrumente de care veți avea nevoie
Piese și instrumente de care veți avea nevoie
Piese și instrumente de care veți avea nevoie
Piese și instrumente de care veți avea nevoie

ICBob este proiectat pentru următorul set de piese. În timp ce substituțiile sunt posibile, poate fi necesar să modificați corpul pentru a le face să funcționeze. Furnizorul nostru preferat este Yourduino.com, dar pentru unele articole va trebui să mergeți la Amazon sau Ebay.

Actualizare disponibilitate produs - Yourduino nu mai poartă Micro Magician și spune că sunt întrerupte de Dagu. Site-ul web Dagu le mai are la dispoziție https://www.dagurobot.com/goods.php?id=137 și, dacă nu sunt disponibile, controlerul S4A EDU este o înlocuire și funcționează la 5 volți.

Părți

  • 1x- Controler MICRO Magician
  • 4x- servo SG 90
  • 1x- HC-SR04 Senzor cu ultrasunete
  • 1x- Powerbot power bank 2600mAh (3000mAh Powerbot are un diametru mai mare și nu se potrivește)
  • 1x- Pin MICRO USB-DIP feminin cu 5 pini
  • 1x- 20cm 40 pini cablu plat capete femele
  • Rezistor 1x- 10k
  • 4x- 2-56 x 3/8 șuruburi autofiletante (lipici alternativ alternativ)

Imprimări 3D - Fișierele STL sunt disponibile pe Thingiverse: 1313344

  • 1x- corp
  • 1x- coajă
  • 2x- genunchi
  • 1x- piciorul stâng
  • 1x- piciorul drept

Instrumente

  • computer cu IDE Arduino
  • Arduino adaugă în biblioteca VarSpeedServo
  • Driver MICRO Magician (necesar pentru unele sisteme de operare)
  • Imprimantă 3D (sau au piesele realizate)
  • Instrumente de curățare a pieselor 3D
  • Set de lipit (numai pentru pinii adaptorului USB)
  • Pistol de lipit fierbinte
  • Șurubelniță mică Philips
  • încărcător USB

Acest instructable presupune că aveți cunoștințe de bază despre utilizarea Arduino. Dacă sunteți nou în Arduino, puteți afla mai multe la

Pentru MICRO Magician alegeți Placă - Arduino Pro sau Pro Mini (3,3 V, 8 MHz) cu ATmega328

Veți avea nevoie de biblioteca Korman VarSpeedServo pentru a utiliza schițele noastre. Puteți afla mai multe despre biblioteca sa aici, dar folosiți descărcarea noastră de mai jos, care este compatibilă cu noul IDE. Descărcați fișierul VarSpeedServo.zip de mai jos și dezarhivați-l în folderul arduino / biblioteci.

Poate fi necesar să instalați driverul MICRO Magician CP210x dacă sistemul dvs. nu recunoaște controlerul. Acest site vă poate ajuta cu instalarea driverului

Pasul 2: Să începem să construim - Asamblați picioarele

Să începem să construim - Asamblați picioarele
Să începem să construim - Asamblați picioarele
Să începem să construim - Asamblați picioarele
Să începem să construim - Asamblați picioarele
Să începem să construim - Asamblați picioarele
Să începem să construim - Asamblați picioarele

Pentru acest pas veți avea nevoie de 2 - genunchi imprimați 3D și 4 pachete servo.

Începeți prin curățarea genunchilor. Cele 2 găuri ale claxonului servo trebuie să se potrivească cu claxoanele servo cu o singură față. Le-am curățat cu un burghiu de dimensiunea literei L. (.290). O singură gaură de pivot trebuie să se potrivească pivotului pe picior. Le-am curățat cu un burghiu de dimensiunea nr. 2 (.220).

Introduceți cele 4 coarne servo în genunchi. Atașați claxonul folosind unul dintre șuruburile mai mari furnizate cu pachetul servo. Puneți șurubul din partea genunchiului și strângeți-l într-unul dintre orificiile mici de pe claxonul servo. Pentru un singur șurub va trebui să strângeți cu șurubelnița într-un unghi, dar este posibil. Dacă doriți, puteți fixa punctele șuruburilor care ies cu clestele laterale.

Cele 4 servo-fusuri trebuie să fie centrate înainte de a fi atașate de genunchi. Puteți face acest lucru manual, mișcând ușor axul prin rotația acestuia pentru a găsi punctul la jumătatea drumului. O modalitate mai bună este să atașați un servo la pinul 12. Descărcați fișierul icbob_servo_center.zip de mai jos. Dezarhivați directorul Arduino. Apoi rulați această schiță Arduino pentru fiecare servo.

Începeți prin asamblarea servomoldurilor de șold (superioare) la genunchi. Fără a mișca axul, atașați servo-șold paralel cu genunchiul cu firele orientate către celălalt servocorn (față). Fixați cu un șurub mic de la pachetul servo. Repetați pentru celălalt genunchi.

Acum pentru servozele gleznei. AMINTIȚI-vă că veți avea glezne drepte și stângi, astfel încât picioarele să fie imagini în oglindă. Va trebui să întindeți ușor genunchiul pentru a asambla servo-glezna, astfel încât să orientați servo-ul ca în fotografie înainte de a-l strânge. Amintiți-vă să nu rotiți axul. Fixați cu un șurub mic. Repetați cu celălalt genunchi, astfel încât să terminați cu piciorul drept și stâng.

Pasul 3: Construire - Atașați picioarele la corp

Clădire - Atașează picioarele la corp
Clădire - Atașează picioarele la corp
Clădire - Atașează picioarele la corp
Clădire - Atașează picioarele la corp
Clădire - Atașează picioarele la corp
Clădire - Atașează picioarele la corp

Veți avea nevoie de cele 2 ansambluri de picioare și de baza imprimată 3D pentru acest pas. De asemenea, veți avea nevoie de (4) șuruburi autofiletante 2-56x3 / 8 sau lipici fierbinte.

Ansamblul piciorului se atașează la bază prin intermediul servomoldurilor. Mai întâi direcționați cele 2 cabluri servo prin partea inferioară a bazei. Atenție la drepturi și la stânga. După cum se arată în desen, firul gleznei se termină în decupajul de jumătate de lună, dar trebuie să aveți firul gleznei înainte ca servo să fie atașat. Trebuie să înclinați servo, astfel încât firul șoldului (unde intră în servo) să treacă mai întâi prin gaura dreptunghiulară (în față). Se potrivește foarte bine, dar capătul din spate ar trebui să alunece. Acum întoarceți baza și fixați servo-ul cu 2 șuruburi sau, alternativ, ar trebui să funcționeze lipiciul fierbinte. Repetați procesul pentru celălalt picior.

Pasul 4: Construirea - Atașați picioarele

Clădire - Atașează picioarele
Clădire - Atașează picioarele
Clădire - Atașează picioarele
Clădire - Atașează picioarele

Pentru acest pas, veți avea nevoie de un picior stâng și picior drept pentru a adăuga la ansamblul dvs. Sunt lipite la cald, așa că trageți arma de lipit.

Asigurați-vă că curățați bine sloturile din picioare. Testați ușor montarea servomotorului la picior după curățare. Asigurați-vă că orificiul de pivotare din genunchi se potrivește în știftul de pivotare de pe picior. Cel mai bine este să utilizați o șurubelniță subțire între servo și picior pentru a îndepărta piciorul înapoi dacă este strâns. După ce obțineți o potrivire bună la test, puneți un pic de adeziv fierbinte pe picior, apoi apăsați servo pe picior. Evitați să obțineți lipici în apropierea zonei de pivotare. Repetați pentru cealaltă parte, astfel încât botul dvs. să poată sta singur.

Pasul 5: Cablare - Servo și alimentare

Cablare - Servo-uri și alimentare
Cablare - Servo-uri și alimentare
Cablare - Servo-uri și alimentare
Cablare - Servo-uri și alimentare
Cablare - Servo-uri și alimentare
Cablare - Servo-uri și alimentare

În acest pas veți avea nevoie de controlerul MICRO Magician, placa adaptorului micro USB cu pini de antet, cablul plat și botul dvs. în picioare. Veți fi lipit și lipit la cald în acest pas, așa că pregătiți aceste instrumente.

Banca de alimentare Powerbot vine cu un cablu scurt USB la micro USB. Pentru încărcarea bateriei, micro USB-ul este conectat la slotul de încărcare al bateriei, iar USB-ul merge la încărcătorul de perete. Veți refolosi acest cablu pentru a alimenta ICBob. Ieșirea bateriei se face prin USB, astfel încât să ne conectăm prin placa adaptorului micro USB pentru a alimenta robotul.

Mai întâi permiteți montarea adaptorului. Consultați fotografia pentru pașii următori. Veți folosi doar cei 2 pini externi (gnd și V +) pentru a alimenta robotul. Glisați cu grijă cele 2 știfturi exterioare în antet, astfel încât partea scurtă să iasă în jur de 3/16 in. Cu cleștele îndoiți cei 2 știfturi lungi cu aproximativ 60 de grade. Îndoiți-vă înainte de lipire, deoarece plăcile sunt fragile. Introduceți antetul așa cum se arată și lipiți toți pinii din spate pentru rezistență. Tăiați toate știfturile neutilizate cât mai scurt posibil atât în față, cât și în spate. Înainte de a lipi adaptorul de butoi atașați cablul micro USB, astfel încât să ajungeți la suficient spațiu liber. Puneți un glob mare de adeziv fierbinte pe spatele adaptorului, apoi așezați-l în poziția indicată pe butoi. Țineți până se întărește.

Apoi atașați cei 4 conectori servo la controler. Ne place MICRO Magician deoarece are conectori cu 3 pini la bord pentru servocablare ușoară. Sârmă de culoare mai închisă (maro?) Se îndreaptă spre marginea plăcii. Schițele Arduino incluse folosesc următorii pini.

  • Șoldul drept (RH) - pinul 9
  • Glezna dreaptă (RA) - pinul 10
  • Șoldul stâng (LH) - pinul 11
  • Glezna stângă (LA) - pinul 12

Pentru conexiunea de alimentare cu placa scoateți o pereche de fire din cablul plat. Veți folosi mai mult din acest cablu plat pentru cablarea sonarului. Conectați un capăt al perechii la adaptorul micro USB. Știftul care este mai aproape de partea din față a botului este măcinat și celălalt V +. Celălalt capăt se atașează la controler lângă comutator. Firul V + se conectează la pinul etichetat „Battery IN” din documentație. Conectați firul de masă la pinul „gnd” doar puțin deasupra pinului „Battery IN”.

IMPORTANT! - Există un jumper „V + select” chiar deasupra setului de pin D1. Acest jumper trebuie să se afle pe setul de pini INSIDE sau servomotoarele nu vor funcționa.

În cele din urmă, curățați slotul controlerului de pe bază, astfel încât controlerul să se potrivească perfect. Puteți atașa bateria și puteți porni controlerul pentru a vă asigura că se aprinde.

Pasul 6: Programare - Cod de calibrare la domiciliu

Câteva cuvinte despre alegerile noastre de programare

Când am construit prototipul pentru acest proiect, am folosit tutorialul Cum să-l învățăm pe BoB Biped să mute tutorialul de la Let's Make Robots. Software-ul Bob Poser a fost grozav și ne-am distrat jucându-ne cu el. Problema era că peste 600 de linii de cod din schița de navigare erau cu mult peste nivelul de cunoștințe al adolescenților. Pentru a face acest proiect mai mult o experiență de învățare pentru ei, am decis să culegem câteva idei din codul Poser și apoi să o luăm de la capăt cu o pagină goală. Adolescenții folosiseră deja biblioteca VarSpeedServo în timp ce învățau despre servouri în laboratoarele noastre Arduino. Am decis să vedem dacă VarSpeedServo ar putea face față sarcinilor de sincronizare și viteză pentru servo, astfel încât să ne putem concentra doar pe poziții. Codul rezultat funcționează excelent și schița completă walk_avoid_turn are mai puțin de 100 de linii de cod. Singurele concepte noi despre care adolescenții aveau nevoie să învețe erau matricile bidimensionale și modul de accesare a acestor date cu cod. Bucurați-vă!

Calibrare la domiciliu

Ați centrat axele servo când le-ați asamblat. Acum veți vedea cât de aproape ați ajuns și reglați bine pozițiile lor de origine. Asigurați-vă că aveți instalată biblioteca VarSpeedServo de la pasul 1. Descărcați fișierul icbob_home_calibration.zip de mai jos și dezarhivați-l în directorul Arduino. Deschideți schița în IDE-ul Arduino. Porniți MICRO Magician cu bateria. Conectați computerul la tablă și încărcați codul. Șansele sunt că pozițiile de servodirecție nu vor fi perfecte. Găsiți următoarea secțiune din cod. Continuați să ajustați și să încărcați până când îl faceți corect.

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

// Începeți cu memmber-urile de 4 hm setate la 90 de grade. apoi reglați // aceste setări astfel încât genunchii să fie drepți înainte și picioarele să fie plate int hm [4] = {90, 90, 90, 90}; // matrice pentru a menține poziția de start pentru fiecare servo RH, RA, LH, LA // …………………………………………………….

Dacă oricare dintre numerele tale este mai mic de 50 sau mai mare de 130, trebuie să dai înapoi și să dezasamblezi picioarele și să apropii axele de centru.

Odată ce ai o poziție bună la domiciliu, notează numerele. Veți avea nevoie de aceste numere pentru restul schițelor.

Pasul 7: Programare - Mutare cod generator

Programare - Mutare cod generator
Programare - Mutare cod generator

Acum, pentru a vă pune robotul în mișcare. Descărcați fișierul icbob_move_generator.zip de mai jos și dezarhivați-l în directorul dvs. Arduino. Deschideți schița în IDE-ul Arduino. Găsiți următoarea secțiune de cod. Puneți în schiță pozițiile de acasă pe care le-ați înregistrat pentru botul dvs.

// setați membrii pentru matricea hm la pozițiile de pornire pentru robotul dvs.

// pot fi găsite folosind schita icbob_home_calibration const int hm [4] = {95, 95, 85, 90}; // matrice pentru a menține poziția de start pentru fiecare servo RH, RA, LH, LA

Următoarea secțiune de cod este locul în care sunt introduse secvențele de mutare. Fiecare linie are poziții pentru cele 4 servouri (RH, RA, LH, LA) în raport cu poziția de pornire.

// date matrice mv. Fiecare linie este un „cadru” sau o poziție setată pentru cele 4 servo-uri

// Mai multe linii creează un grup de mișcări care pot fi buclate pentru a // crea mersul, întoarcerea, dansul sau alte mișcări const int mvct = 6; // Faceți acest număr egal cu numărul de linii din matricea const int mv [mvct] [4] = {{0, -40, 0, -20}, // Aceste numere preîncărcate ar trebui să dea un mers înainte {30, -40, 30, -20}, {30, 0, 30, 0}, {0, 20, 0, 40}, {-30, 20, -30, 40}, {-30, 0, -30, 0},};

Acesta este codul care transformă datele matricei mv în servo slowmoves

void loop () // bucla se repetă pentru totdeauna

{// Mutați secvența pentru (int x = 0; x <mvct; x ++) {// parcurgeți numărul RH.slowmove (hm [0] + mv [x] [0], svsp); // linii „cadre” în matricea RA.slowmove (hm [1] + mv [x] [1], svsp); LH.slowmove (hm [2] + mv [x] [2], svsp); LA.slowmove (hm [3] + mv [x] [3], svsp); întârziere (framedelay); }}

Încărcați în bot. Bot-ul va merge în poziția de pornire timp de 2 secunde, apoi va începe o buclă de mers înainte. Funcționează cel mai bine dacă masa nu este prea alunecoasă.

Odată ce te-ai săturat să-l vezi mergând, poți încerca propriile mișcări. Folosiți „Salvați ca” pentru a redenumi schița. Apoi joacă-te cu numerele și vezi ce poți face. Păstrați numerele între +50 și -50 sau puteți încerca servo-urile. Amintiți-vă dacă adăugați sau scădeți linii, trebuie să modificați valoarea mvct pentru a reflecta schimbarea. A se distra!

Pasul 8: Cablare - Senzor sonar HC-SR04 (Ochi)

Cablare - senzor sonar HC-SR04 (ochi)
Cablare - senzor sonar HC-SR04 (ochi)
Cablare - senzor sonar HC-SR04 (ochi)
Cablare - senzor sonar HC-SR04 (ochi)

Pentru acest pas veți avea nevoie de imprimarea 3D icbob_shell, de senzorul cu ultrasunete HC-SR04, de cablul plat feminin și de un rezistor de 10k ohm. Aceasta ar trebui să termine părțile de pe lista noastră. Da!

Curățați mai întâi orificiile senzorului din carcasă pentru o potrivire bine strânsă. Nu puneți prea multă presiune pe senzor atunci când montați testul. Scoateți din carcasă pentru cablare.

Apoi scoateți 4 fire de pe cablul plat. Conectați cele 4 fire la pinii senzorului HC-SR04.

MICRO Magician funcționează intern la 3,3 volți, iar pinii pot lua doar un semnal de 3,3 volți. Problema este că HC-SR04 funcționează la 5 volți. Poate utiliza o intrare de 3,3 volți ca semnal „declanșator”, dar atunci când trimite un semnal „ecou” este de 5 volți și va deteriora intrarea controlerului dacă este conectată direct. Trebuie să punem un rezistor de limitare a curentului de 10 k ohm pe firul „ecou” pentru a proteja intrarea.

ACTUALIZARE: Deși nu am avut probleme cu doar rezistența de 10K în linie, s-a subliniat în comentarii că cele mai bune practici indică faptul că ar trebui utilizat un circuit divizor de tensiune aici. În plus față de rezistența de 10K, trebuie pus un rezistor de 15K între „ecou” și „masă”.

Tăiați rezistența la 0,5 inci. Rezistorul intră în firul „ecou” al cablului dvs. plat. Am pus o picătură de super lipici pe conexiune pentru a o ajuta să rămână pe loc.

Schița folosește pinul 13 pentru declanșator și pinul 3 pentru ecou. Utilizați grupul de pini 13 de pe controler pentru „gnd”, „vcc”, „trig” în această ordine, lucrând de la margine spre centru. Va trebui să parcurgeți câteva fire aici pentru a le face corect. Sârma „ecou” cu rezistorul se conectează la mufa pin 3 feminin.

Dacă doriți să verificați senzorul înainte de a trece la pasul următor, puteți utiliza prima schiță de pe această pagină https://arduino-info.wikispaces.com/UltraSonicDistance pentru a-l testa. Veți avea nevoie de bateria conectată. Puteți vedea citirea distanței pe monitorul serial. Asigurați-vă că setați „trigger_pin” la 13 și „echo_pin” la 3 în schiță.

Cel mai bun mod de a instala senzorul în carcasă este cu știfturile îndreptate spre partea superioară și firele pliate și direcționate între „ochii” senzorului și carcasă.

Pasul 9: Programare - Walk_Avoid_Turn Code

Punând totul împreună. Toate piesele sunt asamblate. Suntem gata să încărcăm codul complet, să punem shell-ul și să-l urmărim cum își face treaba.

Știi rutina. Descărcați fișierul icbob_walk_avoid_turn.zip de mai jos și dezarhivați-l în directorul dvs. Arduino. Deschideți schița în IDE-ul Arduino. Găsiți următoarea secțiune de cod. Puneți în schiță pozițiile de acasă pe care le-ați înregistrat pentru botul dvs.

// setați membrii pentru matricea hm la pozițiile de start pentru robotul dvs.

// pot fi găsite folosind schita icbob_home_calibration const int hm [4] = {95, 95, 85, 90}; // matrice pentru a menține poziția de start pentru fiecare servo RH, RA, LH, LA

Această schiță adaugă o a doua matrice de mișcare și un al doilea set de cod de mișcare lentă pentru mișcarea „turn”.

// transmite date matrice

const int fwdmvct = 6; // Faceți acest număr egal cu numărul de linii din matrice const int fwdmv [fwdmvct] [4] = {{0, -40, 0, -20}, // mergeți înainte mișcați cadrele {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; // Faceți acest număr egal cu numărul de linii din matricea const int trnmv [trnmvct] [4] = {{-40, 0, -20, 0}, // întoarceți cadrele de mișcare {-40, 30, -20, 30}, {0, 30, 0, 30}, {30, 0, 30, 0}, {0, 0, 0, 0},};

Am adăugat un cod de detecție a obstacolelor sonar, precum și o declarație „dacă” altceva”pentru a decide dacă mergem direct sau întoarcem.

Asamblare finală și pornire

Lăsați bateria deconectată și încărcați schița. Deconectați cablul de programare. Asigurați-vă că întrerupătorul de alimentare al controlerului este în poziția „pornit” în jos. Glisați cu atenție carcasa pe bază cu cablul de alimentare USB care se lipeste prin gaura superioară. Puneți bateria. Conectați-l. ICBob-ul dvs. ar trebui să înceapă să se miște și să se rotească pentru a evita obstacolele mai apropiate de 7 inci.

Pasul 10: Încheiați

Sperăm să vă distrați la fel de mult construindu-vă ICBob-ul, la fel ca noi, construindu-l pe al nostru. Spuneți-ne dacă aveți întrebări sau comentarii. Dacă construiți unul, anunțați-ne aici sau peste Thingiverse.

Recomandat: