Image
31.7.2019 0 Comments

Robotika – doplnky k podvozku Ring:bit pre Micro:bit na sledovanie čiary a farebné efekty

článku  sme predstavili stavebnicu robotického podvozku Ring: bit V2, ktorý je riadený populárnym jednodoskovým mikropočítač BBC micro:bit, ktorý sa používa na výučbu programovania aj v mnohých našich školách. Micro:bit sa k doske elektroniky pripevní pomocou piatich skrutiek, ktoré zároveň tvoria elektrické prepojenie pre tri porty P0, P1 a P2, napájacie napätie 3.3 V a elektrickú zem GND. Dva GPIO porty P1 a P2 sú určené na ovládanie servomotorov poháňajúcich kolesá a tretí port P0 sa dá použiť na iný účel, napríklad nárazník s farebnými diódami, optický senzor na sledovanie čiary, ktoré sa dajú upevniť zospodu na pomocnú dosku elektroniky,  prípadne ultrazvukový senzor na meranie vzdialenosti ktorý vhodne mechanicky upevní v hornej časti podvozku. 

Video ukazuje, ako fungujú všetky príklady v článku

Pripomíname, že v online vývojovom prostredí https://makecode.microbit.orgje potrebné do projektu importovať rozšírenie “ringbitcar”.

Ako prvý predstavíme RGB LED dúhový nárazník, ktorý obsahuje 8 RGB LED Neopixel WS2812B s vysokou intenzitou svietenia a jeho tvar výborne poslúži pri posúvaní rôznych predmetov, napríklad lopty pri futbale robotov.

Príklad obsahuje len kód na rozblikanie nárazníka, nerieši pohyb ani ovládanie robota. Prepínač na spodnej doske musí byť v polohe Rainbow LED. V prvom riadky programu v JaveScripte si všimnite, že sa inicializuje 10 LED diód, napriek tomu, že ma nárazníku je ich len 8. ďalšie dve sú na pomocnej doske elektroniky zospodu.

JavaScript

let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB)
strip.showRainbow(1, 360)
basic.forever(function () {
   strip.rotate(1)
   strip.show()
   basic.pause(100)
})

V ďalšom príklade budeme realizovať jednu z najobľúbenejších funkcií robotických podvozkov – sledovanie čiary. Snímač čiary pre robota Ring: bit V2 dokáže sledovať čiernu čiaru na svetlej podložke, alebo detegovať hranu stola, po ktorom sa pohybuje. Snímač čiary je vybavený dvoma infra senzormi, ktoré dokážu rozpoznať čiernu čiaru alebo hranu povrchu na vzdialenosť 2 ÷ 12 mm. Princíp je jednoduchý, od svetlého povrchu sa infračervený signál odrazí a čierny povrch ho pohltí, takže sa neodrazí. Podobne to funguje napríklad po dosiahnutí hrany svetlého stola. 

Najskôr si podmienky v aplikáci odladíme tak, že budeme identifikovať kedy sa program nachádza v ktorej vetve podmienky. V prípade ak sú obidva snímače senzora, ľavý aj pravý na čiernej čiare bude na displeji zobrazená číslica 0.  Ak bude robot v polohe, že bude ľavý senzor (pri pohľade spredu) mimo čiernej čiary zobrazí sa 1 a ak bude mimo čiary pravý senzor, zobrazí sa 2. Prepínač na spodnej doske musí byť v polohe Other Modules.

JavaScript

RingbitCar.init_wheel(AnalogPin.P1, AnalogPin.P2)
basic.showNumber(0)
basic.forever(function () {
    if (RingbitCar.tracking(RingbitCar.TrackingStateType.Tracking_State_2)) {
       basic.showNumber(2)
       basic.pause(200)
    }
    if (RingbitCar.tracking(RingbitCar.TrackingStateType.Tracking_State_1)) {
       basic.showNumber(1)
       basic.pause(200)
    }
   basic.showNumber(0)
})

Teraz po odladení podmienok, budeme namiesto zobrazovania číslic aktivovať pohon pravého, alebo ľavého kolesa, aby sa robotický podvozok vrátil na čiernu čiaru. Pripomíname, že ľavé koleso robotického podvozku je pripojené na porte P1 a pravé koleso na porte P2. Program funguje tak, že ak sa ľavá časť snímača čiary odkloní od čiernej čiary, potom sa pravé koleso zastaví a ľavé koleso zaistí návrat späť na čiaru rýchlosťou 50. Pravá časť snímača funguje rovnakým spôsobom akurát obrátene. Ak obe časti snímača detegujú čiernu čiaru otáčajú sa obidva kolesá rovnakým smerom rýchlosťou 100, takže robotický podvozok ide po čiare dopredu.

JavaScript

RingbitCar.init_wheel(AnalogPin.P1, AnalogPin.P2)
RingbitCar.forward()
basic.forever(function () {
    if (RingbitCar.tracking(RingbitCar.TrackingStateType.Tracking_State_2)) {
       RingbitCar.freestyle(50, 0)
       basic.pause(100)
    }
    if (RingbitCar.tracking(RingbitCar.TrackingStateType.Tracking_State_1)) {
        RingbitCar.freestyle(0, 50)
       basic.pause(100)
    }
   RingbitCar.freestyle(100, 100)
})

 

Snímač čiary pre robota Ring: bit V2 má dva senzory, ľavý a pravý. Ak by ste si modul na sledovanie čiary vyrábali sami, mohli by ste si úlohu zjednodušiť a použiť len jeden senzor, čiže jeden pár svietiacej a snímacej infračervenej diódy umiestnený v strede.  Vyskúšame aj tento variant s tým, že na snímači použijeme v aplikácii len jeden senzor.   Aplikácia je veľmi jednoduchá, avšak pohyb robotického podvozku bude tak trochu viac „cik-cak“.  Keďže teraz máme „akože“ iba jeden svetelný senzor, budeme sledovať hranu čiernej čiary, napríklad pravú. Predpokladajme, že pri štarte je senzor nad čiernou čiarou. Robot sa pohne dopredu a keďže potrebujeme sledovať hranu vždy keď je senzor nad čiernou čiarou   necháme ho vychýliť doprava. Akonáhle sa dostane nad svetlú plochu začne sa otáčať doľava až kým sa nevráti nad čiaru. Tento cyklus sa opakuje, takže robot de facto nejde priamo  po čiare, ale ide kmitavým pohybom okolo pravej hrany čiary.   

JavaScript

RingbitCar.init_wheel(AnalogPin.P1, AnalogPin.P2)
RingbitCar.forward()
basic.forever(function () {
    if (RingbitCar.tracking(RingbitCar.TrackingStateType.Tracking_State_1)) {
       RingbitCar.freestyle(0, 50)
       basic.pause(100)
    } else {
       RingbitCar.freestyle(50, 0)
       basic.pause(100)
    }
})

Na testovanie sme úmyselne použili dráhu na ktorej je čiernou čiarou na bielom podklade vykreslená veľká osmička.

Vo videu vidíte rozdiel pri použití jedného a dvoch senzorov. Ak použijete dva senzory, robotický podvozok bude jazdiť po celej osmičke. Ak použijete jeden senzor, ktorý sleduje vnútornú hranu, bude robot krúžiť iba v jednej časti osmičky. Ak robota umiestnite tak, aby sledoval bonkajšiu hranu osmičky bude jeho pohyb v mieste kde sa obidve sľušky osmičkovej dráhy pretínajú väčšinou chaotický.

V budúcom pokračovaní predstavíme ultrazvukový merač vzdialenosti pre Micro:bit, ktorý umožní vášmu robotickému podvozku orientáciu v priestore, napríklad na úlohy typu prechod labyrintom, alebo pomocou neho môžete merať vzdialenosti od objektov. 

 

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Mikrokontroléry

IoT prakticky: Python na ESP32, vývojové dosky, inštalácia Micropythonu

17.10.2019 00:10

Po experimentoch s populárnou „školskou“ mikropočítačovou doskou BBC Micro:bit pre tých, ktorých táto problematika oslovila a chcú sa jej venovať ako hobby, skôr, či neskôr nastane moment, kedy si pol ...

Mikrokontroléry

Robotika – robot s kolesami Mecanum sa môže pohybovať všetkými smermi

15.10.2019 00:10

V našom dlhodobom seriáli venovanom robotickým konštrukciám a podvozkom sme dosiaľ predstavili dva spôsoby manévrovania robotických podvozkov. Robotické podvozky ktoré majú dve samostatne poháňané kol ...

Mikrokontroléry

Robotika: Robotický podvozok Cutebot s Microbitom vhodný aj pre začiatočníkov

07.10.2019 00:01

Prvé, čo vás na tomto robotickom podvozku prekvapí je rýchlosť jeho pohybu, ktorou prekonáva väčšinu robotov, ktoré sme dosiaľ predstavili v našom seriáli. Rýchlosť na jednej strane znamená, že v príp ...

Žiadne komentáre

Vyhľadávanie

Najnovšie videá

SlovakiaTech 2019
MANDAYIT 2019