CANON_leto2024 CANON_leto2024 CANON_leto2024

Robotika – ultrazvukový senzor pre Micro:bit

Mikrokontroléry
0

Ultrazvukový merač vzdialenosti Sensor:bit pre populárnu mikropočítačovú dosku BBC Micro:bit umožní merať vzdialenosti 4 ÷ 400 cm s presnosťou 1 cm. To umožňuje vášmu robotickému podvozku orientáciu v priestore, napríklad pri úlohách typu prechod labyrintom. Ak robot pomocou senzora zistí, že je pred ním prekážka, môže včas zmeniť smer.

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

Senzor obsahuje akustický menič schopný vyslať ultrazvukový signál a mikrofón. Funguje tak, že vyšle ultrazvukový signál a čaká až sa odrazí od prekážky a vráti sa k prijímaciemu senzoru. Následne sa zmeria časový rozdiel medzi vyslaním a prijatím signálu a keďže rýchlosť šírenia zvuku je známa, podľa jednoduchého vzorca sa dá vypočítať vzdialenosť od prekážky. Tento výpočet robiť nemusíte, zariadia to funkcie z knižnice, takže vaša aplikácia bude mať k dispozícii priamo výslednú vzdialenosť od prekážky. Pripomíname, že v online vývojovom prostredí https://makecode.microbit.orgje potrebné do projektu importovať rozšírenia “ringbitcar” a „sonarbit“.

Senzor je okrem vodičov privádzajúcich napájacie napätie 3.3 V, čiže VCC a GND pripojený l Micro:bitu len jedným dátovým vodičom, čiže údaje sa prenášajú po trojvodičovom rozhraní založenom na zbernici 1-Wire. Väčšina ultrazvukových snímačov pre Arduino, či iné mikrokontroléry má totiž 4 vodiče (VCC, GND, TRIG, ECHO), takže pripojenie si vyžaduje dva porty. Senzor je univerzálny Rozsah napájacieho napätia je 3 ÷ 5 V. To znamená, že merač vzdialenosti môžete použiť ako v 3,3V, tak v 5V systémoch. 

V prvom jednoduchom príklade budeme na maticovom displeji microbitu zobrazovať nameranú vzdialenosť. Na tento príklad nie je potrebný robotický podvozok, stačí pripojiť senzor vez dosku Sensor:bit, alebo využiť vodiče s pinmi určené do prepojovacieho poľa. 

JavaScript

basic.forever(function () {
   basic.showNumber(sonarbit.sonarbit_distance(Distance_Unit.Distance_Unit_cm, DigitalPin.P1))
})

K robotickému podvozku Ring:bit V2 sme ultrazvukový snímač upevnili pomocou dvoch líšt zo stavebnice Merkur, nakoľko sme nemali originálny plexisklový mechanický diel.

Senzor sa zapojí na port, kde je inak pripojená spodná doska elektroniky, na ktorú sa upevňuje rôzne príslušenstvo, napríklad infračervené čidlá na sledovanie čiary, či nárazník s RGB LED diódami.

Kód je veľmi jednoduchý, ak senzor zistí, že vo vzdialenosti menšej ako 25 cm je prekážka, otočí sa doľava. Tých 25 cm je z dôvodu, že senzor nie je na robotickom podvozku umiestnený úplne vpredu a potrebuje aj nejaký priestor aby sa mohol otočiť. Parameter v príkaze pause() určuje o aký uhol sa podvozok pootočí.

JavaScript

let sonar = 0
RingbitCar.init_wheel(AnalogPin.P1, AnalogPin.P2)
RingbitCar.forward()
basic.forever(function () {
    sonar = sonarbit.sonarbit_distance(Distance_Unit.Distance_Unit_cm, DigitalPin.P0)
    if (sonar < 25 && sonar != 0) {
       RingbitCar.freestyle(0, 100)
       basic.pause(500)
    } else {
       RingbitCar.forward()
    }
})

 

V pokračovaní predstavíme joystick pre Micro:bit, ktorý bude cez rádiové prepojenie ovládať zariadenie taktiež s Micro:bitom

Zobrazit Galériu

Luboslav Lacko

Všetky autorove články
BBC: micro:bit micro:bit MicroBit robotika programovanie informatika

Pridať komentár