David Pleskot, 28.8.2015
Základem přístroje jsou dva snímače tlaku, ve schématu označené jako U3 a U4. Jsou to ty úplně nejlacinější snímače tlaku v sacím potrubí jaké se vůbec dají sehnat. Výrobce je Hella a katalogové označení je 6PP 009 400-011. Já jsem je koupil v prodejně autodílů v Praze Krči (autodilykrc.cz), vyhledávač je najde jako MAP senzory. Nejsou to nijak extra kvalitní snímače, hodně jim cestuje nula a linearita taky nic moc, ale pro tenhle účel stačí. Napájení vyžadují 5V, výstup je napěťový a vede na ADC vstupy procesoru.
Další vstup je sonda pro měření otáček. To je v mém případě kolíček na prádlo, který má na jedné čelisti nalepený kus plechu z konzervy. Připojuje se k J2 (CINCH). Přicvakne se na kabel ke svíčce a přes kapacitní vazbu se přenáší impulzy při přeskoku jiskry. Zem jde přes napájení. Další možnost je prostě jen omotat kus drátu kolem VN kabelu k cívce. Velikost kapacity (plechu, resp. počet závitů drátu) je potřeba odladit tak aby napětí nebylo moc vysoké. Jinak to dělá neplechu, občas se restartuje procesor atp.. Neplatí že čím víc tím líp. Kabel k sondě (kolíčku) mám stíněný, stínění je na straně přístroje připojené na zem.
Tvarovač, který vytváří z chlupaté napěťové špičky impuls použitelný procesorem, jsem opálil z plánku na stroboskop z webu www.jawa-50.cz. Výstup na lampu stroboskopu jsem zachoval. Je tam mini DIN konektor (na schématu J1), na kterém je 12V, zem a výstup tvarovače. Stačí udělat lampu s několika LED a výkonovým tranzistorem. Já jsem se k tomu ještě nedostal.
Výstupy má zařízení dva. Jeden je modul displeje s řadičem MC1601A, doplněný o dvě LED. Druhý výstup je sériová linka převedená rovnou pomocí IO FT232BL (U9) na USB. Jak display, tak FT232 jsou zapojeny podle příslušných datasheetů, není tam nic zvláštního. Trimr R5 u displeje slouží k nastavení kontrastu. Jas by se dal řešit PWMkou na signálu PODSVICENI, hardware je na to připravený, ale není to potřeba.
FT232 se tváří po připojení k PC jako COM port, paměť U10 slouží k uložení čísla portu, pod kterým se obvod hlásí. Je potřeba do PC nainstalovat driver pro FT232. Mám to vyzkoušeno jen ve Win XP. U9 a U10 a vše kolem lze vynechat a nahradit modulem s klasickým RS232 portem, třeba s IO MAX 232. Na desce je pro tento účel konektor J4. Případně lze seriovou linku vynechat úplně.
Zdroj je jednoduchý. Transil D6 ořezává případné špičky vyšší jak 15V. Spínač SW3 mám proklemovaný na desce. Není potřeba, protože zařízení je napájeno ze sítě motorky, ale nechal jsem na desce jumper, ke kterému se dá vypínač případně připojit. T3 společně s D7 ořezává napětí pro vstup U8 na zhruba 8 až 9V. Stabilizátor U8 (7805) je klasika. T3 a U8 mám pro jistotu na chladičích. Tlumivky BLM41PG600SN1 (obě mají omylem označení L5) na vstupu zdroje nejsou na DPS. Doplnil jsem je dodatečně po problémech s rušením od zapalování do proškrábnutého spoje na desce (jsou SMD).
Srdcem přístroje je mikrokontrolér ATmega32. Hodiny pro něj dělá krystal X1. Ten není tak úplně nutný, stačil by vnitřní oscilátor. Ale pro dobrý pocit, kvůli stabilitě baudrate UARTu a hlavně kvůli měření otáček jsem ho tam dal. Jumper K3 mám propojený, jako referenci ADC požívám napájecí napětí 5V, protože výstup snímačů se tváří jako potenciometrický. Procesor nepotřebuje žádné periferie, všechno má na čipu.
Pomocí TWI je připojen teploměr LM75AD (U5), který měří teplotu v krabičce a původně jsem ho zamýšlel použít pro zpřesnění měření tlaku (kalibraci teplotní závislosti snímačů). Zatím jsem se k tomu ale nedostal a asi ani nedostanu, není to potřeba.
Spínač SW2 jsem zatím nepoužil, počítám napevno s jedním impulzem na otáčku, což vyhovuje pro Dněpra. Pro jiné motorky si údaj prostě přepočítávám. Tlačítko SW1 slouží k přepínání zobrazených veličin na displeji.
Deska plošných spojů je navržena pro krabičku Z-33B z GM electronic (gme.cz kód 622-428, označení KP26(Z-33B)). Ve vyšší části krabičky je vedle desky místo na průchodky na připojení hadiček ke snímačům. Displej je nad deskou na distančních sloupcích a do DPS je připojen pomocí lámací lišty s dlouhými piny. V krabičce je na něj výřez, přelepený slídou z nějakého obalu.
Nad snímači je poměrně málo místa, takže není možné k nim hadičky připojit přímo. Lámaly by se. Vytočil jsem si z hliníku hrníčky, které se na snímače nasadí a k utěsnění využívám původní těsnění (na obrázku to oranžové). K nim jsou hadičky připojené na klasický stromeček z boku, rovnoběžně s DPS. Do desky jsou snímače připojené pomocí drátků, protikusy na konektory jsem nepoužil, a přilepené tavnou pistolí.
Nad tlačítkem SW1 mám na deklu krabičky pružinkou odpružený hliníkový klobouček, který na něj po smontování dosedá. Dal by se použít klobouček ze starého tranzistoru, třeba KF517, pružinku vynechat a prodloužit hmatník tlačítka třeba brčkem. A nebo na hulváta nějaké tlačítko do panelu a připojit kablíkama. Konektory jsou všechny zapájené do desky a v krabičce jsou na ně výřezy. Tady je rozpiska materiálu.
Firmware je napsaný v Atmel Studiu 6.0. V nekonečné smyčce měří napětí na ADC0 a ADC1 a přepočítává je na tlaky. Ty následně filtruje plovoucím oknem o volitelné délce. Jednou za zhruba 200ms měří napětí na vstupu a teplotu a odesílá data po seriové lince (pokud je vysílání povoleno). Výpočet otáček probíhá v obsluze přerušení INT0 a filtruje se plovoucím průměrem s oknem o délce 10. Odměry větší jak 10 000 rpm beru jako chybu a nezapočítávám. V přerušení INT1 (tlačítko) měním veličinu zobrazenou na displeji (oba tlaky, rozdílový tlak, otáčky, teplota, napětí). Pokud je tlačítko stisknuto při zapnutí přístroje, tak se předpokládá že vstupy jsou otevřené do atmosféry a provede se kalibrace nuly.
Pakety, vysílané po seriové lince, začínají řetězcem "$DPKSY ". Následuje 6 desetinných čísel oddělených čárkou, jejichž význam je: tlak1, nekalibrovaný tlak1, tlak2, nekalibrovaný tlak2, teplota a napětí. Tlaky jsou v Pa, teplota ve stupních Celsia a napětí ve Voltech. Poslední číslo je celé a představuje otáčky v rpm. Paket je ukončen znaky CR a LF. Baudrate je 38400.
Přístroj se dá po seriové lince ovládat pomocí následujících příkazů:
$CA kalibrace nuly, stejně jako tlačítko při spuštění
$PNxxx nastaví počet hodnot pro klouzavý průmer tlaku na xxx krát 10
$P? vrátí počet hodnot pro klouzavý průmer
$RE reset
$OS kontinuálně vysílá (default)
$OE zastaví kontinualní vysílání
$SA pošle jednu větu
$SO pošle ofset (rozdíl nul snímačů) z paměti
Příkazy které neodpovídají nějakým číslem, nebo větou, reagují řetězcem "ok", nebo "err".
Ke změně firmwaru bez demontáže používám bootloader, který se spouští vysíláním znaku "S" po sériové lince po resetu procesoru. Čeká na ten znak zhruba 2s, když nepřijde, tak pustí hlavní program. Když přijde, tak pustí bootloader. S ním se dá pak komunikovat pomocí programu AvrProg (volně stáhnutelný). Bootloder používá baudrate 115200, takže při běžícím hlavním programu je nutné nejdřív poslat "$RE" s baudrate 38400, pak přepnout na 115200 a opakovat "S" tak dlouho dokud se nespustí bootloader (hláška na displeji).
Firmware včetně bootloaderu si můžete stáhnout tady. Zdrojáky tam nejsou, ty nezveřejňuji. Ale pokud by je někdo nutně chtěl tak napište, nějak se dohodnem. (Budu chtít ověřit identitu žadatele a záruku že nedojde ke komerčnímu využití bez mého souhlasu.)
Software je napsaný v Delphi. Zobrazuje všechny měřené veličiny, zaznamenává je do souboru, zařízení se z něj dá resetovat, dá se spustit kalibrace nuly a je možné nastavit délku okna pro plovoucí průměr tlaků. Pro grafické zobrazení záznamu je nutné mít nainstalovaný program GNUplot (volně ke stažení) a v souboru KSconfig.txt musí být nastavena cesta k němu. V konfiguračním souboru je rovněž číslo portu (virtuálního portu tvořeného FT232). Pokud toto číslo není správné a zařízení je připojeno k portu 1 až 10, tak je možné pomocí tlačítka "Hledat port" nastavit správné číslo. To pak bude po vypnutí programu uloženo do konfiguračního souboru.
Záznam je textový soubor s hodnotami oddělenými tabelátorem. Ukládá se cas[ms], tlak L[Pa], tlak P[Pa], tlak dif.[Pa], otacky[rpm], telota[C], napeti[V]. Soubory se stejným jménem program nepřepíše, ale na konec názvu přidá číslo, takže defaultně nastavené jméno KSzaznam.txt není nutno měnit.
Software si můžete stáhnout tady. Není nutné nic instalovat, jen rozbalit do zvoleného adresáře a upravit konfigurační soubor. Přibalil jsem tam prográmek sbp.exe, ten slouží k jednoduchému spuštění bootloaderu, jak bylo popsáno výše.
Celé je to tak trochu technologická onanie. Na synchronizaci karburátorů stačí průhledná hadička s trochou případně obarvené vody, ohnutá do U a přisponkovaná na prkno. Tohle je ale mnohem pohodlnější. Po opravě motoru se tahle krabička připojí a jedním vrzem se nastaví nejen synchro kaburátorů, ale i velikost volnoběhu a zkontroluje se dobíjení. Případně se dá vzít noťas a udělat záznam za jízdy při zatíženém motoru. Ta sériová linka do počítače je nicméně spíš pro zábavu, prakticky jen na nastavení okna plovoucího průmeru. Jinak jsem ji ještě nepoužil, displej stačí.
Kdyby to někdo chtěl stavět a narazil na nějaký problém, tak se ozvěte na e-mail. Mám předlohy na plošňák, nechával jsem ho dělat u pana Kohouta v Praze. Případně můžu předlohy půjčit.