Innholdsfortegnelse:

DIY Educational Micro: bit Robot: 8 trinn (med bilder)
DIY Educational Micro: bit Robot: 8 trinn (med bilder)

Video: DIY Educational Micro: bit Robot: 8 trinn (med bilder)

Video: DIY Educational Micro: bit Robot: 8 trinn (med bilder)
Video: Возведение перегородок санузла из блоков. Все этапы. #4 2024, Juli
Anonim
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot

Denne instruksjonsfilen vil vise deg hvordan du bygger en relativt tilgjengelig, dyktig og billig robot. Målet mitt med å designe denne roboten var å foreslå noe de fleste hadde råd til, for at de skulle lære datavitenskap på en engasjerende måte eller lære om det.

Når du har bygget denne roboten, kan du glede deg over forskjellige sensorer og aktuatorer for å gjøre grunnleggende, men også ganske avanserte ting, avhengig av hvilken versjon du bygger (jeg kommer med to versjoner). Med denne roboten gir du øyne (180 ° sikt!) Og bein (med presis bevegelse mulig!) Til micro: bit mens micro: bit gir deg flotte funksjoner som LED -matrisen, radiokommunikasjon, bluetooth -kommunikasjon, akselerometer, kompasser, men også tilgang til alt det med enten MicroPython eller med et visuelt programmeringsspråk som ligner på scratch (faktisk også i C ++ og javascript, men jeg synes de er mindre egnet for utdanning).

Jeg vil også jobbe med dette instruerbare, slik at jeg kan sette leserne og produsentene på sporet til å oppdage mer om mobilrobotikk, elektronikk, design og treskjæring. For å gjøre det designet jeg alt for å være så modulært som mulig. For eksempel vil jeg ikke bruke lim for å montere og demontere fritt, noe som gjør oppgraderinger og feilsøking enklere. Jeg vil også gjøre trinnene så inkrementelle som jeg kan, slik at du gradvis kan forstå hva som skjer, kontrollere at ting fungerer som de skal og nå slutten med en robot som fungerer.

Trinn 1: Samle brikkene

Samle brikkene
Samle brikkene

For dette prosjektet er bjørnminimumet du trenger:

  • 5 mm tykt MDF -tre og en laserskjærer for skjelettet
  • 1x18650 litiumbatteri, 1x batteriskjerm for energien og en avbryter
  • 1xMicro: Bitkort og 1xMicro: bit forlengelseskort for hjernen (selv om begge enkelt kan erstattes av en Arduino)
  • 2x28BYJ-5V steppermotorer, 2xA4988 trinnmotordrivere og 2x utviklingsbrett for montering av driverne for beina
  • 1x TOF10120 og 1x Mini 9g Servomotor for øynene Noen kabler og skruer
  • 1x universalhjul, høyde = 15 mm

Blant disse er bare tre deler ikke standarder, derfor er her lenker for å finne dem: finn utvidelseskortet jeg brukte her (men jeg vil anbefale deg å bruke denne i stedet for den fine versjonen av roboten. Du må endre nesten ingenting til designet, og det vil gjøre ledningene mye enklere med bøyde hunn-hunnhoder), batteriskjoldet her og universalhjulet her.

Ideelt sett vil du også ha til disposisjon:

  • Et multimeter
  • Et brødbrett
  • Et loddejern

For de så vel som laserskjæreren, sjekk om du har noen fablab rundt stedet ditt! Det er flotte steder å møte noen inspirerende skapere!

Trinn 2: Gjør bena klare

Gjør bena klare
Gjør bena klare
Gjør bena klare
Gjør bena klare
Gjør bena klare
Gjør bena klare
Gjør bena klare
Gjør bena klare

Ditt første oppdrag, hvis du godtar det, vil være å få trinnmotoren vår til å rotere ved hjelp av micro: bit som en kontroller! Hvorfor en trinnmotor? Jeg kunne ha gått for likestrømsmotor med redusering, men jeg prøvde dem, og jeg synes det er vanskelig å få billige motorer til å kjøre med lav hastighet. Jeg tenkte også at det ville være fint å vite nøyaktig med hvilken hastighet hjulene mine snur. Av disse grunnene var steppermotorer det beste alternativet.

Så nå, hvordan kan du kontrollere en 28BYJ -motor ved hjelp av en 4988 -driver? Svaret er … litt langt. Jeg klarte ikke å få det til å passe pent i denne instruerbare, så jeg lagde en til bare for dette formålet som du finner her. Jeg inviterer deg til å følge disse trinnene til slutten med opprettelsen av et lite prototypebrett 26x22mm stort med 2x2mm hull 17 mm appart for å montere det på sidene som vist på bildet ovenfor (Vær oppmerksom på at den gule ledningen som nevnt i artikkelen det refereres til) til venstre som stikker ut er bare der for å minne deg på å lodde SLP og RST sammen).

Etter å ha fått dette til å fungere med en motor med prototypebrettet, designet jeg også min egen PCB for å gjøre ting litt mer ryddig. Jeg har vedlagt den tilsvarende easyEDA -filen. Det er en txt -fil, men du kan fortsatt åpne den med easyEDA gratis online redigeringsplattform.

Trinn 3: Jeg ser lyset !! (Valgfri)

Jeg ser lyset !! (Valgfri)
Jeg ser lyset !! (Valgfri)
Jeg ser lyset !! (Valgfri)
Jeg ser lyset !! (Valgfri)
Jeg ser lyset !! (Valgfri)
Jeg ser lyset !! (Valgfri)

Hvis du bare vil bygge og ikke noe mer, kan du hoppe til avsnittet før siste avsnitt i dette trinnet for å se hvordan du kobler en TOF10120 til micro: bit. Hvis ikke følg med.

Ettersom vår micro: bit ikke kommer med kamera eller nærhetssensor, gjør den den ganske blind for alle mobile robotapplikasjoner. Den kommer imidlertid med en radiosender og reseptor som lar oss bygge skjelettet over det vi allerede har og få en fjernstyrt robot. Men ville det ikke vært flott å gjøre roboten vår autonom? Ja det ville være! Så la oss se hvordan vi kommer dit.

Det vi er interessert i nå er å utstyre roboten vår med sensorer, slik at roboten vår kan skaffe seg litt informasjon om miljøet. Det er mange typer sensorer tilgjengelig, men her fokuserer vi på nærhetssensor. Da jeg designet denne roboten, var målet mitt for det meste at roboten ikke krasjer i noe, derfor ville jeg at den skulle oppdage hindringer. For dette er det også noen få alternativer. Den første, veldig enkle, kan være å bruke støtfangere, men jeg synes informasjonen om miljøet er litt begrenset. På den andre ekstremen kan du tenke deg å legge til et kamera (eller en Lidar eller en kinect!). Jeg elsker kameraer, datasyn og alle de tingene, men dessverre støtter ikke Micro: bit dem (vi må bruke en bringebær Pi for å støtte slike enheter, ikke en micro: bit eller Arduino).

Så hva gjør micro: bit -støtte som er mellom et kamera og støtfangere? Det er små aktive sensorer som sender lys til miljøet og sjekker hva som mottas for å få litt informasjon om verden. Den jeg allerede visste om var GP2Y0A41SK0F som bruker en trianguleringsmetode for å estimere avstanden til hindringer. Imidlertid lurte jeg på om jeg kunne finne noe bedre, så jeg gjorde noen undersøkelser, og jeg endte opp med å oppdage TOF10120 (og GY-VL53L0XV2, men jeg har ikke mottatt det ennå:(). Her er en fin artikkel for deg å oppdage det. I utgangspunktet sender denne sensoren et infrarødt signal som reflekterer på hindringer, og den mottar deretter det reflekterte lyset. Avhengig av tiden det tok for lyset å gå frem og tilbake, kan sensoren estimere avstanden til hindringen (derav navnet TOF = flyvetid For sin lille størrelse, avstand og rekkevidde, bestemte jeg meg for å bruke TOF10120.

Mens min første idé var å sette tre av dem på roboten (en foran og to på sidene), ønsket ikke det kinesiske nyttåret og COVID-19-pandemien det slik, da det så ut til å forårsake problemer med forsendelser. Så da jeg var begrenset til en TOF10120, som jeg også ville se på sidene og at jeg hadde noen servomotorer liggende, bestemte jeg meg for å montere sensoren min på en servo. Så to ting mangler nå: hvordan bruker jeg TOF10120 med micro: bit? Og samme spørsmål med servoen.

Heldigvis er micro: bit utstyrt med I2C kommunikasjonsprotokoll, og det gjør livet vårt veldig enkelt: koble den røde ledningen til 3,3V, svart til bakken, grønn til SCL og blå til SDA, og det er det for maskinvaredelen. For programvaren oppfordrer jeg deg til å lese litt om I2C -kommunikasjon og prøve python -koden som jeg festet på micro: bit. Det programmet skal skrive ut avstanden målt av sensoren på REPL (Read Evaluate Print Loop). Det er det. Vi ga nettopp synet til vår micro: bit.

La oss få det til å snu nakken hvis du lar meg fortsette mine analogier med dyrs anatomi. Den eneste tanken vi trenger er å kjøre en servomotor med micro: bit. Denne delen begynner å bli lang, så jeg vil bare gi deg denne lenken som har all informasjonen du trenger og koden jeg brukte for å teste den. Hvis du vil, har jeg også lagt til en enkel kode for å kontrollere servoen ved hjelp av pin0. Bare ikke glem å drive servoen din med 5V og ikke 3.3V.

Trinn 4: Hacking av batteriskjoldet

Hacking av batteriskjoldet
Hacking av batteriskjoldet
Hacking av batteriskjoldet
Hacking av batteriskjoldet
Hacking av batteriskjoldet
Hacking av batteriskjoldet

Nå som vi har våre aktuatorer og sensorer klare, er det på tide å se på batteristyringssystemet. For at du skal lære mer om batteriskjoldet jeg valgte, vil jeg råde deg til å lese denne artikkelen. Jeg synes det er veldig tydelig og tilgjengelig. Fra denne artikkelen kan vi se mange fordeler med dette batteriskjoldet, men det er en viktig ulempe jeg ikke ønsket å godta: PÅ/AV -bryteren påvirker bare USB -utgangen. Dette betyr at hvis du slår av bryteren, vil alle de andre 3.3V- og 5V -pinnene få strøm. Som et resultat, når vi bruker disse pinnene til roboten vår, vil bryteren ikke gjøre noe i det hele tatt …

Men jeg vil være i stand til å slå av roboten min for ikke å tømme batteriet mitt for ingenting, så jeg måtte hacke batteriskjoldet. Det blir ikke pent, men det fungerer og det koster ingenting. Derfor vil jeg ha en bryter for å åpne eller lukke kretsen slik at den isolerer battericellen min fra batteriskjoldet. Jeg har ikke utstyret til å berøre kretskortet, men jeg har plastbiter rundt. Så tenk deg nå at jeg kuttet et stykke plast slik at det kan passe i den ene enden av battericellen min i skjoldet som på det første bildet ovenfor. Kretsen er nå åpen og batteriet mitt er trygt lagret.

Ja, men jeg vil ikke måtte åpne roboten for å få tilgang til batteriskjoldet for å sette og fjerne denne plastbiten! Enkelt: få en bryter og teip to små firkanter av aluminium til hver av ledningene som er koblet til bryteren. Fest nå de to aluminiumsbitene til plaststykket for å få de to aluminiumsdelene isolert fra hverandre og for å få aluminiumet utsatt for utsiden av systemet. Normalt burde det gjøre det. Sett inn den nye skapelsen i batteriskjoldet ved siden av cellen, og bryteren skal tillate deg å åpne eller lukke kretsen som er koblet til cellen.

En siste ting: For å gjøre det enkelt å montere og demontere roboten, vil jeg råde deg til å lodde hunnhoder på batteriskjoldet. På denne måten kan du enkelt plugge og koble fra det du bygger med motorene og deres drivere.

Trinn 5: 3D Design and Cut

3D Design og Cut
3D Design og Cut
3D Design og Cut
3D Design og Cut

Det eneste som mangler nå er å bygge strukturen som vil holde alle komponentene våre sammen. For å gjøre dette brukte jeg den elektroniske plattformen tinkercad. Dette er et veldig fint miljø for å gjøre noen grunnleggende CAD som ofte er nok for å designe ting for laserskjæreren.

Etter en stund å tenke, var det på tide å pusle. For å gjøre det begynte jeg å sette sammen 3D -modeller av de forskjellige delene jeg hadde (først holdt servoen og TOF utenfor ligningen). Det inkluderer batteri og skjold, steppermotorene og motordriverne, og selvfølgelig micro: bit med forlengelseskortet. Jeg har lagt ved alle de tilsvarende 3D -modellene som stl -filer. For å lette prosessen bestemte jeg meg for å gjøre roboten min symmetrisk. Som et resultat slet jeg med bare halvparten av roboten og nådde designet som er vist på bildet ovenfor.

Fra dette ble noen få versjoner levende, hvorav jeg valgte to:

  • En ganske ryddig, uten nærhetssensor, som gjør at ingen ledninger kan vises. Selv om den ikke er autonom, kan denne versjonen fremdeles programmeres via bluetooth via en iPad, eller kan programmeres til å bli kontrollert ved hjelp av radiosignaler som for eksempel kan sendes av en annen micro: bit som vist i videoen ovenfor.
  • En mye mindre ryddig som gjør det mulig å gå mye lenger inn i mobil robotikk da den tillater å fange avstanden til hinder med 180 ° sikt takket være nærhetssensoren bygget på en servomotor.

For å bygge dette opp, gå til din favoritt Fablab og bruk laserskjæreren du finner for å kutte modellen du foretrekker: den første som tilsvarer filene design1_5mmMDF.svg og design1_3mmMDF som tilsvarer delene som skal kuttes i 5 mm MDF tre og de som skal kuttes fra 3 mm; den andre tilsvarer filen design2_5mmMDF.svg. Sett de sorte konturene som skal klippes og de røde som skal graveres.

Sidemerk: Jeg la til det røde mønsteret bare for å pimpe det opp. Dette er en Hilbert -fyllingsfunksjon som jeg genererte ved hjelp av den vedlagte pythonkoden.

Trinn 6: Montering av dyret

Montering av dyret
Montering av dyret
Montering av dyret
Montering av dyret
Montering av dyret
Montering av dyret

Trinnene jeg fulgte for å montere den første versjonen av roboten er følgende (bildene skal normalt være i riktig rekkefølge):

  1. Fjern den blå hetten på motorene og kutt den litt for å få kabelen til å stikke ut fra baksiden av motoren.
  2. Monter motorene på hver side ved hjelp av M2 skruer og bolter.
  3. Monter prototypebrettet på sidene ved hjelp av 2 x 2 mm hull og noen skruer og bolter.
  4. Sett A4988 -driverne og teip motorkablene for å holde det ryddig.
  5. Monter universalhjulet under bunndelen og legg til sidene.
  6. Monter forlengelseskortet på micro: bit på den øvre delen.
  7. Monter bunnen av det fleksible frontdekselet.
  8. Sett batteriskjoldet og koble til alt (for å gjøre det, da jeg fortsatt ventet på levering av forlengelseskortet jeg ønsket og at jeg bare hadde en med kvinnelige hoder som stakk ut, resirkulerte jeg en IDE -kabel fra en gammel datamaskin for å klare å har ikke kablene mine stukket opp på brettet for å dekke alt dette med det sammenleggbare frontdekselet). Selv om koden jeg oppga er veldig enkel å tilpasse, for å bruke den direkte, må du koble venstre STEP til pin 2, høyre STEP til pin 8, venstre DIR til pin 12, høyre DIR til pin 1.
  9. Sett micro: bit i forlengelsen.
  10. Test at alt fungerer med MoveTest.py før du går videre.
  11. Monter bryteren på den øvre delen og sett plastkronen ved siden av litiumcellen.
  12. Skru den øvre delen av frontdekselet.
  13. Monter ryggen, og du er ferdig! Puh ! Jeg hadde ikke ventet så mange trinn! Det er så mye lettere å tenke på det og gjøre det enn å forklare det med ord! (Og jeg er sikker på at det fortsatt vil mangle informasjon!)

Hvis du bygger den andre versjonen med nærhetssensoren, så:

  1. Følg instruksjonene ovenfor. Den eneste forskjellen vil være at du må legge til noen M2 -avstandsstykker i trinn 7 (selv om det var det jeg gjorde, men det er ikke nødvendig), ignorer trinn 8 og trinn 13 (ettersom det ikke er noe frontdeksel)
  2. Monter servomotoren med M2 -skruer og koble VCC og GND til servoen direkte på 5V på batteriskjoldet, og koble den kontrollerende inngangen til pinne 0 på micro: bit.
  3. Monter de to trestykkene som skal på toppen av servoen med en skrue, skru TOF -sensoren på denne så vel som den hvite plastbiten som følger med servoen.
  4. Monter denne siste enheten på servoen og koble sensoren ved hjelp av I2C av micro: bit som beskrevet i trinn 3.

Trinn 7: Program

Det er det ! Du har en robot som du kan programmere enten i micro: python eller i makecode. Jeg har lagt ved noen eksempler på kode som jeg brukte til å lage videoene ovenfor:

  • Eksempel 1: Sett radioControl.py på mikro: bit av roboten og ReadAccelero.py på en annen mikro: bit for å kontrollere roboten ved å bruke hellingen til den andre mikro: bit.
  • Eksempel 2: Sett Autonomous.py på versjon 2 av roboten, den vil utforske miljøet.

Det er bare grunnleggende eksempler som du kan bruke til å gå mye, mye lenger. For eksempel liker jeg samtidig lokalisering og kartlegging, og normalt er det alt du trenger i versjon 2 av denne roboten for å gjøre det! Selv om en stor ulempe for meg å gjøre et slikt prosjekt er at micro: bit PWM -driveren er en programvaredriver som bruker samme tidtaker for alle kanaler, noe som betyr at alle PWMene vi angir må ha samme frekvens (noe jeg gjorde vet ikke når jeg skrev prøvekodene, selv om jeg oppdaget noe rart da jeg skrev Autonomous.py).

Trinn 8: Gå videre

Ikke nøl med å forbedre designet, løse noen problemer jeg ikke så. For eksempel vil jeg til slutt:

  • Legg til en IR -sensor nederst på roboten for å få den til å oppdage om bakken er svart eller hvit eller om den når slutten av skrivebordet mitt.
  • Bytt batteristyringssystem siden jeg ikke er fornøyd med det ennå. For øyeblikket, for å lade batteriet, krever det å demontere roboten for å ta cellen eller batteriskjoldet ut … Jeg planlegger derfor å: 1. legge til en mini-USB-kontakt på baksiden av roboten som jeg kobler til batteriskjoldet, slik at jeg kan lade det opp; 2. Skjær et hull nederst for å se lysdiodene fra batteriskjoldet for å se når ladingen er over.
  • Sjekk om det er en akseptabel måte å sende ut PWM -er med forskjellige frekvenser.
  • Prøv VL53L0XV2 for å erstatte TOF10120, da det kan være et billigere alternativ som vil gjøre det tilgjengelig for enda flere mennesker. Selv om jeg leste mer om denne sensoren, og det ser ut til at selskapet som gjorde dette billig, gjorde det med vilje veldig vanskelig å håndtere …
  • Test forskjellige design for hjulene for å gjøre dem mer holdbare (Akkurat nå ville jeg forvente at hvis jeg tar hjulene inn og ut mange ganger, vil treet gradvis bli skadet. Hvis jeg gjør treet mer elastisk og endrer designet, kan jeg kan få det til å vare lenger)

En stor takk til menneskene fra Mobile robotics team (nå en del av Biorobotics laboratoriet) til EPFL som hjalp meg mye med å utvide kunnskapen min om elektronikk og mekanikk!

Anbefalt: