A rover:   
A rover mechanikája eredetileg a tavalyi versenyre készült, amin azonban nem lett bevetve. Az idei küldetésre történő átalakítás jegyében
erltávolítottam a hajócsavarokat, illetve az azokat hajtó motorokat. A 4 motormeghajtóból egy feleslegessé vált, ezért az elektronika egy része roveren belül át lett helyezve az orr részbe.

A rover fedélzeti elektronikája az alábbi elemekből épül fel:

Asus WL-500GP router. Kettős feladatot lát el: egyrészt az mjpg-streamer nevű program segítségével továbbítja az USB portjára kötött webkamera képét streameli másrészt pedig az egyik soros portján áthaladó forgalmat továbbítja a ser2net program segítségével a külvilág felé.
A router 5 Voltos tápfeszültséget igényel, amit egy LM2673-ból épített kapcsolóüzemű DC-DC  konverter állít elő az akkumlátor 10-14 Voltjából.
A gyári szoftverét természetesen lecseréltem OpenWrt-re. Jelenleg 18657-os revíziójú napi snapshot megy rajta. 2.6.32 kernellel, nyílt forrású
b43 driverrel az eredeti Broadcom kártyával.

A mozgatást áttételes - kefés DC motorokkal oldottuk meg. A hajtáson túli oldalra szereltünk egy 200 osztásos enkódert, amivel a megtett távolságot tudjuk mérni. Sajnos a főtengelye nem elérhető a motornak, így nem lehet normális fordulatszám-szabályzást megvalósítani ezzel a konstrukcióval. A motorokat H-híddal vezéreltük, amelyeben PC alaplapból kibugázott N csatornás FET-ek teljesítenek szolgálatot. A fetek meghajtásáról A3940 hídmeghajtók gondoskondak.

Az elektronikai rendszer fő eleme a központi panel, amelyen egy Atmega128 teljesít szolgálatot. Ez figyeli az enkódereket, vezérli a motorokat, a kamera szervókat, monitorozza a tápfeszültséget, illetve kommunikál a külvilággal a routeren keresztül.  A soros kommunikáció alapját az STK500 programozó
protokollja alapján alakítottuk ki. Kissé ágyúval verébre a proci erre a feladatra, mert jelenleg 5K programmemória van felhasználva, illetve van még szabad IO bőven.

Technikai adatok:
Rover:

Fizikai méretek:
450x350 mm
Súly:
4.5 kg (akkumulátorral, lifttel)
Meghajtás:
állandó négykerékhajtás, keréksoronként külön vezérlés
Kerekek:
Rebound játékautóból átmérő: 10 cm
Áttétel:
1:60
Mikrokontroller
Atmega128 @ 14.746 Mhz
Motorvezérlő:
A3960 + 4db N fet
Tápellátás:
10 cella 4Ah NiMh Bébi akkumulátor direkteben a motorvezérlőköz
5V DCDC konverterrel a routernek
5V 7805-el előállítva a mikrokontrollernek, szervóknak
Kamera:
Logitech QuickCam Pro for notebooks@960x720
Vezetéknélküli kapcsolat:
Asus WL500GP RAM 128 MB-ra bővítve


Szoftverek:

A PC-n futtatott szoftvereket C++-ban írtam a Qt keretrendszer segítségével.
Ezen kívül az alábbi könyvtárakat használtam:
Qwt : függvényrajzoló csomag Qt-hoz
QextSerialPort : soros port komponens  Qt-hoz
QLed : egyszerű grafikus LED komponens.

A fejlesztés Linux alatt végeztem, de minden további nélkül működnek Windowson, és Mac-en is.
A biztonsági mentést, és az archiválást subversion segítségével oldottam meg, amelyet a
Szilárdtesfizika Tanszék hostolt.

Földbázis:
A főablak 2 fő részre bomlik: a kép nagy részét valamelyik kamera képe veszi el, a jobb oldali panelon pedig a kimenő és bejövő üzenetek találhatóak.
A menusorból lehet előhívni különféle beállításablakokat, amelyeken a grafikus elemek, képfeldolgozó és egyéb komonensek beállításait lehet módosítani.
Itt található továbbá a szinkornizációs menü is, amellyel a marsbázis és földbázis által egyarányt használt komponenesek paramétereit lehet beállítani egyszerre. A térképre egér segítségével lehet felvinni a diszkrét pontokból álló bejárni kívánt pályát, amelyet egy csomagban lehet elküldeni a marsbázisra.


Marsbázis:
A marsbázis feladata a földbázistól jövő üzenetek interpretálása, és ez alapján a rover navigálása. Ezen felül diagnosztikai üzeneteket küld vissza.
A tesztelés megkönnyítése érdekében lehetőség van a pálya direkt berajzolására is.


Ami nem lett kész:

A feldélzeti elektronika tervezése során nem volt jó ötlet a széttagolás mivel ez kábeldzsungelt eredményezett, ami hibaforrás.
A router tápellátásával ugyna nem voltak gondok, de hatékonynak korán sem mondható.
2009 nyarán jelent meg az Ubiquity cég Routerstation nevű routerboardja, amely mind méretét tekintve mind teljesítményében optimálisabb választás volt.
Mivel a bemeneti tápfeszültésget POE-n keresztl kapja, ezért széles tápfesztartományban képes működni, így a kapcsolóüzemű konverter elhagyható.
Beszereztünk hát egy ilyen routert, és terveztem rá egy gyerekkártyát.
Ez a következő elemeket tartalmazta:
Két A3959  motormeghajtó, N fetes integrált Imax: 3A
BA6219: lift motomeghajtó: bipoláris tranyós 1.5 A max.
Atmega32 @ 14.756 Mhz mikrokontroller.
Bónuszként terveztem rá egy ADXRS150 giroszkópnak helyet.



A cucc március végén készült el, azonban csak addig jutottam el, hogy leteszteljem a részegységeket.
A feladat azért került C vágányra, mert az űrlift kivitelezése, illetve a navigáció tesztelése magasabb prioritást élvezett.

A képfeldolgozó algoritmusom kiválóan párhuzamosítható műveletekből állt. Proof of concept gyanánt csak a szintrevágást leimplementáltam a
Qt OpenCL bindingje segítségével. QBenchmark barátunk szerint ez 300% sebességnövekedést jelentett egy nVidia GeForce 9600M GT kártyával felvértezett laptopon. Sajnos a lapotopomban lévő kártyát nem supportolja az Ati Stream SDK, így a dolog ennyiben maradt.

Köszönet:
Daróczi Lajosnak amiért segített a mechanikai kivitelezésben
Metallelektró Méréstechnika Kft-nek a kölcsön kameráért