miniPOI

Úvod

Mnoho současných autonavigací podporuje tzv. body zájmu, neboli uživatelem definovaná místa (POI) a upozornit, pokud se k takovému bodu blížíme. Toho se v poslední době hojně využívá i např. k upozorňování na umístění nejrůznějších měřičů rychlosti. Cena navigací se však pohybuje v řádu tisíců.

Toto mě přivedlo na myšlenku zkonstruovat jednoúčelové zařízení, které též bude schopno provádět upozornění na POI a přitom bude dostatečně jednoduché, levné, malé a tak bude možné jej nechat trvale v automobilu bez výrazných obav ze zcizení.

miniPOI top

Popis zapojení

Zapojení je na následujícím schématu.

miniPOI schematic

Pozice je snímána externím GPS příjímačem. Ten je připojen konektorem CON1 pres RS-232/TTL převodník MAX232 do sériového vstupu mikroprocesoru ATMEGA128, který řídí dvě LED diody a piezoelement.

Napájení je přivedeno na konektor CON2. D1 je ochrana proti přepólování a L1 spolu s C9 a C10 filtrují rušení. Stabilizátor IC3 zajišťuje 5V pro mikroprocesor a GPS příjímač.

Konektoru CON3 jsou přivedeny JTAG signály mikroprocesoru a reset. Konektor slouží k připojení JTAG programátoru nebo debuggeru JTAG ICE. Pro ISP programátor jsou na plošném spoji umístěny pájecí plošky označené TP_MISO, TP_MOSI, TP_SCK a TP_RESET.

Ve schématu je též pamět EEPROM a konektor pro připojení displeje a klávesnice. V současné verzi ale nejsou využity.

Popis funkce

Data z GPS modulu jsou přijata a dekódována mikroprocesorem, který porovnává aktuální souřadnice s databází. V případě přiblížení k nějakému bodu se rozsvítí červená LED a ozve se pípnutí. Vzdálenost k upozornění se vypočítává z aktuální rychlosti tak, aby přišlo 10 sekund (ale minimálně 120m) před dosažením bodu. Při dostatečném vzdálení od bodu červená LED zhasne. Každu skupinu bodů (jeden .ov2 soubor) lze zařadit do jedné ze z 6ti kategorií, kdy každá má přiřazen jeden z předdefinovaných zvuků.

Číslo kategoriePopis
11x pípne, délka pípnutí 0,2 sec
22x pípne, délka pípnutí 0,2 sec
32x pípne, délka pípnutí 0,3 sec
43x pípne, délka pípnutí 0,2 sec
53x pípne, délka pípnutí 0,3 sec
61x pípne, délka pípnutí 0,4 sec

Zelená LED signalizuje pracovní režim zařízení.

Stav LEDVýznam
NesvítíZařízení není v provozu.
BlikáNení připojen GPS modul nebo počet satelitů je roven 0.
Trvale svítíNormální provoz

Databáze s POI body je uložena v paměti FLASH mikroprocesoru. V EEPROM jsou uloženy ukazatele na jednotlivé skupiny. Pamět FLASH size umožnuje jen 1000 přepsání, přístup k datům v ní uložené je ale velmi rychlý a předpokládá se, že databáze se nebude aktualizovat příliš často. Vývojová verze má pro pokusy připojenou externí EEPROM o kapacitě 64KB. Při eventuelní další verzi by se ale spíše použila dataflash pamět, která také umožňuje více zápisů a disponuje vyšší kapacitou.

Součástí programu je bootloader (AVR911 kompatibilní). Připojením zařízení k sériovému portu (místo GPS modulu) je tak možno aktualizovat POI databázi i program samotný. Bootloader je aktivován přijetím sekvence $PROG!<CR>.

Pro aktualizaci dat byl napsán program PROG. Příklad použití pro dva soubory, kdy první patří do kategoie 1, druhý do kategorie 3, zařízení připojeno na sériový port COM2:

   prog.exe -a1,file1.ov2 -a3,file2.ov2 -c2

Poznámky

Jako GPS moduly byly úspěšně vyzkoušeny moduly Kouwell KW-9883 a NaviLock NL-303P.

miniPOI je namontováno do krabičky KM21. Kvůli displeji jsou LEDky na připojených obrázcích vyvedeny na horní stranu. Správně by však měly být vyvedeny na čelní část krabičky. Rovněž reproduktorek by neměl být umístěn přímo na plošném spoji, ale těsně u čelní části krabičky.

Při oživování zařízení je nutné do mikroprocesoru nejdříve naprogramovat bootloader a pak program miniPOI. Při programování miniPOI je nezbytné vypnout mazání čipu (aby se zároveň nesmazal bootloader). Bootloader se volá z programu miniPOI, takže BOOT reset vektor zůstává na adrese 0x0000. Pro zapsání POI dat se použije program PROG.

Další možností je naprogramovat bootloader s BOOT vektorem 0xFC00, spustit bootloader. Programem AVRProg nebo AVRDude naprogramovat program miniPOI a pak vrátit BOOT reset vektor na adresu 0x0000. Data se zapíší programem PROG jako v předchozím případě.

Seznam věcí, které bych rád při dostatku času realizoval:

Obrázky

Poznámka: Fotografie zobrazují vývojovou verzi, jenž se od verze zde uveřejněné mírně liší.


Plošný spoj zeshora

Plošný spoj zespoda

miniPOI v krabičce

Vývojová verze s LCD a klávesnicí

Soubory ke stažení

Bootloader (avr-gcc) bootloader.zip

Program miniPOI (avr-gcc) miniPOI.zip

Program pro update dat PROG (pouze pro WIN, dev-cpp) prog.zip

Schéma zapojeni, plošný spoj, seznam součástek miniPOI_pcb.zip

Licence

Zdrojové kódy (kromě bootloaderu) jsou šířené pod GPL licencí.

Komerční výroba zařízení (ani jeho odvozenin) není bez písemného souhlasu autora povolena.