Satura rādītājs:

DIY Educational Micro: bit robots: 8 soļi (ar attēliem)
DIY Educational Micro: bit robots: 8 soļi (ar attēliem)

Video: DIY Educational Micro: bit robots: 8 soļi (ar attēliem)

Video: DIY Educational Micro: bit robots: 8 soļi (ar attēliem)
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Jūlijs
Anonim
DIY Educational Micro: bit robots
DIY Educational Micro: bit robots
DIY Educational Micro: bit robots
DIY Educational Micro: bit robots

Šī pamācība parādīs, kā izveidot salīdzinoši pieejamu, spējīgu un lētu robotu. Mans mērķis, izstrādājot šo robotu, bija piedāvāt kaut ko tādu, ko lielākā daļa cilvēku varētu atļauties, lai viņi saistošā veidā mācītu datorzinātnes vai uzzinātu par to.

Kad esat izveidojis šo robotu, varat izbaudīt tā dažādus sensorus un izpildmehānismus, lai atkarībā no jūsu izveidotās versijas veiktu pamata, bet arī diezgan progresīvas lietas (es sniegšu divas versijas). Ar šo robotu jūs piešķirat acis (180 ° skatu!) Un kājas (ar precīzu kustību!) Micro: bit, savukārt micro: bit sniedz jums lieliskas iespējas, piemēram, LED matricu, radio sakarus, Bluetooth sakarus, akselerometru, kompas, bet arī piekļuve visam šim saturam, izmantojot vai nu MicroPython, vai ar vizuālu programmēšanas valodu, kas līdzīga nullei (patiesībā arī C ++ un javascript, bet es uzskatu, ka tie ir mazāk piemēroti izglītībai).

Es arī strādāšu pie šī pamācības, lai es varētu likt lasītājiem un veidotājiem uzzināt vairāk par mobilo robotiku, elektroniku, projektēšanu un koka griešanu. Lai to izdarītu, es izstrādāju visu, lai tas būtu pēc iespējas modulārāks. Piemēram, es neizmantošu līmi, lai ļautu brīvi salikt un izjaukt, atvieglojot uzlabojumus un atkļūdošanu. Es arī darīšu soļus pēc iespējas pakāpeniskāk, lai jūs varētu pakāpeniski saprast notiekošo, pārbaudīt, vai lietas darbojas tā, kā vajadzētu, un sasniegt galu ar robotu, kas darbojas.

1. darbība: gabalu savākšana

Gabalu savākšana
Gabalu savākšana

Šim projektam nepieciešamais minimālais lācis ir:

  • 5 mm bieza MDF koksne un lāzera griezējs skeletam
  • 1x18650 litija akumulators, 1x akumulatora vairogs enerģijai un pārtraucējs
  • 1xMicro: bitu karte un 1xMicro: bitu pagarinājuma plate smadzenēm (lai gan abas var viegli nomainīt ar Arduino)
  • 2x28BYJ-5V soļu motori, 2xA4988 pakāpju motoru draiveri un 2x izstrādes dēlis, lai uzstādītu kāju vadītājus
  • 1x TOF10120 un 1x Mini 9g servomotors acīm Daži kabeļi un skrūves
  • 1x universāls ritenis, augstums = 15mm

Starp tām tikai trīs daļas nav standarti, tāpēc šeit ir saites, lai tās atrastu: atrodiet šeit izmantoto paplašinājuma paneli (bet es ieteiktu jums to izmantot, lai izveidotu kārtīgu robota versiju. Jums būs dizains gandrīz neko nemainīs, un elektroinstalācija kļūs daudz vienkāršāka ar saliektām sieviešu un sieviešu galviņām), akumulatora vairogs šeit un universālais ritenis šeit.

Ideālā gadījumā jums būs arī:

  • Multimetrs
  • Maizes dēlis
  • Lodāmurs

Tiem, kā arī lāzera griezējiem, pārbaudiet, vai jūsu vietā ir kāds fablab! Tās ir lieliskas vietas, kur satikt iedvesmojošus veidotājus!

2. darbība: kāju sagatavošana

Kāju sagatavošana
Kāju sagatavošana
Kāju sagatavošana
Kāju sagatavošana
Kāju sagatavošana
Kāju sagatavošana
Kāju sagatavošana
Kāju sagatavošana

Jūsu pirmā misija, ja jūs to pieņemsiet, būs panākt, lai mūsu soļu motors griežas, izmantojot micro: bit kā kontrolieri! Kāpēc stepper motors? Es būtu varējis izvēlēties līdzstrāvas motoru ar reduktoriem, bet es tos izmēģināju, un man ir grūti panākt, lai lēti motori darbotos ar mazu ātrumu. Es arī domāju, ka būtu jauki precīzi zināt, ar kādu ātrumu mani riteņi griežas. Šo iemeslu dēļ pakāpju motori bija labākais risinājums.

Tātad, tagad, kā kontrolēt 28BYJ motoru, izmantojot 4988 draiveri? Atbilde ir… mazliet gara. Man neizdevās to kārtīgi ievietot šajā pamācībā, tāpēc es šim nolūkam izveidoju vēl vienu, ko atradīsit šeit. Es aicinu jūs sekot šiem soļiem līdz beigām, izveidojot nelielu 26x22 mm lielu prototipa plāksni ar 2x2 mm caurumiem 17 mm, lai to uzstādītu sānos, kā parādīts iepriekšējā attēlā (Ņemiet vērā, ka, kā norādīts atsauces rakstā, dzeltenā stieple kreisajā pusē uzlīme ir tikai, lai atgādinātu, ka kopā jāsalodē SLP un RST).

Pēc tam, kad es strādāju ar vienu motoru ar prototipēšanas plāksni, es arī izveidoju savu PCB, lai padarītu lietas mazliet sakoptākas. Pievienoju atbilstošo easyEDA failu. Tas ir txt fails, taču jūs joprojām varat to atvērt, izmantojot bezmaksas rediģēšanas platformu easyEDA.

3. solis: Es redzu gaismu !! (Neobligāti)

Es redzu gaismu !! (Neobligāti)
Es redzu gaismu !! (Neobligāti)
Es redzu gaismu !! (Neobligāti)
Es redzu gaismu !! (Neobligāti)
Es redzu gaismu !! (Neobligāti)
Es redzu gaismu !! (Neobligāti)

Ja vēlaties tikai veidot un neko vairāk, pārejiet pie šīs darbības pēdējās rindkopas, lai uzzinātu, kā savienot TOF10120 ar mikro: bitu. Ja ne, sekojiet.

Tā kā mūsu micro: bit komplektā nav nevienas kameras vai tuvuma sensora, tas padara to par aklu jebkurai mobilajai robotikas lietojumprogrammai. Tam ir radio emitētājs un uztvērējs, kas ļautu mums izveidot skeletu pār to, kas mums jau ir, un iegūt tālvadības robotu. Bet vai nebūtu lieliski padarīt mūsu robotu autonomu? Jā tā būtu! Tātad, redzēsim, kā tur nokļūt.

Mūs šobrīd interesē mūsu robota aprīkošana ar sensoriem, lai mūsu robots varētu iegūt informāciju par savu vidi. Ir pieejami daudzi sensoru veidi, taču šeit mēs koncentrēsimies uz tuvuma sensoru. Izstrādājot šo robotu, mans mērķis lielākoties bija tas, ka robots neietriecas neko, tāpēc vēlējos, lai tas uztver šķēršļus. Šim nolūkam ir arī dažas iespējas. Pirmais, ļoti vienkāršais, varētu būt buferu izmantošana, taču man šķiet, ka informācija par vidi ir nedaudz ierobežota. No otras puses, jūs varētu domāt par kameras (vai Lidara vai kinekta!) Pievienošanu. Man patīk kameras, datora redze un visas šīs lietas, bet diemžēl Micro: bit tās neatbalsta (lai izmantotu šādas ierīces, mums jāizmanto aveņu Pi, nevis micro: bit vai Arduino).

Tātad, ko atbalsta micro: bit, kas atrodas starp kameru un buferiem? Ir mazi aktīvi sensori, kas sūta gaismu uz vidi un pārbauda, kas ir saņemts, lai iegūtu kādu informāciju par pasauli. Es jau zināju GP2Y0A41SK0F, kas izmanto triangulācijas metodi, lai novērtētu attālumu līdz šķēršļiem. Tomēr es domāju, vai es varētu atrast kaut ko labāku, tāpēc es veicu dažus pētījumus un galu galā atklāju TOF10120 (un GY-VL53L0XV2, bet es to vēl neesmu saņēmis:(). Šeit ir jauks raksts, lai jūs to varētu atklāt. Būtībā šis sensors izstaro infrasarkano signālu, kas atspoguļo šķēršļus un pēc tam saņem atstaroto gaismu. Atkarībā no laika, kas nepieciešams, lai gaisma turp un atpakaļ, sensors var novērtēt šķēršļa attālumu (līdz ar to nosaukums TOF = lidojuma laiks) Tā mazā izmēra, attāluma diapazona un jaudas nepieciešamības dēļ es nolēmu izmantot TOF10120.

Lai gan mana pirmā ideja bija trīs no tiem novietot uz robota (vienu priekšā un divus sānos), ķīniešu jaunais gads un COVID-19 pandēmija to nevēlējās, jo šķita, ka tas rada problēmas ar sūtījumiem. Tā kā es aprobežojos ar vienu TOF10120, ko es arī gribēju redzēt sānos un ka man apkārt ir daži servomotori, es nolēmu savu sensoru uzstādīt uz servo. Tātad tagad trūkst divu lietu: kā es varu izmantot TOF10120 ar micro: bit? Un tas pats jautājums ar servo.

Par laimi micro: bit ir aprīkots ar I2C sakaru protokolu, un tas padara mūsu dzīvi patiešām vieglu: pievienojiet sarkano vadu pie 3.3 V, melnu - zemē, zaļu - pie SCL un zilu - pie SDA, un tas ir viss aparatūras daļai. Attiecībā uz programmatūru es iesaku jums mazliet izlasīt par I2C komunikāciju un izmēģināt pitona kodu, kuru pievienoju micro: bit. Šai programmai vajadzētu izdrukāt attālumu, ko sensors mēra REPL (lasiet drukas cikla novērtēšanas ciklu). Tieši tā. Mēs tikko parādījām savu micro: bit.

Tagad liksim tam pagriezt kaklu, ja ļausiet man turpināt savas analoģijas ar dzīvnieku anatomiju. Vienīgais, kas mums būs vajadzīgs, ir vadīt servomotoru ar micro: bit. Šī daļa kļūst gara, tāpēc es jums vienkārši sniegšu šo saiti, kurā ir visa nepieciešamā informācija un kods, ko izmantoju, lai to pārbaudītu. Ja vēlaties, es pievienoju arī vienkāršu kodu, lai kontrolētu servo, izmantojot pin0. Vienkārši neaizmirstiet barot savu servo ar 5V, nevis 3.3V.

4. solis: akumulatora vairoga uzlaušana

Akumulatora vairoga uzlaušana
Akumulatora vairoga uzlaušana
Akumulatora vairoga uzlaušana
Akumulatora vairoga uzlaušana
Akumulatora vairoga uzlaušana
Akumulatora vairoga uzlaušana

Tagad, kad esam sagatavojuši savus izpildmehānismus un sensorus, ir pienācis laiks apskatīt akumulatora vadības sistēmu. Lai jūs uzzinātu vairāk par izvēlēto akumulatora vairogu, es ieteiktu jums izlasīt šo rakstu. Man tas šķiet ļoti skaidrs un pieejams. No šī raksta mēs varam redzēt daudzas šī akumulatora vairoga priekšrocības, taču ir viens svarīgs trūkums, kuru es negribēju pieņemt: ON/OFF slēdzis ietekmē tikai USB izeju. Tas nozīmē, ka, izslēdzot slēdzi, visas pārējās 3.3V un 5V tapas tiks barotas. Tā rezultātā, kad mēs izmantojam šīs tapas savam robotam, slēdzis neko nedos …

Bet es vēlos, lai es varētu izslēgt savu robotu, lai velti neiztukšotu akumulatoru, tāpēc man nācās uzlauzt akumulatora vairogu. Tas nebūs skaisti, bet tas darbojas un nemaksā neko. Tāpēc es vēlos, lai slēdzis atver vai aizver ķēdi, lai tas izolētu manu akumulatora elementu no akumulatora vairoga. Man nav aprīkojuma, lai pieskartos PCB, bet man apkārt ir plastmasas gabali. Tāpēc tagad iedomājieties, ka es nogriezu plastmasas gabalu, lai tas varētu ietilpt vairoga akumulatora elementa vienā galā tāpat kā pirmajā attēlā iepriekš. Ķēde tagad ir atvērta, un mans akumulators ir droši uzglabāts.

Jā, bet es nevēlos atvērt robotu, lai piekļūtu akumulatora pārsegam, lai ievietotu un noņemtu šo plastmasas gabalu! Vienkārši: iegūstiet slēdzi un pielīmējiet divus mazus alumīnija kvadrātus pie katra slēdža pieslēgtajiem vadiem. Tagad pielīmējiet šos divus alumīnija gabalus pie plastmasas gabala, lai divi alumīnija gabali būtu izolēti viens no otra un lai alumīnijs būtu pakļauts jūsu sistēmas ārpusei. Parasti tas būtu jādara. Ievietojiet jauno radīto akumulatora vāciņā blakus elementam, un slēdzim vajadzētu ļaut atvērt vai aizvērt ar šūnu savienoto ķēdi.

Pēdējā lieta: lai atvieglotu robota salikšanu un izjaukšanu, es ieteiktu lodēt sieviešu galviņas uz akumulatora vairoga. Tādā veidā jūs varat viegli pievienot un atvienot to, ko veidojat ar motoriem un to draiveriem.

5. solis: 3D dizains un izgriešana

3D dizains un griešana
3D dizains un griešana
3D dizains un griešana
3D dizains un griešana

Vienīgais, kas tagad trūkst, ir izveidot struktūru, kas saturēs visas mūsu sastāvdaļas. Lai to izdarītu, es izmantoju tiešsaistes platformu tinkercad. Šī ir patiešām jauka vide, lai veiktu dažus pamata CAD, kas bieži vien ir pietiekami, lai izstrādātu lietas lāzera griezējam.

Pēc kāda laika domāšanas bija pienācis laiks mesties. Lai to izdarītu, es sāku apkopot dažādu man pieejamo daļu 3D modeļus (vispirms neļaujot servo un TOF iekļaut vienādojumā). Tas ietver akumulatoru un vairogu, pakāpju motorus un motoru draiverus, un, protams, mikro: bitu ar tā pagarinātāju. Es pievienoju visus atbilstošos 3D modeļus kā stl failus. Lai atvieglotu procesu, es nolēmu padarīt savu robotu simetrisku. Tā rezultātā es ķēros pie tikai pusi no robota un sasniedzu iepriekš attēlā redzamo dizainu.

No tā atdzīvojās dažas versijas, no kurām es izvēlējos divas:

  • Viens diezgan sakopts, bez tuvuma sensora, kas ļauj neparādīties vadiem. Lai gan šī versija nav autonoma, to joprojām var programmēt, izmantojot Bluetooth, izmantojot iPad, vai arī to var ieprogrammēt, lai to kontrolētu, izmantojot radiosignālus, kurus, piemēram, var nosūtīt cits mikrobits, kā parādīts iepriekš redzamajā video.
  • Viens daudz mazāk sakopts, kas ļauj daudz vairāk iedziļināties mobilajā robotikā, jo ļauj uztvert šķēršļu attālumu ar 180 ° skatu, pateicoties tuvuma sensoram, kas uzbūvēts uz servomotoru.

Lai to izveidotu, dodieties uz savu iecienītāko Fablab un izmantojiet izvēlēto lāzera griezēju, lai sagrieztu sev vēlamo modeli: pirmais, kas atbilst failiem design1_5mmMDF.svg un design1_3mmMDF, kas atbilst 5 mm MDF griešanai paredzētajām daļām. koks un tie, ko griezt no 3 mm; otrais atbilst failam design2_5mmMDF.svg. Iestatiet izgriežamos melnos kontūrus un iegravētos sarkanos.

Sānu piezīme: Es pievienoju sarkano rakstu, lai to uzpūstu. Šī ir Hilberta uzpildes funkcija, kuru ģenerēju, izmantojot pievienoto pitona kodu.

6. solis: zvēra uzstādīšana

Zvēra uzstādīšana
Zvēra uzstādīšana
Zvēra uzstādīšana
Zvēra uzstādīšana
Zvēra uzstādīšana
Zvēra uzstādīšana

Lai uzstādītu pirmo robota versiju, veicu šādas darbības (attēliem parasti jābūt pareizā secībā):

  1. Noņemiet motoru zilo vāciņu un nedaudz nogrieziet to, lai kabelis izliktos no motora aizmugures.
  2. Uzstādiet motorus katrā pusē, izmantojot M2 skrūves un skrūves.
  3. Piestipriniet prototipa dēli sānos, izmantojot 2x2 mm caurumus un dažas skrūves un skrūves.
  4. Ielieciet A4988 draiverus un līmējiet motora kabeļus, lai tas būtu sakopts.
  5. Uzstādiet universālo riteni zem apakšējās daļas un pievienojiet sānus.
  6. Uzstādiet micro: bit pagarinātāju uz augšējās daļas.
  7. Uzstādiet elastīgā priekšējā vāka dibenu.
  8. Ielieciet akumulatora vairogu un pievienojiet visu (lai to izdarītu, jo es joprojām gaidīju vajadzīgās pagarinājuma plates piegādi un man bija tikai viena ar sieviešu galvenēm, es pārstrādāju IDE kabeli no vecā datora, lai to varētu lai mani kabeļi neliptu pie tāfeles, lai to visu aizsegtu ar salokāmo priekšējo vāku). Lai gan manu sniegto kodu ir ļoti viegli pielāgot, lai to izmantotu tieši, kreisais STEP ir jāpievieno 2. tapai, labais STEP - 8. tapai, kreisais DIR - 12. tapai, labais DIR - 1. tapai.
  9. Ievietojiet micro: bit pagarinājumā.
  10. Pirms turpināt, pārbaudiet, vai ar MoveTest.py viss darbojas.
  11. Uzstādiet slēdzi augšējā daļā un novietojiet plastmasas uzgali blakus litija elementam.
  12. Pieskrūvējiet priekšējā vāka augšējo daļu.
  13. Uzmontējiet muguru, un esat pabeidzis! Fau! Es negaidīju tik daudz soļu! Ir daudz vieglāk par to domāt un darīt, nekā to izskaidrot vārdos! (Un es esmu pārliecināts, ka joprojām trūks informācijas!)

Ja veidojat otro versiju ar tuvuma sensoru, tad:

  1. Izpildiet iepriekš sniegtos norādījumus. Vienīgā atšķirība būs tāda, ka 7. darbībā jums būs jāpievieno daži M2 starplikas (lai gan es to darīju, bet tas nav obligāti), ignorējiet 8. un 13. darbību (jo nav priekšējā vāka)
  2. Piestipriniet servomotoru ar M2 skrūvēm un pieslēdziet servo VCC un GND tieši pie akumulatora vairoga 5V, un pievienojiet vadības ieeju micro: bit 0 tapai.
  3. Uzstādiet divus koka gabalus, kas iet virs servo ar skrūvi, pieskrūvējiet tam TOF sensoru, kā arī servo komplektācijā iekļauto balto plastmasas gabalu.
  4. Uzstādiet šo pēdējo ierīci uz servo un pievienojiet sensoru, izmantojot mikro: bit I2C, kā aprakstīts 3. darbībā.

7. solis: programma

Tieši tā ! Jums ir robots, kuru varat programmēt mikro: python vai makecode. Šeit es pievienoju dažus koda paraugus, ko izmantoju, lai izveidotu iepriekš minētos videoklipus:

  • 1. piemērs: ievietojiet radioControl.py uz robota micro: bit un ReadAccelero.py uz citu micro: bit, lai vadītu robotu, izmantojot otrā micro: bit slīpumu.
  • 2. piemērs. Ielieciet Autonomous.py uz robota 2. versiju, tas izpētīs vidi.

Tie ir tikai pamata piemēri, kurus varat izmantot, lai iet daudz, daudz tālāk. Piemēram, man ļoti patīk vienlaicīga lokalizācija un kartēšana, un parasti šī robota 2. versijā ir viss nepieciešamais, lai to izdarītu! Lai gan man ir liels trūkums šāda projekta veikšanai, ir tas, ka micro: bit PWM draiveris ir programmatūras draiveris, kas visiem kanāliem izmanto vienu un to pašu taimeri, kas nozīmē, ka visiem mūsu iestatītajiem PWM ir jābūt vienādam frekvencei (ko es darīju) nezinu, kad rakstīju paraugu kodus, lai gan, rakstot Autonomous.py, es atklāju kaut ko dīvainu.

8. solis: iet tālāk

Nevilcinieties uzlabot dizainu, atrisiniet dažas problēmas, kuras es neredzēju. Piemēram, es galu galā vēlētos:

  • Pievienojiet infrasarkano staru sensoru robota apakšā, lai tas noteiktu, vai zeme ir melna vai balta vai arī tā sasniedz mana galda galu.
  • Mainiet akumulatora pārvaldības sistēmu, jo es to vēl neesmu apmierināts. Patiešām, šobrīd, lai uzlādētu akumulatoru, ir jāizjauc robots, lai izņemtu elementu vai akumulatora aizsargu … Tāpēc es plānoju: 1. pievienot mini-USB savienotāju robota aizmugurē savienošos ar akumulatora pārsegu, lai es varētu to uzlādēt; 2. Izgrieziet caurumu apakšā, lai redzētu gaismas diodes no akumulatora pārsega, lai redzētu, kad uzlāde ir beigusies.
  • Pārbaudiet, vai ir pieņemams veids, kā izvadīt PWM ar dažādām frekvencēm.
  • Izmēģiniet VL53L0XV2, lai nomainītu TOF10120, jo tas varētu būt lētāks risinājums, kas padarītu to pieejamu vēl lielākam skaitam cilvēku. Lai gan es lasīju vairāk par šo sensoru, un šķiet, ka uzņēmums, kurš to izgatavoja lēti, ļoti apzināti to apgrūtināja …
  • Pārbaudiet dažādus riteņu dizainus, lai padarītu tos izturīgākus (šobrīd es gaidītu, ka, ja riteņus ievedīšu un izņemšu daudzas reizes, koksne pakāpeniski tiks bojāta. Ja padarīšu koku elastīgāku, mainot dizainu, iespējams, var ilgt ilgāk)

Liels paldies EPFL mobilās robotikas komandas (tagad daļa no Biorobotikas laboratorijas) cilvēkiem, kuri man ļoti palīdzēja paplašināt zināšanas par elektroniku un mehāniku!

Ieteicams: