INHOUDSOPGAWE:

DIY Educational Micro: bit Robot: 8 stappe (met foto's)
DIY Educational Micro: bit Robot: 8 stappe (met foto's)

Video: DIY Educational Micro: bit Robot: 8 stappe (met foto's)

Video: DIY Educational Micro: bit Robot: 8 stappe (met foto's)
Video: Elon Musk: The future we're building -- and boring | TED 2024, Julie
Anonim
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot

Hierdie instruksies sal u wys hoe u 'n relatief toeganklike, bekwame en goedkoop robot kan bou. My doel met die ontwerp van hierdie robot was om iets voor te stel wat die meeste mense kan bekostig, sodat hulle rekenaarwetenskap op 'n boeiende manier kan leer of daaroor kan leer.

Sodra u hierdie robot gebou het, kan u die verskeidenheid sensors en aandrywers geniet om basiese, maar ook baie gevorderde dinge te doen, afhangende van die weergawe wat u bou (ek bied twee weergawes). Met hierdie robot gee u oë (180 ° -aansig!) En bene (met presiese beweging moontlik!) Vir die micro: bit, terwyl die micro: bit u uitstekende funksies bied, soos die LED -matriks, radiokommunikasie, bluetooth -kommunikasie, versnellingsmeter, kompas, maar ook toegang tot al die dinge met MicroPython of met 'n visuele programmeertaal soortgelyk aan kras (eintlik ook in C ++ en javascript, maar ek vind die minder geskik vir onderwys).

Ek sal ook aan hierdie instruksies werk, sodat ek die lesers en makers op koers kan stel om meer te ontdek oor mobiele robotika, elektronika, ontwerp en houtsny. Om dit te doen, het ek alles so modulêr moontlik ontwerp. Ek sal byvoorbeeld geen gom gebruik om vrylik te monteer en te demonteer nie, wat opgraderings en ontfouting makliker maak. Ek sal die stappe ook so inkrementeel moontlik maak, sodat u geleidelik kan verstaan wat aangaan, kyk of dinge werk soos dit moet en die einde bereik met 'n robot wat werk.

Stap 1: Versamel die stukke

Die versameling van die stukke
Die versameling van die stukke

Vir hierdie projek is die minimum minimum wat u benodig:

  • 5 mm dik MDF -hout en 'n lasersnyer vir die skelet
  • 1x18650 litiumbattery, 1x batteryskerm vir die energie en 'n onderbreker
  • 1xMicro: Bit -kaart en 1xMicro: bit -uitbreidingskaart vir die brein (hoewel beide maklik deur 'n Arduino vervang kan word)
  • 2x28BYJ-5V stepper motors, 2xA4988 stepper motor bestuurders en 2x ontwikkeling board om die drywers vir die bene te monteer
  • 1x TOF10120 en 1x Mini 9g Servomotor vir die oë Enkele kabels en skroewe
  • 1x universele wiel, hoogte = 15 mm

Hieronder is slegs drie dele nie standaarde nie; daarom is hier skakels om dit te vind: vind die uitbreidingskaart wat ek hier gebruik het (maar ek raai u aan om hierdie een eerder te gebruik vir die netjiese weergawe van die robot. U moet verander byna niks aan die ontwerp nie, en dit sal die bedrading baie eenvoudiger maak met buigende vroulike-vroulike koppe), die batteryskerm hier en die universele wiel hier.

Die ideaal is dat u ook tot u beskikking het:

  • 'N Multimeter
  • 'N Broodplank
  • 'N Soldeerbout

Kyk vir die sowel as die lasersnyer of u 'n fablab in u omgewing het! Dit is wonderlike plekke om 'n paar inspirerende makers te ontmoet!

Stap 2: Maak die bene gereed

Maak die bene gereed
Maak die bene gereed
Maak die bene gereed
Maak die bene gereed
Maak die bene gereed
Maak die bene gereed
Maak die bene gereed
Maak die bene gereed

U eerste missie, as u dit aanvaar, is om ons stapmotor te laat draai met behulp van die micro: bit as 'n kontroleerder! Waarom 'n stapmotor? Ek sou kon gaan na 'n gelykstroommotor met verloopstukke, maar ek het dit probeer, en ek vind dit moeilik om goedkoop motors teen lae spoed te laat werk. Ek het ook gedink dat dit lekker sou wees om presies te weet teen watter spoed my wiele draai. Om hierdie redes was stepper motors die beste opsie.

Hoe kan u nou 'n 28BYJ -motor beheer met 'n bestuurder van 4988? Die antwoord is … 'n bietjie lank. Ek het nie daarin geslaag om dit netjies in hierdie instruksies te laat pas nie, so ek het nog een gemaak net vir hierdie doel wat u hier sal vind. Ek nooi u uit om hierdie stappe tot die einde te volg met die skep van 'n klein prototipe bord van 26 x 22 mm groot met 2 x 2 mm gate 17 mm om dit aan die kante te monteer, soos op die foto hierbo getoon (let op dat soos in die artikel waarna verwys word, die geel draad aan die linkerkant, wat u uitsteek, is net daar om u daaraan te herinner om SLP en RST saam te soldeer).

Nadat ek met een motor met die prototipe -bord aan die werk gekom het, het ek ook my eie PCB ontwerp om dinge netjies te maak. Ek het die ooreenstemmende easyEDA -lêer aangeheg. Dit is 'n txt -lêer, maar u kan dit steeds oopmaak met die easyEDA gratis aanlynbewerkingsplatform.

Stap 3: Ek sien die lig !! (Opsioneel)

Ek sien die lig !! (Opsioneel)
Ek sien die lig !! (Opsioneel)
Ek sien die lig !! (Opsioneel)
Ek sien die lig !! (Opsioneel)
Ek sien die lig !! (Opsioneel)
Ek sien die lig !! (Opsioneel)

As u net wil bou en niks meer nie, spring dan na die een voor die laaste paragraaf van hierdie stap om te sien hoe u 'n TOF10120 aan die micro: bit kan koppel. Indien nie, volg dit op.

Aangesien ons micro: bit nie 'n kamera of nabyheidssensor het nie, maak dit 'n bietjie blind vir enige mobiele robotika -toepassing. Dit het egter 'n radiosender en -reseptor wat ons in staat stel om die skelet te bou oor wat ons reeds het en 'n afstandbeheerde robot kry. Maar sou dit nie wonderlik wees om ons robot outonoom te maak nie? Ja dit sou wees! So laat ons kyk hoe om daar te kom.

Wat ons nou interesseer, is om ons robot met sensors toe te rus, sodat ons robot inligting oor sy omgewing kan bekom. Daar is baie soorte sensors beskikbaar, maar hier fokus ons op nabyheidssensor. Toe ek hierdie robot ontwerp het, was my doel meestal dat die robot niks beland nie, daarom wou ek hê dat dit hindernisse moes raaksien. Hiervoor is daar ook 'n paar opsies. 'N Eerste, baie eenvoudige, kan wees om bumpers te gebruik, maar ek vind die inligting oor die omgewing 'n bietjie beperk. Aan die ander kant kan u daaraan dink om 'n kamera (of 'n Lidar of 'n kinect!) By te voeg. Ek hou van kameras, rekenaarvisie en al die dinge, maar ongelukkig ondersteun Micro: bit dit nie (ons moet 'n framboos Pi gebruik om sulke toestelle te ondersteun, nie 'n micro: bit of Arduino nie).

So, wat ondersteun micro: bit tussen 'n kamera en bumpers? Daar is klein aktiewe sensors wat lig na die omgewing stuur en kyk wat ontvang word om inligting oor die wêreld te kry. Die een waarvan ek al geweet het, was die GP2Y0A41SK0F wat 'n trianguleringsmetode gebruik om die afstand na hindernisse te skat. Ek het egter gewonder of ek iets beters kan vind, so ek het bietjie navorsing gedoen en uiteindelik het ek die TOF10120 ontdek (en die GY-VL53L0XV2, maar ek het dit nog nie ontvang nie:(). Hier is 'n goeie artikel om dit te ontdek. Hierdie sensor gee basies 'n infrarooi sein af wat oor hindernisse weerkaats en ontvang dan die weerkaatste lig. Afhangende van die tyd wat dit geneem het om heen en weer te gaan, kan die sensor die afstand van die hindernis skat (vandaar die naam TOF = vlugtyd Vanweë sy klein grootte, afstandsafstand en kragvereiste het ek besluit om die TOF10120 te gebruik.

Alhoewel my eerste idee was om drie daarvan op die robot te plaas (een voor en twee aan die kante), wou die Chinese nuwejaar en die COVID-19-pandemie dit nie so hê nie, aangesien dit probleme met die vervoer veroorsaak het. Aangesien ek beperk was tot een TOF10120, wat ek ook aan die kante wou sien en dat ek 'n paar servomotors het, het ek besluit om my sensor op 'n servo te monteer. Daar ontbreek dus twee dinge: hoe gebruik ek die TOF10120 met die micro: bit? En dieselfde vraag met die servo.

Gelukkig is die micro: bit toegerus met 'n I2C -kommunikasieprotokol, en dit maak ons lewe baie maklik: steek die rooi draad op 3,3V, swart tot grond, groen na SCL en blou by SDA, en dit is die hardeware -deel. Vir die sagteware moedig ek u aan om 'n bietjie te lees oor I2C -kommunikasie en die python -kode wat ek op die micro: bit aangeheg het, te probeer. Die program moet u die afstand wat deur die sensor op die REPL gemeet is, druk (lees Evalueer afdruklus). Dis dit. Ons het net ons micro: bit gesien.

Laat ons nou sy nek draai as u my toelaat om my analogieë met dierlike anatomie voort te sit. Die enigste gedagte wat ons nodig het, is om 'n servomotor met die micro: bit aan te dryf. Hierdie gedeelte word lank, so ek gee u net hierdie skakel met al die inligting wat u benodig en die kode wat ek gebruik het om dit te toets. As u wil, het ek ook 'n eenvoudige kode bygevoeg om die servo met pin0 te beheer. Moenie vergeet om u servo met 5V en nie 3.3V aan te skakel nie.

Stap 4: Hacking the Battery Shield

Die inbraak van die batteryskerm
Die inbraak van die batteryskerm
Die inbraak van die batteryskerm
Die inbraak van die batteryskerm
Die inbraak van die batteryskerm
Die inbraak van die batteryskerm

Noudat ons ons aandrywers en sensors gereed het, is dit tyd om na die batterybestuurstelsel te kyk. Om meer te wete te kom oor die batterykap wat ek gekies het, raai ek u aan om hierdie artikel te lees. Ek vind dit baie duidelik en toeganklik. Uit hierdie artikel kan ons baie voordele van hierdie batteryskerm sien, maar daar is 'n belangrike nadeel wat ek nie wou aanvaar nie: die AAN/UIT -skakelaar beïnvloed slegs die USB -uitset. Dit beteken dat as u die skakelaar afskakel, al die ander 3.3V- en 5V -penne aangedryf word. As gevolg hiervan, as ons die penne vir ons robot gebruik, sal die skakelaar niks doen nie …

Maar ek wil my robot kan afskakel om my battery nie verniet leeg te maak nie, so ek moes die batteryskerm kap. Dit sal nie mooi wees nie, maar dit werk en dit kos niks. Daarom wil ek hê dat 'n skakelaar die kring moet oop- of toemaak sodat dit my batterysel van die batteryskerm kan isoleer. Ek het nie die toerusting om die PCB aan te raak nie, maar ek het stukke plastiek rondom. Stel u nou voor dat ek 'n stuk plastiek gesny het sodat dit aan die een kant van my batterysel in die skild kan pas, soos in die eerste prent hierbo. Die stroombaan is nou oop en my battery word veilig gebêre.

Ja, maar ek wil nie die robot oopmaak om toegang tot die batterykap te kry om hierdie stuk plastiek te verwyder en te verwyder nie! Maklik: kry 'n skakelaar en plak twee vierkante aluminium vas aan elk van die drade wat aan die skakelaar gekoppel is. Plak nou die twee stukke aluminium aan die stuk plastiek vas sodat die twee stukke aluminium van mekaar geïsoleer kan word en sodat die aluminium aan die buitekant van u stelsel blootgestel kan word. Normaalweg moet dit doen. Plaas u nuwe skepping in die batteryskerm langs die sel, en die skakelaar moet u toelaat om die stroombaan wat aan die sel gekoppel is, oop of toe te maak.

'N Laaste ding: om dit makliker te maak om die robot te monteer en uitmekaar te sit, raai ek u aan om vroulike kopstukke op die batteryskerm te soldeer. Op hierdie manier kan u dit wat u bou met die motors en hul bestuurders maklik koppel en ontkoppel.

Stap 5: 3D -ontwerp en sny

3D ontwerp en sny
3D ontwerp en sny
3D ontwerp en sny
3D ontwerp en sny

Die enigste ding wat nou ontbreek, is om die struktuur te bou wat al ons komponente bymekaar sal hou. Hiervoor het ek die aanlyn platform tinkercad gebruik. Dit is 'n baie goeie omgewing om basiese CAD te doen, wat dikwels genoeg is om dinge vir die lasersnyer te ontwerp.

Na 'n rukkie dink, was dit tyd om te dink. Om dit te doen, het ek begin om 3D -modelle saam te stel van die verskillende dele wat ek gehad het (om eers die servo en TOF uit die vergelyking te hou). Dit bevat die battery en skild, die stepper -motors en die motorbestuurders, en natuurlik die micro: bit met die verlengbord. Ek het al die ooreenstemmende 3D -modelle as stl -lêers aangeheg. Om die proses te vergemaklik, het ek besluit om my robot simmetries te maak. As gevolg hiervan het ek slegs met die helfte van die robot gepeuter en die ontwerp bereik wat in die prent hierbo getoon word.

Hieruit het 'n paar weergawes tot lewe gekom, waaruit ek twee gekies het:

  • Een redelik netjies, sonder die nabyheidssensor, sodat geen drade kan verskyn nie. Alhoewel hierdie weergawe nie outonoom is nie, kan dit nog steeds via Bluetooth via 'n iPad geprogrammeer word, of kan dit geprogrammeer word om beheer te word met behulp van radioseine wat byvoorbeeld deur 'n ander micro: bit gestuur kan word, soos in die video hierbo getoon.
  • Een baie minder netjies, wat dit moontlik maak om verder te gaan na mobiele robotika, aangesien dit die afstand van die hindernis met 'n 180 ° -kyk kan vaslê danksy die nabyheidssensor op 'n servomotor.

Om dit op te stel, gaan na u gunsteling Fablab en gebruik die lasersnyer wat u vind om die model van u voorkeur te sny: die eerste een wat ooreenstem met die lêers design1_5mmMDF.svg en design1_3mmMDF wat ooreenstem met die dele wat in die 5mm MDF gesny moet word hout en die wat van die 3 mm -een gesny moet word; die tweede een stem ooreen met die lêer design2_5mmMDF.svg. Stel die swart kontoere wat gesny moet word en die rooi om te graveer.

Kantopmerking: ek het die rooi patroon bygevoeg net om dit te pimp. Dit is 'n Hilbert -vulfunksie wat ek gegenereer het met die aangehegte python -kode.

Stap 6: Monteer die dier

Die montering van die dier
Die montering van die dier
Die montering van die dier
Die montering van die dier
Die montering van die dier
Die montering van die dier

Die stappe wat ek gevolg het om die eerste weergawe van die robot te monteer, is die volgende (die foto's moet normaalweg in die regte volgorde wees):

  1. Verwyder die blou dop van die motors en sny dit 'n bietjie sodat die kabel aan die agterkant van die motor uitsteek.
  2. Monteer die motors aan elke kant met M2 -skroewe en boute.
  3. Monteer die prototipe bord aan die kante met behulp van die 2x2mm gate en 'n paar skroewe en boute.
  4. Sit die A4988 -bestuurders en plak die motorkabels vas om dit netjies te hou.
  5. Monteer die universele wiel onder die onderste deel en voeg die sye by.
  6. Monteer die verlengbord van die mikro: bit op die boonste deel.
  7. Monteer die onderkant van die buigsame voorblad.
  8. Sit die batteryskerm en verbind alles (om dit te doen, terwyl ek nog gewag het vir die aflewering van die verlengbord wat ek wou hê en dat ek net een het met kopstukke wat uitsteek, het ek 'n IDE -kabel van 'n ou rekenaar herwin om dit reg te kry Ek het nie my kabels aan die bord vasgesteek om dit alles met die opvoubare voorblad te bedek nie). Alhoewel die kode wat ek verskaf het, baie maklik is om aan te pas, moet u die STAP links aan pen 2 koppel, regs STEP na pen 8, links DIR na pen 12, regs DIR na pen 1.
  9. Plaas die micro: bit in die uitbreiding.
  10. Toets of alles met MoveTest.py werk voordat u verder gaan.
  11. Monteer die skakelaar op die boonste gedeelte en sit die plastiekboor langs die litiumsel.
  12. Skroef die boonste gedeelte van die voorblad vas.
  13. Monteer die agterkant, en jy is klaar! Sjoe! Ek het nie soveel stappe verwag nie! Dit is soveel makliker om daaroor na te dink en dit te doen as om dit in woorde te verduidelik! (En ek is seker daar sal nog inligting ontbreek!)

As u die tweede weergawe met die nabyheidssensor bou, dan:

  1. Volg die instruksies hierbo. Die enigste verskil is dat u 'n paar M2 -afstandhouers in stap 7 moet byvoeg (alhoewel dit is wat ek gedoen het, maar dit is nie nodig nie), ignoreer stap 8 en stap 13 (aangesien daar geen voorblad is nie)
  2. Monteer die servomotor met M2 -skroewe en verbind die VCC en GND van die servo direk op die 5V van die batteryskerm, en koppel die bedieningsingang aan pen 0 van die mikro: bit.
  3. Monteer die twee stukke hout wat bo -op die servo gaan met 'n skroef, skroef die TOF -sensor hierop vas, sowel as die wit plastiekstuk wat by die servo kom.
  4. Monteer hierdie laaste eenheid op die servo en verbind die sensor met I2C van micro: bit soos beskryf in stap 3.

Stap 7: Programmeer

Dis dit ! U het 'n robot wat u in micro: python of in die kode kan programmeer. Ek het hier 'n voorbeeldkode aangeheg waarmee ek die video's hierbo gemaak het:

  • Voorbeeld 1: Sit radioControl.py op die micro: bit van die robot en ReadAccelero.py op 'n ander micro: bit om die robot te beheer met behulp van die helling van die tweede micro: bit.
  • Voorbeeld 2: Sit Autonomous.py op die weergawe 2 van die robot, dit sal die omgewing ondersoek.

Dit is slegs basiese voorbeelde wat u kan gebruik om nog baie, baie verder te gaan. Ek hou byvoorbeeld baie van gelyktydige lokalisering en kartering, en normaalweg is daar alles wat u nodig het in die weergawe 2 van hierdie robot om dit te doen! Alhoewel 'n groot nadeel vir my om so 'n projek te doen, is dat die micro: bit PWM -bestuurder 'n sagtewarebestuurder is wat dieselfde timer vir alle kanale gebruik, wat beteken dat al die PWM's wat ons stel, dieselfde frekwensie moet hê (wat ek gedoen het) Ek weet nie wanneer ek die voorbeeldkodes geskryf het nie, alhoewel ek iets vreemds opgemerk het toe ek Autonomous.py geskryf het).

Stap 8: Gaan verder

Moenie huiwer om die ontwerp te verbeter nie, los 'n paar probleme op wat ek nie gesien het nie. Ek wil byvoorbeeld uiteindelik:

  • Voeg 'n IR -sensor onderaan die robot by om dit te laat vasstel of die grond swart of wit is of as dit aan die einde van my lessenaar kom.
  • Verander die batterybestuurstelsel, want ek is nog nie tevrede daarmee nie. Op die oomblik is dit nodig om die battery op te laai om die robot uitmekaar te haal om die sel of die batteryskerm uit te haal … Ek is dus van plan om: 1. 'n mini-USB-aansluiting aan die agterkant van die robot by te voeg sal aan die batteryskerm gekoppel word, sodat ek dit kan herlaai; 2. Sny 'n gaatjie aan die onderkant om die LED's van die batteryskerm te sien om te sien wanneer die laai verby is.
  • Kyk of daar 'n aanvaarbare manier is om PWM's met verskillende frekwensies uit te voer.
  • Probeer die VL53L0XV2 om die TOF10120 te vervang, aangesien dit 'n goedkoper opsie kan wees wat dit vir nog meer mense toeganklik sal maak. Alhoewel ek meer oor hierdie sensor gelees het, en dit lyk asof die onderneming wat dit goedkoop gemaak het, dit doelbewus baie moeilik gemaak het …
  • Toets die verskillende wiele se ontwerpe om dit duursaam te maak (op die oomblik sou ek verwag dat die hout geleidelik beskadig word as ek die wiele baie keer in en uit neem. As ek die hout meer elasties maak deur die ontwerp te verander, kan ek kan dit langer hou)

Baie dankie aan die mense van die Mobile robotics -span (nou deel van die Biorobotics -laboratorium) van EPFL wat my baie gehelp het om my kennis van elektronika en meganika uit te brei!

Aanbeveel: