Turinys:

„Pasidaryk pats“edukacinis mikro: bitų robotas: 8 žingsniai (su nuotraukomis)
„Pasidaryk pats“edukacinis mikro: bitų robotas: 8 žingsniai (su nuotraukomis)

Video: „Pasidaryk pats“edukacinis mikro: bitų robotas: 8 žingsniai (su nuotraukomis)

Video: „Pasidaryk pats“edukacinis mikro: bitų robotas: 8 žingsniai (su nuotraukomis)
Video: КАК НАСТРОИТЬ L4D2 2024, Liepa
Anonim
„Pasidaryk pats“edukacinis mikro: bitų robotas
„Pasidaryk pats“edukacinis mikro: bitų robotas
„Pasidaryk pats“edukacinis mikro: bitų robotas
„Pasidaryk pats“edukacinis mikro: bitų robotas

Ši instrukcija parodys, kaip sukurti palyginti prieinamą, galingą ir pigų robotą. Mano tikslas kuriant šį robotą buvo pasiūlyti tai, ką dauguma žmonių galėtų sau leisti, kad jie patraukliai mokytų informatikos arba sužinotų apie tai.

Sukūrę šį robotą, galėsite mėgautis įvairiais jutikliais ir pavaromis, kad galėtumėte atlikti pagrindinius, bet ir gana pažangius dalykus, priklausomai nuo jūsų sukurtos versijos (pateiksiu dvi versijas). Su šiuo robotu jūs suteikiate akis (180 ° vaizdas!) Ir kojas (su tiksliu judesiu!) „Micro: bit“, o „micro: bit“suteikia jums puikių funkcijų, tokių kaip LED matrica, radijo ryšys, „Bluetooth“ryšys, akselerometras, kompasai, bet ir prieiga prie viso to naudojant „MicroPython“arba vaizdinę programavimo kalbą, panašią į „nulį“(iš tikrųjų taip pat „C ++“ir „JavaScript“, bet manau, kad jie mažiau tinkami mokytis).

Taip pat dirbsiu su šia pamoka, kad galėčiau skaitytojus ir kūrėjus nukreipti į kelią, kad jie daugiau sužinotų apie mobiliąją robotiką, elektroniką, projektavimą ir medžio pjovimą. Norėdami tai padaryti, suprojektavau viską, kad būtų kuo moduliškiau. Pavyzdžiui, aš nenaudosiu jokių klijų, kad galėčiau laisvai surinkti ir išardyti, kad būtų lengviau atnaujinti ir derinti. Aš taip pat padarysiu žingsnius kiek įmanoma tolesnius, kad galėtumėte palaipsniui suprasti, kas vyksta, patikrinti, ar viskas veikia taip, kaip turėtų, ir pasiekti pabaigą su veikiančiu robotu.

1 žingsnis: Surinkite gabalus

Kūrinių surinkimas
Kūrinių surinkimas

Šiam projektui jums reikės mažiausiai:

  • 5 mm storio MDF mediena ir lazerinis pjoviklis skeletui
  • 1x18650 ličio baterija, 1x baterijos skydas energijai ir pertraukiklis
  • 1xMicro: bitų kortelė ir 1xMicro: bitų išplėtimo plokštė smegenims (nors abu galima lengvai pakeisti „Arduino“)
  • 2x28BYJ-5V žingsniniai varikliai, 2xA4988 žingsninių variklių tvarkyklės ir 2x kūrimo plokštė, skirta tvirtinti kojų tvarkykles
  • 1x TOF10120 ir 1x mini 9g servo variklis akims Kai kurie kabeliai ir varžtai
  • 1x universalus ratas, aukštis = 15mm

Tarp jų tik trys dalys nėra standartai, todėl čia yra nuorodos, kaip jas rasti: suraskite čia naudojamą prailginimo plokštę (bet aš rekomenduočiau naudoti šią, kad būtų sukurta tvarkinga roboto versija. beveik nieko nepakeis dizaino ir laidai bus daug paprastesni su sulenktomis moteriškomis ir moteriškomis galvutėmis), akumuliatoriaus skydas čia ir universalus ratas čia.

Idealiu atveju taip pat turėsite:

  • Multimetras
  • Duonos lenta
  • Lituoklis

Tiems, kaip ir lazeriniam pjaustytuvui, patikrinkite, ar jūsų vietoje yra kokių nors fablabų! Tai puiki vieta susitikti su įkvepiančiais kūrėjais!

2 žingsnis: paruoškite kojas

Kojų paruošimas
Kojų paruošimas
Kojų paruošimas
Kojų paruošimas
Kojų paruošimas
Kojų paruošimas
Kojų paruošimas
Kojų paruošimas

Pirmoji jūsų misija, jei ją priimsite, bus priversti mūsų žingsninį variklį suktis naudojant „micro: bit“kaip valdiklį! Kodėl žingsninis variklis? Aš galėjau pasirinkti nuolatinės srovės variklį su reduktoriais, bet aš juos išbandžiau ir man sunku gauti pigių variklių, kurie veiktų mažu greičiu. Taip pat pagalvojau, kad būtų malonu tiksliai žinoti, kokiu greičiu sukasi mano ratai. Dėl šių priežasčių žingsniniai varikliai buvo geriausias pasirinkimas.

Taigi dabar, kaip valdyti 28BYJ variklį naudojant 4988 tvarkyklę? Atsakymas yra… šiek tiek ilgas. Man nepavyko, kad jis gerai tilptų į šią instrukciją, todėl padariau dar vieną, skirtą šiam tikslui, kurį rasite čia. Kviečiu jus atlikti šiuos veiksmus iki galo, sukuriant nedidelę 26x22 mm dydžio prototipų plokštę su 2x2 mm skylėmis 17 mm, kad ją būtų galima pritvirtinti prie šonų, kaip parodyta aukščiau esančiame paveikslėlyje (atkreipkite dėmesį, kad, kaip nurodyta minėtame straipsnyje, geltona viela kairėje iškyša yra tik ten, kad primintų jums, kad lituoti SLP ir RST kartu).

Pradėjęs dirbti su vienu varikliu su prototipų plokšte, aš taip pat sukūriau savo PCB, kad viskas būtų šiek tiek tvarkingiau. Pridėjau atitinkamą „easyEDA“failą. Tai yra txt failas, tačiau vis tiek galite jį atidaryti naudodami nemokamą „EasyEDA“internetinio redagavimo platformą.

3 žingsnis: Aš matau šviesą !! (Neprivaloma)

Aš matau šviesą !! (Neprivaloma)
Aš matau šviesą !! (Neprivaloma)
Aš matau šviesą !! (Neprivaloma)
Aš matau šviesą !! (Neprivaloma)
Aš matau šviesą !! (Neprivaloma)
Aš matau šviesą !! (Neprivaloma)

Jei norite tik kurti ir nieko daugiau, pereikite prie paskutinės šio veiksmo pastraipos ir sužinokite, kaip prijungti TOF10120 prie „micro: bit“. Jei ne, sekite.

Kadangi mūsų „micro: bit“nėra komplektuojamas su jokia kamera ar artumo jutikliu, jis tampa tarsi aklas bet kuriai mobiliai robotikos programai. Jame yra radijo imtuvas ir receptorius, kurie leistų mums sukurti skeletą pagal tai, ką jau turime, ir gauti nuotoliniu būdu valdomą robotą. Bet ar nebūtų puiku, kad mūsų robotas taptų savarankiškas? Taip būtų! Taigi pažiūrėkime, kaip ten patekti.

Dabar mus domina tai, kad mūsų robotas būtų aprūpintas jutikliais, kad mūsų robotas gautų tam tikrą informaciją apie savo aplinką. Yra daug tipų jutiklių, tačiau čia mes sutelksime dėmesį į artumo jutiklius. Kai kuriau šį robotą, daugiausia siekiau, kad robotas į nieką neatsitrenktų, todėl norėjau, kad jis pajustų kliūtis. Tam taip pat yra keletas variantų. Pirmasis, labai paprastas, galėtų būti buferių naudojimas, tačiau manau, kad informacija apie aplinką yra šiek tiek ribota. Kita vertus, galite galvoti apie fotoaparato (arba „Lidar“ar „kinect“) pridėjimą. Man patinka fotoaparatai, kompiuterinis matymas ir visi šie dalykai, bet, deja, „Micro: bit“jų nepalaiko (tokiems įrenginiams palaikyti turėtume naudoti „Raspberry Pi“, o ne „micro: bit“ar „Arduino“).

Taigi ką palaiko „micro: bit“, esantis tarp fotoaparato ir buferių? Yra nedideli aktyvūs jutikliai, kurie siunčia šviesą į aplinką ir tikrina, kas gaunama, kad gautų informacijos apie pasaulį. Aš jau žinojau apie tai GP2Y0A41SK0F, kuris naudoja trikampio metodą atstumui iki kliūčių įvertinti. Tačiau man buvo įdomu, ar galėčiau rasti ką nors geresnio, todėl padariau keletą tyrimų ir galiausiai atradau TOF10120 (ir GY-VL53L0XV2, bet dar negavau:(). Čia yra puikus straipsnis, kurį galite atrasti. Iš esmės šis jutiklis skleidžia infraraudonųjų spindulių signalą, atspindintį kliūtis, ir tada jis gauna atspindėtą šviesą. Priklausomai nuo laiko, per kurį šviesa ėjo pirmyn ir atgal, jutiklis gali įvertinti kliūties atstumą (taigi pavadinimas TOF = skrydžio laikas) Dėl mažo dydžio, atstumo ir galios poreikio nusprendžiau naudoti TOF10120.

Nors mano pirmoji idėja buvo tris iš jų uždėti ant roboto (vieną priekyje ir dvi šonuose), kinų naujieji metai ir COVID-19 pandemija to nenorėjo, nes atrodė, kad tai sukelia problemų dėl siuntų. Kadangi apsiribojau vienu TOF10120, kurį taip pat norėjau pamatyti šonuose ir turėjau keletą servo variklių, nusprendžiau montuoti jutiklį ant servo. Taigi dabar trūksta dviejų dalykų: kaip naudoti TOF10120 su „micro: bit“? Ir tas pats klausimas su servo.

Laimei, „micro: bit“turi I2C ryšio protokolą ir tai palengvina mūsų gyvenimą: prijunkite raudoną laidą prie 3,3 V, juodą prie žemės, žalią prie SCL ir mėlyną prie SDA ir viskas aparatinei daliai. Kalbant apie programinę įrangą, raginu jus šiek tiek paskaityti apie „I2C“ryšį ir išbandyti „python“kodą, kurį pridėjau „micro: bit“. Ta programa turėtų atspausdinti atstumą, matuojamą jutikliu REPL (skaityti įvertinimo spausdinimo ciklą). Viskas. Mes tiesiog pažvelgėme į savo „micro: bit“.

Dabar leiskite man pasukti kaklą, jei leisite man tęsti savo analogijas su gyvūnų anatomija. Vienintelis dalykas, kurio mums reikia, yra vairuoti servo variklį su „micro: bit“. Ši dalis ilgėja, todėl aš jums duosiu šią nuorodą, kurioje yra visa reikalinga informacija ir kodas, kurį naudoju jį išbandydamas. Jei norite, aš taip pat pridėjau paprastą kodą, skirtą valdyti servo, naudojant pin0. Tiesiog nepamirškite maitinti savo servo 5V, o ne 3.3V.

4 žingsnis: nulaužkite akumuliatoriaus skydą

Akumuliatoriaus skydo nulaužimas
Akumuliatoriaus skydo nulaužimas
Akumuliatoriaus skydo nulaužimas
Akumuliatoriaus skydo nulaužimas
Akumuliatoriaus skydo nulaužimas
Akumuliatoriaus skydo nulaužimas

Dabar, kai paruošėme pavaras ir jutiklius, laikas pažvelgti į akumuliatoriaus valdymo sistemą. Jei norite sužinoti daugiau apie mano pasirinktą akumuliatoriaus skydą, patarčiau perskaityti šį straipsnį. Manau, kad tai labai aišku ir prieinama. Iš šio straipsnio matome daug šio akumuliatoriaus skydo privalumų, tačiau yra vienas svarbus trūkumas, kurio nenorėjau sutikti: įjungimo/išjungimo jungiklis veikia tik USB išvestį. Tai reiškia, kad jei išjungsite jungiklį, visi kiti 3.3V ir 5V kaiščiai bus maitinami. Todėl, kai mes naudojame tuos kaiščius savo robotui, jungiklis nieko nedarys …

Bet aš noriu, kad galėčiau išjungti savo robotą, kad tuščiai neištuštintų baterijos, todėl turėjau nulaužti akumuliatoriaus skydą. Tai nebus gražu, bet tai veikia ir nieko nekainuoja. Todėl noriu, kad jungiklis atidarytų arba uždarytų grandinę, kad mano akumuliatoriaus elementas būtų izoliuotas nuo akumuliatoriaus skydo. Neturiu įrangos, leidžiančios liesti PCB, bet aplinkui yra plastiko gabalėlių. Taigi dabar įsivaizduokite, kad nukirpau plastiko gabalėlį, kad jis tilptų viename akumuliatoriaus elemento gale skydelyje, kaip ir pirmame paveikslėlyje aukščiau. Grandinė dabar atidaryta ir mano baterija saugiai laikoma.

Taip, bet nenoriu atidaryti roboto, kad galėčiau pasiekti akumuliatoriaus skydą, kad galėčiau įdėti ir nuimti šį plastiko gabalėlį! Lengva: įsigykite jungiklį ir priklijuokite du mažus kvadratėlius aliuminio prie kiekvieno prie jungiklio prijungto laido. Dabar priklijuokite tas dvi aliuminio dalis prie plastiko gabalo, kad abi aliuminio dalys būtų atskirtos viena nuo kitos ir kad aliuminis būtų matomas jūsų sistemos išorėje. Paprastai tai turėtų būti padaryta. Įdėkite naują kūrinį į akumuliatoriaus skydą šalia elemento, o jungiklis turėtų leisti atidaryti arba uždaryti grandinę, prijungtą prie elemento.

Paskutinis dalykas: kad būtų lengviau surinkti ir išardyti robotą, patarčiau ant akumuliatoriaus skydo lituoti antgalius. Taip galite lengvai prijungti ir atjungti tai, ką sukuriate su varikliais ir jų tvarkyklėmis.

5 žingsnis: 3D dizainas ir pjaustymas

3D dizainas ir kirpimas
3D dizainas ir kirpimas
3D dizainas ir kirpimas
3D dizainas ir kirpimas

Vienintelis dalykas, kurio dabar trūksta, yra sukurti struktūrą, kuri laikytų visus mūsų komponentus. Norėdami tai padaryti, aš naudoju internetinę platformą tinkercad. Tai tikrai graži aplinka atlikti keletą pagrindinių CAD, kurių dažnai pakanka lazerinio pjaustytuvo projektavimui.

Šiek tiek pagalvojęs, atėjo laikas pasimėgauti. Norėdami tai padaryti, aš pradėjau sudėti įvairių turimų dalių 3D modelius (pirmiausia servo ir TOF neįtraukdami į lygtį). Tai apima akumuliatorių ir skydą, žingsninius variklius ir variklių tvarkykles, ir, žinoma, „micro: bit“su prailginimo plokšte. Aš pridėjau visus atitinkamus 3D modelius kaip stl failus. Norėdami palengvinti procesą, nusprendžiau robotą padaryti simetrišką. Dėl to aš susitvarkiau tik su puse roboto ir pasiekiau aukščiau esančiame paveikslėlyje parodytą dizainą.

Iš to atsirado kelios versijos, iš kurių aš pasirinkau dvi:

  • Vienas gana tvarkingas, be artumo jutiklio, kuris leidžia neatsirasti laidų. Nors ši versija nėra savarankiška, ji vis tiek gali būti užprogramuota naudojant „Bluetooth“, pavyzdžiui, naudojant „iPad“, arba gali būti suprogramuota taip, kad būtų valdoma naudojant radijo signalus, kuriuos, pavyzdžiui, gali siųsti kitas mikro: bitas, kaip parodyta aukščiau esančiame vaizdo įraše.
  • Vienas daug mažiau tvarkingas, leidžiantis daug labiau pažvelgti į mobilųjį robotiką, nes leidžia užfiksuoti kliūties atstumą 180 ° vaizdu dėl artumo jutiklio, sumontuoto ant servo variklio.

Norėdami tai padaryti, eikite į savo mėgstamą „Fablab“ir naudokite rastą lazerinį pjaustytuvą norimam modeliui iškirpti: pirmasis, kuris atitinka failus design1_5mmMDF.svg ir design1_3mmMDF, atitinkančius dalis, kurias reikia pjauti 5 mm MDF mediena ir tie, kuriuos reikia pjauti iš 3 mm; antrasis atitinka failą design2_5mmMDF.svg. Nustatykite juodus kontūrus, kuriuos reikia iškirpti, o raudonus - išgraviruoti.

Šoninė pastaba: raudoną raštą pridėjau tik tam, kad jį paruoštumėte. Tai Hilberto užpildymo funkcija, kurią sukūriau naudodamas pridedamą python kodą.

6 žingsnis: žvėries montavimas

Žvėries montavimas
Žvėries montavimas
Žvėries montavimas
Žvėries montavimas
Žvėries montavimas
Žvėries montavimas

Pirmieji roboto variantai buvo sumontuoti taip (paveikslėliai paprastai turi būti teisinga tvarka):

  1. Nuimkite mėlyną variklių dangtelį ir šiek tiek perpjaukite, kad kabelis išsikištų iš variklio galo.
  2. Sumontuokite variklius iš abiejų pusių, naudodami M2 varžtus ir varžtus.
  3. Sumontuokite prototipų plokštę šonuose, naudodami 2x2 mm skyles ir kai kuriuos varžtus ir varžtus.
  4. Įdėkite A4988 tvarkykles ir užklijuokite variklio kabelius, kad jis būtų tvarkingas.
  5. Sumontuokite universalų ratą po apatine dalimi ir pridėkite šonus.
  6. Ant viršutinės dalies pritvirtinkite „micro: bit“prailginimo plokštę.
  7. Sumontuokite lankstaus priekinio dangčio apačią.
  8. Įdėkite akumuliatoriaus skydą ir prijunkite viską (norėdami tai padaryti, nes aš vis dar laukiau norimos pratęsimo plokštės pristatymo ir turėjau tik vieną su moteriškomis antraštėmis, perdirbau IDE kabelį iš seno kompiuterio, kad galėčiau kad mano kabeliai nepriliptų prie plokštės, kad visa tai padengtų sulankstomu priekiniu dangčiu). Nors mano pateiktą kodą labai lengva pritaikyti, norėdami jį naudoti tiesiogiai, turėsite prijungti kairįjį ŽINGSNĮ prie 2 kaiščio, dešinįjį žingsnį prie 8 kaiščio, kairįjį DIR prie 12 kaiščio, dešinįjį DIR prie 1 kaiščio.
  9. Įdėkite „micro: bit“į plėtinį.
  10. Prieš eidami toliau, patikrinkite, ar viskas veikia su „MoveTest.py“.
  11. Sumontuokite jungiklį ant viršutinės dalies ir padėkite plastikinį antgalį šalia ličio elemento.
  12. Prisukite viršutinę priekinio dangčio dalį.
  13. Sumontuokite nugarą ir baigsite! Fau! Nesitikėjau tiek žingsnių! Daug lengviau apie tai galvoti ir tai padaryti, nei paaiškinti žodžiais! (Ir aš tikiu, kad vis tiek trūks informacijos!)

Jei kuriate antrąją versiją su artumo jutikliu, tada:

  1. Vykdykite aukščiau pateiktą instrukciją. Vienintelis skirtumas bus tas, kad 7 veiksme turėsite pridėti keletą M2 tarpiklių (nors aš tai padariau, bet tai nėra būtina), nepaisykite 8 ir 13 žingsnių (nes nėra priekinio dangčio)
  2. Sumontuokite servo variklį M2 varžtais ir prijunkite servo VCC ir GND tiesiai prie akumuliatoriaus skydo 5 V, o valdiklį įjunkite prie „micro: bit“0 kaiščio.
  3. Sumontuokite du medžio gabalus, kurie bus ant servo, varžtu, prisukite TOF jutiklį ir baltą plastikinę detalę, kuri yra kartu su servo.
  4. Sumontuokite šį paskutinį įrenginį ant servo ir prijunkite jutiklį naudodami „micro: bit“I2C, kaip aprašyta 3 veiksme.

7 žingsnis: programa

Viskas ! Turite robotą, kurį galite užprogramuoti naudodami „micro: python“arba „makecode“. Čia pridėjau kodo pavyzdį, kurį naudoju aukščiau pateiktiems vaizdo įrašams:

  • 1 pavyzdys: įdėkite „radioControl.py“į roboto „micro: bit“ir „ReadAccelero.py“į kitą „micro: bit“, kad galėtumėte valdyti robotą naudodami antrojo „micro: bit“polinkį.
  • 2 pavyzdys: įdėkite Autonomous.py ant 2 versijos roboto, kuris tyrinės aplinką.

Tai tik pagrindiniai pavyzdžiai, kuriuos galite naudoti norėdami žengti daug toliau. Pavyzdžiui, man labai patinka vienalaikis lokalizavimas ir kartografavimas, ir paprastai šio roboto 2 versijoje yra viskas, ko jums reikia! Nors vienas didelis tokio projekto trūkumas yra tai, kad „micro: bit“PWM tvarkyklė yra programinės įrangos tvarkyklė, kuri visiems kanalams naudoja tą patį laikmatį, o tai reiškia, kad visi mūsų nustatyti PWM turi būti vienodo dažnio (ką aš padariau) nežinau, kada parašiau pavyzdinius kodus, nors rašydamas Autonomous.py aptikau kažką keisto.)

8 žingsnis: Eikite toliau

Nedvejodami patobulinkite dizainą, išspręskite kai kurias problemas, kurių nemačiau. Pavyzdžiui, galų gale norėčiau:

  • Roboto apačioje pridėkite IR jutiklį, kad jis nustatytų, ar žemė yra juoda ar balta, ar ji pasiekia mano stalo galą.
  • Pakeiskite akumuliatoriaus valdymo sistemą, nes manęs tai dar netenkina. Tiesą sakant, norint įkrauti akumuliatorių, reikia išardyti robotą, kad būtų pašalintas elementas arba akumuliatoriaus skydas … Todėl planuoju: 1. pridėti mini USB jungtį roboto gale, prisijungsiu prie akumuliatoriaus skydo, kad galėčiau jį įkrauti; 2. Iškirpkite skylę apačioje, kad pamatytumėte šviesos diodus nuo akumuliatoriaus skydo ir pamatytumėte, kada įkrovimas baigtas.
  • Patikrinkite, ar yra priimtinas būdas išvesti skirtingų dažnių PWM.
  • Išbandykite VL53L0XV2, kad pakeistumėte TOF10120, nes tai galėtų būti pigesnis pasirinkimas, dėl kurio jis būtų prieinamas dar daugiau žmonių. Nors aš daugiau skaičiau apie šį jutiklį ir atrodo, kad bendrovė, kuri tai padarė pigiai, tyčia labai sunkiai susitvarkė su ja …
  • Išbandykite skirtingus ratų dizainus, kad jie taptų patvaresni (Šiuo metu tikėjausi, kad jei ratus įvesiu ir išimsiu daug kartų, mediena palaipsniui bus pažeista. Jei padarysiu medieną elastingesnę, pakeisiu dizainą kad jis tarnautų ilgiau)

Didelis ačiū EPFL mobiliosios robotikos komandos (dabar Biorobotics laboratorijos dalis) žmonėms, kurie man labai padėjo išplėsti žinias apie elektroniką ir mechaniką!

Rekomenduojamas: