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í.
Popis zapojení
Zapojení je na následujícím schématu.
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 kategorie | Popis |
|---|---|
| 1 | 1x pípne, délka pípnutí 0,2 sec |
| 2 | 2x pípne, délka pípnutí 0,2 sec |
| 3 | 2x pípne, délka pípnutí 0,3 sec |
| 4 | 3x pípne, délka pípnutí 0,2 sec |
| 5 | 3x pípne, délka pípnutí 0,3 sec |
| 6 | 1x pípne, délka pípnutí 0,4 sec |
Zelená LED signalizuje pracovní režim zařízení.
| Stav LED | Vý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:
- Připojení LCD displeje a klávesnice. To umožní zobrazovat GPS informace a nastavovat parametry bez nutnosti použití PC. Částečně vyzkoušeno.
- Hlasový výstup hlásící rychlostní limit - částečně vyzkoušeno, nutná však změna HW.
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.



