Prvý pohľad na robot Kitronik :MOVE mini MK2 a jeho príslušenstvo
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:
- snímač čiary :MOVE Line Following board
- snímač vzdialenosti
- nárazník Bumper V2 (navrhnutý pre robotický futbal)
- rameno BullDozer V2
- prídavné RGB LED diódy 8 RGB LED Ring (súčasťou Micro:bit Starter kitu)
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
a 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
a 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
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.