Hello robot KitiBot 2WD

Opäť zdravím priateľov robotiky a programovania, ktorí si všimli robot s mačacím (podobnosť s Kitty) menom KitiBot, s výučbovým mikropočítačom micro:bit ako riadiacou jednotkou. Dalo by sa povedať, že tento robot používa podobné integrované obvody a snímače ako robot AlphaBot2, pričom si vystačí len s jednou batériou, pri takmer dvojnásobnej hmotnosti. Nemusíte sa však obávať, že by vyššia hmotnosť mala výrazný vplyv na jeho rýchlosť.

Výrobca zvolil pre spomenutého robota modrú farbu, ktorá symbolizuje relax a o tom hobby robotika má byť. Dizajnovo je tento robot veľmi atraktívny, čo ešte viac umocňuje možnosť voľby pohonu medzi klasickým dvojkolesovým alebo pásovým. Mne sa do rúk dostala verzia s kolesami, označená názvom KitiBot 2WD, na ktorú sa teraz spolu podrobne pozrieme.

Robot KitiBot 2WD

Robot je tvorený dvomi kovovými dielmi, na ktoré sa pripevňujú zvyšné diely pomocou skrutiek, matíc a dištančných stĺpikov. Pod pojmom zvyšné diely robota myslím dosku plošných spojov (skratka DPS), dva elektromotory s prevodovkami a kolesami, snímače čiary, snímač vzdialenosti HC-SR04 s držiakom a maskou mačky, dve guľôčkové kolieska, 180-stupňový servomotor s ramenami a držiakom. Súčasťou balenia sú aj dva skrutkovače, prepojovacie káble snímačov a dátový kábel USB. Nabíjacia batéria typu 18650 nie je súčasťou balenia, takže si ju treba kúpiť samostatne. Výhodou však je, že nepotrebujete nabíjačku, lebo DPS spomínaného robota obsahuje nabíjací obvod s konektorom ‚female‘ micro USB a kontrolnými LED diódami informujúcimi o procese nabíjania. DPS robota KitiBot 2WD je vybavená aj držiakom batérie typu 18650, portom pre mikropočítač micro:bit, štyrmi RGB LED diódami (typ APA102), bzučiakom, vypínačom a zospodu konektormi JST. Táto DPS obsahuje aj ďalšie čipy a integrované obvody, ktorými sa začiatočník nemusí zaoberať, aby v ňom zbytočne nevzbudili dojem komplikovanosti. Spodný kovový diel slúži ako kryt vrchného kovového dielu, ktorý má tvar kvádra – boxu bez jednej steny. Pre uľahčenie budem používať pojmy kryt a box. Kryt tohto robota sa priskrutkováva k boxu štyrmi skrutkami a plní funkciu držiaka snímačov čiary a dvoch guľôčkových koliesok. Box opísaného robota je nosnou časťou, na ktorú sa montujú ostatné diely uvedené vyššie.

Určite ste si všimli nepraktické umiestnenie mikropočítača micro:bit a snímača vzdialenosti robota KitiBot 2WD vrátane zbytočného zakomponovania servomotora. Aby som z tohto robota vyťažil maximum, umiestnil som snímač vzdialenosti pred štyri RGB LED diódy za využitia šiestich otvorov na zadnej stene boxu, štyroch ‚male-female‘ jumperov a malej gumičky. Cez spodné tri otvory som prestrčil jumpery, na ktorých ‚male‘ konce som pripojil konektor držiaka snímača vzdialenosti, ktorý som umiestnil vo vnútri boxu robota. Cez horný ľavý a pravý otvor som zvonku prestrčil konce gumičky, na ktorých som spravil uzle. Následne som gumičku prevliekol cez ‚female‘ konce jumperov, do ktorých som pripojil snímač vzdialenosti. Zároveň som vylepšil umiestnenie servomotora a to tak, že som ho priamo priskrutkoval do otvoru v boxe robota, čiže držiak servomotora a štyri dištančné stĺpiky so skrutkami som nemusel vôbec použiť. Osamostatnením servomotora od senzora vzdialenosti sa mi naskytli nové možnosti využitia tohto servomotora. Ako každé mačiatko (anglicky Kitty), tak aj robot KitiBot 2WD by mal mať chvost a servomotor sa tejto novej funkcie zhostil bravúrne. Chvost spomínaného robota si každý môže vyhotoviť podľa svojej fantázie. Mne na demonštráciu ovládania pohybu servomotora postačilo jeho rameno.

Je potrebné si uvedomiť, ak zameníte zadnú a prednú časť robota, tak treba navzájom zameniť aj pripojenie konektorov JST elektromotorov k DPS, aby sa robot pohyboval smerom podľa očakávania. Taktiež odporúčam otočiť kryt robota tak, aby snímače čiary boli bližšie k snímaču vzdialenosti. Všetky opísané zmeny umiestnenia snímača vzdialenosti, servomotora, snímačov čiary a zapojenia elektromotorov zvládne aj začiatočník.

Prvý program pre robot KitiBot 2WD

Na programovanie robota KitiBot 2WD som použil platformu Microsoft MakeCode a okrem štandardných Blokov som využil aj rozširujúce Bloky KitiBot a APA102. Skôr ako som vytvoril prvý program pre uvedený robot, musel som spoznať ‚layout‘ zapojených pinov mikropočítača micro:bit:

  • P0 – bzučiak
  • P1 a P2 – snímač vzdialenosti
  • P8 P12 – štyri RGB LED diódy
  • P16 – servomotor

Potom som jednoduchým programovaním a následným testovaním dospel k finálnej verzii programu, ktorý má overiť bezchybný stav tohto robota:

Program JavaScript

input.onButtonPressed(Button.A, function () {
    pocitadloA += 1
    if (pocitadloA == 1) {
        music.beginMelody(music.builtInMelody(Melodies.BaDing), MelodyOptions.Once)
    } else if (pocitadloA == 2) {
        strip.setPixelColor(0, APA102.colors(PixelColors.Purple))
        strip.setPixelColor(1, APA102.colors(PixelColors.Yellow))
        strip.setPixelColor(2, APA102.colors(PixelColors.Green))
        strip.setPixelColor(3, APA102.colors(PixelColors.Blue))
        strip.show()
        basic.pause(1000)
        strip.clear()
        strip.show()
    } else if (pocitadloA == 3) {
        basic.showNumber(Math.round(KitiBot.readLine()))
        basic.clearScreen()
    } else if (pocitadloA == 4) {
        basic.showNumber(Math.round(KitiBot.Ultrasonic()))
        basic.clearScreen()
        pocitadloA = 0
    }
})
input.onButtonPressed(Button.B, function () {
    pocitadloB += 1
    if (pocitadloB == 1) {
        KitiBot.RunDelay(Dir.forward, 70, 6)
    } else if (pocitadloB == 2) {
        KitiBot.RunDelay(Dir.backward, 70, 6)
    } else if (pocitadloB == 3) {
        KitiBot.RunDelay(Dir.turnLeft, 70, 6)
    } else if (pocitadloB == 4) {
        KitiBot.RunDelay(Dir.turnRight, 70, 6)
    } else if (pocitadloB == 5) {
        KitiBot.Servo(90)
        basic.pause(500)
        KitiBot.Servo(180)
        basic.pause(500)
        KitiBot.Servo(90)
        basic.pause(500)
        KitiBot.Servo(0)
        pocitadloB = 0
    }
})
let pocitadloB = 0
let pocitadloA = 0
let strip: APA102.Strip = null
music.beginMelody(music.builtInMelody(Melodies.Dadadadum), MelodyOptions.Once)
basic.showString("TEST")
strip = APA102.createStrip(4, PixelMode.RGB)
strip.setBrightness(1)
strip.showColor(APA102.colors(PixelColors.Blue))
strip.show()
basic.pause(500)
strip.showColor(APA102.colors(PixelColors.Green))
strip.show()
basic.pause(500)
strip.showColor(APA102.colors(PixelColors.Yellow))
strip.show()
basic.pause(500)
strip.showColor(APA102.colors(PixelColors.Purple))
strip.show()
basic.pause(500)
strip.clear()
strip.show()
KitiBot.Servo(0)
pocitadloA = 0
pocitadloB = 0

Program MakeCode

Video

Záver

Na záver vám okrem poďakovania za prečítanie článku patrí aj uznanie za aplikovanie mojich vylepšení v praxi. Nielenže si tým vylepšíte vzhľad robota KitiBot 2WD a rozšírite využitie servomotora, ale zároveň môžete aj plnohodnotne využiť displej mikropočítača micro:bit, s čím nepočíta ani výrobca.

V nasledujúcom článku naučím spomenutého robota sledovať čiaru a vyhýbať sa prekážkam, takže o zábavu bude postarané.

E-shop

E-shop

Waveshare KitiBot 2WD kit pro BBC micro:bit

Sestavte si vlastního robota řízeného BBC micro:bitem.

BBC Micro:bit

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

Doporučené příslušenství

Napsat komentář