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 *

*

*

By continuing to use the site, you agree to the use of cookies. more information

Užíváme cookies, abychom vám zajistili co možná nejsnadnější použití našich webových stránek. Pokud budete nadále prohlížet naše stránky předpokládáme, že s použitím cookies souhlasíte.

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close