Kazalo:

Izobraževalni Micro: bit Robot: 8 korakov (s slikami)
Izobraževalni Micro: bit Robot: 8 korakov (s slikami)

Video: Izobraževalni Micro: bit Robot: 8 korakov (s slikami)

Video: Izobraževalni Micro: bit Robot: 8 korakov (s slikami)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Julij
Anonim
Izobraževalni Micro: bitni robot DIY
Izobraževalni Micro: bitni robot DIY
Izobraževalni Micro: bitni robot DIY
Izobraževalni Micro: bitni robot DIY

Ta navodila vam bodo pokazala, kako sestaviti relativno dostopnega, sposobnega in poceni robota. Moj cilj pri oblikovanju tega robota je bil predlagati nekaj, kar bi si večina ljudi lahko privoščila, da bi na zanimiv način poučevali računalništvo ali se o njem poučevali.

Ko boste zgradili tega robota, boste lahko uživali v različnih senzorjih in aktuatorjih za opravljanje osnovnih, a tudi precej naprednih stvari, odvisno od različice, ki jo zgradite (jaz bom dal dve različici). S tem robotom dajete oči (pogled 180 °!) In noge (z natančnim premikom!) Mikro: bitu, medtem ko vam mikro: bit ponuja odlične funkcije, kot so LED matrika, radijska komunikacija, bluetooth komunikacija, merilnik pospeška, compas, pa tudi dostop do vseh teh stvari z MicroPythonom ali z vizualnim programskim jezikom, podobnim prasketu (pravzaprav tudi v C ++ in javascript, vendar se mi zdijo tisti manj primerni za izobraževanje).

Prav tako bom delal na tem navodilu, da bom bralce in ustvarjalce lahko pripravil na odkrivanje več o mobilni robotiki, elektroniki, oblikovanju in rezanju lesa. V ta namen sem vse oblikoval tako, da je čim bolj modularno. Na primer, ne bom uporabljal nobenega lepila za prosto sestavljanje in razstavljanje, kar olajša nadgradnje in odpravljanje napak. Prav tako bom naredil korake čim bolj postopno, da boste lahko postopoma razumeli, kaj se dogaja, preverili, ali stvari delujejo tako, kot bi morali, in z robotom, ki deluje, prišli do konca.

1. korak: Zbiranje kosov

Zbiranje kosov
Zbiranje kosov

Za ta projekt je medvedji minimum, ki ga potrebujete:

  • MDF les debeline 5 mm in laserski rezalnik za okostje
  • 1x18650 litijeva baterija, 1x ščitnik baterije za energijo in prekinitelj
  • 1xMicro: Bit kartica in 1xMicro: bitna razširitvena plošča za možgane (čeprav lahko oboje enostavno zamenjate z Arduinom)
  • 2x28BYJ-5V koračni motorji, 2xA4988 gonilniki koračnih motorjev in 2x razvojna plošča za namestitev gonilnikov za noge
  • 1x TOF10120 in 1x mini 9g servo motor za oči Nekaj kablov in vijakov
  • 1x univerzalno kolo, višina = 15 mm

Med njimi le trije deli niso standardi, zato so tukaj povezave za njihovo iskanje: poiščite razširitveno ploščo, ki sem jo uporabil tukaj (vendar vam priporočam, da namesto tega uporabite za čisto različico robota. Morali boste skoraj nič ne spremenite v zasnovi in olajšalo bo ožičenje z upogibnimi žensko-ženskimi glavami), ščitnikom za baterije tukaj in univerzalnim kolesom tukaj.

V idealnem primeru imate na voljo tudi:

  • Multimeter
  • Tla
  • Spajkalnik

Za tiste, pa tudi za laserski rezalnik, preverite, ali imate v bližini kakšen fablab! To so odlični kraji za spoznavanje navdihujočih ustvarjalcev!

2. korak: Priprava nog

Priprava nog
Priprava nog
Priprava nog
Priprava nog
Priprava nog
Priprava nog
Priprava nog
Priprava nog

