Innehållsförteckning:

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

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

Video: DIY Educational Micro: bit Robot: 8 steg (med bilder)
Video: Bot:bit the DIY car - Part 1 2024, Juli
Anonim
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot
DIY Educational Micro: bit Robot

Denna instruerbara visar dig hur du bygger en relativt tillgänglig, kapabel och billig robot. Mitt mål med att designa denna robot var att föreslå något som de flesta hade råd med, för att de skulle lära datavetenskap på ett engagerande sätt eller att lära sig om det.

När du väl har byggt denna robot kan du njuta av dess olika sensorer och ställdon för att göra grundläggande men också ganska avancerade saker beroende på vilken version du bygger (jag tillhandahåller två versioner). Med denna robot ger du ögon (180 ° vy!) Och ben (med exakt rörelse möjlig!) Till micro: bit medan micro: bit ger dig fantastiska funktioner som LED -matris, radiokommunikation, bluetooth -kommunikation, accelerometer, kompasser, men också tillgång till allt det där med antingen MicroPython eller med ett visuellt programmeringsspråk som liknar scratch (faktiskt också i C ++ och javascript men jag tycker att de är mindre lämpliga för utbildning).

Jag kommer också att arbeta med detta instruerbara så att jag kan sätta läsarna och tillverkarna på rätt spår för att upptäcka mer om mobil robotik, elektronik, design och träskärning. För att göra det designade jag allt för att vara så modulärt som möjligt. Till exempel kommer jag inte att använda något lim för att montera och demontera fritt, vilket gör uppgraderingar och felsökning enklare. Jag kommer också att göra stegen så inkrementella som möjligt, så att du gradvis kan förstå vad som händer, kontrollera att saker fungerar som de ska och nå slutet med en robot som fungerar.

Steg 1: Samla bitarna

Att samla bitarna
Att samla bitarna

För detta projekt är björnminimum du behöver:

  • 5 mm tjockt MDF -trä och en laserskärare för skelettet
  • 1x18650 litiumbatteri, 1x batteriskydd för energin och en avbrytare
  • 1xMicro: Bitkort och 1xMicro: bit förlängningskort för hjärnan (även om båda enkelt kan bytas ut mot en Arduino)
  • 2x28BYJ-5V stegmotorer, 2xA4988 stegmotordrivrutiner och 2x utvecklingsbräda för att montera drivrutinerna för benen
  • 1x TOF10120 och 1x Mini 9g Servomotor för ögonen Några kablar och skruvar
  • 1x universalhjul, höjd = 15 mm

Bland dem är bara tre delar inte standarder, därför är här länkar för att hitta dem: hitta förlängningskortet jag använde här (men jag skulle rekommendera dig att använda den här istället för den snygga versionen av roboten. Du måste ändrar nästan ingenting till designen och det kommer att göra ledningarna mycket enklare med böjda hona-hona-rubriker), batteriskyddet här och universalhjulet här.

Helst har du också tillgång till:

  • En multimeter
  • En brödbräda
  • Ett lödkolv

För dem såväl som laserskäraren, kolla om du har någon fablab runt din plats! Det är bra ställen att träffa några inspirerande skapare!

Steg 2: Förbereda benen

Förbereda benen
Förbereda benen
Förbereda benen
Förbereda benen
Förbereda benen
Förbereda benen
Förbereda benen
Förbereda benen

Ditt första uppdrag, om du accepterar det, blir att få vår stegmotor att rotera med hjälp av micro: bit som en styrenhet! Varför en stegmotor? Jag kunde ha gått för DC -motor med reducerare men jag försökte dem och jag har svårt att få billiga motorer att köra med låg hastighet. Jag tänkte också att det skulle vara trevligt att veta exakt i vilken hastighet mina hjul svänger. Av dessa skäl var stegmotorer det bästa alternativet.

Så nu, hur man styr en 28BYJ -motor med en 4988 -drivrutin? Svaret är … lite långt. Jag lyckades inte få det att passa snyggt i denna instruerbara, så jag gjorde en till bara för detta ändamål som du hittar här. Jag inbjuder dig att följa dessa steg till slutet med skapandet av en liten prototypplatta 26x22mm stor med 2x2mm hål 17 mm appart för att montera den på sidorna som visas på bilden ovan (Observera att som anges i artikeln refereras den gula ledningen till vänster som sticker ut är bara där för att påminna dig om att löda SLP och RST tillsammans).

Efter att ha fått detta att fungera med en motor med prototypkortet, designade jag också mitt eget kretskort för att göra saker lite mer städade. Jag bifogade motsvarande easyEDA -fil. Det är en txt -fil men du kan fortfarande öppna den med easyEDA gratis online redigeringsplattform.

Steg 3: Jag ser ljuset !! (Frivillig)

Jag ser ljuset !! (Frivillig)
Jag ser ljuset !! (Frivillig)
Jag ser ljuset !! (Frivillig)
Jag ser ljuset !! (Frivillig)
Jag ser ljuset !! (Frivillig)
Jag ser ljuset !! (Frivillig)

Om du bara vill bygga och inget mer, hoppa till det före sista stycket i detta steg för att se hur du ansluter en TOF10120 till micro: bit. Om inte följ igenom.

Eftersom vår micro: bit inte levereras med någon kamera eller närhetssensor, blir den lite blind för alla mobila robotapplikationer. Den levereras dock med en radiosändare och -receptor som gör att vi kan bygga skelettet över vad vi redan har och få en fjärrstyrd robot. Men vore det inte bra att göra vår robot autonom? Ja det vore det! Så låt oss se hur vi kommer dit.

Det vi är intresserade av nu är att utrusta vår robot med sensorer, för att vår robot ska få lite information om sin miljö. Det finns många typer av sensorer tillgängliga, men här fokuserar vi på närhetssensor. När jag designade den här roboten var mitt mål mest att roboten inte kraschar i någonting, därför ville jag att den skulle känna av hinder. För detta finns det också några alternativ. En första, mycket enkel, kan vara att använda stötfångare, men jag tycker att informationen om miljön är lite begränsad. Å andra sidan kan du tänka dig att lägga till en kamera (eller en Lidar eller en kinect!). Jag älskar kameror, datorsyn och alla dessa saker, men tyvärr stöder inte Micro: bit dem (vi måste använda en hallon Pi för att stödja sådana enheter, inte en micro: bit eller Arduino).

Så vad gör micro: bit -stöd som finns mellan en kamera och stötfångare? Det finns små aktiva sensorer som skickar ljus till miljön och kontrollerar vad som tas emot för att få lite information om världen. Den jag redan kände till var GP2Y0A41SK0F som använder en trianguleringsmetod för att uppskatta avståndet till hinder. Men jag undrade om jag kunde hitta något bättre, så jag gjorde en del undersökningar och det slutade med att jag upptäckte TOF10120 (och GY-VL53L0XV2 men jag fick inte det ännu:(). Här är en bra artikel för dig att upptäcka det. I grund och botten avger denna sensor en infraröd signal som reflekterar över hinder och den tar sedan emot det reflekterade ljuset. Beroende på den tid ljuset tog för att gå fram och tillbaka kan sensorn uppskatta avståndet till hindret (därav namnet TOF = flygtid För sin lilla storlek, avståndsintervall och effektbehov bestämde jag mig för att använda TOF10120.

Medan min första idé var att sätta tre av dem på roboten (en framför och två på sidorna), ville det kinesiska nyåret och COVID-19-pandemin inte ha det så, eftersom det verkade orsaka problem med transporter. Så eftersom jag var begränsad till en TOF10120, som jag också ville se på sidorna och att jag hade några servomotorer liggande, bestämde jag mig för att montera min sensor på en servo. Så två saker saknas nu: hur använder jag TOF10120 med micro: bit? Och samma fråga med servon.

Lyckligtvis är micro: bit utrustad med I2C kommunikationsprotokoll och det gör vårt liv väldigt enkelt: anslut den röda ledningen till 3,3V, svart till jord, grön till SCL och blå till SDA och det är det för hårdvarudelen. För programvaran uppmuntrar jag dig att läsa lite om I2C -kommunikation och prova pythonkoden som jag bifogade på micro: bit. Det programmet bör skriva ut avståndet som mäts av sensorn på REPL (Read Evaluate Print Loop). Det är allt. Vi gav bara syn på vår micro: bit.

Låt oss nu få det att vända nacken om du tillåter mig att fortsätta mina analogier med djurens anatomi. Den enda tanken vi behöver är att köra en servomotor med micro: bit. Den här delen börjar bli lång så jag ger dig bara den här länken som har all information du behöver och koden jag använde för att testa den. Om du vill har jag också lagt till en enkel kod för att styra servon med pin0. Glöm bara inte att driva din servo med 5V och inte 3.3V.

Steg 4: Hacka batteriskölden

Hackar batteriskölden
Hackar batteriskölden
Hackar batteriskölden
Hackar batteriskölden
Hackar batteriskölden
Hackar batteriskölden

Nu när vi har våra ställdon och sensorer redo är det dags att titta på batterihanteringssystemet. För att du ska lära dig mer om batteriskölden som jag valde skulle jag rekommendera dig att läsa den här artikeln. Jag tycker att det är väldigt tydligt och tillgängligt. Från den här artikeln kan vi se många fördelar med denna batterisköld, men det är en viktig nackdel som jag inte ville acceptera: ON/OFF -knappen påverkar bara USB -utgången. Det betyder att om du stänger av strömbrytaren kommer alla andra 3.3V- och 5V -stift att drivas. Som ett resultat, när vi använder dessa stift för vår robot, kommer omkopplaren inte att göra någonting alls …

Men jag vill kunna stänga av min robot för att inte tömma min batteri för ingenting, så jag var tvungen att hacka batteriskyddet. Det blir inte vackert, men det fungerar och det kostar ingenting. Därför vill jag att en omkopplare öppnar eller stänger kretsen så att den isolerar min battericell från batteriskyddet. Jag har inte utrustning för att röra kretskortet, men jag har plastbitar runt omkring. Så föreställ dig nu att jag skär en bit plast så att den får plats i ena änden av min battericell i skölden som på den första bilden ovan. Kretsen är nu öppen och mitt batteri är säkert förvarat.

Ja men jag vill inte behöva öppna roboten för att komma åt batteriskölden för att sätta och ta bort denna plastbit! Enkelt: skaffa en omkopplare och tejpa två små rutor aluminium till var och en av trådarna som är anslutna till strömställaren. Tejpa nu fast de två bitarna aluminium på plastbiten för att de två aluminiumbitarna ska isoleras från varandra och för att aluminiumet ska utsättas för utsidan av ditt system. Normalt borde det göra det. Sätt in din nya skapelse i batteriskyddet bredvid cellen, så kan omkopplaren låta dig öppna eller stänga kretsen som är ansluten till cellen.

En sista sak: för att göra det enkelt att montera och demontera roboten, skulle jag råda dig att löda honhuvuden på batteriskyddet. På så sätt kan du enkelt koppla ur och koppla ur det du bygger med motorerna och deras drivrutiner.

Steg 5: 3D -design och klippning

3D -design och klippning
3D -design och klippning
3D -design och klippning
3D -design och klippning

Det enda som saknas nu är att bygga strukturen som håller ihop alla våra komponenter. För att göra detta använde jag online -plattformen tinkercad. Detta är en riktigt trevlig miljö för att göra lite grundläggande CAD som ofta räcker för att designa saker för laserskäraren.

Efter en tid eftertanke var det dags att pyssla. För att göra det började jag sätta ihop 3D -modeller av de olika delarna jag hade (först att hålla servon och TOF utanför ekvationen). Det inkluderar batteriet och skärmen, stegmotorerna och motordrivrutinerna och naturligtvis micro: bit med dess förlängningskort. Jag bifogade alla motsvarande 3D -modeller som stl -filer. För att underlätta processen bestämde jag mig för att göra min robot symmetrisk. Som ett resultat pysslade jag med bara hälften av roboten och nådde designen som visas på bilden ovan.

Från detta kom några versioner till liv, varifrån jag valde två:

  • En ganska snygg, utan närhetssensorn, som tillåter att inga ledningar visas. Även om den inte är autonom kan den här versionen fortfarande programmeras via bluetooth via en iPad till exempel, eller kan programmeras för att styras med radiosignaler som till exempel kan skickas av en annan mikro: bit som visas i videon ovan.
  • En mycket mindre städad som gör det möjligt att gå mycket längre inom mobil robotik eftersom den tillåter att fånga avståndet till hinder med en 180 ° vy tack vare närhetssensorn som är byggd på en servomotor.

För att bygga upp detta, gå till din favorit Fablab och använd laserskäraren som du hittar för att klippa den modell du föredrar: den första som motsvarar filerna design1_5mmMDF.svg och design1_3mmMDF som motsvarar de delar som ska skäras i 5 mm MDF trä och de som ska klippas från 3 mm; den andra motsvarar filen design2_5mmMDF.svg. Ställ in de svarta konturerna som ska klippas och de röda som ska graveras.

Sidnotering: Jag lade till det röda mönstret bara för att pimpa upp det. Detta är en Hilbert -fyllningsfunktion som jag genererade med den bifogade pythonkoden.

Steg 6: Montering av odjuret

Montering av odjuret
Montering av odjuret
Montering av odjuret
Montering av odjuret
Montering av odjuret
Montering av odjuret

Stegen jag följde för att montera den första versionen av roboten är följande (bilderna ska normalt vara i rätt ordning):

  1. Ta bort det blå locket på motorerna och klipp det lite för att få kabeln att sticka ut från motorns baksida.
  2. Montera motorerna på varje sida med M2 -skruvar och bultar.
  3. Montera prototypbrädan på sidorna med hjälp av 2x2 mm hål och några skruvar och bultar.
  4. Sätt A4988 -drivrutinerna och tejpa motorkablarna för att hålla det städat.
  5. Montera universalhjulet under botten och lägg till sidorna.
  6. Montera förlängningskortet på micro: bit på den övre delen.
  7. Montera botten på det flexibla framstycket.
  8. Sätt på batteriskölden och anslut allt (för att göra det, eftersom jag fortfarande väntade på leveransen av det förlängningskort jag ville ha och att jag bara hade en med kvinnliga rubriker som sticker ut, återvände jag en IDE -kabel från en gammal dator för att lyckas har inte mina kablar som sticker upp brädet för att täcka allt detta med den vikbara frontluckan). Även om koden jag angav är väldigt lätt att anpassa, för att använda den direkt, måste du ansluta vänster STEG till stift 2, höger STEG till stift 8, vänster DIR till stift 12, höger DIR till stift 1.
  9. Sätt micro: bit i förlängningen.
  10. Testa att allt fungerar med MoveTest.py innan du går vidare.
  11. Montera omkopplaren på den övre delen och sätt plastbiten bredvid litiumcellen.
  12. Skruva fast den övre delen av frontluckan.
  13. Montera ryggen, och du är klar! Puh! Jag hade inte väntat mig så många steg! Det är så mycket lättare att tänka på det och göra det än att förklara det med ord! (Och jag är säker på att det fortfarande kommer att saknas information!)

Om du bygger den andra versionen med närhetssensorn:

  1. Följ instruktionerna ovan. Den enda skillnaden är att du måste lägga till några M2 -distanser i steg 7 (även om det är vad jag gjorde men det är inte nödvändigt), ignorera steg 8 och steg 13 (eftersom det inte finns något framsida)
  2. Montera servomotorn med M2 -skruvar och anslut VCC och GND på servon direkt på 5V på batteriskyddet, och anslut styringången till stift 0 på mikro: bit.
  3. Montera de två träbitarna som kommer att gå ovanpå servon med en skruv, skruva på TOF -sensorn på denna samt den vita plastbiten som följer med servon.
  4. Montera denna sista enhet på servon och anslut sensorn med I2C av micro: bit enligt beskrivningen i steg 3.

Steg 7: Programmera

Det är allt ! Du har en robot som du kan programmera antingen i micro: python eller i makecode. Jag bifogade här en exempelkod som jag använde för att göra videorna ovan:

  • Exempel 1: Sätt radioControl.py på robotens mikro: bit och ReadAccelero.py på en annan mikro: bit för att styra roboten med lutningen för den andra mikro: bit.
  • Exempel 2: Sätt Autonomous.py på version 2 av roboten, den kommer att utforska miljön.

Det är bara grundläggande exempel som du kan använda för att gå mycket, mycket längre. Till exempel gillar jag samtidigt lokalisering och kartläggning, och normalt finns allt du behöver i version 2 av denna robot för att göra det! Även om en stor nackdel för mig att göra ett sådant projekt är att micro: bit PWM -drivrutinen är en programvarudrivrutin som använder samma timer för alla kanaler, vilket innebär att alla PWM: er vi ställer in måste ha samma frekvens (vilket är något jag gjorde vet inte när jag skrev provkoderna även om jag upptäckte något konstigt när jag skrev Autonomous.py).

Steg 8: Gå vidare

Tveka inte att förbättra designen, lösa några problem som jag inte såg. Till exempel vill jag så småningom:

  • Lägg till en IR -sensor längst ner på roboten för att få den att upptäcka om marken är svart eller vit eller om den når slutet av mitt skrivbord.
  • Byt batterihanteringssystem eftersom jag inte är nöjd med det än. För närvarande, för att ladda batteriet, kräver det faktiskt att demontera roboten för att ta ut cellen eller batteriskyddet … Jag planerar därför att: 1. lägga till en mini-USB-kontakt på baksidan av roboten som jag ansluter till batteriskyddet så att jag kan ladda det; 2. Klipp ett hål längst ner för att se lysdioderna från batteriskyddet för att se när laddningen är över.
  • Kontrollera om det finns ett acceptabelt sätt att mata ut PWM med olika frekvenser.
  • Prova VL53L0XV2 för att ersätta TOF10120 eftersom det kan vara ett billigare alternativ som skulle göra det tillgängligt för ännu fler människor. Även om jag läste mer om den här sensorn och det verkar som om företaget som gjorde detta billigt gjorde det avsiktligt mycket svårt att hantera …
  • Testa olika utföranden för hjulen för att göra dem mer hållbara (Just nu skulle jag förvänta mig att om jag tar in och ut hjulen många gånger så kommer träet att gradvis skadas. Om jag gör träet mer elastiskt och modifierar designen kan jag kunna få det att hålla längre)

Ett stort tack till personerna från Mobile robotics team (nu en del av Biorobotics laboratorium) av EPFL som hjälpte mig mycket att utöka mina kunskaper om elektronik och mekanik!

Rekommenderad: