Mobilní platforma s motory RX 64 a řídící jednotkou CM 2+

17. August, 2011, Autor článku: Neckář Pavel, Elektrotechnika
Ročník 4, číslo 8 This page as PDF Pridať príspevok

Ve vývoji mobilních platforem (podvozků) je kladen důraz vždy na kvalitu pohonných jednotek (servomotorů), které zabezpečují pohyblivost celé platformy. U tohoto typy mobilního podvozku je využito motorů typu RX 64 od společnosti Robotis. Celý systém, je postaven za účelem dálkového ovládaní a to pomocí softwarového řešení vyvinutého v prostředí Microsoft Visual Studio 2010 Express, využívající jazyk C#.

Dále je použita řídicí jednotka CM 2+, která zabezpečuje komunikaci a propojení motorů RX 64 se sériovým rozhraním počítače a podporuje jednoduší návaznost na ovládání celého systému.


Obrázek 1 Př. Sestavení mobilního robotického podvozku s motory RX 64

Popis motorů RX 64

Jedná se o robustní servomotory z tvrzeného plastu, které mají vlastní instrukční sadu a ocelový ozubený převod, který výrazně zvyšuje efektivitu celého systému. Hodnota 64 uvedená u tohoto typu motoru představuje krouticí moment, který motor dokáže vyvinout, což tedy je 64 kg/cm při napájení 18V. Další specifické údaje jsou zmíněny níže:

  • Úhlová citlivost 0,29°
  • Podpora kontinuálního otáčení či otáčení v rozmezích 0°- 300°
  • Napájení 12 – 21V
  • Maximální odebíraný proud 1,2 A
  • Rozsah pracovních teplot -5 – 85°C
  • Rozhraní mezi motory – RS 485 asynchronní sériová komunikace (8bitů, 1 stop bit, žádná parita)[5]
  • Komunikační rychlost 7343 bps – 1 Mbps

Složení motoru RX 64

  • řídicí elektronika
  • absolutní snímač polohy otáčení
  • stejnosměrný motor
  • převodové ústrojí


Obrázek 2 Řídicí elektronika motoru RX 64


Obrázek 3 Zapojení motorů RX 64 s řídicí jednotkou a PC[1]

Komunikace mezi řídicí jednotkou a motory

Komunikace probíhá pomocí paketů, tyto pakety se rozlišuji na instrukční paket a stavový paket. Instrukční paket je odesílán z řídicí jednotky pro nastavení parametrů motoru. Stavovým paketem odpovídají motory na přijetí paketu a potvrzují nastavení [1].

Definování instrukčního paketu

FF-FF-ID-DÉLKA-INSTRUKCE-PARAMETR 1 … PARAMETR N-KONTROLNÍ SUMA

  • FF FF – je definováno jako hlavička paketu, oznamuje začátek nového paketu řídicí elektronice motoru.
  • ID – číslo motoru, pro které je paket určen.
  • DÉLKA – je délka paketu, počítána z parametrů + 2.
  • INSTRUKCE – definování povelu pro motor.
  • PARAMETR – je definováno jako zpřesnění instrukce („jak použít paket“).
  • KONTROLNÍ SUMA – součet id, délky, instrukce a parametrů. Slouží jako kontrola správnosti odeslání paketu, jestli nedošlo k chybě [1].

Definování stavového paketu

FF-FF-ID-DÉLKA-CHYBA-PARAMETR 1 … PARAMETR N-KONTROLNÍ SUMA

  • CHYBA – Pokud dojde k chybě při zpracování nebo odeslání můžeme ze stavovém paketu přesně určit typ chyby.

Ostatní části paketu jsou odpovídající instrukčnímu paketu [1].

Adresová tabulka paměti v motoru RX 64

Kontrolní tabulka obsahuje informace o stavu a operacích RX-64. RX-64 je ovládaný zápisem hodnot do kontrolní tabulky a status je kontrolovaný čtením hodnot z kontrolní tabulky. Data v tabulce 1 ukazují nastavení továrních hodnot motorů RX 64 při připojení ke zdroji elektrické energie.

Tabulka 1 Složení paměti motoru a jednotlivých adres [1]

Popis jednotlivých hodnot v kontrolní tabulce:

  • Address 0x00,0x01 – modelové číslo 0X0040
  • Address 0x02 – verze firmware
  • Address 0x03 – unikátní ID číslo motoru, které jej identifikuje
  • Address 0x04 – přenosová rychlost tzn. komunikační rychlost Speed (BPS) = 2000000 / (Address4 + 1)
  • Address 0x05 – vrácení zpožďovacího času, je to čas mezi odesláním a přijmutím paketu
  • Address 0x06,0x07,0x08,0x09 – úhlový operační limit, cíl musí být v limitu
  • Address 0x0B – nejvyšší teplotní pracovní limit RX-64
  • Address 0x0C,0x0D – nejvyšší a nejnižší napětí
  • Address 0x0E,0x0F, 0x22,0x23 – maximální kroutivá síla, pracuje v tzv. volném módu. Pokud připojíme RX-64 ke zdroji je z paměti EEPROM zkopírována hodnota nastavení kroutivého momentu do paměti RAM.
  • Address 0X10 – navrácení paketu. RX motor navrátí stavový paket po příjmu instrukčního paketu.
  • Address 0x14~0x17 – kalibrace- nelze měnit, je nastavena přímo pro daný potenciometr
  • Address 0x18 – možná kroutivá síla
  • Address 0x19 – nastavení LED
  • Address 0X1E,0x1F – požadovaná úhlová pozice pro motor – myšleno počáteční poloha
  • Address 0x20,0x21 – pohybová rychlost – nastavení úhlové rychlosti výstupního pohybu k cílové pozici. Nastavení této hodnoty je maximálně 0x3ff s výstupní úhlovou rychlostí 114RPM toho je docíleno jen s dostatečným napájením
  • Address 0x24,0x25 – „stávající pozice“ – aktuální úhlová pozice výstupu motoru
  • Address 0x26,0x27 – „stávající rychlost“ – aktuální úhlová rychlost výstupu motoru
  • Address 0x28,0x29 – „stávající zavádění dat do paměti“ – veličina je nahrána do motoru
  • Address 0x2A – stávající napájení – elektrické napájení aplikované na motoru. Hodnota napětí je 10x za vteřinu aktualizována. Příklad 10V je reprezentováno jako 100 (0x64)
  • Address 0x2B – stávající teplota – vnitřní teplota je udávaná ve stupních Celsia
  • Address 0x2C – registrační instrukce – nastavení hodnoty 1, kdy instrukce je připsaná do REG_WRITE. Nastavení 0 po tomto dokončení připíše instrukci akčního příkazu.
  • Address 0x2E – pohyb – nastaví jedničku pokud se motor pohybuje vlastní silou
  • Address 0x2F – zamknutí – když nastavím 1, tak pouze adresy 0x18 až 0x23 mohou být zapsány. Toto uzamknutí může odemknout pouze vypnutí napájení.
  • Address 0x30,0x31 – tyto adresy upravují nejnižší možnou dodávku energie do motoru. Počáteční hodnota je nastavena 0x20 a maximální hodnota je nastavena 0x3ff [5].

Řídicí jednotka CM 2+

CM 2+ je vyhodnocovací zařízení, používané k řízení motorů RX-64, DX 113, DX 117, RX 28 a senzoru AX S1(infra senzor). Na základě této řídicí jednotky můžeme ovládat systém servomotoru pomocí softwarového vybavení od výrobce či vlastního softwaru [2]. Procesorové vybavení:

  • ATmega-128
  • Manufacturer : Atmel
  • Flash memory : 128KByte
  • SRAM : 4KByte
  • EEPROM : 4KByte
  • UARTs : 2
  • CLOCK : 16MHz

Popis jednotlivých součástí řídicí jednotky


Obrázek 4 Řídicí jednotka CM 2+ (čelní strana) [2]

Tabulka 2 Popis částí řídicí jednotky CM 2+ (čelní strana)

Tlačítko On/Off při stisknutí tohoto tlačítka dojde k zapnutí či vypnutí řídicí jednotky.
Vstup RS 232 slouží k propojení sériového rozhraní mezi PC a řídicí jednotkou
Stavové LED diody RX, TX LED nám zobrazují komunikaci mezi PC a řídicí jednotkou a to přijímání (RX) či odesílání (TX) dat.
Módy nastavení CM 2+ lze volit mód, ve kterém chceme, aby řídicí jednotka pracovala, volíme vždy mezi 3 módy (Manage, Program, Play)
Konektor senzoru AX S1 AX S1 – jedná se konektor pro infračervený senzor, který se využívá v Play módu pro vyhýbání se překážkám apod.
Tlačítko start má potvrzovací funkci, výběr jednoho z módů (Manage, Program, Play) potvrdíme tímto tlačítkem.
Tlačítko nastavení módu je využíváno k přepínání mezi jednotlivými módy.
Řídicí tlačítka jsou tlačítka, kterým můžeme přiřadit funkci dle potřeb programátora. Většinou se využívají pro definování směru pohybu v Play módu.


Obrázek 5 Řídicí jednotka CM 2+ (zadní strana) [2]

Tabulka 3 Popis částí řídicí jednotky CM 2+ (zadní strana)

Vstup napájení zde přivádíme elektrickou energii pro napájení řídicí jednotky a motorů
Konektory pro připojení řídicí jednotka je dimenzována na ovládání silnějších motorů tříd RX a DX, proto jsou na ní zastoupeny pouze konektory pro tyto typy
Bateriový konektor jelikož se řídicí jednotka CM 2+ využívá i pro autonomní systémy, je v ní zabudován již speciální konektor pro připojení baterie.

Propojení motorů RX 64 s řídicí jednotkou CM 2+

K řídicí jednotce lze připojit jen určitý typ zařízení a to i od specifického výrobce jako je ROBOTIS. Řídicí jednotka dokáže ovládat pouze tyto typy zařízení: RX-64, DX 113, DX 117, RX 28 a senzor AX S1. Pro tato zařízení jsou připraveny jak konektory, tak firmware umístěný uvnitř řídicího procesoru. Jelikož si řídicí jednotka provádí samostatnou detekci připojených zařízení, není možné připojení jiných součástí než předepsaných. V případě, že je přepsán firmware je následně možné systém obejít. Tento postup se však nedoporučuje, jelikož je možné zničit, jak zařízení řídicí jednotky, tak připojené servomechanismy.

S každým novým připojeným zařízením k řídicí jednotce je zapotřebí zajistit nastavení jeho ID (identifikačního čísla). U všech zařízení, které lze připojit k řídicí jednotce CM 2+ je nutné toto nastavení provést po jednotlivých kusech. Pokud dojde k zapojení všech servomechanismů do řídicí jednotky bez nastavení ID, jednotka bude následně detekovat pouze jedno zařízení, které je připojeno.

Důvodem je však tovární nastavení všech servomotorů a senzorů na ID 1. Je na programátorovi, aby jednotlivé identifikační čísla změnil a nastavil dle svých potřeb. Za pomocí softwaru RobotTerminál probíhá nastavení ID motorů funkcí ID [číslo motoru]. Číslo motoru představuje hodnotu, která slouží pro identifikaci mezi jednotlivými motory. Při komunikaci motorů s řídicí jednotkou CM 2+, pak nemůže dojít ke kolizi instrukčních paketů.

Systém CM 2+ je vyzdvihován v rámci vlastností, které splňuje a to hlavně ve smyslu připojených zařízení a jejich obsluhy. CM 2+ dokáže spravovat na 254 servomotorů. Je to však podmíněno dostatečnou elektrickou stabilitou. Struktura zapojení servomotorů do systému s CM 2+ využívá rozhraní RS 485. Na této struktuře probíhá komunikace mezi motory a řídicí jednotkou ve formě polo-duplexu.

Požadované napájení je v rozmezí 12 – 16V. Energie dodávaná do CM 2+ je dodávaná i do motorů z důvodu jednoho zdroje elektrické energie. Požadovaný proud jen pro CM 2+ je 50mA. Ale příjem této energie musí být upraven i pro ostatní motory.


Obrázek 6 Schématické naznačení zapojení a identifikace motorů RX 64[2]

Popis konektoru pro RX 64


Obrázek 7 Konektor RX 64 [2]

Konektor obsahuje 4 piny, ve kterých je obsaženo napájení VDD, GND a komunikace D- , D+. Pro snadnější orientaci je v konektoru také veden klíč pro správné rozpoznání jednotlivých pinů [2]. Popis zkratek:

  • D- invertovaný vodič
  • D+ neinvertovaný vodič
  • VDD napájecí napětí
  • GND zem

Jednotlivé vodiče jsou označeny D- /D +, kde D (-) označuje tzv. invertovaný vodič a D (+) jako neinvertovaný vodič. Logický stav 1 (někdy označený jako OFF), reprezentuje napěťový rozdíl D(-) – D(+) < – 0.3 V, zatímco logický stav 0 (ON) reprezentuje rozdíl D(-) – D(+) > + 0.3 V. Přenos pomocí rozdílového napětí eliminuje vliv naindukovaného rušivého napětí vztaženého k nulovému potenciálu (zemi), protože se na obou vodičích naindukuje stejná velikost napětí. Správný vysílač by měl generovat na výstupu úrovně + 2 V a – 2 V a přijímač by měl být ještě schopen rozlišit úroveň + 200 mV a – 200 mV jako platný signál.

Ovládání pomocí softwarového vybaveni RobotTerminal

Nastavování a ovládání motorů je prováděno za pomocí softwarového vybavení dodávaného výrobcem a to pod názvem RobotTerminal. Používání RobotTerminálu lze pouze v módu Manage nastaveném na řídicí jednotce. Po tomto správném nastavení můžeme spustit tento software a provést další nastavení.

Spuštěním RobotTerminálu je podmíněno nastavením připojení. Kliknutím na Setup a posléze na Connect můžeme nastavit připojení jednotky CM 2+.[obr.24] Záložka files slouží k přenosu souborů do paměti řídicí jednotky [2].


Obrázek 8 Nastavení připojení CM 2+

Kliknutím na Connect se zobrazí tabulka s výběrem COM portu, na kterém máme zařízení připojeno s nastavením přenosové rychlosti [obr. 9].


Obrázek 9 Tabulka nastavení portu COM a přenosové rychlosti

Vyplněním údajů můžeme přejít na tlačítko Connect a propojit jím PC s řídicí jednotkou CM 2+. Posléze by se nám mělo objevit definování verze firmwaru instalovaného v řídicí jednotce. Dále rychlost připojení mezi řídicí jednotkou a PC a na stejném řádku i nastavení rychlosti mezi motory RX 64. Hodnoty rychlosti jsou vyjádřeny v Baudech za vteřinu. Na následujícím řádku jsou vypsány identifikace jednotlivých motorů a pod nimi počet zařízení, které řídicí jednotka našla celkem. V dalším řádku je možné již přímo ovládat zvolený motor 001[obr. 26], [2].


Obrázek 10 Detekce firmwaru, rychlostí a zařízení při spuštění RobotTerminálu

Program je specifický příkazovým řádkem, ve kterém definujeme příkazy pro jednotlivé motory, příklady příkazů můžeme vidět na [obr. 11].


Obrázek 11 Použité funkce pro ovládání motorů přes RobotTerminal

  • DUMP – vytiskne kontrolní tabulku námi zvoleného motoru
  • ID – pomocí tohoto příkazu nastavujeme ID motoru
  • CID – přepnutí na jiný motor
  • READ – při vypsání adresy a velikosti se zobrazí nastavení dané adresy
  • WRITE – zápis resp. změna nastavení adresy
  • REG_WR – zápis instrukce pomocí adresy a dat (využívá tzv. safe módu) zvolená adresa a data se do této adresy zapíšou, ale provedou se až po volání funkce ACTION
  • Go – instrukce pro otáčení motoru ve smyslu nastavení pozice a rychlosti
  • HEX – funkce využívaná pro převod hodnot z desítkové do hexadecimální a naopak
  • RESET – provede reset motoru a nastavení všech jeho parametrů do továrního nastavení
  • PING – instrukce pro ověřování správné komunikace mezi motorem a řídicí jednotkou
  • SWR – funkce využívající nastavování více motorů najednou
  • SCAN – zjišťuje počet zapojených motorů k řídicí jednotce
  • LED – pomocí této funkce může nastavovat LED diody na motoru, tovární nastavení je definováno na reakci při vzniku chyby
  • BAUD – měníme rychlost přenosu dat
  • SEARCH – vyhledá připojené motory
  • Update – slouží pro přehrání firmwaru motorů

Příklad softwarového vybavení mobilního robotického podvozku

V souvislosti s vytvářením softwaru je lépe zachovat i vlastní příkazový řádek využívající stejné instrukce jako software výrobce, díky kterému můžeme nastavovat jednotlivé vlastnosti motorů a předcházet dvojímu spouštění vyvinutého softwaru se softwarem od výrobce. Vytvoření jednoduchých tlačítek, pro ovládání pohybu vpřed, vzad, vlevo a vpravo, provádíme rychlejší testování nastavených hodnot motorů a specifickou vazbu na tvoření celého uživatelského rozhraní.


Obrázek 12 Software pro mobilní podvozek s využitím motorů RX 64

Závěr

Článek představuje možnou využitelnost servomechanismů RX 64 v návaznosti na tvorbu mobilních platforem, pro specifické využití v dálkovém řízení. Vlastnosti, které tyto motory přináší, umožňují programátorům, popř. uživatelům měnit plně jejich charakteristiky pro maximální splnitelnost požadavků. Jednoduchý přístup a správa servomechanismu přes řídící jednotku umožňuje, i začínajícím programátorům, pochopit celkovou provázanost systému motor – řídící jednotka – PC.

Poděkování

Tento článek vznikl za podpory grantu IGA Univerzity Tomáše Bati ve Zlíně, Fakulty aplikované informatiky, číslo IGA/47/FAI/10/D a Evropského Fondu pro Regionální Rozvoj při projektu CEBIA-Tech No. CZ.1.05/2.1.00/03.0089.

Seznam použité literatury

  1. ROBOTIS: RX-64 MANUAL (ENGLISH) [online]. [cit.:2010], dostupný z WWW: <http://www.robotis.com/>
  2. ROBOTIS: CM-2+ MANUAL(ENGLISH) [online]. [cit.:2010], dostupný z WWW: <http://www.robotis.com/>

Napísať príspevok