Sadržaj:

DIY Educational Micro: bit Robot: 8 koraka (sa slikama)
DIY Educational Micro: bit Robot: 8 koraka (sa slikama)

Video: DIY Educational Micro: bit Robot: 8 koraka (sa slikama)

Video: DIY Educational Micro: bit Robot: 8 koraka (sa slikama)
Video: IPHONE vs XIAOMI 2024, Juli
Anonim
Uradi sam edukativni mikro: bitni robot
Uradi sam edukativni mikro: bitni robot
Uradi sam edukativni mikro: bitni robot
Uradi sam edukativni mikro: bitni robot

Ova instrukcija će vam pokazati kako izgraditi relativno pristupačnog, sposobnog i jeftinog robota. Moj cilj u dizajniranju ovog robota bio je predložiti nešto što bi si većina ljudi mogla priuštiti, za njih da predaju informatiku na zanimljiv način ili da nauče o tome.

Kada izgradite ovog robota, moći ćete uživati u raznovrsnim senzorima i aktuatorima za obavljanje osnovnih, ali i prilično naprednih stvari, ovisno o verziji koju napravite (navest ću dvije verzije). Ovim robotom pružate oči (pogled od 180 °!) I noge (s mogućim preciznim kretanjem!) Micro: bit -u, dok micro: bit pruža odlične značajke kao što su LED matrica, radio komunikacija, bluetooth komunikacija, akcelerometar, compas, ali i pristup svim tim stvarima sa MicroPythonom ili sa vizuelnim programskim jezikom sličnim ispočetka (zapravo i u C ++ i javascript -u, ali smatram da su oni manje prikladni za obrazovanje).

Radit ću i na ovom uputstvu kako bih čitatelje i tvorce mogao usmjeriti na otkrivanje više o mobilnoj robotici, elektronici, dizajnu i rezanju drva. Da bih to učinio, sve sam dizajnirao kako bi bilo što modularnije. Na primjer, neću koristiti ljepilo za slobodno sastavljanje i rastavljanje, olakšavajući nadogradnje i otklanjanje grešaka. Također ću učiniti korake što je moguće postupnijim, kako biste mogli postupno razumjeti što se događa, provjeriti rade li stvari kako trebaju i doći do kraja pomoću robota koji radi.

Korak 1: Skupljanje komada

Skupljanje komada
Skupljanje komada

Za ovaj projekt minimalan minimum koji vam je potreban je:

  • MDF drvo debljine 5 mm i laserski rezač za kostur
  • 1x18650 litijumska baterija, 1x štitnik baterije za energiju i prekidač
  • 1xMicro: Bit kartica i 1xMicro: Bit produžna ploča za mozak (iako se obje mogu lako zamijeniti Arduinom)
  • 2x28BYJ-5V koračni motori, 2xA4988 upravljački programi za koračne motore i 2x razvojna ploča za postavljanje upravljačkih programa za noge
  • 1x TOF10120 i 1x Mini 9g Servo motor za očiNeki kablovi i vijci
  • 1x univerzalni točak, visina = 15 mm

Među njima samo tri dijela nisu standardi, stoga evo linkova za njihovo pronalaženje: pronađite ploču za proširenje koju sam ovdje koristio (ali preporučio bih vam da umjesto nje koristite ovu za urednu verziju robota. Morat ćete ne mijenjate gotovo ništa u dizajnu i znatno će pojednostaviti ožičenje sa savijanjem žensko-ženskih zaglavlja), štitnikom baterije ovdje i univerzalnim kotačem ovdje.

Idealno bi bilo i da imate na raspolaganju:

  • Multimetar
  • Matična ploča
  • Lemilica

Za njih, kao i za laserski rezač, provjerite imate li kod kuće neki fablab! To su sjajna mjesta za upoznavanje inspirativnih kreatora!

Korak 2: Pripremite noge

Priprema nogu
Priprema nogu
Priprema nogu
Priprema nogu
Priprema nogu
Priprema nogu
Priprema nogu
Priprema nogu

Vaša prva misija, ako je prihvatite, bit će da naš stepper motor rotira koristeći micro: bit kao kontroler! Zašto koračni motor? Mogao sam se odlučiti za istosmjerni motor s reduktorima, ali probao sam ih i teško mi je navesti jeftine motore da rade pri malim brzinama. Također sam mislio da bi bilo lijepo znati kojom brzinom se moji kotači okreću. Iz tih razloga, koračni motori bili su najbolja opcija.

Dakle, kako kontrolirati motor od 28BYJ koristeći upravljački program 4988? Odgovor je … malo dug. Nisam uspio da se uredno uklopi u ovo uputstvo, pa sam napravio samo još jedan u tu svrhu koji ćete pronaći ovdje. Pozivam vas da slijedite ove korake do kraja stvaranjem male prototipne ploče velike 26x22 mm s rupama 2x2 mm sa otvorom od 17 mm za postavljanje sa strane kao što je prikazano na gornjoj slici (imajte na umu da je, kako je navedeno u referenciranom članku, žuta žica s lijeve strane štrči samo da vas podsjeti da lemite SLP i RST zajedno).

Nakon što sam ovo počeo raditi s jednim motorom s pločom za izradu prototipa, dizajnirao sam i vlastitu PCB kako bih učinio stvari malo urednijim. Priložio sam odgovarajuću easyEDA datoteku. To je txt datoteka, ali je i dalje možete otvoriti pomoću easyEDA besplatne internetske platforme za uređivanje.

Korak 3: Vidim svjetlost !! (Opcionalno)

Vidim Svetlost !! (Opcionalno)
Vidim Svetlost !! (Opcionalno)
Vidim Svetlost !! (Opcionalno)
Vidim Svetlost !! (Opcionalno)
Vidim Svetlost !! (Opcionalno)
Vidim Svetlost !! (Opcionalno)

Ako samo želite graditi i ništa više, prijeđite na onaj prije posljednjeg odlomka ovog koraka da vidite kako spojiti TOF10120 na micro: bit. Ako ne, pratite do kraja.

Budući da naš micro: bit ne dolazi s kamerom ili senzorom blizine, čini ga slijepim za bilo koju aplikaciju za mobilnu robotiku. Dolazi s radio odašiljačem i receptorom koji bi nam omogućili da izgradimo kostur nad onim što već imamo i dobijemo robota na daljinsko upravljanje. Ali ne bi li bilo sjajno učiniti našeg robota autonomnim? Da, bilo bi! Pa da vidimo kako do tamo.

Ono što nas sada zanima je opremiti našeg robota senzorima, kako bi naš robot stekao neke informacije o svom okruženju. Dostupne su mnoge vrste senzora, ali ovdje ćemo se fokusirati na senzor blizine. Kada sam dizajnirao ovog robota, moj cilj je bio uglavnom da se robot ne zaleti u bilo što, pa sam htio da osjeti prepreke. Za to postoji i nekoliko opcija. Prvi, vrlo jednostavan, mogao bi biti korištenje odbojnika, ali smatram da su informacije o okolišu malo ograničene. S druge strane, mogli biste pomisliti da dodate kameru (ili Lidar ili kinect!). Obožavam kamere, računarski vid i sve te stvari, ali nažalost Micro: bit ih ne podržava (morali bismo koristiti maline Pi za podršku takvih uređaja, a ne micro: bit ili Arduino).

Dakle, šta podržava micro: bit podrška koja se nalazi između kamere i odbojnika? Postoje mali aktivni senzori koji šalju svjetlost u okolinu i provjeravaju ono što se primi kako bi dobili neke informacije o svijetu. Za koji sam već znao bio je GP2Y0A41SK0F koji koristi metodu triangulacije za procjenu udaljenosti do prepreka. Međutim, pitao sam se mogu li pronaći nešto bolje, pa sam napravio malo istraživanja i na kraju sam otkrio TOF10120 (i GY-VL53L0XV2, ali ga još nisam primio:(). Evo jednog lijepog članka za vas da to otkrijete. U osnovi ovaj senzor emitira infracrveni signal koji se reflektira na prepreke i tada prima reflektiranu svjetlost. Ovisno o vremenu koje je svjetlu potrebno za kretanje naprijed -natrag, senzor može procijeniti udaljenost prepreke (otuda naziv TOF = vrijeme leta) Zbog svoje male veličine, udaljenosti i potrebne snage odlučio sam koristiti TOF10120.

Dok mi je prva ideja bila staviti tri takva na robota (jedan sprijeda i dva sa strane), kineska nova godina i pandemija COVID-19 to nisu htjeli jer se činilo da uzrokuje probleme s pošiljkama. Pa kako sam bio ograničen na jedan TOF10120, koji sam htio vidjeti i sa strane i kako su mi ležali neki servo motori, odlučio sam montirati svoj senzor na servo. Dakle, dvije stvari sada nedostaju: kako mogu koristiti TOF10120 s micro: bitom? I isto pitanje sa servom.

Srećom, micro: bit je opremljen I2C komunikacijskim protokolom i čini nam život vrlo lakim: priključite crvenu žicu na 3,3 V, crnu na masu, zelenu na SCL i plavu na SDA i to je to za hardverski dio. Za softver, ohrabrujem vas da pročitate nešto o I2C komunikaciji i isprobate python kod koji sam priložio na micro: bit. Taj program bi vam trebao odštampati udaljenost izmjerenu senzorom na REPL (Read Evaluate Print Loop). To je to. Upravo smo dali pogled našem micro: bit -u.

Neka sada okrene vrat ako mi dopustite da nastavim svoje analogije sa anatomijom životinja. Jedino što nam je potrebno za to je da vozimo servo motor s micro: bitom. Ovaj dio postaje dugačak pa ću vam dati ovu vezu koja sadrži sve potrebne informacije i kôd koji sam koristio za testiranje. Ako želite, dodao sam i jednostavan kod za kontrolu servo -a pomoću pin0. Samo ne zaboravite napajati servo sa 5V, a ne sa 3.3V.

Korak 4: Hakiranje štitnika baterije

Hakiranje štita baterije
Hakiranje štita baterije
Hakiranje štita baterije
Hakiranje štita baterije
Hakiranje štita baterije
Hakiranje štita baterije

Sada kada smo pripremili naše aktuatore i senzore, vrijeme je da pogledamo sistem upravljanja baterijom. Da biste saznali više o štitu baterije koji sam odabrao, savjetujem vam da pročitate ovaj članak. Smatram da je to vrlo jasno i pristupačno. Iz ovog članka možemo vidjeti mnoge prednosti ovog štitnika za baterije, ali postoji jedan važan nedostatak koji nisam želio prihvatiti: prekidač za uključivanje/isključivanje utječe samo na USB izlaz. To znači da će se, ako isključite prekidač, napajati svi ostali pinovi od 3,3 V i 5 V. Kao rezultat toga, dok te pinove koristimo za našeg robota, prekidač neće učiniti ništa …

Ali želim biti u mogućnosti isključiti robota da mi ništa ne isprazni bateriju, pa sam morao hakirati štitnik baterije. Neće biti lijepo, ali funkcionira i ne košta ništa. Stoga želim da prekidač otvori ili zatvori krug tako da izolira moju baterijsku ćeliju od štita baterije. Nemam opremu za dodirivanje štampane ploče, ali imam komade plastike svuda unaokolo. Zamislite sada da sam izrezao komad plastike tako da stane na jedan kraj baterije u štit kao na prvoj slici gore. Krug je sada otvoren i moja baterija je sigurno spremljena.

Da, ali ne želim otvarati robota da bi pristupio štitniku baterije kako bi stavio i uklonio ovaj komad plastike! Lako: nabavite prekidač i zalijepite dva mala kvadrata aluminija na svaku od žica spojenih na prekidač. Sada zalijepite ta dva komada aluminija na komad plastike kako biste dva aluminijska komada izolirali jedan od drugog i kako bi aluminij bio izložen vanjskom dijelu vašeg sistema. Obično bi tako trebalo biti. Umetnite svoju novu kreaciju u štitnik baterije pored ćelije i prekidač bi trebao omogućiti otvaranje ili zatvaranje strujnog kruga spojenog na ćeliju.

I posljednja stvar: kako biste olakšali sastavljanje i rastavljanje robota, savjetujem vam da lemite ženska zaglavlja na štitnik baterije. Na ovaj način možete jednostavno priključiti i odspojiti ono što gradite s motorima i njihovim upravljačkim programima.

Korak 5: 3D dizajn i izrezivanje

3D dizajn i rez
3D dizajn i rez
3D dizajn i rez
3D dizajn i rez

Jedino što sada nedostaje je izgradnja strukture koja će držati sve naše komponente zajedno. Za to sam upotrijebio internetsku platformu tinkercad. Ovo je zaista lijepo okruženje za izradu osnovnih CAD -ova, što je često dovoljno za dizajniranje stvari za laserski rezač.

Nakon nekog vremena razmišljanja, došlo je vrijeme za petljanje. Da bih to učinio, počeo sam sastavljati 3D modele različitih dijelova koje sam imao (prvo čuvajući servo i TOF izvan jednadžbe). To uključuje bateriju i štit, koračne motore i upravljačke programe motora, i naravno micro: bit sa produžnom pločom. Priložio sam sve odgovarajuće 3D modele kao stl datoteke. Kako bih olakšao proces, odlučio sam učiniti svog robota simetričnim. Kao rezultat toga, petljao sam sa samo polovicom robota i došao do dizajna prikazanog na gornjoj slici.

Iz toga je zaživjelo nekoliko verzija, od kojih sam odabrao dvije:

  • Jedan sasvim uredan, bez senzora blizine, koji omogućava da se ne pojavljuju žice. Iako nije autonomna, ova se verzija još uvijek može programirati putem bluetootha putem iPada, na primjer, ili se može programirati da se kontrolira pomoću radio signala koji se, na primjer, mogu poslati drugim mikro: bitom, kao što je prikazano u gornjem videu.
  • Jedan mnogo manje uredan koji omogućava mnogo više ulaska u mobilnu robotiku jer omogućava snimanje udaljenosti prepreke s pogledom od 180 ° zahvaljujući senzoru blizine ugrađenom na servo motoru.

Da biste to izgradili, idite na svoj omiljeni Fablab i upotrijebite laserski rezač za koji pronađete da izrežete model po vašoj želji: prvi koji odgovara datotekama design1_5mmMDF.svg i design1_3mmMDF koje odgovaraju dijelovima za rezanje u 5 mm MDF -u drvo i one za rezanje od 3 mm; drugi odgovaraju datoteci design2_5mmMDF.svg. Postavite crne konture za rezanje i crvene za graviranje.

Napomena: Dodao sam crveni uzorak samo da ga podvedem. Ovo je Hilbertova funkcija punjenja koju sam generirao pomoću priloženog python koda.

Korak 6: Montiranje Zvijeri

Montiranje Zvijeri
Montiranje Zvijeri
Montiranje Zvijeri
Montiranje Zvijeri
Montiranje Zvijeri
Montiranje Zvijeri

Koraci koje sam slijedio za postavljanje prve verzije robota su sljedeći (slike bi obično trebale biti u pravom redoslijedu):

  1. Uklonite plavi poklopac motora i malo ga odrežite kako bi kabel stršio sa stražnje strane motora.
  2. Montirajte motore sa svake strane pomoću M2 vijaka i vijaka.
  3. Montirajte ploču za izradu prototipa sa strane koristeći rupe 2x2 mm i neke vijke i vijke.
  4. Stavite upravljačke programe A4988 i zalijepite kablove motora kako biste bili uredni.
  5. Postavite univerzalni kotač ispod donjeg dijela i dodajte stranice.
  6. Montirajte produžnu ploču micro: bita na gornji dio.
  7. Montirajte dno fleksibilnog prednjeg poklopca.
  8. Stavite štitnik za baterije i povežite sve (da biste to učinili, budući da sam još uvijek čekao isporuku produžne ploče koju sam želio i da mi je samo jedna s ženskim zaglavljima stršila, reciklirao sam IDE kabel sa starog računala kako bih uspio da mi kablovi ne štrče na ploči kako bi sve ovo prekrili sklopivim prednjim poklopcem). Iako se kôd koji sam naveo vrlo lako prilagođava, za njegovu direktnu upotrebu morate spojiti lijevi STEP na pin 2, desni STEP na pin 8, lijevi DIR na pin 12, desni DIR na pin 1.
  9. Stavite micro: bit u nastavak.
  10. Prije nego nastavite, provjerite radi li sve s MoveTest.py.
  11. Postavite prekidač na gornji dio i stavite plastični bit pored litijumske ćelije.
  12. Zašrafite gornji dio prednjeg poklopca.
  13. Montirajte naslon i gotovi ste! Fuj! Nisam očekivao toliko koraka! Mnogo je lakše razmišljati o tome i to učiniti nego to riječima objasniti! (I siguran sam da će još uvijek nedostajati informacije!)

Ako drugu verziju gradite sa senzorom blizine, učinite sljedeće:

  1. Slijedite gore navedena uputstva. Jedina razlika bit će u tome što ćete u koraku 7 morati dodati neke M2 odstojnike (iako sam to učinio, ali to nije potrebno), zanemarite 8. i 13. korak (jer nema prednjeg poklopca)
  2. Montirajte servo motor vijcima M2 i spojite VCC i GND servo izravno na 5V štitnika baterije, a upravljački ulaz spojite na pin 0 mikro: bita.
  3. Montirajte dva komada drveta koja će ići na servo pomoću vijka, pričvrstite TOF senzor na njega, kao i bijeli plastični komad koji dolazi sa servom.
  4. Montirajte ovu posljednju jedinicu na servo i povežite senzor pomoću I2C micro: bita kako je opisano u koraku 3.

Korak 7: Programirajte

To je to ! Imate robota kojeg možete programirati bilo u micro: pythonu ili u makecodeu. Ovdje sam priložio nekoliko primjera koda koji sam koristio za izradu gornjih videozapisa:

  • Primjer 1: Postavite radioControl.py na micro: bit robota i ReadAccelero.py na drugi micro: bit za upravljanje robotom pomoću nagiba drugog micro: bita.
  • Primjer 2: Postavite Autonomous.py na verziju 2 robota koji će istraživati okruženje.

To su samo osnovni primjeri pomoću kojih možete otići mnogo, mnogo dalje. Na primjer, jako volim simultanu lokalizaciju i mapiranje, a u verziji 2 ovog robota obično postoji sve što vam je potrebno za to! Iako mi je veliki nedostatak za izradu takvog projekta to što je mikro: bitni PWM upravljački program softverski upravljački program koji koristi isti tajmer za sve kanale, što znači da svi PWM -ovi koje postavljamo moraju imati istu frekvenciju (što sam i ja radio ne znam kada sam pisao uzorke kodova iako sam otkrio nešto čudno kada sam napisao Autonomous.py).

Korak 8: Idite dalje

Ne ustručavajte se poboljšati dizajn, riješite neke probleme koje nisam vidio. Na primjer, htio bih na kraju:

  • Dodajte IC senzor pri dnu robota kako bi otkrio je li tlo crno ili bijelo ili dopire do kraja mog stola.
  • Promijenite sistem upravljanja baterijom jer još nisam zadovoljan. Zaista, u ovom trenutku, za ponovno punjenje baterije, potrebno je rastaviti robota kako biste izvadili ćeliju ili štitnik baterije … Stoga planiram: 1. dodati mini-USB konektor na stražnju stranu robota koji sam povezat ću se sa štitnikom baterije kako bih ga mogao napuniti; 2. Izrežite rupu na dnu kako biste vidjeli LED diode sa štitnika baterije kako biste vidjeli kada se punjenje završi.
  • Provjerite postoji li prihvatljiv način za izlaz PWM -a različitih frekvencija.
  • Isprobajte VL53L0XV2 da zamijenite TOF10120 jer bi to mogla biti jeftinija opcija koja bi ga učinila dostupnim još većem broju ljudi. Iako sam čitao više o ovom senzoru i čini se da se kompanija koja je ovo učinila jeftinim namjerno vrlo teško nosila s njim …
  • Testirajte različite dizajne kotača kako bi bili izdržljiviji (trenutno bih očekivao da će se drvo, ako uvlačim i izvlačim kotače mnogo puta, postupno oštetiti. Ako drvo učinim elastičnijim mijenjajući dizajn, mogao bih biti u mogućnosti da duže traje)

Veliko hvala ljudima iz tima za mobilnu robotiku (sada dio laboratorija za biorobotiku) EPFL -a koji su mi puno pomogli u proširenju znanja o elektronici i mehanici!

Preporučuje se: