X-mas Favo Alarm

25.12.2006

Intro

Pokud vás zmátl nadpis článku, tak se ho nejdříve pokusím trošku vysvětlit. Celý příběh se začal pořízením Favorita, do kterého jsem si namontoval 2 roky staré rádio. Rozhodně to nebyl žádný výkřik nejnovější techniky, pořizovací cena byla cca 2500,-. Naivně jsem se domníval, že případné zloděje nebude lákat rádio, kde chybí panel, protože u této cenové skupiny se nevyplatí nový panel pořizovat. Cenově by vyšel dráž než prodejní cena takového rádia někde v bazarech. Jak jsem už naznačil, tak rádio mi nějaký lump ukradl. Zůstal mi panel. O inteligenci takového zloděje si můžete udělat obrázek sami :-)
Když jsme jeli s kámošem před vánoci domů, tak jsme přišli na myšlenku, že by se hodil nějaký alarm, který by zloděje alespoň trochu vystrašil a znepříjemnil mu práci. V ten moment mě napadly radikální akční členy v podobě plastické trhaviny, ostrých hrotů, které vyjedou zespod sedaček a podobných kravin :-) Nakonec jsme se shodli na malé, ale zvukově velmi nepříjemné sirénce, kterou bych vestavěl do interiéru auta a ta pak zloděje vypudila, resp. se o to alespoň pokusila. Jedná se o sirénku s akustickým výkonem 108dB a která se používá k zabezpečovacím zařízením. Setrvání v její blízkosti je krajně nepříjemné a velmi agresivní ke sluchovým orgánům, takže šance, že by takto překvapený zloděj z auta odešel, je celkem velká. Rozhodně větší než kdyby auto začalo troubit venkovním klaksonem, protože toho si dnes už nikdo nevšímá. Sirénku jsem koupil v pátek 22. prosince a jelikož mi to nedalo, rozhodl jsem se něco zbastlit a to vyloženě ze šuplíkových zásob.

Elektronika

Zapojení je navrženo tak, aby při své nečinnosti nemělo absolutně žádnou spotřebu. Tohoto je docíleno pomocí relé, které jsem našel dříve než nějaký FET tranzistor, který by napájení napětí spínal. Hlavním prvkem alarmu je jednočip PIC 12F629, což je 8-mi nožičkový šváb, který v sobě ukrývá interní oscilátor, 1K FLASH paměti, EEPROM a 6 I/O pinů. Jedná se o dostatečný kalibr, který logiku alarmu zvládne velmi hravě. Cena se v GME pohybuje na úrovni 1.5P (studentská cenová jednotka P = 1 Pivo, tj. cca 18,-Kč :-). Ještě se zmíním o spotřebě, protože existuje více variant, jak by šla minimalizovat. Varianta s relé mě napadla jako první, poté jsem zjistil, že PIC má opravdu velmi malou spotřebu ve SLEEP režimu a že jde probudit pomocí vnějšího přerušení, tedy po vstupu do vozidla. Jenže palubní napětí je 12V, PIC jede od 3.2 do 5.2V, je nutné použít nějaký stabilizátor. Samotný 7805, resp. 78L05 mají klidovou spotřebu cca 2.5mA, což je moc. Existuje řada stabilizátorů s velmi malou vnitřní spotřebou, ale žádný jsem doma nenašel, takže jsem se vrátil k relé. Ano, je to řešení dražší, ale relátka jsem koupil loni na radioamatérském setkání po 0.6P, takže toho nelituju.
Jako vstupní čidlo je použit spínač dveří, který je v autě už nainstalován a zapíná svělo interiéru. Tento spínač, resp. 2 spínače na obou předních dveřích, se při jejich otevření spojí se zemí, takže v zapojení sepnou relé, které připojí napájecí napětí k jednočipu a ten si pak sám pomocí tranzistoru relé podrží po nutnou dobu i po zavření dveří. Výstup na sirénku je realizován pomocí tranzistoru BD135 v klasickém zapojení se společným emitorem, stejně jako výstup na indikační LEDku s tranzistorem BC546. Zajímavostí je řešení aktivace a deaktivace alarmu. Žádný tajný vypínač, žádný číselný kód, žádné složité kódy. Jen obyčená dioda :-) Myšlenka je taková, že někde na palubní desce je umístěn konektor a je celkem jedno, jaký typ to je (jack, cinch…). Majitel auta u sebe nosí protikus, typicky na svazku klíčů k autu a v tomto protikusu je umístěna jedna obyčejná dioda. Po vložení „klíče“ do konektoru si jednočip otestuje, zda-li je v protikusu opravdu dioda, tedy zda-li ním protéká proud pouze v jednom směru a pokud ano, provede požadovanou akci. Tímto způsobem se sice nezaručí bůhvíjaká bezpečnost, ale na druhou stranu se jedná o poměrně účinnou ochranu proti pokusům vypnout alarm pomocí šroubováku vraženého do deaktivačního konektoru. Také je potřeba vzít na vědomí fakt, že se jedná o jednoduchý alarm pro auto v hodnotě 20-ti tisíc, typicky na poslední cestě ke zvrakování :-)

Firmware

Původně jsem chtěl program napsat v jazyce C, protože se poslední rok věnuji programování AVR právě v C, ale jelikož jsem narazil na nějaké komplikace s překladačem PiccLite, které by vyžadovaly čtení manuálu, vybodl jsem se na tento, jinak skvělý programovací jazyk, a znovu oprášil assembler. Program je velmi jednoduchý, krátký a přímočarý. Žádné programátorské vychytávky jsem do něj nedával. Paměti v jednočipu je dost, času málo a požadovaných funkcí nemnoho. Program funguje následovně.

Start:
Základní nastavení procesoru a načtení hodnoty z adresy 0 EEPROM. Tato hodnota určuje, zda-li je alarm aktivní a neaktivní. Podlé této hodnoty se také program větví.

Alarm aktivní, v EEPROM hodnota 1:
Indikační LED dioda začne rychle blikat a přitom neustále testuje na přítomnost klíče. Pokud klíč nalezen není, je po cca 12 sekundách spuštěna siréna. Ta houká cca 9 minut a během této doby je opět neustále testována přítomnost klíče. Při této příležitosti je do EEPROM na adresu 1 zapsána hodnota 1, která je příznakem, že byl vyvolán alarm. Po uplynutí intervalu je siréna vypnuta, alarm odpojí tranzistor relé a v nekonečné smyčce čeká na zavření dveří, pokud zavřeny nejsou. Pokud dojde kdykoliv během výše uvedených 2 intervalů detekována přítomnost klíče, je siréna okamžitě umlčena, pokud houká, do EEPROM na adresu 0 zapsána hodnota 0, která říká, že alarm byl deaktivován. Po potvrzení deaktivace se ozve písknutí sirény a v případě, že byl již dříve vyvolán alarm, dojde k několikanásobnému písknutí. Tímto způsobem je možné zjistit, zda-li byl po předchozí aktivaci vyvolán poplach. Poté smaže příznak alarmu zapsáním hodnoty 0 do EEPROM na adresu 1. Postup ukončení je opět takový, že dojde k odpojení tranzistoru relé a případnému počkání, až se zavrou dveře, pokud jsou otevřené.

Alarm neaktivní, v EEPROM hodnota 0:
Indikační LED dioda začne trvale svítit a přitom neustále testuje na přítomnost klíče. Pokud klíč nalezen není, je po cca 12 sekundách odpojen tranzistor relé a program v nekonečné smyčce počká na zavření dveří, pokud jsou otevřené. Pokud během tohoto intervalu byla detekována přítomnost klíče, dojde k zapsání hodnoty 1 do EEPROM na adresu 0. Zároveň dojde k dvojitému písknutí sirény pro potvrzení aktivace alarmu. Následuje cca. 40 sekund pomalého blikání LED diody, kdy je nutné opustit auto a zavřít dveře. Pokud LED bliká, že možné dveře libovolně otvírat a zavírat, ale pokud již LED blikat přestane, následné otevření dveří vyvolá alarm. Pokud LED přestane blikat a přitom jsou dveře otevřené (např. z důvodu, že jsem v autě ještě něco zapomněl a mezi tím LED přestala blikat) je možné dveře bez vyvolání poplachu zavřít. Teď je to možná trochu zmatené, ale logiku to má. Prostě pokud jsou otevřené dveře, je relé sepnuto a procesor běží. Po ukončení užitečné činnosti odpojí tranzistor a pokud jsou dveře otevřené, je stále pod napětím a setrvává v nekonečné smyčce až do resetu odpojením napájení, tedy do zavření dveří.

Mechanická konstrukce

To už je záležitost značně individuální, protože každý má k dispozici různé konektory, různé kondenzátory, relátka apod. Zapojení je tak jednoduché, že lze postavit i na kousku univerzální desky plošných spojů. Já jsem alarm udělal na desku o rozměrech 43x38mm a vestavěl do malé plastové krabičky. Tímto jsem se bavil téměř celý Štědrý den. V autě se pak tato krabička vešla do pod přístrojovou desku. Sirénu jsem umístil do prostředního průduchu na vzduchu vedle tlačítek na výstražné blinkry apod.. Toto umístění sice snižuje objem průchozího vzduchu, ale na druhou stranu jde zvuk přímo na hlavu zloděje ten nemůže tak rychle sirénu zničit. Musel by odšroubovat tuto část panelu a pak se ještě dostat k siréně. To zabere cca 5 minut času za předpokladu, že ví kde siréna je, protože lokalizovat ji není právě nejjednodušší – hladina zvuku je tak silná, že to trhá uši a trochu i bolí.

Ke stažení

Firmware