Cuprins:

DIY Educational Micro: bit Robot: 8 pași (cu imagini)
DIY Educational Micro: bit Robot: 8 pași (cu imagini)

Video: DIY Educational Micro: bit Robot: 8 pași (cu imagini)

Video: DIY Educational Micro: bit Robot: 8 pași (cu imagini)
Video: Introducing the BBC micro:bit - BBC Make It Digital 2024, Iulie
Anonim
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot

Acest instructable vă va arăta cum să construiți un robot relativ accesibil, capabil și ieftin. Scopul meu în proiectarea acestui robot a fost să propun ceva pe care majoritatea oamenilor și-l permitea, pentru ca aceștia să predea informatica într-un mod atrăgător sau să învețe despre el.

Odată ce ați construit acest robot, vă puteți bucura de varietatea sa de senzori și actuatoare pentru a face lucruri de bază, dar și destul de avansate, în funcție de versiunea pe care o construiți (vă voi oferi două versiuni). Cu acest robot oferiți ochi (vedere la 180 °!) Și picioare (cu o mișcare precisă posibilă!) Către micro: bit, în timp ce micro: bit vă oferă caracteristici extraordinare, cum ar fi matricea LED, comunicația radio, comunicația bluetooth, accelerometrul, compas, dar și acces la toate acele lucruri fie cu MicroPython, fie cu un limbaj de programare vizual similar cu zero (de fapt, de asemenea, în C ++ și javascript, dar le găsesc mai puțin potrivite pentru educație).

Voi lucra, de asemenea, la acest instructable, astfel încât să pot pune cititorii și producătorii pe cale să descopere mai multe despre robotica mobilă, electronică, proiectare și tăierea lemnului. Pentru a face acest lucru, am proiectat totul pentru a fi cât mai modular posibil. De exemplu, nu voi folosi niciun adeziv pentru a permite asamblarea și dezasamblarea liberă, făcând upgrade-urile și depanarea mai ușoară. De asemenea, voi face pașii cât se poate de incrementali, astfel încât să puteți înțelege progresiv ce se întâmplă, să verificați dacă lucrurile funcționează așa cum ar trebui și să ajungeți la final cu un robot care funcționează.

Pasul 1: Adunarea pieselor

Adunarea pieselor
Adunarea pieselor

Pentru acest proiect, minimul de urs de care aveți nevoie este:

  • Lemn MDF de 5 mm grosime și un tăietor cu laser pentru schelet
  • 1x18650 baterie litiu, 1x scut baterie pentru energie și un întrerupător
  • 1xMicro: card de biți și 1xMicro: placa de extensie de biți pentru creier (deși ambele pot fi înlocuite cu ușurință de un Arduino)
  • 2x28BYJ-5V motoare pas cu pas, 2xA4988 drivere motor pas cu pas și 2x placă de dezvoltare pentru montarea driverelor pentru picioare
  • 1x TOF10120 și 1x Servomotor Mini 9g pentru ochi Unele cabluri și șuruburi
  • 1x roată universală, înălțime = 15mm

Dintre acestea, doar trei părți nu sunt standarde, prin urmare, aici sunt link-uri pentru a le găsi: găsiți placa de extensie pe care am folosit-o aici (dar vă recomand să o utilizați în schimb pentru versiunea elegantă a robotului. Va trebui să nu schimbați aproape nimic în design și va face cablajul mult mai simplu cu anteturi curbate feminin-feminin), ecranul bateriei aici și roata universală aici.

În mod ideal, veți avea la dispoziție și:

  • Un multimetru
  • O placă de măsurare
  • Un fier de lipit

Pentru cei, precum și pentru dispozitivul de tăiat cu laser, verificați dacă aveți vreo fablab în jurul dvs.! Acestea sunt locuri minunate pentru a întâlni unii producători inspirați!

Pasul 2: Pregătirea picioarelor

Pregătirea picioarelor
Pregătirea picioarelor
Pregătirea picioarelor
Pregătirea picioarelor
Pregătirea picioarelor
Pregătirea picioarelor
Pregătirea picioarelor
Pregătirea picioarelor

Prima dvs. misiune, dacă o acceptați, va fi să faceți motorul nostru pas cu pas să se rotească folosind micro: bit ca controler! De ce un motor pas cu pas? Aș fi putut alege motorul de curent continuu cu reductoare, dar le-am încercat și mi-e greu să obțin motoare ieftine care să funcționeze la viteză mică. De asemenea, m-am gândit că ar fi frumos să știu exact la ce viteză se rotesc roțile mele. Din aceste motive, motoarele pas cu pas au fost cea mai bună opțiune.

Deci, acum, cum să controlați un motor 28BYJ folosind un driver 4988? Răspunsul este … cam lung. Nu am reușit să-l încadrez bine în acest instructable, așa că am făcut un altul doar în acest scop pe care îl veți găsi aici. Vă invit să urmați acești pași până la final cu crearea unei mici plăci de prototip 26x22mm mare cu găuri de 2x2mm 17 mm apart pentru a o monta pe laturi așa cum se arată în imaginea de mai sus (Rețineți că, așa cum se spune în articolul de referință, firul galben în stânga care se desprinde este doar acolo pentru a vă reaminti să lipiți SLP și RST împreună).

După ce am lucrat cu un motor cu placa de prototipare, mi-am proiectat și eu propriul PCB pentru a face lucrurile puțin mai ordonate. Am atașat fișierul easyEDA corespunzător. Este un fișier txt, dar îl puteți deschide în continuare cu platforma de editare online easyEDA gratuită.

Pasul 3: Văd Lumina !! (Opțional)

Vad lumina !! (Opțional)
Vad lumina !! (Opțional)
Vad lumina !! (Opțional)
Vad lumina !! (Opțional)
Vad lumina !! (Opțional)
Vad lumina !! (Opțional)

Dacă doriți doar să construiți și nimic mai mult, treceți la cel dinaintea ultimului paragraf al acestui pas pentru a vedea cum să conectați un TOF10120 la micro: bit. Dacă nu, urmați.

Deoarece bitul nostru micro: nu vine cu nicio cameră sau senzor de proximitate, îl face un fel de orb pentru orice aplicație de robotică mobilă. Cu toate acestea, vine cu un emițător radio și un receptor care ne-ar permite să construim scheletul peste ceea ce avem deja și să obținem un robot controlat de la distanță. Dar nu ar fi minunat să ne facem robotul autonom? Da ar fi! Deci, să vedem cum să ajungem acolo.

Ceea ce ne interesează acum este să ne dotăm robotul cu senzori, pentru ca robotul nostru să dobândească câteva informații despre mediul său. Există multe tipuri de senzori disponibili, dar aici ne vom concentra asupra senzorului de proximitate. Când proiectam acest robot, scopul meu era în principal ca robotul să nu se prăbușească în nimic, de aceea am vrut să simtă obstacole. Pentru aceasta există și câteva opțiuni. Un prim, foarte simplu, ar putea fi utilizarea barei de protecție, dar consider că informațiile despre mediu sunt puțin limitate. La cealaltă extremă, te-ai putea gândi să adaugi o cameră (sau un Lidar sau un kinect!). Îmi plac camerele, viziunea computerizată și toate aceste lucruri, dar, din păcate, Micro: bit nu le acceptă (ar trebui să folosim un pi zmeură pentru a sprijini astfel de dispozitive, nu un micro: bit sau Arduino).

Deci, ce suportă micro: bit, care este între o cameră și bare de protecție? Există mici senzori activi care trimit lumină către mediu și verifică ce este primit pentru a obține câteva informații despre lume. Cea pe care o știam deja era GP2Y0A41SK0F care utilizează o metodă de triangulare pentru a estima distanța până la obstacole. Cu toate acestea, m-am întrebat dacă aș putea găsi ceva mai bun, așa că am făcut câteva cercetări și am ajuns să descopăr TOF10120 (și GY-VL53L0XV2, dar nu l-am primit încă:(). Iată un articol frumos pentru a-l descoperi. Practic, acest senzor emite un semnal infraroșu care se reflectă asupra obstacolelor și apoi primește lumina reflectată. În funcție de timpul necesar luminii pentru a merge înainte și înapoi, senzorul poate estima distanța obstacolului (de aici și numele TOF = timpul zborului Pentru dimensiunile reduse, intervalul de distanță și cerința de putere, am decis să folosesc TOF10120.

În timp ce prima mea idee a fost să pun trei dintre acestea pe robot (unul în față și două pe laterale), noul an chinezesc și pandemia COVID-19 nu l-au dorit așa, deoarece părea să provoace probleme cu transporturile. Așa că, fiind limitat la un singur TOF10120, pe care voiam să-l văd și pe lateral și că aveam niște servo-motoare așezate în jur, am decis să-mi montez senzorul pe un servo. Așadar, două lucruri lipsesc acum: cum folosesc TOF10120 cu micro: bit? Și aceeași întrebare cu servo.

Din fericire, micro: bit este echipat cu protocol de comunicație I2C și ne face viața foarte ușoară: conectăm firul roșu la 3,3V, negru la masă, verde la SCL și albastru la SDA și asta este pentru partea hardware. Pentru software, vă încurajez să citiți puțin despre comunicarea I2C și să încercați codul python pe care l-am atașat pe micro: bit. Acest program ar trebui să vă imprime distanța măsurată de senzor pe REPL (Read Evaluate Print Loop). Asta e. Tocmai am văzut micro: bitul nostru.

Acum, să-l facem să-și întoarcă gâtul, dacă îmi permiteți să-mi continui analogiile cu anatomia animalelor. Singurul lucru pe care îl vom avea nevoie este să acționăm un servomotor cu micro: bit. Această parte devine lungă, așa că vă voi oferi acest link care conține toate informațiile de care aveți nevoie și codul pe care l-am folosit pentru a-l testa. Dacă doriți, am adăugat și un cod simplu pentru a controla servo folosind pin0. Nu uitați să alimentați servo-ul cu 5V și nu cu 3.3V.

Pasul 4: Spargerea ecranului bateriei

Spargerea ecranului bateriei
Spargerea ecranului bateriei
Spargerea ecranului bateriei
Spargerea ecranului bateriei
Spargerea ecranului bateriei
Spargerea ecranului bateriei

Acum că ne-am pregătit actuatoarele și senzorii, este timpul să aruncăm o privire asupra sistemului de gestionare a bateriei. Pentru a afla mai multe despre ecranul bateriei pe care l-am ales, v-aș sfătui să citiți acest articol. Mi se pare foarte clar și accesibil. Din acest articol putem vedea multe avantaje ale acestui ecran al bateriei, dar există un dezavantaj important pe care nu am vrut să-l accept: comutatorul ON / OFF nu afectează decât ieșirea USB. Aceasta înseamnă că, dacă opriți comutatorul, toți ceilalți pini de 3,3V și 5V vor fi alimentați. Ca urmare, deoarece folosim acei pini pentru robotul nostru, comutatorul nu va face nimic …

Dar vreau să pot opri robotul pentru a nu-mi goli bateria pentru nimic, așa că a trebuit să sparg scutul bateriei. Nu va fi frumos, dar funcționează și nu costă nimic. Prin urmare, vreau ca un comutator să deschidă sau să închidă circuitul, astfel încât să-mi izoleze celula bateriei de ecranul bateriei. Nu am echipament pentru a atinge PCB-ul, dar am bucăți de plastic peste tot. Deci, acum imaginați-vă că am tăiat o bucată de plastic, astfel încât să se potrivească la un capăt al celulei bateriei în scut, ca în prima imagine de mai sus. Circuitul este acum deschis și bateria mea este stocată în siguranță.

Da, dar nu vreau să trebuiască să deschid robotul pentru a accesa ecranul bateriei pentru a pune și scoate această bucată de plastic! Ușor: obțineți un comutator și lipiți două pătrate mici de aluminiu la fiecare dintre firele conectate la comutator. Acum lipiți aceste două bucăți de aluminiu pe bucata de plastic pentru a avea cele două bucăți de aluminiu izolate una de cealaltă și pentru a avea aluminiu expus la exteriorul sistemului. În mod normal, ar trebui să facă asta. Introduceți noua creație în ecranul bateriei de lângă celulă, iar comutatorul ar trebui să vă permită să deschideți sau să închideți circuitul conectat la celulă.

Un ultim lucru: pentru a facilita asamblarea și dezasamblarea robotului, v-aș sfătui să lipiți anteturile feminine pe ecranul bateriei. În acest fel, puteți conecta și deconecta cu ușurință ceea ce construiți cu motoarele și driverele lor.

Pasul 5: Proiectare 3D și tăiere

Proiectare 3D și tăiere
Proiectare 3D și tăiere
Proiectare 3D și tăiere
Proiectare 3D și tăiere

Singurul lucru care lipsește acum este să construim structura care va ține împreună toate componentele noastre. Pentru a face acest lucru am folosit platforma online tinkercad. Acesta este un mediu foarte frumos pentru a face unele CAD de bază, care este adesea suficient pentru proiectarea lucrurilor pentru tăietorul laser.

După ceva timp gândindu-se, a venit timpul să ne jucăm. Pentru a face acest lucru, am început să pun împreună modele 3D ale diferitelor părți pe care le aveam (păstrând mai întâi servo și TOF în afara ecuației). Aceasta include bateria și ecranul, motoarele pas cu pas și driverele de motor și, desigur, micro: bitul cu placa de extensie. Am atașat toate modelele 3D corespunzătoare ca fișiere stl. Pentru a ușura procesul, am decis să-mi fac robotul simetric. Drept urmare, am jucat doar cu jumătate din robot și am ajuns la designul prezentat în imaginea de mai sus.

Din aceasta, câteva versiuni au prins viață, dintre care am selectat două:

  • Unul destul de ordonat, fără senzorul de proximitate, care permite să nu apară fire. Deși nu este autonomă, această versiune poate fi programată prin Bluetooth prin intermediul unui iPad, de exemplu, sau poate fi programată pentru a fi controlată utilizând semnale radio care pot fi, de exemplu, trimise de un alt micro: bit așa cum se arată în videoclipul de mai sus.
  • Unul mult mai puțin ordonat care permite să meargă mult mai departe în robotica mobilă, deoarece permite captarea distanței obstacolului cu o vedere de 180 ° datorită senzorului de proximitate construit pe un servomotor.

Pentru a construi acest lucru, mergeți la Fablab-ul dvs. preferat și utilizați tăietorul laser pe care îl găsiți pentru a tăia modelul preferat: primul care corespunde fișierelor design1_5mmMDF.svg și design1_3mmMDF care corespund respectiv pieselor de tăiat în MDF de 5 mm lemn și cele de tăiat din cel de 3 mm; a doua corespunde fișierului design2_5mmMDF.svg. Setați contururile negre de tăiat și cele roșii de gravat.

Notă laterală: Am adăugat modelul roșu doar pentru a-l proxeni. Aceasta este o funcție de umplere Hilbert pe care am generat-o folosind codul python atașat.

Pasul 6: Montarea fiarei

Montarea fiarei
Montarea fiarei
Montarea fiarei
Montarea fiarei
Montarea fiarei
Montarea fiarei

Pașii pe care i-am urmat pentru a monta prima versiune a robotului sunt următorii (imaginile ar trebui să fie în mod normal în ordinea corectă):

  1. Scoateți capacul albastru al motoarelor și tăiați-l puțin pentru a face cablul să iasă din spatele motorului.
  2. Montați motoarele pe fiecare parte folosind șuruburi și șuruburi M2.
  3. Montați placa de prototipare pe laturi folosind găurile de 2x2mm și câteva șuruburi și șuruburi.
  4. Puneți driverele A4988 și lipiți cablurile motorului pentru ao menține ordonat.
  5. Montați roata universală sub partea inferioară și adăugați părțile laterale.
  6. Montați placa de extensie a bitului micro: pe partea superioară.
  7. Montați partea inferioară a capacului frontal flexibil.
  8. Puneți scutul bateriei și conectați totul (pentru a face acest lucru, deoarece încă așteptam livrarea plăcii de extensie pe care o doream și că aveam doar una cu anteturi feminine care ieșeau afară, am reciclat un cablu IDE de pe un computer vechi pentru a reuși să nu trebuie ca cablurile mele să lipească placa pentru a acoperi toate acestea prin capacul frontal pliabil). Deși codul pe care l-am furnizat este foarte ușor de adaptat, pentru al utiliza direct, va trebui să conectați STEP-ul stânga la pinul 2, STEP-ul drept la pinul 8, DIR-ul stânga la pin-ul 12, DIR-ul drept la pin-ul 1.
  9. Puneți micro: bit în extensie.
  10. Testați dacă totul funcționează cu MoveTest.py înainte de a merge mai departe.
  11. Montați comutatorul pe partea superioară și puneți bița din plastic lângă celula de litiu.
  12. Înșurubați partea superioară a capacului frontal.
  13. Montați spatele și ați terminat! Phew! Nu mă așteptam la atât de mulți pași! Este mult mai ușor să te gândești la asta și să o faci decât să o explici în cuvinte! (Și sunt sigur că vor lipsi în continuare informații!)

Dacă construiți a doua versiune cu senzorul de proximitate, atunci:

  1. Urmați instrucțiunile de mai sus. Singura diferență va fi că va trebui să adăugați niște distanțieri M2 la pasul 7 (deși asta am făcut, dar nu este necesar), ignorați pasul 8 și pasul 13 (deoarece nu există capac frontal)
  2. Montați servomotorul cu șuruburi M2 și conectați VCC și GND ale servo-ului direct pe 5V ale ecranului bateriei și conectați intrarea de control la pinul 0 al micro: bitului.
  3. Montați cele două bucăți de lemn care vor merge deasupra servo-ului cu un șurub, înșurubați senzorul TOF pe acesta, precum și piesa de plastic albă care vine împreună cu servo-ul.
  4. Montați această ultimă unitate pe servo și conectați senzorul folosind I2C de micro: bit așa cum este descris în pasul 3.

Pasul 7: Program

Asta e ! Aveți un robot pe care îl puteți programa fie în micro: python, fie în makecode. Am atașat aici câteva exemple de cod pe care le-am folosit pentru a face videoclipurile de mai sus:

  • Exemplul 1: Puneți radioControl.py pe micro: bitul robotului și ReadAccelero.py pe alt micro: bit pentru a controla robotul utilizând înclinația celui de-al doilea micro: bit.
  • Exemplul 2: puneți Autonom.py pe versiunea 2 a robotului, acesta va explora mediul.

Acestea sunt doar exemple de bază pe care le puteți folosi pentru a merge mult, mult mai departe. De exemplu, îmi place localizarea și maparea simultană și, în mod normal, există tot ce aveți nevoie în versiunea 2 a acestui robot pentru a face asta! Deși un mare dezavantaj pentru mine de a face un astfel de proiect este că driverul micro: bit PWM este un driver software care folosește același timer pentru toate canalele, ceea ce înseamnă că toate PWM-urile pe care le setăm trebuie să aibă aceeași frecvență (ceea ce am făcut nu știu când am scris exemplele de coduri, deși am detectat ceva ciudat când am scris Autonom.py).

Pasul 8: Mergeți mai departe

Nu ezitați să îmbunătățiți designul, să rezolvați câteva probleme pe care nu le-am văzut. De exemplu, aș dori în cele din urmă:

  • Adăugați un senzor IR în partea de jos a robotului pentru a-l detecta dacă solul este negru sau alb sau dacă ajunge la capătul biroului meu.
  • Schimbați sistemul de gestionare a bateriei deoarece nu sunt încă mulțumit de el. Într-adevăr, în acest moment, pentru a reîncărca bateria, este necesar să dezasamblați robotul pentru a scoate celula sau ecranul bateriei … Prin urmare, intenționez să: 1. adăugați un conector mini-USB pe spatele robotului pe care îl Mă voi conecta la ecranul bateriei, astfel încât să îl pot reîncărca; 2. Tăiați o gaură în partea de jos pentru a vedea LED-urile de pe ecranul bateriei pentru a vedea când încărcarea sa terminat.
  • Verificați dacă există o modalitate acceptabilă de a produce PWM-uri cu frecvențe diferite.
  • Încercați VL53L0XV2 pentru a înlocui TOF10120, deoarece ar putea fi o opțiune mai ieftină, care l-ar face accesibil și mai multor persoane. Deși am citit mai multe despre acest senzor și se pare că compania care a făcut acest lucru ieftin a făcut-o intenționat foarte greu de tratat …
  • Testați diferite modele pentru roți pentru a le face mai durabile (În acest moment aș aștepta ca dacă iau roțile de mai multe ori, lemnul va fi deteriorat progresiv. Dacă fac lemnul mai elastic modificând designul, aș putea să reușești să dureze mai mult)

O mulțumire deosebită oamenilor din echipa de robotică mobilă (care acum face parte din laboratorul Biorobotică) din EPFL care m-au ajutat să-mi extind mult cunoștințele despre electronică și mecanică!

Recomandat: