Sisukord:

DIY Education Micro: bit Robot: 8 sammu (piltidega)
DIY Education Micro: bit Robot: 8 sammu (piltidega)

Video: DIY Education Micro: bit Robot: 8 sammu (piltidega)

Video: DIY Education Micro: bit Robot: 8 sammu (piltidega)
Video: Искусственный интеллект и bbc micro:bit / Научим микро:бит распознавать геометрические фигуры 2024, Juuli
Anonim
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot

See juhend annab teile teada, kuidas ehitada suhteliselt ligipääsetav, võimekas ja odav robot. Minu eesmärk selle roboti kujundamisel oli pakkuda välja midagi, mida enamik inimesi saaks endale lubada, et nad saaksid kaasahaaraval viisil infotehnoloogiat õpetada või sellest teada saada.

Kui olete selle roboti ehitanud, saate nautida erinevaid andureid ja täiturmehhanisme, et teha põhilisi, kuid ka üsna arenenud asju sõltuvalt teie ehitatud versioonist (pakun välja kaks versiooni). Selle robotiga annate micro: bitile silmad (180 ° vaade!) Ja jalad (täpse liigutusega võimalik!), Samas kui micro: bit pakub teile suurepäraseid funktsioone, nagu LED -maatriks, raadioside, Bluetooth -side, kiirendusmõõtur, kompasid, aga ka ligipääsu kõigele sellele kraamile kas MicroPythoni või nullist sarnase visuaalse programmeerimiskeelega (tegelikult ka C ++ ja javascriptiga, kuid minu arvates on need hariduseks vähem sobivad).

Ma töötan ka selle juhendi kallal, et saaksin lugejad ja tegijad õigele teele suunata, et nad saaksid rohkem teada mobiilse robootika, elektroonika, projekteerimise ja puulõikamise kohta. Selleks kavandasin kõik võimalikult modulaarseks. Näiteks ei kasuta ma liimi, mis võimaldab vabalt kokku panna ja lahti võtta, muutes nii uuendamise kui ka silumise lihtsamaks. Teen ka sammud nii järk -järgult kui võimalik, et saaksite järk -järgult toimuvast aru saada, kontrollida, kas asjad toimivad nii nagu peavad, ja jõuda töötava robotiga lõpuni.

Samm: tükkide kogumine

Tükkide kogumine
Tükkide kogumine

Selle projekti jaoks on karu miinimum, mida vajate:

  • 5 mm paksune MDF -puit ja luustiku lõikur
  • 1x18650 liitiumaku, 1x akukilp energia jaoks ja katkestaja
  • 1xMicro: bitikaart ja 1xMicro: aju bitipikendusplaat (kuigi mõlemat saab Arduino abil hõlpsalt asendada)
  • 2x28BYJ-5V samm-mootorid, 2xA4988 samm-mootoridraiverid ja 2x arendusplaat jalgade draiverite kinnitamiseks
  • 1x TOF10120 ja 1x Mini 9g servomootor silmadele Mõned kaablid ja kruvid
  • 1x universaalne ratas, kõrgus = 15mm

Nende hulgas ei ole standardid vaid kolm osa, seega leiate siit nende leidmiseks lingid: otsige siit kasutatav laiendusplaat (aga ma soovitaksin teil selle asemel kasutada seda, mis on roboti korralik versioon.) ei muuda disaini peaaegu midagi ja see muudab juhtmestiku palju lihtsamaks painduvate naissoost naissoost päistega), akukilbi siin ja universaalratta siin.

Ideaalis on teil ka teie käsutuses:

  • Multimeeter
  • Leivalaud
  • Jootekolb

Nii neile kui ka laserlõikuritele kontrollige, kas teil on oma koha ümber fablab! Need on suurepärased kohad inspireerivate tegijatega kohtumiseks!

2. samm: jalgade ettevalmistamine

Jalade ettevalmistamine
Jalade ettevalmistamine
Jalade ettevalmistamine
Jalade ettevalmistamine
Jalade ettevalmistamine
Jalade ettevalmistamine
Jalade ettevalmistamine
Jalade ettevalmistamine

Teie esimene ülesanne, kui sellega nõustute, on panna meie samm -mootor pöörlema, kasutades kontrollerina micro: bit! Miks samm -mootor? Oleksin võinud otsida reduktoritega alalisvoolumootorit, kuid proovisin neid ja mul on raske odavaid mootoreid madala kiirusega tööle panna. Mõtlesin ka, et oleks tore täpselt teada, mis kiirusega mu rattad pöörlevad. Sel põhjusel olid samm -mootorid parim valik.

Nüüd, kuidas juhtida 28BYJ mootorit 4988 draiveri abil? Vastus on… natuke pikk. Mul ei õnnestunud seda selles juhendis kenasti ära mahutada, nii et tegin selle jaoks veel ühe, mille leiate siit. Kutsun teid üles neid samme lõpuni järgima, luues väikese 26x22 mm suuruse prototüüpimisplaadi, millel on 2x2 mm augud 17 mm, et see külgedele kinnitada, nagu on näidatud ülaltoodud pildil (pange tähele, et nagu viidatud artiklis on öeldud, kollane traat) vasakul paistab välja, et tuletada meelde SLP ja RST jootmist).

Pärast seda, kui olin selle prototüüpplaadiga ühe mootoriga töötanud, kavandasin ka oma trükkplaadi, et muuta asjad natuke korrastatumaks. Lisasin vastava easyEDA -faili. See on txt -fail, kuid saate selle siiski avada tasuta veebipõhise redigeerimisplatvormi easyEDA abil.

3. samm: ma näen valgust !! (Valikuline)

Ma näen valgust !! (Valikuline)
Ma näen valgust !! (Valikuline)
Ma näen valgust !! (Valikuline)
Ma näen valgust !! (Valikuline)
Ma näen valgust !! (Valikuline)
Ma näen valgust !! (Valikuline)

Kui soovite lihtsalt ehitada ja mitte midagi enamat, minge selle sammu viimase lõigu eelse juurde, et näha, kuidas ühendada TOF10120 mikro: bitiga. Kui mitte, järgige.

Kuna meie micro: bit ei sisalda ühtegi kaamerat ega lähedusandurit, muudab see selle iga mobiilse robootikarakenduse jaoks pimedaks. Kaasas on raadiosaatja ja -retseptor, mis võimaldaks meil ehitada luustiku selle üle, mis meil juba on, ja saada kaugjuhitava roboti. Kuid kas poleks tore muuta meie robot autonoomseks? Jah oleks küll! Nii et vaatame, kuidas sinna jõuda.

Praegu oleme huvitatud robotite varustamisest anduritega, et meie robot saaks oma keskkonna kohta teavet. Saadaval on mitut tüüpi andureid, kuid siin keskendume lähedusanduritele. Kui ma seda robotit projekteerisin, oli mu eesmärk enamasti see, et robot ei kukuks millegi vastu, seetõttu tahtsin, et see tunneks takistusi. Selleks on ka paar võimalust. Esimene, väga lihtne, võiks olla kaitseraudade kasutamine, kuid minu arvates on teave keskkonna kohta pisut piiratud. Teisest äärmusest võiks mõelda kaamera (või Lidari või kinekti!) Lisamisele. Mulle meeldivad kaamerad, arvutinägemine ja kõik need asjad, kuid kahjuks Micro: bit neid ei toeta (selliste seadmete toetamiseks peaksime kasutama vaarika Pi, mitte micro: bit või Arduino).

Mida siis micro: bit toetab kaamera ja kaitseraudade vahel? Seal on väikesed aktiivsed andurid, mis saadavad valgust keskkonda ja kontrollivad, mis on vastuvõetud, et saada teavet maailma kohta. Üks, mida ma juba teadsin, oli GP2Y0A41SK0F, mis kasutab takistuste kauguse hindamiseks triangulatsioonimeetodit. Siiski mõtlesin, kas leian midagi paremat, nii et uurisin ja avastasin lõpuks TOF10120 (ja GY-VL53L0XV2, kuid ma ei saanud seda veel:(). Siin on teile tore artikkel selle avastamiseks. Põhimõtteliselt kiirgab see andur infrapunasignaali, mis peegeldab takistusi ja võtab seejärel vastu peegelduva valguse. Sõltuvalt valguse edasi -tagasi liikumiseks kulunud ajast saab andur hinnata takistuse kaugust (sellest ka nimi TOF = lennu aeg) Väikese suuruse, kauguse ja võimsusvajaduse tõttu otsustasin kasutada TOF10120.

Kuigi minu esimene idee oli panna kolm neist robotile (üks ette ja kaks külgedele), ei soovinud Hiina uusaasta ja COVID-19 pandeemia seda nii, kuna see tundus saatmistega probleeme tekitavat. Kuna ma piirdusin ühe TOF10120 -ga, mida tahtsin näha ka külgedelt ja et mul olid mõned servomootorid, otsustasin oma anduri paigaldada servole. Seega on praegu puudu kaks asja: kuidas kasutada TOF10120 koos micro: bitiga? Ja sama küsimus ka servoga.

Õnneks on micro: bit varustatud I2C kommunikatsiooniprotokolliga ja see muudab meie elu tõeliselt lihtsaks: ühendage punane juhe 3,3 V, must maaga, roheline SCL ja sinine SDA -ga ja see on riistvaraosa jaoks kõik. Tarkvara puhul soovitan teil natuke lugeda I2C -side kohta ja proovida pythoni koodi, mille lisasin micro: bitile. See programm peaks printima teile kauguse, mille andur on mõõtnud REPL -ile (lugege printimissilmuse hindamist). See on kõik. Me lihtsalt nägime oma micro: bitit.

Paneme nüüd kaela pöörama, kui lubate mul jätkata oma analoogiat loomade anatoomiaga. Ainus arvamus, mida meil selleks vaja on, on juhtida servomootorit koos mikro: bitiga. See osa läheb pikaks, nii et ma annan teile selle lingi, mis sisaldab kogu vajalikku teavet ja koodi, mida ma selle testimiseks kasutasin. Kui soovite, lisasin ka lihtsa koodi servo juhtimiseks pin0 abil. Ärge unustage oma servot toita 5 V, mitte 3,3 V pingega.

4. samm: akukilbi häkkimine

Akukilbi häkkimine
Akukilbi häkkimine
Akukilbi häkkimine
Akukilbi häkkimine
Akukilbi häkkimine
Akukilbi häkkimine

Nüüd, kui oleme täiturmehhanismid ja andurid valmis saanud, on aeg heita pilk akuhaldussüsteemile. Et saaksite minu valitud akukilbi kohta rohkem teada saada, soovitan teil seda artiklit lugeda. Minu arvates on see väga selge ja kättesaadav. Sellest artiklist näeme selle akukilbi mitmeid eeliseid, kuid on üks oluline puudus, mida ma ei tahtnud aktsepteerida: ON/OFF lüliti mõjutab ainult USB -väljundit. See tähendab, et kui lülitate lüliti välja, saavad kõik ülejäänud 3,3 V ja 5 V kontaktid toite. Selle tulemusena, kui kasutame neid tihvte oma roboti jaoks, ei tee lüliti üldse midagi…

Kuid ma tahan, et saaksin oma roboti välja lülitada, et mitte tühjalt tühjendada oma akut, nii et pidin häkkima akukilpi. See ei ole ilus, kuid see töötab ja see ei maksa midagi. Seetõttu tahan, et lüliti ahelat avaks või sulgeks, nii et see isoleeriks minu akuelemendi akukilbist. Mul pole seadmeid trükkplaadi puudutamiseks, kuid mul on ümberringi plastitükke. Kujutage nüüd ette, et lõikasin plastitüki nii, et see mahuks minu akuelemendi ühte otsa kilbi sisse nagu ülaltoodud esimesel pildil. Vooluahel on nüüd avatud ja aku on turvaliselt hoitud.

Jah, aga ma ei taha, et peaksin avama roboti, et pääseda juurde akukilbile, et seda plastikutükki panna ja eemaldada! Lihtne: hankige lüliti ja kleepige igale lülitiga ühendatud juhtmele kaks väikest alumiiniumruutu. Nüüd kleepige need kaks alumiiniumitükki plasttüki külge, et need kaks alumiiniumitükki üksteisest eraldada ja et alumiinium oleks teie süsteemi välisküljele avatud. Tavaliselt peaks seda tegema. Sisestage uus loomine elemendi kõrval olevasse akukilpi ja lüliti peaks võimaldama teil lahtriga ühendatud vooluahelat avada või sulgeda.

Viimane asi: roboti kokkupaneku ja lahtivõtmise hõlbustamiseks soovitan teil joota naissoost päised akukilbile. Nii saate mootorite ja nende draiveritega ehitatu hõlpsalt ühendada ja lahti ühendada.

Samm: 3D -disain ja lõikamine

3D disain ja lõikamine
3D disain ja lõikamine
3D disain ja lõikamine
3D disain ja lõikamine

Ainus, mis praegu puudu on, on üles ehitada struktuur, mis hoiab kõiki meie komponente koos. Selleks kasutasin veebiplatvormi tinkercad. See on tõesti kena keskkond, et teha põhilisi CAD -e, millest sageli piisab laserlõikuri jaoks mõeldud asjade kavandamiseks.

Pärast mõningast mõtlemist oli aeg nokitseda. Selleks hakkasin kokku panema erinevatest osadest 3D mudeleid (hoides esmalt servo ja TOF võrrandist eemal). See hõlmab akut ja kaitsekilpi, samm -mootoreid ja mootoridraivereid ning loomulikult mikro: bitti koos selle pikendusplaadiga. Lisasin stl -failidena kõik vastavad 3D -mudelid. Protsessi hõlbustamiseks otsustasin muuta oma roboti sümmeetriliseks. Selle tulemusel nokitsesin ainult poole robotiga ja jõudsin ülaltoodud pildil näidatud kujunduseni.

Sellest ärkasid ellu mõned versioonid, millest valisin välja kaks:

  • Üks üsna korralik, ilma lähedusandurita, mis võimaldab juhtmeid mitte ilmuda. Kuigi see versioon ei ole autonoomne, saab seda siiski programmeerida näiteks Bluetoothi kaudu iPadi kaudu või programmeerida juhtimiseks raadiosignaalide abil, mida võib näiteks saata teine mikrobit, nagu on näidatud ülaltoodud videos.
  • Üks palju vähem korrastatud, mis võimaldab liikuda robootikasse palju kaugemale, kuna tänu servomootorile ehitatud lähedusandurile võimaldab takistus kaugust jäädvustada 180 ° vaatega.

Selle ülesehitamiseks minge oma lemmik Fablabi ja kasutage oma eelistatud mudeli lõikamiseks leitud laserlõikurit: esimene, mis vastab failidele design1_5mmMDF.svg ja design1_3mmMDF, mis vastavad vastavalt 5 mm MDF -i lõigatavatele osadele. puit ja need, mida lõigata 3 mm pikkusest; teine vastab failile design2_5mmMDF.svg. Määrake mustad kontuurid lõikamiseks ja punased graveerimiseks.

Lisamärkus: lisasin punase mustri lihtsalt selleks, et seda üles ehitada. See on Hilberti täitmisfunktsioon, mille lõin lisatud pythoni koodi abil.

Samm: metsalise paigaldamine

Metsalise paigaldamine
Metsalise paigaldamine
Metsalise paigaldamine
Metsalise paigaldamine
Metsalise paigaldamine
Metsalise paigaldamine

Roboti esimese versiooni paigaldamisel järgisin järgmisi samme (pildid peaksid tavaliselt olema õiges järjekorras):

  1. Eemaldage mootorite sinine kate ja lõigake seda natuke, et kaabel mootori tagaosast välja jääks.
  2. Paigaldage mootorid mõlemale küljele, kasutades M2 kruvisid ja polte.
  3. Paigaldage prototüüpplaat külgedele, kasutades 2x2 mm auke ja mõningaid kruvisid ja polte.
  4. Pange A4988 draiverid ja lindistage mootorikaablid, et see oleks korras.
  5. Paigaldage universaalratas alumise osa alla ja lisage küljed.
  6. Paigaldage micro: bit pikendusplaat ülemisele osale.
  7. Paigaldage painduva esikaane põhi.
  8. Pange patareikilp ja ühendage kõik (selleks, kuna ootasin veel soovitud pikendusplaadi kohaletoimetamist ja mul oli ainult üks naissoost päistega, jätsin vana arvuti IDE -kaabli taaskasutusse et mu kaablid ei jääks tahvli külge kinni, et katta see kõik kokkupandava esikaanega). Kuigi minu esitatud koodi on väga lihtne kohandada, peate selle otseseks kasutamiseks ühendama vasaku STEP -i tihvtiga 2, parema STEP -i tihvtiga 8, vasaku DIR -i tihvtiga 12, parema DIR -ga, kui see on ühendatud.
  9. Pange micro: bit laiendusse.
  10. Enne kaugemale minekut kontrollige, kas kõik töötab koos MoveTest.py -ga.
  11. Paigaldage lüliti ülemisele osale ja asetage plastist otsik liitiumelemendi kõrvale.
  12. Kruvige esikaane ülemine osa.
  13. Paigaldage tagakülg ja olete valmis! Oeh! Ma ei oodanud nii palju samme! Nii palju lihtsam on sellele mõelda ja seda teha kui seda sõnadega seletada! (Ja olen kindel, et teavet jääb ikkagi puudu!)

Kui ehitate teist versiooni lähedusanduriga, tehke järgmist.

  1. Järgige ülaltoodud juhiseid. Ainus erinevus seisneb selles, et 7. sammus peate lisama mõned M2 -vahekaugused (kuigi ma tegin seda, kuid see pole kohustuslik), ignoreerige 8. ja 13. sammu (kuna esikaant pole)
  2. Paigaldage servomootor M2 kruvidega ja ühendage servo VCC ja GND otse akukilbi 5V külge ning ühendage juhtimissisend mikro: biti kontaktiga 0.
  3. Paigaldage kaks puutükki, mis lähevad servo külge kruviga, keerake nii selle külge TOF -andur kui ka servoga kaasas olev valge plasttükk.
  4. Paigaldage see viimane seade servole ja ühendage andur, kasutades mikro: bit I2C, nagu on kirjeldatud punktis 3.

Samm: programm

See on kõik! Teil on robot, mida saate programmeerida kas mikro: pythonis või makecode'is. Lisasin siia mõned näidiskoodid, mida kasutasin ülaltoodud videote tegemiseks:

  • Näide 1: Asetage radioControl.py roboti micro: bitile ja ReadAccelero.py teisele micro: bitile, et juhtida robotit teise mikro: bitti kaldenurga abil.
  • Näide 2: pange Autonomous.py selle roboti versioonile 2, mis uurib keskkonda.

Need on vaid põhinäited, mille abil saate palju -palju kaugemale jõuda. Näiteks mulle meeldib üheaegne lokaliseerimine ja kaardistamine ning tavaliselt on selle roboti versioonis 2 kõik selleks vajalik! Kuigi üks suur puudus minu jaoks sellise projekti tegemisel on see, et micro: bit PWM draiver on tarkvaradraiver, mis kasutab kõigi kanalite jaoks sama taimerit, mis tähendab, et kõik meie seadistatud PWM -id peavad olema sama sagedusega (seda ma tegin) ei tea, millal proovikoodid kirjutasin, kuigi avastasin Autonomous.py kirjutamisel midagi imelikku).

8. samm: minge kaugemale

Ärge kartke disaini täiustada, lahendage mõned probleemid, mida ma ei näinud. Näiteks tahaksin lõpuks:

  • Lisage roboti põhja infrapunaandur, et see tuvastaks, kas maapind on must või valge või jõuab see minu laua lõppu.
  • Vahetage akuhaldussüsteemi, kuna ma pole sellega veel rahul. Tõepoolest, hetkel on aku laadimiseks vaja robot lahti võtta, et eemaldada element või akukilp … Seetõttu plaanin ma järgmist: 1. lisada mini-USB-pistik roboti tagaküljele ühendan aku kaitsekilega, et saaksin seda laadida; 2. Lõika põhjast auk, et näha akukilbi valgusdioode, et näha, millal laadimine on lõppenud.
  • Kontrollige, kas on olemas vastuvõetav viis erineva sagedusega PWM -ide väljastamiseks.
  • Proovige TOF10120 asendamiseks mudelit VL53L0XV2, kuna see võib olla odavam variant, mis muudaks selle kättesaadavaks veelgi enamatele inimestele. Kuigi ma lugesin selle anduri kohta rohkem ja tundub, et selle odavalt teinud ettevõte tegi selle meelega väga raskeks …
  • Katsetage rataste erinevaid konstruktsioone, et need oleksid vastupidavamad (praegu ootaksin, et kui ma võtan rattaid mitu korda sisse ja välja, saab puit järk -järgult kahjustada. Kui muudan puidu elastsemaks, muutes disaini saab kauem vastu pidada)

Suur tänu inimestele EPFLi robootikameeskonnast Mobile (nüüd Biorobootika labor), kes aitasid mul palju laiendada oma teadmisi elektroonika ja mehaanika kohta!

Soovitan: