Image
1.7.2019 3 Comments

Konštrukcia a programovanie robotov 1. – ovládanie jednosmerných motorov

Počas prázdnin už tradične pripravujeme seriál pre žiakov a študentov venovaný robotike. Tradične preto lebo vlani sme v trojici článkov prvý, druhýtretí predstavili možnosti robotickej stavebnice Lego Mindstorms. Čitatelia nás v mailoch  upozornili, že stavebnica 320 eur je ako vstupná brána do robotiky trochu riziková investícia, hlavne u detí, kde sa nedá odhadnúť, či ich stavba a programovanie robotov bude, alebo nebude baviť. Tento rok sa preto zameriame na cenovo oveľa dostupnejšie riešenia. Najlacnejší a pritom plnohodnotný podvozok získate v e-shopoch už za 20 eur a to vrátane dosky Arduino, dosky na riadenie motorov, prepojovacej dosky, servomotora a ultrazvukového senzora vzdialenosti. 

Všetko podstatné o konštrukcii robotického podvozku a ovládaní jednosmerných motorčekov ukazuje video:

Tento podvozok sa vám bude hodiť aj na stavbu robotického vozidla ovládaného doskou BBC micro:bit, ktorá je populárna aj na našich školách. Alebo samotný kompletný podvozok s motorčekmi za približne 7 eur. K nemu ešte potrebujete dosku micro:bit (14 eur) a dosku pre micro:bit na riadenie motorčekov (10 eur)

Dosku Micro:bit sme pre naše pokusy s robotickým podvozkom vybrali úmyselne. Oproti Arduinu má veľa výhod, predovšetkým možnosť vytvorenie rádiového prepojenia medzi dvomi, prípadne viacerými doskami, takže jedna doska môže riadiť hardvér robotického podvozku a pomocou druhej dosky môžee robotický podvozok ovládať. Buď pomocou dvojice tlačidiel A a B, prípadne naklápaním, či natáčaním dosky Micro:bit, ktorá má zabudovaný akcelerometer a náklonomer.  

Základným komponentom robotického podvozku sú dva motorčeky, ktoré poháňajú kolesá. Môžu byť jednosmerné, krokové, alebo servomotory. Najjednoduchšie sa, aspoň zdanlivo ovládajú jednosmerné motorčeky. Otáčky sa menia zmenou napájacieho napätia a smer otáčania sa zmení tak, že medzi sebou vymeníte kladný a záporný pól napájania. Väčšina hobby konštrukcií malých robotických vozidiel používa elektromotorček s planétovou prevodovkou s prevodovým poemrom 1:48 do pomala. Na rozdiel od krokových motorov a servomotorov u jadnosmerného motora nemáte k dispozícii informáciu o koľko otáčok sa hriadeľ motora otočil, alebo o aký uhol sa pootočil. Aby ste to zistili, potrebovali by ste pomocný snímač, napríklad kotúč s otvormi a optočlen. Pri konštrukcii robotických podvozkou však vystačíte aj s tým, že riadiaci mikrokontrolér bude motor zapínať, vypínať, meniť jeho otáčky a smer otáčania. 

Motorček má osky na obidvoch stranách, na jednu z nich môžete dať koleso podvozku a na druhú kotúč s otvormi, pomocou ktorého môžete snímať o koľko sa oska pootočila. Motorček je možné napájať napätím v rozsahu 3 - 6V. Má krútiaci moment 0,078Nm a odber prúdu naprázdno je 75 mA. Ovládanie spočíva v napájaní jednosmerným prúdom primeraného napätia na aké ja motorček konštruovaný. Čím je napätie vyššie, tým sa motorček otáča rýchlajšie. Napríklad, ak je moptorček konštruovaný na 6 V, môžete robiť reguláciu otáčok zmenou napájacieho napätie, v rozsahu približne 2 – 6 V. Pri nižšom napätí by sa motorček nerozbehol, vyššie napätie by ho mohlo poškodiť. Motorček odoberá vyšší prúd, než sú schopné dodať porty riadiacej dosky. Preto je potrebná doska na výkonové prispôsobenie. Dosky ako Micro:bit, či Arduino nemajú skutočné analógové výstupy, ale simulujú ich pomocou PWM, čiže pulzne šírkovej modulácie. Toto pri použití knižníc pre danú dosku nepotrebujete vedieť, pre hĺbavejších čitateľov je princíp PWM vysvetlený v závere článku. 

Na ovládanie motorčekov sme použili rozširujúci modul Micro:bit, ktorý dokáže nezávisle riadiť dva jednosmerné motory, alebo jeden krokový motor. Srdcom modulu je integrovaný obvod TB6612 s maximálnym prúdom do motoru 1,2 A. Na module sú vyvedené aj ďalšie porty, ktoré môžete používať na ovládanie servomotorov, prípadne na snímanie údajov zo senzorov. Porty P3 - P7 a P9 - P11 sú určené na pripojenie periférií využívajúcich 3.3 V logiku a porty P13 - P16 a  P19- P20 podporujú logiku 3,3 V nebo 5 V. Na výber napäťovej úrovne je na doske prepínač. Na konektory sú vyvedené aj SPI a I2C zbernice. Na doske je aj malý reproduktor, takže robotické vozidlo môže vydávať aj zvuky. Napájacie napätie doky je 6 – 12 V.

Pomocou analógových, alebo v prípade Micro:bitu pomocou PWM portov P1 a P2 sa ovládajú otáčky motorom M1 a M2. Smer otáčania motora M1 sa mení logickou úrovňou na porte P8 a smer otáčania motora M2 portom P12. Zapojenie je triviálne. Stačí pripojiť motorčeky, pričom polaritu je potrebné prispôsobiť tak, aby správne fungovali funkcie z knižnice motorbit. Na napájanie môžete použiť blok štyroch batérií AA. Napájacie napätie v takejto zostave ne 6 V. Z modulu na ovládanie motorov sa bude napájať aj microbit. 

Bloková schéma zapojenia

Rozmiestnenie komponentov

Do vývojového prostredia je potrebné pridať rozširujúci modul Motorbit, ktorý pridá funkcie na ovládanie robotického podvozku

V prvom príklade ukážeme ovládanie motorčekov tak aby sa v sekundových intervaloch otáčali raz na jednu a potom na druhú stranu.

JavaScript

basic.forever(function () {
   motorbit.freestyle(50, 0)
   basic.pause(1000)
   motorbit.freestyle(0, 50)
   basic.pause(1000)
})

Ďalší príklad je zameraný na zmenu otáčok. Paremeter v príkaze forward() udáva výkon v rozmedzí 0 – 100, čiže de facto v percentách.

JavaScript
basic.forever(function () {
   motorbit.forward(0)
   basic.pause(2000)
   motorbit.forward(25)
   basic.pause(2000)
   motorbit.forward(50)
   basic.pause(2000)
   motorbit.forward(75)
   basic.pause(2000)
   motorbit.forward(100)
   basic.pause(2000)
})

Malá ukážka možností príkazov a funkcií v rozširujúcom module motorbit. Ako sa bude pohybovať robotický podvozok, uvidíte vo videu

JavaScript

basic.forever(function () {
   motorbit.forward(70)
   basic.pause(500)
   motorbit.back(50)
   basic.pause(500)
   motorbit.turnleft(50)
   basic.pause(500)
   motorbit.turnright(50)
   basic.pause(500)
   motorbit.brake()
   basic.pause(500)
   motorbit.freestyle(-40, 30)
   basic.pause(500)
})

Môžete využiť aj priame generovanie analógového PWM výstupu. V tomto prípade sa pomer striedy a teda aj výstupné napätie nastavuje v rozsahu hodnôt 0 - 1023

JavaScript

pins.analogSetPeriod(AnalogPin.P2, 2000)
basic.forever(function () {
   pins.analogWritePin(AnalogPin.P2, 0)
    basic.pause(2000)
   pins.analogWritePin(AnalogPin.P2, 255)
   basic.pause(2000)
   pins.analogWritePin(AnalogPin.P2, 511)
   basic.pause(2000)
   pins.analogWritePin(AnalogPin.P2, 767)
   basic.pause(2000)
   pins.analogWritePin(AnalogPin.P2, 1023)
    basic.pause(2000)
})

Hodnota 255 definuje 25% pracovný cyklus a Má podobný účinok, ako keby bol na tomto pine trvale napätie 0,825V.

  1. Hodnota 511 definuje 50% pracovný cyklus a Má podobný účinok, ako keby bol na tomto pine trvale napätie 1,65V.
  2. Hodnota 767 definuje 50% pracovný cyklus a Má podobný účinok, ako keby bol na tomto pine trvale napätie 2.475V.
  3. Hodnota 1023 privedie na výstup napätie 3.3 V

Priebeh signálu pre 50%, 25 % a 75 %

V budúcom pokračovaní sa budeme venovať servomotorom

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Technológie

Robotika - čo dokážu roboty Blue-Bot a Pro-Bot

18.07.2019 00:10

V tomto dielu prázdninového seriálu venovaného robotike predstavíme možnosti dvoch robotov od britskej firmy TTS. Blue-Bot sa programuje zadávaním sekvencie krokov, pričom krok je buď pohyb v danom sm ...

Technológie

IoT prakticky – UniPi 1.1 Lite s Raspberry Pi pre smarthome a automatizáciu

17.07.2019 00:10

UniPi 1.1 Lite je nadstavba pre populárnu mikropočítačovú dosku Raspberry Pi, s ktorou tvorí jednoduchou programovateľnú riadiacu jednotku využiteľnú pre jednoduchšie projekty riadenia napríklad intel ...

Technológie

Roboty Bee-Bot a Blue-Bot pre mladších žiakov

16.07.2019 00:10

Náš prázdninový seriál venovaný robotike sme začali štyrmi dielmi popisujúcimi konštrukciu a programovanie jednoduchých a lacných robotických podvozkov. Inak povedané – témy pre učiteľov informatiky a ...

q

3 Comments

  1. linky reakcia na: Konštrukcia a programovanie robotov 1. – ovládanie jednosmerných motorov
    3.7.2019 08:07
    Dobry den, vdaka za serialy o microbite a arduine a podobnych technologiach. Su (tie serialy) super.
    Mohli by ste do clankov davat aj linky na stranky z eschopov ktore uvadzate na obrazkoch a vo videach, ulahcilo by to hladanie.
    Reagovať
    • RE: linky reakcia na: linky
      Autor: Lubo
      3.7.2019 12:07
      to robiť nemôžeme, pretože by to bola komerčná informácia, takže keď vidíte vo videu záber na katalógovú stránku komponentu, ktorý som v seriáli použil, stačí zastaviť video a trochu googliť.
      Reagovať
  2. reakcia reakcia na: Konštrukcia a programovanie robotov 1. – ovládanie jednosmerných motorov
    1.7.2019 21:07
    Tento vaš serial je podla mňa ako obyčajného laika veľmi zaujimavý a som rád že niečo také vzniklo a je aj na slovensku. Tak vám držím palce v dalšej práci na tomto seraily ktory sledujem .
    Reagovať

ACER_092019

Videá

elearn

IT GALA stvorec 2019