PiTFT - periferie, která dává smysl

24. srpna 2014 v 6:15 | Petr |  Roboti
Kdysi jsem ostře protestoval proti robotům, kteří si "na zádech nesou laptop" a tvrdil jsem AVR zmákne všechno. Pak jsem zabrousil mezi 2D sonary a složitá čidla a můj názor se najednou změnil na "je třeba na palubu dostat co největší výpočetní výkon" a zároveň jsem vždy tvrdil "serverovou farmu do robota ne". To zánlivě směřuje k nějaké schisofrenii, ale spíše to berte tak že s roboty je ta potíž - stejná jakou řeší matička příroda se zvířátky - že totiž na palubě by opravdu mělo být "co nejvíce výpočetního výkonu" ale zase jenom tolik aby robot své počítače unesl a (bateriem) uživil.

Takže jsem své roboty dlouho - a vlastně dodnes stavěl kolem procesorů Atmel AVR a jako správný vidlák, který vše staví kolem vidlí, tak de facto ATMega8 mi stačila dodnes a když jsem potřeboval "opravdu rychlý procesor" tak jsem použil ATmega88, která má povolen takt až do 20MHz.

Kolem těchto procesorů jsem si postavil, co dneska frikulíní označují jako "ekosystém" tedy mám své programátory své převodníky RS232 na ladění, své "blinkenlichen" - LEDky kterými roboti dávají najevo své vnitřní stavy atd.

Jenomže dneska mám ambice postavit svého (posledního ?) velkého robota - a tam už AVR nedává příliš smysl. Lépe řečeno v rámci odladitelnosti celého systému dávají AVR smysl jako inteligentní periferie nějakého centrálního počítače.


Tak jsem přešel na ideu "laptopu na hřbetě robota". A první, co jsem koupil byl v roce 2010 Asus EEE Pc 1000D - což je netbook, který má jako procesor nějaký podtaktovaný mobilní celeron na 900 MHz - sympatický počítač - žena jej dodnes používá na surfování po internetu.
Pak jsem se vyloženě zamiloval do EEE PC velikosti 9 palců - což svého času byl nejmenší netbook - a taky jsem od Kamila koupil Ausus EEPC 901 - dokonce s dotykovou deskou vhodnou k vestavění do displeje abych měl dotykový displej.

Nebudete tomu věřit, ale při stěhování s novou ženou do nového bytu jsem rozbil jedinou věc - zmíněný dotykový displej - takže malý Asus zůstal bez něj - a je nyní používán k surfování po internetu z postele a k experimentům s různými linuxy.

Vtíp je v tom, že laptop v robotu stále nedává moc smysl - a tak jsem uvažoval jak by "centrální počítač" měl vypadat :
  • Patrně by měl být pod nějakým lightweight linuxem
  • Patrně by měl mít dotykový displej k hrubému nastavování robota na soutěži "klikáním na veliká tlačítka"
  • Patrně by měl mít základ pro komunikaci s AVR - tedy UART
  • Měl by být "vidláku-vzdorný" a "vidláku-zvládnutelný"

Kdysi už tady takový "Systém" byl a to Friendly ARM - a dokonce i friendly ARM jsem měl možnost koupit pod rukou, ale nekoupil jsem - protože mi "vidláku- zvládnutelnost" Friendly Armu zdály nedostatečná - zejména kvůli malé "komunitě" užvatelů. Navíc tento systém v počátcích měl pouze 400 MHz ARM a WINDOWS CE !!!

A nakonec "budiž Raspberry Pi" - ne že by tento "systém" se mi zdál v něčem lepší než kterýkoliv jiný, ale komunina "vidláků" kolem něj, z nichž někteří jsou na tom s počítači ještě hůře než já - je impresivní. Jenomže pořád to mělo nějakou chybku - a v tomto případě - ideu jak si autoři představují použití tohoto stroje - děcko šlohne otci monitor s HDMI vstupem, a máti zase USB klávesnici a bude se tvářit, že má "plnohodnotný počítač s linuxem" ? To není příliš kompatibilní s ideou "robotického mozku".


Naštěstí je tu Adafruit a jejich projekt /produkt - v nadpisu zmiňované - PiTFT. Což je "shield" který se nasadí na Raspberry Pi a odtud si vezme hardwarové SPI kterým datově živí malinkatý dotykový TFT displej 320x240 pixelů. Prostě "friendly ARM" jen postavený z jiných komponent - vidlákum na míru.

Přestože jsem téměř 100% přesvědčen, že toto bude budoucí mozek mých robotů - přece jenom bude nutná nějaká drobná práce - minimálně si budu muset postavit "mezi-shield" mezi displejem a Raspberry, kde bude "power management" a nějaké oddělení/přizpůsobení UARTU. Asi budete namítat leccos, ale berte to tak, že jsem "spíše na ty drátečky" a vrcholem mého počítačového řízení robotů doposud byla "hlavíčka pentia 6" o které jsem tady taky psal.

Pro dnešek už zbývá jenom tradiční rada pro blondýny - budete se divit, ale s WIFI kartou stačí Raspberry Pi i na porno na internetu a dokonce jej zvládá až do rozlišení 1920x1080 pixelů...
 

Buď první, kdo ohodnotí tento článek.

Komentáře

1 RXD RXD | 24. srpna 2014 v 8:54

Poslední věta Vašeho článku mne zděsila. Možná že by se ono výšeuvedené sledování porna 1920x1080 na Raspberry s wifi kartou dalo nazvat jako "porno2Dtagy"...

2 m.marianek m.marianek | 24. srpna 2014 v 17:32

Klid, rada je určena pro blondýny, jejich mozek v tomhle rozlišení stejně víc snímků za sekundu nepobere. Mužský mozek je na tom jen o trochu lépe ze streamu 1920x1080 vytvoří stream cca tak 300x200, který osahuje data typu: kozy, bradavka, vagína, clitoris, anál... Ostatní data jsou při této ztrátové kompresi zahozena jako nadbytečná "Miláčku, všiml sis jaké měla ta holka na začátku scény nádherné sexi prádélko? Ne, ona nějaký měla? A ta podprsenka... No jo, to jo, kozy měla fakt vobrovský." Na druhou stranu ale zase ten hardvarový zadrátovaný preselektor dat, to je fakt výkon. Bohužel je to jen jednoúčelový hardware.

3 m.marianek m.marianek | 24. srpna 2014 v 17:39

Pane kubáči, kdyby váš požadavek nebyl ten displej, tak bych kuchnul nějaký levný router, je tam USART, wifi, ethernet, USB a pár GPIO by se taky našlo. Problém je s dokumentací k procesorům a absence videorozhranní. Výkon je 400 až 600MHz a díky wifi  by měl robot spojení s hlavním řídícím počítačem a obsluhou.

4 petr-kubac petr-kubac | 24. srpna 2014 v 18:08

[3]: Přesně v tom je problém - kouknete na stránky openWTR a tam se dovíte že router XXXX verze 1.2.7 je 100% kompatibilní zatímco verze 1.2.8 je 100% nekompatibilní a jak poznáte kterou verzi e-shop nabízí - koupíte a když vám sázka nevyje - vyhodíte (nebo prodáte za cenu elektroodpadu)

5 m.marianek m.marianek | 24. srpna 2014 v 19:34

[4]: Ano, jsou s tím trochu starosti a těžko se zde vytváří "haw to" pro blbý, ale to je daň za poměr cena/výkon, která vychází (zatím) bezkonkurenčně nejlíp díky obrovským seriím routerů (a výprodejovým cenám starých). Navíc se mi zdá, že tu kompatibilitu na openwrt trošku přehání, jádro linuxu by mělo být kompatibilní takřka na všech verzích rozchoditelného routeru (procesor a paměť jsou zpravidla stejné) a bude se to lišit jen ovladači pro rozdílný hardware, problém je, že dokud nikdo nenapíše ovladač pro ten kousek plíšku, bude zde nekompatibilita, která by ovšem nemusela zrovna pro robota vadit. Ovšem pořád se dá koupit konkrétní verze routeru v kamenném obchodě. Já zkoušel OpenWRT rozchodit na TL-WR741 kde psali, že nejde USB, přitom je tam stejný procesor jako u verzí kde USB funguje, stačilo doplnit 4 řádky do zdrojového kódu a přeložit (což je tedy pěknej vopruz) a voila USB funguje a tak je to podle mě s většinou věcí na OpenWrt (a linuxu obecně). Jinak uznávám, že pokud to má být návod pro vidláky, tak router rozhodně není univerzální řešení. Jsou ale typy a verze co mají vše potřebné vyvedené na interním konektoru a tam by to bylo bez problémů (já musel USB vyvést přímo z pinů procesoru - po tomhle se můžu stát mikrochirurgem).

6 Karel Karel | 24. srpna 2014 v 20:51

[3]: Zbytečné, Petr si koupí za podobné peníze jako router raspberry pi (malinu), žere to opravdu 2.5W a má k dispozici SPI a uart, navíc základní sw jen rozbalí na sd kartu, nebo si rovnou koupí i tu sd kartu od výrobce a na pokusy může jen přehazovat SD karty do omrzení. Akorát škoda že tam není jiný napájecí konektor než microUSB

7 m.marianek m.marianek | 24. srpna 2014 v 21:00

[6]: No, je fakt, že malina výrazně zlevnila, ještě nedávno stál router méně než polovinu toho co malina, ale teď už se to srovnává. Mě se na routeru líbí, že je tam v ceně wifi. Pro malinu se zase bude líp psát vlastní software, vzhledem k rozšířenosti to bude mít podporu komunity. Moje hrátky s routerem jsou z doby, kdy ještě malina nebyla a navíc jsem si chtěl hrát se síťovými věcmia na to je zas router ideální (resp ještě ideálnější by byl routerboard, ale zas je dražší).

8 Vladimir Vladimir | E-mail | 24. srpna 2014 v 21:28

Mam nekolik Paspberry-Pi. Dokonce i par tech novych.. Ale nesehnal jsem takovy display.. Tak ze koupil jsem FT800 EVE.. Ale ted problem udelat modul pro jadro.. Nejak se mi to nedari..

9 Vladimir Vladimir | E-mail | 24. srpna 2014 v 21:35

Podotykam ze to bylo kousek pred tim jak adafruit vydala ten modul.. Pred tim tam byli podobne ale byli to spis prevodniki z HDMI na VGA a nebo to byli s video vstupem. A proto ja zacal zkouset ten SPI FT800..

10 Lucki Lucki | E-mail | 25. srpna 2014 v 10:40

Napajeni na malinu neni problem. Nemusi se vyuzivat micro USB, ale da se to pripojit (+5V) na vyvody GPIO. Je to propojene a na draty si dej jaky chces konektor. Dokonce mi to synek uspesne prepoloval a malina kupodivy vydrzela svezi a zdrava. Obdivuhodne.

11 RXD RXD | 26. srpna 2014 v 11:55

Jaké nejmenší rozlišení byste požadoval, abyste mohl spolehlivě rozhodnout, zda se oprvadu jedná o porno2Dtag, případně jaké byste při rozhodování uplatňoval kritéria ?

12 konfo konfo | E-mail | 27. srpna 2014 v 14:54

Obcas sem na blog zabloudim, jsou tu zajimave pohledy na vec ;)

Na Raspberry Pi mam postavenou bakalarku...

Dvoukolový robot s upravenymi servomotory na kontinualni otaceni s optickymi enkodery uvnitr jako pohon, vzdalena sprava pres wifi usb modul, dotykovy display 320x240 napajen i spravovan pres USB port Raspberry, vlastni ultrazvukove senzory pro moznost mereni vice odrazu nez jen toho prvniho a leckdy spatneho (jak je zvykem u komercnich suntu za mnohonasobne vyssi ceny :D) a hlavne arm mikroprocesor + atmel mikroprocesory. To vsechno v miniaturnim baleni.

Napajeni resim uplne nejjednodussi formou "powerbank" - takove ty mobilni baterie pro nabijeni ruznych zarizenich na cestach. Prislo mi totiz tezkopadne zvolit hned delo na vrabce v podobe vykonovych akumulatoru pro RC modely. Je to presneji receno powerbank od Genius s 1A a 2A vystupy, je to dosti  placata krabicka, ktera se mi vleze na spodek robota (pro lepsi stabilitu) a ma tusim kapacitu 8000mAh (nechci kecat, uz si to nepamatuji).

Co se tyce vydrze, pri beznem zatizeni v podobe pojezdu servomotoru, otaceni UZ senzory, zapnuty display jako stavovy display a zapojeny wifi modul pro spravu vzdalenou plochou, tak se maximalni doba provozu pohybuje od 4 do 6ti hodin. Kdyz display odpojim, protoze zrovna neni treba a moc nejezdim, tak se doba vysplha az na 8 hodin.

Servomotory pro pohon jsem zvolil snad jen proto, ze pro jejich ovladani neni potreba zadny slozity obvod, staci primo raspberry a odber pri zatizeni neprekroci 0.6A, coz se mi zridka stava pri bezne jizde, vysokeho odberu se dosahuje jen pri rozjezdu. Kdyz jsem napajel raspberry i serva ze stejne vetve, tak mi raspberry restartovalo kvuli poklesum napajeni. Bohuzel serva nejsou "buhvijak" rychla, ale pro moje potreby staci.

Jiste by to bylo mozne realizovat lepe, kdybych mel po ruce genialniho elektrotechnika :D jsem totiz jen programator s nepatrnymi znalostmi v elektrotechnice. Detaily projektu tu zminovat nebudu :)

Mozna si casem zridim take nejaky blog, kdo vi :)))

13 petr-kubac petr-kubac | 28. srpna 2014 v 7:38

[12]: to využití powerbanky je geniální myšlenka - protože nějaké nabíjení i ochrany tam už jsou a výstup je definovaných 5V - škoda že odedávna (od doby kdy olověnka byla králem) mám jako palubní napětí 12V

14 konfo konfo | 30. srpna 2014 v 16:08

mozna by nebylo od veci zjistit, jestli tech 12V je opravdu treba, jestli obvody s malou upravou nevezmou i 5V (kvuli atmel procesorum, ktere pod 4.5V nedovoli maximalni takt, apod.), 3.3V neni problem menit primo na miste pro dany obvod treba s arm procesorem, ktery ma digitalni vstupy tolerantni 5V. Oblibil jsem si mini desticky s arm procesorem, ktere maji na sobe vse co rpocesor potrebuje a vystupni porty maji shodne s např. 40pin patici. Nejvetsi problem jsem mel s operaky, ktere jsem mel prve napajene alespon 9V a zasiloval jsem na 5V (tudiz jsem napajeni 5V pouzit nemohl), ale pri pouziti rail-to-rail by problem s zesilovanim na uroven napajeni 5V, pro např. atmel procesory, mel odpadnout. Ja zatim rail-to-rail konstrukci operaku nepouzivam, zmenil jsem zapojeni na dvoji napajeni 3.3V a 5V, kdy 3V  mam kvuli ARM procesoru a referencnimu napeti pro ARM a 5V kvuli operakum a Atmel procesorum, ARM ma nektere piny 5V tolerantni, takze na digitalnich vstupech jim 5V nevadi, operaky napajim 5V a zesiluji na uroven 3.3V pro digitalizaci v ARM procesoru, takze rail-to-rail nebylo treba. Mozna si casem dam tu praci operaky vymenit za 3.3V rail-to-rail a vse zhodnotit.

Pokud mate tech 12V dosti tvrdych pro motory, apod. jiste je vhodne 12V zachovat predevsim pro vykonovou/pohonnou cast (a nektere obvody tedy mohou byt pripojene prave na 12V, pokud jsou pred rusenim z napajeni chranene). Ale vytvorit si ciste vetev stabilniho napajeni 5V je dobre, spousta soucastek ma dnes "kamarady" kteri nepotrebuji vice nez 5V, problemem muze byt mozna ruseni analogovych signalu, ale dobre stabilizovanou vetvi napajeni 5V se u robota nic nezkazi :)

..vlastne by bylo zajimave napajet vypocetni cast 5V a separatne pohonnou cast z jineho zdroje, kdy vypocetni casti robota nevadi vybiti pohonnych baterii a teoreticky by mohly vybitou baterii pro pohon kratkodobe nahradit tou baterii pro vypocetni cast. To uz je skoro jako ve Star Treku ... "Presmerujte energii z podpory zivota do motoru!" :D

Komentáře jsou uzavřeny.


Aktuální články

Reklama