Prvý pohľad na robot Kitronik :MOVE mini MK2 a jeho príslušenstvo

Pozdravujem priateľov robotiky a programovania, ktorí sa už tešia na zoznámenie s robotom Kitronik :MOVE mini MK2 riadeným výučbovým mikropočítačom micro:bit. Čítaním nasledujúcich riadkov sa dozviete o uvedenom robote základné informácie, aké má príslušenstvo a zopár programov odskúšaných praxou. Verím, že sa nemôžete dočkať nahrania prvého programu do mikropočítača robota, ktorý mu takpovediac vdýchne život. Poďme si teda predstaviť spomenutý robot.

Robot Kitronik :MOVE mini MK2

Robot Kitronik :MOVE mini MK2 je tvorený z plastových dielov, do ktorých sa osadia dva kontinuálne servomotory a doska Servo:Lite board. Plastové diely sa fixujú skrutkami s maticami. Na uvedenú dosku sa pripevní mikropočítač micro:bit. Montáž robota je jednoduchá a časovo nenáročná.

Doska Servo:Lite board obsahuje päť RGB LED diód, konektory na pripojenie dvoch servomotorov a držiak batérií. Na tejto doske je spravená aj príprava (v podobe neosadených spojov) na pripojenie prídavných RGB LED diód a tretieho servomotora. Prídavné diódy som bez problémov odskúšal aj v praxi.

Najviac praktickým príslušenstvom robota Kitronik :MOVE mini MK2 podľa môjho názoru je:

Pre použitie snímača čiary a vzdialenosti je ešte potrebné pripevniť rozhranie :MOVE Sensor Interface na mikropočítač micro:bit priskrutkovaním k doske Servo:Lite board.

Robot Kitronik :MOVE mini MK2 spolu s jeho príslušenstvom umožňuje vytvoriť rôzne variácie programov, pričom som sa rozhodol vytvoriť nasledovné programy:

1. robot so snímačom čiary, prídavnými RGB LED diódami a bzučiakom

2. robot so snímačom vzdialenosti, prídavnými RGB LED diódami a bzučiakom

Uvedené programy som vytvoril v platforme Microsoft MakeCode s využitím aj rozširujúcich Blokov Servo:Lite, Neopixel a Sonar.

1. Robot so snímačom čiary

Pre prvý program robota Kitronik :MOVE mini MK2 som navrhol nasledovný ‚layout‘ pinov mikropočítača micro:bit:

P0 – 5 RGB LED diód dosky Servo:Lite board a prídavné RGB LED diódy 8 RGB LED Ring

P1 – servomotor

P2 – servomotor

P3 – bzučiak

P15 P16 – snímač čiary :MOVE Line Following board

Snímač čiary bolo nutné nakalibrovať, lebo optimálne pracuje pri vzdialenosti cca 5mm od snímaného povrchu. Priložené skrutky neboli dostatočne dlhé, tak som si pomohol skrutkami z nárazníka Bumper V2.

Po počiatočných problémoch s pridaním tónov bzučiaka som nakoniec úspešne otestoval finálnu verziu programu:

Program JavaScript


let Left_Detector = 0

let Right_Detector = 0

led.enable(false)

pins.setPull(DigitalPin.P15, PinPullMode.PullUp)

pins.setPull(DigitalPin.P16, PinPullMode.PullUp)

pins.analogSetPitchPin(AnalogPin.P3)

pins.analogPitch(262, 100)

let Pixel_Array = neopixel.create(DigitalPin.P0, 13, NeoPixelMode.RGB)

Pixel_Array.showRainbow(1, 360)

basic.pause(500)

Pixel_Array.clear()

Pixel_Array.show()

basic.forever(function () {

Right_Detector = pins.digitalReadPin(DigitalPin.P15)

Left_Detector = pins.digitalReadPin(DigitalPin.P16)

if (Left_Detector == 0 && Right_Detector == 0) {

Pixel_Array.setPixelColor(0, neopixel.colors(NeoPixelColors.Red))

Pixel_Array.setPixelColor(4, neopixel.colors(NeoPixelColors.Red))

Pixel_Array.setPixelColor(7, neopixel.colors(NeoPixelColors.Red))

Pixel_Array.setPixelColor(11, neopixel.colors(NeoPixelColors.Red))

Pixel_Array.show()

kitronik_servo_lite.stop()

}

if (Left_Detector == 1 && Right_Detector == 0) {

pins.analogPitch(262, 100)

Pixel_Array.clear()

Pixel_Array.setPixelColor(0, neopixel.colors(NeoPixelColors.Green))

Pixel_Array.setPixelColor(4, neopixel.colors(NeoPixelColors.Green))

Pixel_Array.setPixelColor(7, neopixel.colors(NeoPixelColors.Green))

Pixel_Array.setPixelColor(11, neopixel.colors(NeoPixelColors.Green))

Pixel_Array.show()

kitronik_servo_lite.right()

}

if (Left_Detector == 0 && Right_Detector == 1) {

pins.analogPitch(349, 100)

Pixel_Array.clear()

Pixel_Array.setPixelColor(0, neopixel.colors(NeoPixelColors.Blue))

Pixel_Array.setPixelColor(4, neopixel.colors(NeoPixelColors.Blue))

Pixel_Array.setPixelColor(7, neopixel.colors(NeoPixelColors.Blue))

Pixel_Array.setPixelColor(11, neopixel.colors(NeoPixelColors.Blue))

Pixel_Array.show()

kitronik_servo_lite.left()

}

if (Left_Detector == 1 && Right_Detector == 1) {

Pixel_Array.setPixelColor(0, neopixel.colors(NeoPixelColors.White))

Pixel_Array.setPixelColor(4, neopixel.colors(NeoPixelColors.White))

Pixel_Array.setPixelColor(7, neopixel.colors(NeoPixelColors.White))

Pixel_Array.setPixelColor(11, neopixel.colors(NeoPixelColors.White))

Pixel_Array.show()

kitronik_servo_lite.forward()

}
})

Program MakeCode

Video

2. Robot so snímačom vzdialenosti

Druhý program robota Kitronik :MOVE mini MK2 má podobný ‚layout‘ pinov mikropočítača micro:bit ako prvý program, len som snímač čiary nahradil snímačom vzdialenosti:

P0 – 5 RGB LED diód dosky Servo:Lite board a prídavné RGB LED diódy 8 RGB LED Ring

P1 – servomotor

P2 – servomotor

P3 – bzučiak

P8 P10 – snímač vzdialenosti Ultrasonic Distance Sensor HC-SR04 Pro

Považujem za nevyhnuté upozorniť na správny výber snímača vzdialenosti, pretože existujú až štyri verzie. Pôvodné dve verzie pracujú pri napätí 3,3V a 5V. Bohužiaľ pre spomenutý robot je vhodná len verzia s nižší napätím, ktorá sa z nepochopiteľných dôvodov už nevyrába. Našťastie sa postupne dostávajú na trh jeho nové dve verzie označené ako HC-SR04+ a HC-SR04 Pro, pričom túto druhú novú verziu sa mi podarilo zohnať. Ak máte doma iný snímač vzdialenosti (napr. Grove – Ultrazvukový senzor vzdálenosti), môžete použiť aj ten, avšak treba zvoliť iný ‚layout‘ pinov a aj program by vyzeral inak. Vrátim sa však späť k téme druhého programu.

Pri testovaní tohto programu som zase musel zredukovať používanie tónov na minimum, a tým som sa úspešne dopracoval k finálnej verzii:

Program JavaScript

let item = 0
led.enable(false)
pins.analogSetPitchPin(AnalogPin.P3)
pins.analogPitch(262, 200)
let Pixel_Array = neopixel.create(DigitalPin.P0, 13, NeoPixelMode.RGB)
Pixel_Array.showRainbow(1, 360)
basic.pause(500)
Pixel_Array.clear()
basic.forever(function () {
    item = sonar.ping(
    DigitalPin.P8,
    DigitalPin.P10,
    PingUnit.Centimeters
    )
    if (0 <= item && item < 7) {
        kitronik_servo_lite.backward()
        Pixel_Array.setPixelColor(0, neopixel.colors(NeoPixelColors.Red))
        Pixel_Array.setPixelColor(4, neopixel.colors(NeoPixelColors.Red))
        Pixel_Array.setPixelColor(7, neopixel.colors(NeoPixelColors.Red))
        Pixel_Array.setPixelColor(11, neopixel.colors(NeoPixelColors.Red))
        Pixel_Array.show()
    } else if (7 <= item && item < 16) {
        kitronik_servo_lite.left()
        Pixel_Array.clear()
        Pixel_Array.setPixelColor(0, neopixel.colors(NeoPixelColors.Orange))
        Pixel_Array.setPixelColor(7, neopixel.colors(NeoPixelColors.Orange))
        Pixel_Array.show()
        pins.analogPitch(262, 200)
    } else {
        kitronik_servo_lite.forward()
        Pixel_Array.setPixelColor(0, neopixel.colors(NeoPixelColors.White))
        Pixel_Array.setPixelColor(4, neopixel.colors(NeoPixelColors.White))
        Pixel_Array.setPixelColor(7, neopixel.colors(NeoPixelColors.White))
        Pixel_Array.setPixelColor(11, neopixel.colors(NeoPixelColors.White))
        Pixel_Array.show()
    }
})

Program MakeCode

Video

Záverom

Chcem sa poďakovať, že ste si prečítali môj článok až do konca. Verím, že získané poznatky využijete aj v praxi a spomenuté programy vám uľahčia ďalšiu tvorivú činnosť s robotom Kitronik :MOVE mini MK2.

Určite vás zaujíma, akej téme sa budem venovať v budúcom článku. Určite bude pojednávať o diaľkovom ovládaní uvedeného robota, ale či to bude využitím rádiovej komunikácie alebo technológie Bluetooth, tak to sa nechajte prekvapiť.

E-shop

E-shop

Robot Kitronik :MOVE mini MK2

Naučte se základy robotiky s malým, vlastnoručně sestaveným a naprogramovaným robotem!

BBC Micro:bit

Nekonečně programovatelný a rozšiřitelný vzdělávací počítač do kapsy.

Doporučené příslušenství

Leave a Reply