Vytvořeno: 2011-04-17 19:45:27
Změněno: 2011-11-07 14:59:28
Již potřetí pořádal Freescale Semicondutors ČR soutěž pro studenty českých a slovenských elektrotechnických vysokých škol. Úkolem bylo zkonstruovat inteligentní auto na autodráhu, které bude schopné se během závodu naučit tvar neznámé dráhy a zajet na ní co nejrychlejší čas. Této soutěže jsem se zúčastnil spolu s mým kamarádem Ondřejem Pencem a našemu týmu "Pangejt Riders" se podařilo umístit na 2. místě v univerzitním kole a na 1. místě v Česko-Slovenském finále. Rád bych proto zveřejnil pár detailů o našem vítězném autě.
Pozn.: Následující řádky nebudou obsahovat detailní popis technických řešení, výpočty a rozbor software, ale půjde spíše o komentovanou galerii fotografií a zdroj možné inspirace pro budoucí účastníky dalších ročníků této soutěže.
První kolo závodů jsou univerzitní finále na jednotlivých školách. Univerzity s malým počtem účastníků nebudou mít samostatné finále, ale spojené s jinou školou. Např. Liberečtí mohou přijet závodit do Prahy. Plán všech univerzitních závodů se ještě upřesní podle počtu registrovaných. Nejlepší z univerzit postoupí do Velkého finále, které se koná 16.4.2011 v Rožnově pod Radhoštěm v sídle firmy Freescale. Vítěz Velkého finále v Rožnově si odnese peněžitou cenu 600 Euro, a další v pořadí získají vývojové kity.
Jak již bylo řečeno, soutěž spočívá ve zkonstruování elektroniky a implementace software pro realizování plně autonomního autodráhového auta. To musí být schopno v prvním neměřeném kole co nejspolehlivěji identifikovat náhodně sestavenou trať a následně co nejrychleji zajet 10 kol. Dráha se skládá z předepsaných dílů Carrera Evolution a jejich tvar je tedy předem známý. Pokud auto vypadne z dráhy, soutěžící jej smí znovu nasadit, avšak výpadek znamená velkou časovou ztrátu. Právě výpadek zavinil, že se mému týmu nepodařilo v univerzitním kole zvítězit. Závod se jede na 2 jízdy, v pravé a v levé dráze, součet časů obou jízd určuje výsledné pořadí. Dráha hlavního závodu je účastníkům neznámá až do začátku závodu.
Dále je potřeba respektovat pravidla týkajícího se samotného auta. Nutné je použít originální podvozek, karoserie, vodící díl, motor a pneumatiky auta Carrera Audi R8 nebo BMW Z4M Coupe bez jakýchkoliv mechanických úprav. Přítlačné magnety, které jsou součástí sériových autodráhových aut Carrera, nejsou povoleny. Auto může být vybaveno jakoukoliv elektronikou, ale pouze uvnitř karoserie. Jeho váha nesmí překročit 125g a může být vybaveno pouze jedním přepínačem a jedním trimrem, které mohou být přenastavovány i během závodu. Jiné úpravy na autě v průběhu závodu povoleny nejsou.
Naše BMW Z4M Coupe nebylo možné osadit dodanou deskou určenou pro Audi R8 (model se kterým se závodilo v minulém ročníku této soutěže) a bylo nutné navrhnout elektroniku novou. Zapojení vychází ze staré elektroniky a navíc bylo doplněno o několik dalších "vychytávek". Elektroniku jsme navíc z důvodu nedostatku místa a lepšího rozložení hmotnosti rozdělili na dvě samostatné desky.
Jednou z nejdůležitějších funkcí základní desky je úprava napájecího napětí pro ostatní periférie. Celkem je pro filtraci napětí získaného z napájecích kolejí použito šest 220uF elektrolytických kondenzátorů. Vyfiltrované napětí je pak přivedeno na H-můstek MC33931 určený pro řízení motoru a na low-drop stabilizátor, který napájí logické obvody. Uprostřed desky byl umístěn hlavní akcelerometr MMA7361, kterým je měřeno odstředivé zrychlení. Pro potřeby ladění byl osazen dvoupólový přepínač (z originální elektroniky Carrera) a trimr. Pro potřeby odometrie se na této desce navíc nacházejí snímače cílové čáry, snímač (otáček) rozety předního kola a konektor pro připojení snímače otáček zadních kol.
Na desce je vidět několik úprav dělaných na poslední chvíli. Prvním z problémů byla závažná chyba na propojovacím konektoru (i přes několik podrobných kontrol návrhů se povedlo prohodit vodiče napájecího napětí). Při testování navíc došlo při vyjetí auta z dráhy k poškození jednoho ze spojů DPS, který byl nahrazen velice nevzhledným kusem drátku.
Přes 24 pinový konektor je na základní desku připojena procesorová deska. Ta je osazena 32bitovým mikrokontrolérem ColdFire V1 (MCF51JM64), který provádí veškeré řízení auta. Pro potřebu updatování firmware a čtení dat z microSD karty byl k němu připojen miniUSB konektor. MikroSD karta byla využívána pro ukládání telemetrie. USB je také použito pro nabíjení Li-Pol článku prostřednictvím obvodu MAX1555. Li-Pol Zippy 70mAh (známá například z miniaturních vrtulníků) je využívána pro vykrývání výpadků napájecího napětí na kříženích a při úplném vypadnutí auta z dráhy. Dále je na zadní části plošného spoje umístěn záložní akcelerometr MMA7361, který nebyl příliš využíván.
I na procesorové desce bylo nutné provést pár uprav. Dle potisku je vidět, že na levé části desky měly být použity elektrolytické kondenzátory (stejné jako na základní desce), ale kvůli špatnému odhadnutí prostoru nad deskou musely být nahrazeny menšími tantalovými kondenzátory. Nepřehlédnutelné odpory, připájené k mikrokontroléru, byly přidány pro zvýšení spolehlivosti (bez této úpravy často docházelo k nechtěnému zapínání bootloaderu).
Zvláštní kapitolu jsem chtěl vyhradit i optickým snímačům. Ve všech případech jde o infračervené odrazné brány tvořené LED a fototranzistorem. V případě snímačů startovní čáry jde o LED L-934F3C a fototranzistor L-93DP3BT v 3mm pouzdru. Tento snímač byl použit i pro zvýšení robustnosti detekce křížení na trati.
Na další fotografii je pohled na reflexní IR bránu GP2S60 a rozetu předního kola. IR bránu (o velikosti cca 3x2mm) bylo nutné připájet "postavenou na bok". Stejný snímač byl použit i pro zadní kola. Přesněji pro měření na rozetě nalepené přímo na hnacím ozubeném kole motoru. Z fotografie je patrné, že pro dosažení co nejlepších výsledků měření je nutné umístit IR bránu do vzdálenosti menší než 1mm.
Většinu času, který jsme soutěži věnovali, spolklo programování firmwaru řídícího mikrokontroléru. Software byl vyvíjen ve vývojovém prostředí Freescale CodeWarrior 6.3 a pro ladění algoritmů a zpracování naměřených dat jsme použili prostředí MATLAB. Právě zpracování dat a ladění identifikace zabralo nejvíce času. Po odladění identifikace přišlo na řadu ladění závodního módu a spolehlivosti všech algoritmů. Úpravám se nevyhnul ani USB bootloader určený pro aktualizaci firmware.
Standardní bootloader vychází z aplikačního listu AN3748 a byl panem Milanem Brejlem (pořadatelem soutěže) upraven tak, že k jeho spuštění došlo pouze když na kartáčích auta nebylo detekováno žádné napětí. Toto řešení nebylo s naší elektronikou příliš spolehlivé. Často docházelo k jeho nechtěnému zapnutí, pokud bylo auto nešikovně položeno na dráhu. Dalším faktorem byly relativně velké filtrační kondenzátory ve snímači napájecího napětí. Proto bylo zapojení procesorové desky přizpůsobeno tak, aby mohl software přímo detekovat napětí na USB a auto nemuselo čekat na ustálení napětí na kartáčích.
Další úpravou byla možnost přepínačem zvolit zda bude USB využito pro bootloader nebo pro čtečku karet. K této úpravě jsme byli donuceni, jelikož konstrukce auta neumožňovala pohodlnou manipulaci s SD kartou. Základem pro toto vylepšení byl referenční popis návrhu USB čteček pro SD karty DRM104.
Data byla měřena při průjezdu dráhou konstantní rychlostí, která byla nastavena tak, aby auto bezpečně projelo všemi segmenty dráhy. Základem identifikace je správná filtrace naměřených dat. Po experimentech s IIR filtry byl pro jednoduchost použit FIR filtr o délce 128. Vyfiltrovaná data byla následně prahována dle změřených hodnot odstředivé síly typických pro jednotlivé druhy autodráhových dílů Carrera. Následně je z naprahoványch hodnot sestavená objektová mapa obsahující informace o typu dílu a jeho délce a auto se přepne z identifikačního na závodní mód.
Po získání správné mapy je možné přepnout auto do závodního módu. V tom jsou přenastaveny konstanty regulátoru z identifikačního průjezdu tratí na agresivnější jízdu a závodní algoritmus začne mapu procházet. Díky odometrii z předních kol ví auto kde se přesně nachází a jaké maximální rychlosti může dosáhnout bez toho, aniž by došlo k přetáčivému smyku. Zároveň je bráno v potaz jaký díl za aktuálním následuje a dle toho může být dříve dobržďováno nebo naopak zrychlováno, pokud je další úsek rovinka nebo méně prudká zatáčka. Maximální rychlosti byly určovány experimentálně a jejich velikost je možné v malém rozmezí korigovat pomocí trimru.
Pro nejhorší možný případ, tedy vypadnutí auta z dráhy, bylo třeba řešit včasné zapnutí záložního Li-Pol článku tak, aby nešlo k vymazání paměti mikrokontroléru. Ten je připojen ihned po zadetekování nízkého napětí na kartačích auta a to na 15 vteřin. Do té doby je nutné auto položit zpět na dráhu, jinak dojde k odpojení článku a vypnutí veškeré elektroniky. Po obnovení napájecího napětí je záložní zdroj vypnut a auto pokračuje identifikační rychlostí až do cíle, kde dojde k opětovnému přepnutí na závodní mód.
Do dalšího ročníku soutěže odstraníme kosmetické chyby v elektronice a s největší pravděpodobností bude baterie senzorů rozšířena o gyroskop. Nakonec bych chtěl poděkovat Ondrovi Pencovi, který měl na starosti mimo jiné velice povedený identifikační algoritmus, se kterým byla radost závodit, a pořadateli soutěže - společnosti Freescale Semicondutors ČR.
Tweet |