Vaša prva naloga, če jo sprejmete, bo, da se naš koračni motor vrti z uporabo micro: bita kot krmilnika! Zakaj koračni motor? Lahko bi se odločil za enosmerni motor z reduktorji, vendar sem jih poskusil in težko dobim, da bi poceni motorji delovali pri nizki hitrosti. Mislil sem tudi, da bi bilo dobro natančno vedeti, s kakšno hitrostjo se vrtijo moja kolesa. Iz teh razlogov so bili koračni motorji najboljša možnost.

Kako torej upravljati motor 28BYJ z gonilnikom 4988? Odgovor je … malo dolg. Ni mi uspelo, da bi se lepo prilegal temu navodilu, zato sem naredil še enega za ta namen, ki ga boste našli tukaj. Vabim vas, da do konca sledite tem korakom z ustvarjanjem majhne prototipne plošče velikosti 26x22 mm z luknjami 2x2 mm 17 mm, da jo pritrdite na straneh, kot je prikazano na zgornji sliki (upoštevajte, da je, kot je navedeno v navedenem članku, rumena žica na levi štrli samo tam, da vas spomni, da spajkate SLP in RST skupaj).

Potem ko sem to deloval z enim motorjem s ploščo za izdelavo prototipov, sem oblikoval tudi lastno tiskano vezje, ki je naredilo stvari nekoliko bolj urejene. Priložil sem ustrezno datoteko easyEDA. To je datoteka txt, vendar jo lahko odprete z brezplačno spletno platformo za urejanje easyEDA.

3. korak: Vidim svetlobo !! (Neobvezno)

Vidim Luč !! (Neobvezno)
Vidim Luč !! (Neobvezno)
Vidim Luč !! (Neobvezno)
Vidim Luč !! (Neobvezno)
Vidim Luč !! (Neobvezno)
Vidim Luč !! (Neobvezno)

Če želite samo zgraditi in nič več, skočite na tistega pred zadnjim odstavkom tega koraka in poglejte, kako priključiti TOF10120 na micro: bit. Če ne sledite.

Ker naš micro: bit ni opremljen s kamero ali senzorjem bližine, je zato slep za vse aplikacije za mobilno robotiko. Na voljo je z radijskim oddajnikom in sprejemnikom, ki bi nam omogočil, da zgradimo okostje nad tem, kar že imamo, in dobimo daljinsko vodenega robota. Toda ali ne bi bilo super narediti našega robota avtonomnega? Ja bi bilo! Pa poglejmo, kako priti do tja.

Zdaj nas zanima, da našega robota opremimo s senzorji, da bo naš robot pridobil nekaj informacij o svojem okolju. Na voljo je veliko vrst senzorjev, tukaj pa se bomo osredotočili na senzor bližine. Ko sem oblikoval tega robota, je bil moj cilj predvsem to, da se robot ne zaleti v nič, zato sem hotel, da zazna ovire. Za to obstaja tudi nekaj možnosti. Prvi, zelo preprost, bi lahko bil uporaba odbijačev, vendar se mi zdijo informacije o okolju nekoliko omejene. Na drugi skrajnosti pa bi si lahko zamislili, da bi dodali kamero (ali Lidar ali kinect!). Obožujem fotoaparate, računalniški vid in vse te stvari, a Micro: bit jih žal ne podpira (za podporo takšnih naprav bi morali uporabiti malinovo pi, ne pa micro: bit ali Arduino).

Kaj torej podpira micro: bit, ki je med kamero in odbijači? Obstajajo majhni aktivni senzorji, ki pošiljajo svetlobo v okolje in preverjajo, kaj prejmejo, da bi dobili nekaj informacij o svetu. Tisti, ki sem ga že poznal, je bil GP2Y0A41SK0F, ki uporablja metodo triangulacije za oceno razdalje do ovir. Spraševal sem se, ali bi lahko našel kaj boljšega, zato sem opravil nekaj raziskav in na koncu sem odkril TOF10120 (in GY-VL53L0XV2, vendar ga še nisem prejel:(). Tukaj je lep članek, ki ga lahko odkrijete. V bistvu ta senzor oddaja infrardeči signal, ki se odbija od ovir, nato pa sprejme odbojno svetlobo. Odvisno od časa, ko je svetloba tekla naprej in nazaj, lahko senzor oceni razdaljo ovire (od tod tudi ime TOF = čas leta) Zaradi majhnosti, razdalje in potrebe po moči sem se odločil za uporabo TOF10120.

Medtem ko je bila moja prva zamisel, da bi na robota postavili tri (enega spredaj in dva ob straneh), kitajsko novo leto in pandemija COVID-19 nista želeli tako, saj se je zdelo, da povzroča težave pri pošiljkah. Ker sem bil omejen na en TOF10120, ki sem ga želel videti tudi ob straneh in ker sem imel naokoli nekaj servo motorjev, sem se odločil, da senzor namestim na servo. Zdaj torej manjkata dve stvari: kako naj uporabim TOF10120 z micro: bitom? In isto vprašanje s servo.

Na srečo je micro: bit opremljen s komunikacijskim protokolom I2C in nam olajša življenje: rdečo žico priključite na 3,3 V, črno na ozemljitev, zeleno na SCL in modro na SDA in to je to za del strojne opreme. Za programsko opremo vas pozivam, da preberete nekaj o komunikaciji I2C in preizkusite kodo python, ki sem jo priložil na micro: bit. Ta program bi vam moral natisniti razdaljo, ki jo meri senzor, na REPL (Read Evaluate Print Loop). To je to. Mi smo pravkar dali pogled našemu micro: bit.

Zdaj pa naj se obrne, če mi dovolite, da nadaljujem analogije z anatomijo živali. Edina misel, da bomo to potrebovali, je, da poganjamo servo motor z micro: bitom. Ta del se podaljšuje, zato vam bom dal samo to povezavo, ki vsebuje vse potrebne informacije in kodo, ki sem jo uporabil za testiranje. Če želite, sem dodal tudi preprosto kodo za krmiljenje servo z pin0. Ne pozabite napajati servo s 5V in ne 3.3V.

4. korak: Vdor v baterijski ščit

Vdor v baterijski ščit
Vdor v baterijski ščit
Vdor v baterijski ščit
Vdor v baterijski ščit
Vdor v baterijski ščit
Vdor v baterijski ščit

Zdaj, ko imamo pripravljene pogone in senzorje, je čas, da si ogledamo sistem za upravljanje baterije. Če želite izvedeti več o ščitniku baterije, ki sem ga izbral, vam svetujem, da preberete ta članek. Zdi se mi zelo jasno in dostopno. Iz tega članka lahko vidimo številne prednosti tega ščita za baterije, vendar obstaja ena pomembna pomanjkljivost, ki je nisem hotel sprejeti: stikalo za vklop/izklop vpliva le na izhod USB. To pomeni, da če izklopite stikalo, se napajajo vsi drugi zatiči 3.3V in 5V. Kot rezultat, ko te zatiče uporabljamo za svojega robota, stikalo ne bo naredilo ničesar …

Želim pa, da bi lahko izklopil svojega robota, da ne bi za nič izpraznil baterije, zato sem moral vdreti v ščitnik baterije. Ne bo lepo, vendar deluje in ne stane nič. Zato želim, da stikalo odpre ali zapre vezje, tako da izolira mojo baterijsko celico od ščitnika baterije. Nimam opreme, s katero bi se dotaknil tiskanega vezja, imam pa naokoli koščke plastike. Zdaj pa si predstavljajte, da sem kos plastike odrezal tako, da se lahko namesti na en konec baterije v ščit, kot je prikazano na prvi sliki zgoraj. Vezje je zdaj odprto in moja baterija je varno shranjena.

Da, vendar mi ni treba odpreti robota za dostop do ščita za baterije, da bi dal in odstranil ta kos plastike! Enostavno: vzemite stikalo in na vsako žico, priključeno na stikalo, prilepite dva kvadratka aluminija. Zdaj prilepite ta dva kosa aluminija na kos plastike, da bosta dva aluminijasta kosa ločena drug od drugega in da bo aluminij izpostavljen zunaj vašega sistema. Običajno bi tako moralo biti. Vstavite novo stvaritev v ščitnik baterije poleg celice, stikalo pa vam mora omogočiti odpiranje ali zapiranje vezja, povezanega s celico.

Še zadnja stvar: zaradi lažjega sestavljanja in razstavljanja robota vam svetujem, da ženske glave spajkate na ščitnik baterije. Na ta način lahko preprosto priključite in odklopite tisto, kar zgradite z motorji in njihovimi gonilniki.

5. korak: 3D oblikovanje in rezanje

3D oblikovanje in rezanje
3D oblikovanje in rezanje
3D oblikovanje in rezanje
3D oblikovanje in rezanje

Edino, kar zdaj manjka, je zgraditi strukturo, ki bo držala vse naše komponente skupaj. Za to sem uporabil spletno platformo tinkercad. To je res lepo okolje za nekaj osnovnih CAD, ki so pogosto dovolj za oblikovanje stvari za laserski rezalnik.

Po nekaj časa razmišljanja je bil čas, da se poigram. V ta namen sem začel sestavljati 3D modele različnih delov, ki sem jih imel (najprej sem servo in TOF izločil iz enačbe). To vključuje baterijo in ščit, koračne motorje in gonilnike motorjev ter seveda micro: bit s podaljškom. Vse ustrezne 3D modele sem priložil kot stl datoteke. Za lažji postopek sem se odločil, da bom svojega robota naredil simetrično. Zato sem se poigraval le s polovico robota in dosegel zasnovo, prikazano na zgornji sliki.

Iz tega je zaživelo nekaj različic, med katerimi sem izbral dve:

  • Eden precej urejen, brez senzorja bližine, ki omogoča, da se ne prikažejo nobene žice. Čeprav ta različica ni avtonomna, se lahko na primer še vedno programira prek bluetootha prek iPada ali pa se lahko programira za upravljanje z radijskimi signali, ki jih lahko na primer pošlje drugi mikro: bit, kot je prikazano v zgornjem videu.
  • Eden veliko manj urejen, ki omogoča, da gremo veliko dlje v mobilno robotiko, saj omogoča zajem razdalje ovire s 180 -stopinjskim pogledom zaradi senzorja bližine, vgrajenega na servo motorju.

Če želite to zgraditi, pojdite na svoj najljubši Fablab in z laserskim rezalnikom, ki vam ustreza, izrežite želeni model: prvi, ki ustreza datotekam design1_5mmMDF.svg in design1_3mmMDF, ki ustrezata delom za rezanje v 5 mm MDF les in tisti, ki jih izrežemo iz 3 mm; drugi ustreza datoteki design2_5mmMDF.svg. Nastavite črne konture za rezanje in rdeče za graviranje.

Stranska opomba: Rdeči vzorec sem dodal samo zato, da ga zvodim. To je Hilbertova funkcija polnjenja, ki sem jo ustvaril s pomočjo priložene kode python.

Korak 6: Namestitev zveri

Montiranje zveri
Montiranje zveri
Namestitev zveri
Namestitev zveri
Namestitev zveri
Namestitev zveri

Koraki, ki sem jih uporabil za namestitev prve različice robota, so naslednji (slike morajo biti običajno v pravem vrstnem redu):

  1. Odstranite modri pokrov motorja in ga nekoliko prerežite, da kabel štrli z zadnje strani motorja.
  2. Motorje pritrdite na vsako stran z vijaki in vijaki M2.
  3. Ploščo za izdelavo prototipov namestite na stranice z luknjami 2x2 mm in nekaj vijaki.
  4. Namestite gonilnike A4988 in prilepite kable motorja, da bo urejen.
  5. Univerzalno kolo namestite pod spodnji del in dodajte stranice.
  6. Na zgornji del namestite podaljšek micro: bita.
  7. Namestite spodnji del prilagodljivega sprednjega pokrova.
  8. Postavite ščitnik za baterije in povežite vse (da bi to naredil, ker sem še čakal na dostavo razširitvene plošče, ki sem jo želel, in da je pri meni štrlela samo ena z ženskimi glavami, sem recikliral kabel IDE iz starega računalnika, da sem uspel da mi kabli ne štrlijo na ploščo, da bi vse to pokrili z zložljivim sprednjim pokrovom). Čeprav je koda, ki sem jo navedel, zelo enostavna za prilagoditev, boste za neposredno uporabo morali priključiti levi STEP na pin 2, desni STEP na pin 8, levi DIR na pin 12, desni DIR na pin 1.
  9. Micro: bit vstavite v razširitev.
  10. Preden nadaljujete, preverite, ali vse deluje z MoveTest.py.
  11. Stikalo namestite na zgornji del in plastični nastavek postavite poleg litijeve celice.
  12. Privijte zgornji del sprednjega pokrova.
  13. Namestite hrbet in končali ste! Uf! Nisem pričakoval toliko korakov! Tako lažje je o tem razmišljati in to narediti, kot pa razložiti z besedami! (In prepričan sem, da bodo še vedno manjkali podatki!)

Če drugo različico gradite s senzorjem bližine, potem:

  1. Sledite zgornjim navodilom. Edina razlika bo v tem, da boste morali v 7. koraku dodati nekaj distančnikov M2 (čeprav sem to storil, vendar to ni potrebno), prezrite 8. in 13. korak (saj sprednjega pokrova ni)
  2. Servo motor pritrdite z vijaki M2 in priključite VCC in GND servo motorja neposredno na 5V ščitnika akumulatorja, krmilni vhod pa priključite na pin 0 mikro: bita.
  3. Dva kosa lesa, ki bosta šla na servomotor, pritrdite z vijakom, na to privijte senzor TOF in bel kos plastike, ki je priložen servo.
  4. Zadnjo enoto namestite na servo in senzor povežite z I2C mikro: bita, kot je opisano v 3. koraku.

7. korak: Program

To je to! Imate robota, ki ga lahko programirate v micro: python ali v makecode. Tukaj sem priložil nekaj vzorčne kode, ki sem jo uporabil pri snemanju zgornjih videoposnetkov:

  • Primer 1: postavite radioControl.py na micro: bit robota in ReadAccelero.py na drug micro: bit za nadzor robota z naklonom drugega micro: bita.
  • Primer 2: Postavite Autonomous.py na različico 2 robota, ki bo raziskal okolje.

To so le osnovni primeri, s katerimi lahko greste veliko dlje. Na primer, zelo mi je všeč hkratna lokalizacija in preslikava, običajno pa v različici 2 tega robota potrebujete vse, kar želite! Čeprav je pri mojem projektu velika pomanjkljivost ta, da je gonilnik PWM micro: bit gonilnik programske opreme, ki uporablja isti časomer za vse kanale, kar pomeni, da morajo imeti vsi PWM -ji, ki jih nastavimo, enako frekvenco (kar sem tudi jaz naredil ne vem, kdaj sem napisal vzorčne kode, čeprav sem pri pisanju Autonomous.py odkril nekaj čudnega).

8. korak: Pojdite dlje

Ne oklevajte in izboljšajte zasnovo, rešite nekaj težav, ki jih nisem videl. Na primer, na koncu bi rad:

  • Dodajte IR senzor na dnu robota, da zazna, ali je zemlja črna ali bela ali sega do konca mize.
  • Spremenite sistem za upravljanje baterije, saj z njim še nisem zadovoljen. Dejansko je za polnjenje baterije potrebno razstaviti robota, da odstranite celico ali ščitnik baterije … Zato nameravam: 1. dodati priključek mini-USB na zadnji strani robota, ki ga se povežem s ščitnikom baterije, da ga lahko napolnim; 2. Izrežite luknjo na dnu, da vidite LED diode na ščitniku baterije, da vidite, kdaj je polnjenje končano.
  • Preverite, ali obstaja sprejemljiv način za oddajanje PWM -jev z različnimi frekvencami.
  • Preizkusite VL53L0XV2, da zamenjate TOF10120, saj bi bila to lahko cenejša možnost, zaradi katere bi bil dostopen še več ljudem. Čeprav sem prebral več o tem senzorju in zdi se, da je podjetje, ki je to pocenilo, namerno zelo težko obravnavalo …
  • Preizkusite različne zasnove koles, da bodo trajnejša (trenutno bi pričakoval, da se bo les, če večkrat vzamem in odstranjujem kolesa, postopoma poškodoval. Če naredim les bolj elastičen, bom spremenil obliko lahko traja dlje)

Velika zahvala ljudem iz skupine za mobilno robotiko (zdaj del laboratorija za biorobotiko) EPFL, ki so mi zelo pomagali razširiti moje znanje o elektroniki in mehaniki!

Priporočena: