Indholdsfortegnelse:

DIY Educational Micro: bit Robot: 8 trin (med billeder)
DIY Educational Micro: bit Robot: 8 trin (med billeder)

Video: DIY Educational Micro: bit Robot: 8 trin (med billeder)

Video: DIY Educational Micro: bit Robot: 8 trin (med billeder)
Video: Building a conductivity-based game using BBC micro:bit, by Diogo da Silva 2024, Juli
Anonim
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot

Denne instruktive viser dig, hvordan du bygger en relativt tilgængelig, dygtig og billig robot. Mit mål med at designe denne robot var at foreslå noget, som de fleste mennesker havde råd til, for at de kunne undervise i datalogi på en engagerende måde eller lære om det.

Når du får denne robot bygget, kan du nyde dens mange forskellige sensorer og aktuatorer til at gøre grundlæggende, men også ret avancerede ting afhængigt af den version, du bygger (jeg leverer to versioner). Med denne robot giver du øjne (180 ° udsigt!) Og ben (med præcis bevægelse muligt!) Til micro: bit, mens micro: bit giver dig fantastiske funktioner såsom LED -matrix, radiokommunikation, bluetooth kommunikation, accelerometer, kompasser, men også adgang til alle de ting med enten MicroPython eller med et visuelt programmeringssprog, der ligner bunden (faktisk også i C ++ og javascript, men jeg finder dem mindre egnede til uddannelse).

Jeg vil også arbejde med dette instruerbare, så jeg kan sætte læsere og producenter på rette spor til at opdage mere om mobil robotik, elektronik, design og træskæring. For at gøre det designede jeg alt for at være så modulært som muligt. For eksempel vil jeg ikke bruge nogen lim til at samle og adskille frit, hvilket gør opgraderinger samt fejlfinding lettere. Jeg vil også gøre trinene så trinvise som jeg kan, så du gradvist kan forstå, hvad der foregår, kontrollere, at tingene fungerer, som de skal, og nå enden med en robot, der fungerer.

Trin 1: Samling af stykkerne

Samling af stykkerne
Samling af stykkerne

For dette projekt er det minimum af bjørne, du skal bruge:

  • 5 mm tykt MDF -træ og en laserskærer til skelettet
  • 1x18650 litiumbatteri, 1x batteriskærm til energien og en afbryder
  • 1xMicro: Bitkort og 1xMicro: bit forlængerkort til hjernen (selvom begge let kan udskiftes med en Arduino)
  • 2x28BYJ-5V steppermotorer, 2xA4988 trinmotordrivere og 2x udviklingsbræt til montering af driverne til benene
  • 1x TOF10120 og 1x Mini 9g Servomotor til øjnene Nogle kabler og skruer
  • 1x universalhjul, højde = 15 mm

Blandt dem er kun tre dele ikke standarder, derfor er her links til at finde dem: Find det udvidelseskort, jeg brugte her (men jeg vil anbefale dig at bruge denne i stedet for den pæne version af robotten. Du bliver nødt til at ændrer næsten ingenting til designet, og det vil gøre ledningerne meget enklere med bøjede hun-hun-headers), batteriskjoldet her og universalhjulet her.

Ideelt set har du også til rådighed:

  • Et multimeter
  • Et brødbræt
  • Et loddejern

For dem såvel som laserskæreren, skal du kontrollere, om du har nogen fablab omkring dit sted! Det er gode steder at møde nogle inspirerende beslutningstagere!

Trin 2: Gør benene klar

Gør benene klar
Gør benene klar
Gør benene klar
Gør benene klar
Gør benene klar
Gør benene klar
Gør benene klar
Gør benene klar

Din første mission, hvis du accepterer det, vil være at få vores trinmotor til at rotere ved hjælp af micro: bit som en controller! Hvorfor en trinmotor? Jeg kunne have gået efter DC -motor med reducere, men jeg prøvede dem, og jeg har svært ved at få billige motorer til at køre med lav hastighed. Jeg tænkte også, at det ville være rart at vide præcist med hvilken hastighed mine hjul drejer. Af disse grunde var stepper motorer den bedste løsning.

Så nu, hvordan styrer du en 28BYJ -motor ved hjælp af en 4988 -driver? Svaret er … lidt langt. Jeg formåede ikke at få det til at passe pænt i denne instruerbare, så jeg lavede en til lige til dette formål, som du finder her. Jeg inviterer dig til at følge disse trin indtil slutningen med oprettelsen af et lille prototypebord 26x22mm stort med 2x2mm huller 17 mm til at montere det på siderne som vist på billedet ovenfor (Bemærk, at som det fremgår af artiklen, den gule ledning til venstre stikker ud er der bare for at minde dig om at lodde SLP og RST sammen).

Efter at have fået dette til at fungere med en motor med prototypebordet, designede jeg også mit eget printkort for at gøre tingene lidt mere ryddelige. Jeg vedhæftede den tilsvarende easyEDA -fil. Det er en txt -fil, men du kan stadig åbne den med easyEDAs gratis online redigeringsplatform.

Trin 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 mere, skal du springe til det før sidste afsnit i dette trin for at se, hvordan du tilslutter en TOF10120 til micro: bit. Hvis ikke følg med.

Da vores micro: bit ikke leveres med noget kamera eller nærhedssensor, gør det den slags blind for enhver mobil robotapplikation. Det leveres dog med en radiosender og -receptor, som gør det muligt for os at bygge skelettet over det, vi allerede har, og få en fjernstyret robot. Men ville det ikke være fantastisk at gøre vores robot autonom? Ja det ville være! Så lad os se, hvordan du kommer dertil.

Det, vi er interesseret i nu, er at udstyre vores robot med sensorer, så vores robot kan få nogle oplysninger om sit miljø. Der findes mange typer sensorer, men her fokuserer vi på nærhedsføler. Da jeg designede denne robot, var mit mål for det meste, at robotten ikke styrter ind i noget, derfor ville jeg have, at den kunne mærke forhindringer. Til dette er der også et par muligheder. Den første, meget enkle, kunne være at bruge kofangere, men jeg finder oplysningerne om miljøet lidt begrænsede. På den anden side kan du tænke på at tilføje et kamera (eller en Lidar eller en kinect!). Jeg elsker kameraer, computersyn og alle disse ting, men desværre understøtter Micro: bit dem ikke (vi skal bruge en hindbær Pi til at understøtte sådanne enheder, ikke en micro: bit eller Arduino).

Så hvad understøtter micro: bit mellem kamera og kofangere? Der er små aktive sensorer, der sender lys til miljøet og kontrollerer, hvad der modtages for at få nogle oplysninger om verden. Den, jeg allerede kendte til, var GP2Y0A41SK0F, der bruger en trianguleringsmetode til at estimere afstanden til forhindringer. Jeg spekulerede dog på, om jeg kunne finde noget bedre, så jeg undersøgte noget, og jeg endte med at opdage TOF10120 (og GY-VL53L0XV2, men jeg har ikke modtaget det endnu:(). Her er en god artikel, hvor du kan opdage det. Grundlæggende udsender denne sensor et infrarødt signal, der reflekterer over forhindringer, og den modtager derefter det reflekterede lys. På grund af sin lille størrelse, afstandsområde og effektbehov besluttede jeg at bruge TOF10120.

Mens min første idé var at sætte tre af dem på robotten (en foran og to på siderne), ønskede det kinesiske nytår og COVID-19-pandemien det ikke sådan, da det syntes at forårsage problemer med forsendelser. Så da jeg var begrænset til en TOF10120, som jeg også ville se på siderne, og at jeg havde nogle servomotorer liggende, besluttede jeg at montere min sensor på en servo. Så der mangler to ting nu: Hvordan bruger jeg TOF10120 med micro: bit? Og samme spørgsmål med servoen.

Heldigvis er micro: bit udstyret med I2C kommunikationsprotokol, og det gør vores liv virkelig let: tilslut den røde ledning til 3,3V, sort til jorden, grøn til SCL og blå til SDA, og det er det for hardware -delen. For softwaren opfordrer jeg dig til at læse lidt om I2C -kommunikation og prøve den python -kode, som jeg vedhæftede på micro: bit. Dette program skal udskrive afstanden målt af sensoren på REPL (Read Evaluate Print Loop). Det er det. Vi gav bare øje til vores micro: bit.

Lad os nu få det til at vende halsen, hvis du tillader mig at fortsætte mine analogier med dyrs anatomi. Den eneste tanke, vi har brug for, er at køre en servomotor med micro: bit. Denne del bliver lang, så jeg vil bare give dig dette link, der har alle de oplysninger, du har brug for, og den kode, jeg brugte til at teste det. Hvis du vil, tilføjede jeg også en simpel kode til at styre servoen ved hjælp af pin0. Bare glem ikke at drive din servo med 5V og ikke 3.3V.

Trin 4: Hacking af batteriskærmen

Hacking af batteriskjoldet
Hacking af batteriskjoldet
Hacking af batteriskjoldet
Hacking af batteriskjoldet
Hacking af batteriskjoldet
Hacking af batteriskjoldet

Nu hvor vi fik vores aktuatorer og sensorer klar, er det tid til at se på batteristyringssystemet. For at du kan lære mere om det batteriskjold, jeg valgte, vil jeg råde dig til at læse denne artikel. Jeg finder det meget klart og tilgængeligt. Fra denne artikel kan vi se mange fordele ved dette batteriskærm, men der er en vigtig ulempe, jeg ikke ønskede at acceptere: TÆND/SLUK -kontakten påvirker kun USB -udgangen. Det betyder, at hvis du slukker for kontakten, får alle de andre 3,3V- og 5V -pins strøm. Som et resultat, da vi bruger disse ben til vores robot, vil kontakten slet ikke gøre noget …

Men jeg vil gerne kunne slukke min robot for ikke at tømme min batteri for ingenting, så jeg måtte hacke batteriskjoldet. Det bliver ikke smukt, men det virker, og det koster ingenting. Derfor vil jeg have en switch til at åbne eller lukke kredsløbet, så det isolerer min battericelle fra batteriskærmen. Jeg har ikke udstyret til at røre printkortet, men jeg har plastikstykker rundt omkring. Så forestil dig nu, at jeg skar et stykke plastik, så det kan passe i den ene ende af min battericelle i skjoldet som på det første billede ovenfor. Kredsløbet er nu åbent, og mit batteri er sikkert opbevaret.

Ja, men jeg ønsker ikke at skulle åbne robotten for at få adgang til batteriskjoldet for at sætte og fjerne dette stykke plast! Let: få en switch og tape to små firkanter af aluminium til hver af de ledninger, der er forbundet til kontakten. Tape nu de to stykker aluminium på plaststykket for at få de to aluminiumsstykker isoleret fra hinanden og for at få aluminiumet udsat for ydersiden af dit system. Normalt burde det gøre. Indsæt din nye kreation i batteriskjoldet ved siden af cellen, og kontakten skal give dig mulighed for at åbne eller lukke kredsløbet, der er forbundet til cellen.

En sidste ting: For at gøre det let at samle og adskille robotten, vil jeg råde dig til at lodde kvindelige overskrifter på batteriskjoldet. På denne måde kan du nemt tilslutte og tage stikket ud af det, du bygger med motorerne og deres drivere.

Trin 5: 3D Design og Cut

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

Det eneste, der mangler nu, er at bygge strukturen, der holder alle vores komponenter sammen. For at gøre dette brugte jeg online platform tinkercad. Dette er et virkelig dejligt miljø til at lave nogle grundlæggende CAD, som ofte er nok til at designe ting til laserskæreren.

Efter lidt tid at tænke, var det tid til at pille. For at gøre det begyndte jeg at sammensætte 3D -modeller af de forskellige dele, jeg havde (først holdt servoen og TOF ude af ligningen). Det inkluderer batteri og skjold, steppermotorer og motordrivere og selvfølgelig micro: bit med sit forlængerkort. Jeg vedhæftede alle de tilsvarende 3D -modeller som stl -filer. For at lette processen besluttede jeg at gøre min robot symmetrisk. Som et resultat pillede jeg kun med halvdelen af robotten og nåede designet vist på billedet ovenfor.

Fra dette blev der et par versioner til live, hvorfra jeg valgte to:

  • En ganske pæn, uden nærhedssensor, som tillader, at der ikke vises nogen ledninger. Selvom den ikke er autonom, kan denne version for eksempel stadig programmeres via bluetooth via en iPad eller kan programmeres til at blive styret ved hjælp af radiosignaler, der f.eks. Kan sendes af en anden micro: bit som vist i videoen ovenfor.
  • En meget mindre ryddig, som gør det muligt at gå meget længere ind i mobilrobotik, da den gør det muligt at fange forhindringens afstand med 180 ° udsigt takket være nærhedssensoren bygget på en servomotor.

For at bygge dette op, skal du gå til din foretrukne Fablab og bruge laserskæreren, som du finder, til at skære den model, du foretrækker: den første, der svarer til filerne design1_5mmMDF.svg og design1_3mmMDF, der svarer til de dele, der skal skæres i 5 mm MDF træ og dem, der skal skæres fra 3 mm; den anden svarer til filen design2_5mmMDF.svg. Indstil de sorte konturer, der skal klippes, og de røde, der skal graveres.

Sidebemærkning: Jeg tilføjede det røde mønster bare for at pimpe det op. Dette er en Hilbert -påfyldningsfunktion, som jeg genererede ved hjælp af den vedhæftede python -kode.

Trin 6: Montering af dyret

Montering af udyret
Montering af udyret
Montering af udyret
Montering af udyret
Montering af udyret
Montering af udyret

De trin, jeg fulgte for at montere den første version af robotten, er følgende (billederne skal normalt være i den rigtige rækkefølge):

  1. Fjern motorens blå hætte, og skær den lidt for at få kablet til at stikke ud fra motorens bagside.
  2. Monter motorerne på hver side ved hjælp af M2 skruer og bolte.
  3. Monter prototypebrættet på siderne ved hjælp af 2x2 mm huller og nogle skruer og bolte.
  4. Sæt A4988 -driverne, og tap motorkablerne for at holde det ryddeligt.
  5. Monter universalhjulet under bunddelen, og tilføj siderne.
  6. Monter forlængerkortet på micro: bit på den øverste del.
  7. Monter bunden af det fleksible frontdæksel.
  8. Sæt batteri -skjoldet og tilslut alt (for at gøre det, da jeg stadig ventede på levering af det forlængelseskort, jeg ønskede, og at jeg kun havde en med kvindelige overskrifter stikker ud, genbrugte jeg et IDE -kabel fra en gammel computer for at klare har ikke mine kabler stukket op på brættet for at dække alt dette ved det foldbare frontdæksel). Selvom koden, jeg har angivet, er meget let at tilpasse, skal du bruge den direkte STEP til pin 2 for at bruge den direkte, til højre STEP til pin 8, til venstre DIR til pin 12, til højre DIR til pin 1.
  9. Sæt micro: bit i forlængelsen.
  10. Test, at alt fungerer med MoveTest.py, før du går videre.
  11. Monter kontakten på den øverste del, og sæt plastboret ved siden af litiumcellen.
  12. Skru den øverste del af frontdækslet.
  13. Monter bagsiden, og du er færdig! Puha! Jeg havde ikke forventet så mange trin! Det er så meget lettere at tænke over det og gøre det end at forklare det med ord! (Og jeg er sikker på, at der stadig mangler oplysninger!)

Hvis du bygger den anden version med nærhedsføleren, så:

  1. Følg instruktionerne ovenfor. Den eneste forskel vil være, at du bliver nødt til at tilføje nogle M2 -afstandsstykker i trin 7 (selvom det er det, jeg gjorde, men det er ikke påkrævet), ignorer trin 8 og trin 13 (da der ikke er nogen forside)
  2. Monter servomotoren med M2 -skruer, og tilslut VCC og GND for servoen direkte på 5V på batteriskærmen, og tilslut styreenheden til pin 0 på micro: bit.
  3. Monter de to træstykker, der kommer oven på servoen med en skrue, skru TOF -sensoren på dette samt det hvide plaststykke, der følger med servoen.
  4. Monter denne sidste enhed på servoen, og tilslut sensoren ved hjælp af I2C af micro: bit som beskrevet i trin 3.

Trin 7: Programmer

Det er det ! Du har en robot, som du kan programmere enten i micro: python eller i makecode. Jeg vedhæftede her en prøvekode, som jeg plejede at lave videoerne ovenfor:

  • Eksempel 1: Sæt radioControl.py på robotens mikro: bit og ReadAccelero.py på en anden mikro: bit for at styre robotten ved hjælp af hældningen af den anden mikro: bit.
  • Eksempel 2: Sæt Autonomous.py på version 2 af robotten, den vil udforske miljøet.

Det er bare grundlæggende eksempler, som du kan bruge til at gå meget, meget længere. For eksempel kan jeg godt lide samtidig lokalisering og kortlægning, og normalt er der alt, hvad du har brug for i version 2 af denne robot for at gøre det! Selvom en stor ulempe for mig at lave et sådant projekt er, at micro: bit PWM -driveren er en softwaredriver, der bruger den samme timer til alle kanaler, hvilket betyder, at alle de PWM'er, vi indstiller, skal have den samme frekvens (hvilket er noget, jeg gjorde ved ikke, hvornår jeg skrev prøvekoderne, selvom jeg opdagede noget mærkeligt, da jeg skrev Autonomous.py).

Trin 8: Gå videre

Tøv ikke med at forbedre designet, løse nogle problemer, jeg ikke så. For eksempel vil jeg til sidst gerne:

  • Tilføj en IR -sensor i bunden af robotten for at få den til at registrere, om jorden er sort eller hvid, eller om den når enden af mit skrivebord.
  • Skift batteristyringssystem, da jeg ikke er tilfreds med det endnu. I øjeblikket kræver det for øjeblikket at genoplade batteriet at skille robotten ad for at tage cellen eller batteriskærmen ud … Jeg planlægger derfor at: 1. tilføje et mini-USB-stik på robotens bagside, som jeg opretter forbindelse til batteriskærmen, så jeg kan genoplade den; 2. Skær et hul i bunden for at se lysdioderne fra batteriskærmen for at se, hvornår opladningen er slut.
  • Kontroller, om der er en acceptabel måde at udsende PWM'er med forskellige frekvenser på.
  • Prøv VL53L0XV2 for at erstatte TOF10120, da det kunne være en billigere løsning, som ville gøre den tilgængelig for endnu flere mennesker. Selvom jeg læste mere om denne sensor, og det ser ud til, at firmaet, der lavede dette billigt, gjorde det med vilje meget svært at håndtere …
  • Test forskellige designs for hjulene for at gøre dem mere holdbare (Lige nu ville jeg forvente, at hvis jeg tager hjulene ind og ud mange gange, vil træet gradvist blive beskadiget. Hvis jeg gør træet mere elastisk og ændrer designet, kan jeg kan få det til at vare længere)

En stor tak til folkene fra Mobile robotics team (nu en del af Biorobotics laboratoriet) fra EPFL, der hjalp mig meget med at udvide min viden om elektronik og mekanik!

Anbefalede: