Ako sa robot Kitronik :MOVE mini MK2 vyhýba prekážkam

Opäť zdravím priaznivcov robotiky a programovania, ktorým názov článku napovedal, že som sa vrátil k problematike výberu vhodného snímača vzdialenosti pre robot Kitronik :MOVE mini MK2. Rozhodol som sa tak urobiť z dôvodu chýbajúceho riešenia od výrobcu tohto robota a aj preto, že 4-pinový snímač vzdialenosti pracujúci pri napätí 3,3V nie je ľahké zohnať. Na nasledujúcich riadkoch sa dočítate o praktickej alternatíve v podobe 3-pinového snímača vzdialenosti vrátane jeho pripojenia a naprogramovania.

MOVE: mini a snímač vzdialenosti Grove

Najskôr uvediem zopár základných informácií potrebných k úspešnému pripojeniu snímača vzdialenosti k robotovi Kitronik :MOVE mini MK2. Tento robot disponuje doskou Servo:Lite, do ktorej sa osádza výučbový mikropočítač micro:bit. Pripojenie snímača vzdialenosti umožňuje rozhranie :MOVE Sensor Interface, ktoré je potrebné priskrutkovať na spomenutý mikropočítač. Na pripojenie snímača vzdialenosti sú na uvedenom rozhraní určené piny P8 a P10 (Echo a Trig) a napätie 3,3V. Ak nemáte žiadny takýto snímač doma a lámete si hlavu, kde ho zohnať, tak mám pre vás radu. Cenovo výhodný a bežne dostupný je snímač vzdialenosti Grove, ktorý ľahko pripojíte k zmienenému robotu pomocou 4-pinového prepojovacieho kábla s konektormi Grove a DuPont. Odporúčaný snímač som ešte uchytil dvomi gumičkami nad opísanou doskou a kontakty konektorov DuPont som veľmi opatrne ohol, aby nebránili svetelnému prejavu piatych GRB LED diód robota. Prepojovací kábel som viedol mimo displej mikropočítača micro:bit, aby som ho mohol využiť v praxi.

Na prvý pohľad sa snímač vzdialenosti Grove javí ako 4-pinový, ale v skutočnosti je jeden pin typu NC (skratka anglických slov ‚no connection‘), čiže neplní funkciu spoja. Preto som sa rozhodol využiť pin P8 namiesto pinu P10, čo mi umožnilo zapojiť do hry aj displej mikropočítača. Ak by som použil pin P10, tak na displeji mikropočítača by trvalo svietili niektoré diódy a nemohol by som s ním počítať pri programovaní.

Pre jednoznačnosť ešte uvádzam ‚layout‘ pinov mikropočítača micro:bit:

  • P0 – 5 RGB LED diód dosky Servo:Lite board
  • P1 – servomotor
  • P2 – servomotor
  • P8 – snímač vzdialenosti

Následne som prešiel od hardvéru k softvéru, teda som začal programovať v platforme Microsoft MakeCode, ktorú som rozšíril o Bloky Servo:Lite, Neopixel a Grove.

Po testovaní môjho programu som nakoniec dospel k jeho finálnej verzii:

Program JavaScript

let item = 0
basic.showLeds(`
    # . . . #
    # # . # #
    # . # . #
    # . . . #
    # . . . #
    `)
basic.pause(500)
let Pixel_Array = neopixel.create(DigitalPin.P0, 5, NeoPixelMode.RGB)
Pixel_Array.setPixelColor(0, neopixel.colors(NeoPixelColors.Purple))
Pixel_Array.setPixelColor(1, neopixel.colors(NeoPixelColors.Yellow))
Pixel_Array.setPixelColor(2, neopixel.colors(NeoPixelColors.Green))
Pixel_Array.setPixelColor(3, neopixel.colors(NeoPixelColors.Blue))
Pixel_Array.setPixelColor(4, neopixel.colors(NeoPixelColors.Violet))
Pixel_Array.show()
basic.pause(1000)
Pixel_Array.clear()
Pixel_Array.show()
basic.clearScreen()
basic.forever(function () {
    item = grove.measureInCentimeters(DigitalPin.P8)
    if (0 <= item && item < 9) {
        Pixel_Array.clear()
        Pixel_Array.setPixelColor(0, neopixel.colors(NeoPixelColors.Red))
        Pixel_Array.setPixelColor(4, neopixel.colors(NeoPixelColors.Red))
        Pixel_Array.show()
        kitronik_servo_lite.driveBackwards(80)
        basic.showArrow(ArrowNames.South)
    } else if (9 <= item && item < 18) {
        Pixel_Array.clear()
        Pixel_Array.setPixelColor(4, neopixel.colors(NeoPixelColors.Orange))
        Pixel_Array.show()
        kitronik_servo_lite.turnLeft(70)
        basic.showArrow(ArrowNames.East)
    } else {
        Pixel_Array.clear()
        Pixel_Array.setPixelColor(0, neopixel.colors(NeoPixelColors.White))
        Pixel_Array.setPixelColor(4, neopixel.colors(NeoPixelColors.White))
        Pixel_Array.show()
        kitronik_servo_lite.forward()
        basic.showArrow(ArrowNames.North)
    }
})

Program MakeCode

Video

Záver

So záverom prichádza moje poďakovanie, že ste si našli čas prečítať môj článok. Verím, že vám pomohol zodpovedať otázku obsiahnutú v názve tohto článku.

Tému praktického využitia robota Kitronik :MOVE mini MK2 a jeho príslušenstva považujem už za dostatočne opísanú, preto v nasledujúcom článku sa budem venovať novému robotovi. Napoviem len toľko, že bude od výrobcu Waveshare.

E-shop

E-shop

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í

Napsat komentář