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 SABRE SD desky s aplikačním procesorem Freescale i.MX6Quad (Obr. 1). Vysoký výkon zaručují čtyři jádra  ARM® Cortex®-A9 a DDR3 SDRAM paměť o velikosti 1GB. 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.
rdimx6sabrebrd_bd

Obr. 1: SABRE SD deska od Freescale

Souhrn vlastností SABRE SD desky

Akcelerometr

  • Procesor  Freescale i.MX 6Quad 1GHz ARM Cortex-A9
  • 1GB DDR3 SDRAM
  • 8GB 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,5mm 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

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 je propojena SABRE SD deska 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ázku 2.
block_diagram

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 je možné se 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ázku 3.
img_5936_cr

Obr. 3: Manuální režim

Obrázek 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.
img_5937_cr

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á kostkoa, kterou sleduje webová kamera a pomocí jednoduchých funkcí z OpenCV spočítá počet teček na kostce. Také je možné ovládat posun figurky kliknutím na určité políčko na displeji (obr. 5).
img_5938_cr

Obr. 5: Hra „Člověče nezlob se!“

Zároveň při ovládání robotické ruky je možné 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. Dále mezitím aplikace ovládá robotickou ruku po sériové lince 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ázku 6 a obrázku 7.
img_5725_aa

Obr. 6: Sestava hrající  „Člověče nezlob se!“

img_5588_aa

Obr. 7: Pohled na řídicí desku

Video

Zdroje

http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=RDIMX6SABREBRD

http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX6Q

http://www.lynxmotion.com/

Autoři

Vilém Závodný a Jiří Kotzian, MPU Rožnov, Freescale

 

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

 

Poznámka:

Publikováno i na serveru www.hw.cz – http://www.hw.cz/konstrukce/imx6q-v-praxi-roboticka-ruka-hraje-clovece-nezlob-se.html

Komentovat

Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označena *

*

*