Jste zde

i.MX6Q v praxi: Robotická ruka hraje Člověče, nezlob se!

Ptáte se, co všechno zvládne jeden procesor v jednu chvíli? Vyzkoušeli jsme to na jednoduché aplikaci a zde jsou výsledky – demonstrační projekt spojující zpracování videa, řízení motorů a grafické zpracování aplikace včetně dotykového ovládání.
Vysoký výkon, obrovské množství hardwarových periferií, zpracování 2D i 3D obrazu, práce s HD videem, grafické rozhraní a mnoho dalšího najdeme u desky SABRE SD s aplikačním procesorem Freescale i.MX6Quad (obr. 1).
 
Obr. 1: Deska SABRE SD od Freescale
 
Vysoký výkon zaručují čtyři jádra ARM® Cortex®-A9 a paměť DDR3 SDRAM o velikosti 1 GB. Deska disponuje až čtyřmi způsoby připojení displeje a umožňuje i připojení několika displejů současně. Mnoho z těchto výhod bylo použito právě pro projekt ovládání robotické ruky.
 

 

Základní vlastnosti desky SABRE SD

 
  • Procesor Freescale i.MX6Quad 1 GHz ARM Cortex-A9
  • 1 GB DDR3 SDRAM
  • 8 GB eMMC Flash
  • 2x LVDS pro připojení displejů
  • HDMI konektor
  • Paralelní připojení LCD displeje
  • MIPI DSI pro připojení displeje
  • Audio kodeky
  • 2x digitální mikrofon
  • 2x 3,5 mm audio jack
  • mPCIe konektor
  • 2x SD/MMC slot na kartu
  • SATA konektor
  • 10/100/1000 Ethernet
  • USB 2.0 OTG (micro USB)
  • JTAG konektor
  • USB 2.0 debugovací port
  • Akcelerometr
 
 

Robotická ruka

 
Robotická ruka byla zakoupena od společnosti Lynxmotion a ovládá se přes sériový port jednoduchými příkazy, které se skládají z čísla serva, nastavení pozice serva a dobou nastavení serva do dané pozice. Těchto příkazů je možné poslat několik za sebou nebo je kombinovat tak, aby se nastavovalo několik serv současně.
 
 

Vlastní projekt

 
Z pohledu hardwaru bude deska SABRE SD propojena s robotickou rukou pomocí převodníku z USB na sériový port. Dále je k desce připojena webová kamera podporující standard UVC (Universal Video Class), myš, klávesnice a dva video výstupy. Jedním je LVDS, ke kterému je připojen 10“ dotykový displej a druhý je HDMI, kam je připojen monitor. Vše je naznačeno blokově na obr. 2.
 
Obr. 2: Blokové schéma zapojení všech součástí
 
Celé zařízení je ovládáno programem, který je uložený na SD kartě. Spolu s ním je na kartě uložený i celý operační systém a zavaděč systému. Deska běžně podporuje dva operační systémy – Linux a Android.
 
V tomto projektu byl zvolen OS Linux Yocto, který byl zkompilován přesně pro tuto desku i s přidanými ovladači pro USB převodník a webovou kameru. Navíc byly přidány balíčky pro Qt4 a OpenCV. Zároveň byl použit zavaděč U-Boot pro spuštění systému, kde bylo nutné nastavit použití dvou zobrazovacích jednotek.
 

 
 

Program

 
Program je napsaný v jazyce C++ a byly použity knihovny pro grafické zobrazení Qt4 a pro práci s obrazem OpenCV. V programu se lze přepínat mezi několika režimy řízení robotické ruky. Prvním je manuální režim, který umožňuje nastavení každého serva zvlášť posuvníkem, jak je naznačeno na obr. 3.
 
Obr. 3: Manuální režim
 
Obr. 4 zobrazuje režim nastavení pozice. Na dotykovém displeji volíme pozici úchopu robotické ruky – na obrázku naznačeno červenou tečkou. Program přepočítá pozici úchopu na úhly jednotlivých serv. Takto je možné robotickou ruku ovládat mnohem snadněji.
 
Obr. 4: Režim nastavení pozice
 
Poslední režim ovládání je hra podobná „Člověče, nezlob se!“. Hodí se kostkou a robotická ruka přesune figurku o hozený počet polí. Je možné házet dvěma způsoby. Prvním způsobem je elektronická kostka, která umožňuje i autonomní hru, kdy si program háže kostkou pomocí generátoru náhodných čísel stále dokola. Druhým způsobem je fyzická kostka, kterou sleduje webová kamera a pomocí jednoduchých funkcí z OpenCV spočítá počet teček na kostce. Posun figurky můžeme rovněž ovládat kliknutím na určité políčko na displeji (obr. 5).
 
Obr. 5: Hra „Člověče, nezlob se!“
 
Při ovládání robotické ruky můžeme zároveň přehrávat video na monitoru a to buď z kamery, nebo ze souboru, popřípadě datového toku.
 
 

Závěr

 
Byla vytvořena aplikace, která ukazuje výkon procesoru i.MX6Quad a desky SABRE SD. Aplikace zvládá ve stejném čase snímat obraz z kamery, zpracovávat jej a reagovat na něj.
 
Obr. 6: Sestava hrající „Člověče, nezlob se!“
 
Mezitím dále po sériové lince ovládá robotickou ruku a kromě toho ještě přehrává video z SD karty na monitoru připojeném přes HDMI. Během toho všeho je možné aplikaci ovládat na dotykovém displeji a tím měnit chování nejen robotické ruky, ale i celé aplikace. Finální podoba demonstrační aplikace je zachycena na obr. 6 a 7.
 
Obr. 7: Pohled na řídicí desku
 

Zdroje

 
 
Freescale a logo Freescale jsou ochranné známky společnosti Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Všechny ostatní názvy jsou majetkem jejich vlastníků. ARM a Cortex jsou ochranné známky společnosti ARM Ltd.  © 2014 Freescale Semiconductor, Inc
 
 
Hodnocení článku: