KURZ: Motor a jeho pohyb
- Podrobnosti
- Mgr. Jan Baťko
- Aktualizováno: 06.09.2017
- Zobrazení: 18696
KAPITOLY
Pro pohyb a natáčení robotů a jejich jednotlivých částí můžeme využít Interaktivní servomotor. Tento motor je kombinací motoru zajišťujícího otáčení a senzoru měřícího míru natočení.
Vlastnosti motoru
Nejdůležitější vlastností motoru je výkon, směr a port, ke kterému je motor připojen.
Výkon motoru: udává intenzitu (rychlost) motoru jakou se motor otáčí. Hodnotu výkonu lze nastavit v procentech, kde 100 % je maximální výkon.
Směr: určuje směr otáčení motoru (vpřed, vzad či zastavení).
Port: udává port řídící jednotky (A, B, C) ke kterému je motor připojen.
Určení míry natočení
Otáčení motoru zaznamenávají optická čidla poskytující zpětnou vazbu. Tuto hodnotu lze pomocí programu načíst, ale je též automaticky využívána k vykonání různých pohybových sekvencí. Pohyb lze realizovat čtyřmi různými způsoby:
Stupně
Nastavením stupňů v rozsahu 0 až 360° motoru udáváme, o kolik stupňů se má otočit. Úhel natočení je motorem zjišťován a korigován zpětně přes počitadlo otáček. Protože se nejedná o krokový motor, není pohyb zcela přesný a je tak nutné počítat s určitou odchylkou v řádu jednotek. V případě zadání malého natočení pak i s případným rozmitáním motoru.
Rotace
Vyjádření míry natočení pomocí rotace motoru udává, kolik otočení kolem své osy má být k danému pohybu vykonáno. Jedna rotace motoru odpovídá 360°. Natočení pomocí rotace využijeme pro pohyb po delší trase známé délky.
Sekundy
Sekundy určují, po jakou dobu se má provádět otáčení motoru. Chceme-li tímto způsobem stanovit délku dráhy po které se robot bude pohybovat, musíme počítat také s nastaveným výkonem motoru. Během stejného časového úseku totiž motor s menším výkonem provede méně otáček. Vyjádření míry natočení pomocí času tedy není pro potřeby přesného stanovení délky dráhy příliš přesné.
Neomezeně
Poslední možností nastavení míry natočení je neomezený pohyb motoru. Jak již název naznačuje, nejedná se o časově ani parametrově omezený pohyb. Vykonávání je prováděno po celou dobu chodu programu. Tento způsob tedy neskýtá možnost jakkoliv ovlivnit dobu či míru natočení.
Použití motoru v programovacím prostředí
NXT-G
Blok pro ovládání motoru
Rozcestník
Umístění bloku
Programový blok Motor je umístěn v paletě Complete > Action.
Popis bloku
Blok Motor obsahuje celkem osm konektorů sloužících k propojení s dalšími programovými bloky:
Port - vyjadřuje, ke kterému výstupnímu portu (A, B, C) je motor připojen.
Direction - označuje směr otáčení motoru (vpřed či vzad).
Action - nastavený typ ovládání akcelerace motoru.
Power - intenzita otáčení motoru.
Control Motor Power - regulace výkonu motoru.
Duration - délka trvání pohybu.
Wait for Completion - ukončení činnosti před dalším krokem programu.
Next Action - vyjadřuje, zda bude po ukončení akce motor pokračovat v činnosti či nikoliv.
Direction out - řízení pohybu motoru během provádění činnosti bloků.
Degrees out - vyjadřuje, o kolik stupňů se motor otočí během provádění činnosti bloků.
Aktuální nastavení bloku označují tři ikony v jeho dolní části. První označuje směr otáčení , druhá intenzitu otáčení motoru a třetí značí délku trvání pohybu . Číslo v horní části bloku označuje, ke kterému výstupnímu portu je motor připojen.
Parametry bloku
Port: udává port řídící jednotky (A, B, C) ke kterému je motor připojen.
Direction: určuje směr otáčení motoru (vpřed, vzad či zastavení).
Action: umožňuje třemi způsoby ovládat akceleraci motoru.
- Ramp Up - pomalé zvyšování rychlosti dokud není dosaženo nastavené intenzity otáčení motoru (power).
- Ramp Down - pomalé snižování intenzity otáčení motoru, dokud není dosaženo nulové hodnoty.
- Constant - plného výkonu je dosaženo ihned. Zastavení je dosaženo buď setrvačností motoru nebo dalším nastavením (Next Action).
Power: intenzita (rychlost) otáčení motoru nastavitelná v procentech (100% je maximum).
Control: zapnutí regulace výkonu motoru.
Duration: možnost nastavení délky trvání pohybu. Skýtá čtyři možnosti nastavení:
- míra natočení ve stupních (Degrees),
- míra natočení vyjádřená pomocí otáček motoru (Rotations),
- doba chodu motoru při daném výkonu v sekundách (Seconds),
- neomezený běh motoru po dobu průběhu programu (Unlimited).
Wait: vybráním této možnosti dáváme motoru pokyn ukončit svoji činnost ještě před dalším krokem programu.
Next Action: udává, zda se má po ukončení akce motor zastavit (Brake) nebo pokračovat v chodu (Coast).
RobotC
Příkazy a metody
V programu RobotC se ovládání motoru provádí v podstatě pomocí jediného příkazu. Další chování ovlivňují zadané hodnoty a proměnné.
Rozcestník
Nastavení a ovládání motoru
Veškeré ovládání motoru v programovacím prostředí RobotC je prováděno pomocí příkazu motor[]. V tomto příkazu označujeme jak port, ke kterému je motor připojen, tak i intenzitu jeho otáčení a směr otáčení
Port: výraz v závorce označuje, ke kterému portu (motorA, motorB nebo motorC) řídící jednotky je motor připojen.
motor[motorA] = 100; // Motor je pripojen k portu A a otaci se smerem vpred s maximalnim vykonem.
Intenzita otáčení motoru: udává na stupnici od 0 do 100% výkon motoru.
motor[motorA] = 75; // Motor je pripojen k portu A a otaci se smerem vpred s vykonem 75%.
Směr otáčení motoru: je určen znaménkem před hodnotou určující výkon motoru. Kladné číslo vyjadřuje otáčení vpřed, záporné vzad.
motor[motorA] = -100; // Motor je pripojen k portu A a otaci se smerem vzad s maximalnim vykonem.
Ovlivnění doby otáčení motoru
Délka trvání pohybu je nastavována v milisekundách pomocí příkazu wait1Msec() nebo v desítkách milisekund příkazem wait10Msec().
motor[motorA] = 100; // Motor je pripojen k portu A a otaci se smerem vpred s maximalnim vykonem. wait1Msec(4000); // Otaceni motoru je provadeno 4 sekundy, po kterych je pohyb ukoncen a program pokracuje dale. motor[motorA] = 0; // Vykon motoru je nastaven na nulu.
Možnosti natočení motoru
Natočení motoru je možné provádět příkazem bMotorReflected[], díky němuž se motor pootočí o 180 stupňů. Nabývá hodnot true nebo false.
bMotorReflected[motorA] = true; // Motor A se pootoci o 180 stupnu. bMotorReflected[motorA] = false; // Motor A se nepootoci o 180 stupnu.
Druhou možností, která umožňuje oproti předchozímu příkazu libovolné natočení, je pomocí čítače otáček motoru. Čítač zaznamenává, o kolik stupňů (0 - 360) se motor pootočil. Pracuje se s ním pomocí příkazu nMotorEncoder[]. Na příkladu můžete vidět, jak pomocí čítače pootočit motor o 360 stupňů.
nMotorEncoder[motorB] = 0; // Nulovani citace motoru B. while(nMotorEncoder[motorB] < 360) // Nastavení podminky cyklu (dokud citac motoru B nedosahne 360 stupnu...). { motor[motorB] = 75; // ...tak se motor B otaci s vykonem 75%. } motor[motorB] = 0; // Nastaveni vykonu motoru B na 0.
EV3
BLOK PRO OVLÁDÁNÍ SERVOMOTORU
Rozcestník
- Umístění bloku
- Výběr výstupního portu
- Změna režimu
- Přidání vstupního portu
- Režimy programového bloku
Blok pro ovládání lineárního motoru
Rozcestník
- Umístění bloku
- Výběr výstupního portu
- Změna režimu
- Přidání vstupního portu
- Režimy programového bloku
Umístění bloku
Programový blok Large Motor je umístěn v paletě Action.
Výběr výstupního portu
Před započetím práce s motorem je nejprve nutné zvolit výstupní port (A, B, C nebo D) řídící jednotky, ke kterému je motor připojen (červeně zvýrazněno).
Změna režimu
Programový blok Large Motor můžeme využívat v pěti režimech. Přepínání mezi nimi se provádí pomocí tlačítka v levé spodní části (červeně zvýrazněno).
Přidání vstupního portu
Po kliknutí do pole pro výběr výstupních portů pro řízení motorů je možné vybrat první možnost Wired, po které se do programového bloku přidá vstupní port Port (červeně zvýrazněno).
Režimy programového bloku
Off (vypnuto)
Vypnutí chodu motoru. V tomto řežimu je aktivní pouze jediný vstupní port.
Break at End - způsob zastavení motoru. Okamžité zastavení (Break) reprezentuje logická hodnota True a pozvolné dojetí (Coast) hodnota False.
On (Zapnuto)
Neomezený běh motoru po dobu průběhu programu. V tomto řežimu je aktivní pouze jediný vstupní port.
Power - rychlost otáčení motoru udávaná v procentech na stupnici od 100 (vpřed) do -100 (vzad).
On for seconds (otáčení po zadaný časový úsek)
Ovlivnění chodu motoru pomocí času. V tomto režimu máme k dispozici tři vstupní porty.
Power - rychlost otáčení motoru udávaná v procentech na stupnici od 100 (vpřed) do -100 (vzad).
Seconds - doba otáčení motoru udávaná ve vteřinách.
Break at End - způsob zastavení motoru. Okamžité zastavení (Break) reprezentuje logická hodnota True a pozvolné dojetí (Coast) hodnota False.
On for Degrees (otočení o zadaný úhel)
Ovlivnění chodu motoru pomocí úhlových stupňů. V tomto režimu máme k dispozici tři vstupní porty.
Power - rychlost otáčení motoru udávaná v procentech na stupnici od 100 (vpřed) do -100 (vzad).
Degrees - míra natočení zadávaná v úhlových stupních od 0 do 360°.
Break at End - způsob zastavení motoru. Okamžité zastavení (Break) reprezentuje logická hodnota True a pozvolné dojetí (Coast) hodnota False.
On for Rotations (otočení o počet otáček)
Ovlivnění chodu motoru pomocí počtu nastavených otáček. V tomto režimu máme k dispozici tři vstupní porty.
Power - rychlost otáčení motoru udávaná v procentech na stupnici od 100 (vpřed) do -100 (vzad).
Rotations - počet prováděných otáček motoru.
Break at End - způsob zastavení motoru. Okamžité zastavení (Break) reprezentuje logická hodnota True a pozvolné dojetí (Coast) hodnota False.
Programový blok Medium Motor je umístěn na paletě Action.
Výběr výstupního portu
Před započetím práce s motorem je nejprve nutné zvolit výstupní port (A, B, C nebo D) řídící jednotky, ke kterému je motor připojen (červeně zvýrazněno).
Změna režimu
Programový blok Medium Motor můžeme využívat v pěti režimech. Přepínání mezi nimi se provádí pomocí tlačítka v levé spodní části (červeně zvýrazněno).
Přidání vstupního portu
Po kliknutí do pole pro výběr výstupních portů pro řízení motorů je možné vybrat první možnost Wired, po které se do programového bloku přidá vstupní port Port (červeně zvýrazněno).
Režimy programového bloku
Off (Vypnuto)
Vypnutí chodu motoru. V tomto řežimu je aktivní pouze jediný vstupní port.
Break at End - způsob zastavení motoru. Okamžité zastavení (Break) reprezentuje logická hodnota True a pozvolné dojetí (Coast) hodnota False.
On (zapnuto)
Neomezený běh motoru po dobu průběhu programu. V tomto řežimu je aktivní pouze jediný vstupní port.
Power - rychlost otáčení motoru udávaná v procentech na stupnici od 100 (vpřed) do -100 (vzad).
On for Seconds (otáčení po zadaný časový úsek)
Ovlivnění chodu motoru pomocí času. V tomto režimu máme k dispozici tři vstupní porty.
Power - rychlost otáčení motoru udávaná v procentech na stupnici od 100 (vpřed) do -100 (vzad).
Seconds - doba otáčení motoru udávaná ve vteřinách.
Break at End - způsob zastavení motoru. Okamžité zastavení (Break) reprezentuje logická hodnota True a pozvolné dojetí (Coast) hodnota False.
On for Degrees (otočení o zadaný úhel)
Ovlivnění chodu motoru pomocí úhlových stupňů. V tomto režimu máme k dispozici tři vstupní porty.
Power - rychlost otáčení motoru udávaná v procentech na stupnici od 100 (vpřed) do -100 (vzad).
Degrees - míra natočení zadávaná v úhlových stupních od 0 do 360°.
Break at End - způsob zastavení motoru. Okamžité zastavení (Break) reprezentuje logická hodnota True a pozvolné dojetí (Coast) hodnota False.
On for Rotations (otočení o určitý počet otáček)
Ovlivnění chodu motoru pomocí počtu nastavených otáček. V tomto režimu máme k dispozici tři vstupní porty.
Power - rychlost otáčení motoru udávaná v procentech na stupnici od 100 (vpřed) do -100 (vzad).
Rotations - počet prováděných otáček motoru.
Break at End - způsob zastavení motoru. Okamžité zastavení (Break) reprezentuje logická hodnota True a pozvolné dojetí (Coast) hodnota False.