úterý 21. prosince 2021

TinyHA: pobočková telefonní ústředna (PBX)

Dnešní část TinyHA souvisí s domácí automatizací jen velice volně. Sice má připravený interface pro RS485 spojení se zbytkem systému, ale zatím jsem propojení nerealizoval. Co si budeme namlouvat, jedná se prakticky o hračku pro děti.

Na dovolené se syn shlédl v hotelovém telefonu, kterým by se (pokud by fungoval) dalo volat babičce do vedlejšího pokoje. Protože telefony na klasickou analogovou telefonní síť jsou snadno sehnatelné za pár korun (na Aukru cca 100Kč vč. poštovného), napadlo mě realizovat malou domácí telefonní ústřednu. Samozřejmě by šlo použít hotové profi řešení, ale to by jednak byl kanón na vrabce, druhak byly klasické ústředny zpravidla velmi žravé na elektřinu.

Velkou inspiraci jsem čerpal ze staršího článku na mcu.cz. Zásadním zjednodušením mé pětiportové varianty je "paralelka", jednotlivé okruhy tedy nejsou spojované, ale po zvednutí sluchátka se rovnou všichni účastníci připojují do sdíleného hovoru. Základní propojení je primitivní, jedná se o zdroje proudu pro jednotlivé linky spojené střídavou vazbou pro přenos hovorového signálu. Trošku větším oříškem je detekce zvednutí sluchátka a zejména vyzvánění.

Vyzvánění je klasicky řešeno střídavým napětím až 110V o frekvenci cca 20Hz, superponovaným na linkové napětí cca 60V stejnosměrných. Rovnou jsem zavrhl klasické staré telefony, předpokládám využití moderních, s "digitálním" vyzváněním a tónovou volbou. Podpora pulzní volby by byla záležitostí softwaru, kterou jsem ale neimplementoval.

Moderní telefony bez problémů pracují s linkovým napětím 24V, používám proudové napájení cca 20mA. Pro vyzvánění je využito střídavého napětí cca 80V o frekvenci 50Hz, které je tvořeno pomocí transformátoru a dvojčinného měniče. Vše je řízeno mikrokontrolérem AVR.

Vyzvánění je poměrně problematická záležitost a po několika neúspěšných experimentech s optotriaky jsem se rozhodl jít klasickou cestou s využitím inkurantních miniaturních relé, které jsou přímo určeny pro použití v komunikacích. Zvolené řešení funguje výborně. Detekce vyvěšení sluchátka je realizována pomocí AD převodníků mikrokontroléru. V klidovém stavu je úloha jednoduchá, trochu složitější je to při vyzvánění - je nutné synchronizovat AD převod se správnou půlvlnou 50Hz vyzváněcího napětí. Analogově by to byl oříšek, pro mikrokontrolér jednoduchá práce.

Pro detekci tónové volby je použit DTMF dekodér MT8870, osazený na modulu od Hadexu, lze sehnat i z Číny. Zdrojový kód lze najít v projektu TinyHA na Githubu, hlavní část stavového automatu je v souboru main.c. Mikrokontrolér se rozhoduje dle stavu (vyvěšení) jednotlivých linek a DTMF dekodéru. Dle potřeby generuje vyzváněcí napětí a tóny do sluchátek.

V klidu čeká na zvednutí libovolného sluchátka, následně začne generovat oznamovací tón. Po prvním DTMF vstupu nebo zvednutí dalšího telefonu přechází do stavu hovoru. Reaguje na DTMF volby *1 až *5 pro jednotlivé linky, generuje vyzváněcí napětí pro příslušný telefon a vyzváněcí tón do společného hovorového kanálu. Po zvednutí telefonu, zavěšení volajícího nebo dalším DTMF vstupu volání zruší. Pokud už je volaná linka vyvěšena, generuje obsazovací tón.

Celé zařízení je napájeno z bezpečných stejnosměrných 24V, otestováno jej mám zatím se čtyřmi telefony. Všechny přístroje s tónovou volbou fungovaly bez problémů včetně detekce zavěšení. S výhodou využívám dosud neobsazené Ethernetové Cat5e kabeláže do různých místností. Na jaře se chystám jednu linku zavést i na rozhlednu :-)


  

středa 15. prosince 2021

Pexeso pro elektroinženýry

Také vás rodina a přátelé drtí v pexesu, protože na to nemáte paměť? Tak tady je pomsta elektroinženýra - lahůdka jménem pouzdra integrovaných obvodů. Zaručeně zmate neznalé, byť zkušenější hráče. Ideální na krácení dlouhé chvíle mezi svátky či jako dárek pod stromeček :-)


 

úterý 31. srpna 2021

TinyHA: centrální jednotka s RPi Zero

Centrálním mozkem celého systému je Raspberry Pi Zero W. Dnes už bych asi vše řešil embedded cestou s vhodnou bránou připojenou k hlavnímu serveru (což je u mě historický thin klient od HP s Debianem), nicméně dříve jsem místo něj měl jen NAS, takže samostatné řešení bylo vhodnější.

K RPi Zero jsem navrhl "hat". V uvozovkách proto, že rozšiřující hat destičky obvykle přidávají nějakou funkci či rozšíření a jsou maličké. Můj "hat" je víc než dvojnásobný než RPi Zero a vytahuje z GPIO konektoru vše myslitelné. Je na něm spínaný zdroj, oddělené vstupy, reléové výstupy, budič pro linku RS485, konektor pro SPI a I2C rozhraní, EEPROM paměť a řadič pro 1wire sběrnici. Bohužel UART na RPi nemá možnost řízení směru nutného pro RS485, proto je tato funkce realizována časovačem 555. Funguje spolehlivě pro jednu nastavenou rychlost komunikace, v případě změny se musí upravit časová konstanta.

Veškerá datová kabeláž se sbíhá v jedné místnosti, miniaturní serverovně neboli "špajzce". Pro propojení jsem využil levné patch panely po 8 pozicích, s postupným rozšiřováním na současných 16 pozic a RPi modul plus další drobnosti. Vše je spojeno zařezávacími konektory Krone. Jejich nacvaknutí je při použití správného nástroje snadné, spolehlivost výborná. Tedy dokud neřešíte stejně jako já problém dvou drátů v jedné svorce, to se sice dá, ale spolehlivost je rapidně horší.

Ne všechna kabeláž vede přes RPi, např. zvonek je nezávislý a do RPi vede jen jako vstup pro záznam událostí. Plexi kryt se ukázal jako nutnost před průzkumnými operacemi mých dětí.

Co tedy běží na samotném RPi Zero? Klasický Raspbian Lite (resp. nověji Raspberry Pi OS Lite), na kterém je systemd, apache, php, sqlite3, rrdtool. Prakticky vše je naskriptováno v php, což rozhodně není ideální řešení - mnohem vhodnější by byl např. python, jenže php jsem uměl a tak to bylo nejjednodušší k použití. Tedy aspoň jsem si to myslel, než jsem začal řešit problémy se sériovým portem...

Základní web je udělaný s využitím Bootstrapu, což je velká výhoda z hlediska jeho použitelnosti jak na PC, tak na mobilech. Data vhodná pro prezentaci formou grafů se ukládají do RRD databází, ze kterých se pak generují grafy v rámci cronu.

GPIO jsou inicializovány skriptem tinyha-init po startu. Následně se spustí na pozadí další skripty. Skript tinyha-busupdate zajišťuje komunikaci po RS485 a periodicky se dotazuje všech možných slave zařízení, aby z nich mohl generovat grafy a prezentovat jejich aktuální stav. Skript tinyha-doorbell čeká na hranu signálu tlačítka zvonku, aby mohl zalogovat událost (aneb konec věčných hádek, zda pošťačka zvonila či ne). Skript tinyha-onewire slouží ke sběru teplot z čidel připojených na 1wire sběrnici. Skript tinyha-pingupdate jednou za čas pingne přes síť (no dobře, přes wifinu, protože RPi Zero nemá ethernet) všemožná zařízení v domácí síti a aktualizuje jejich online stav. Skript tinyha-nibeupdate slouží k připojení do Nibe API, díky kterému můžu monitorovat stav tepelného čerpadla.




  


 


pátek 16. července 2021

TinyHA: digitální vstupy a výstupy

Množství zařízení se dá spínat přímo, bez relativně složité komunikace po sběrnici. Pro spínání čekoholiv jsem vytvořil jednoduchý DPS s relé, nejčastěji na 24V, některé jsou ale i na 12V a 5V. Každé relé je opět v "mističce" vytvořené 3D tiskem a zalité nehořlavým epoxidem.

A co tedy relátka spínají? Otevírání vrat garáže (paralelně k ovládacímu tlačítku), topné žebříky v koupelnách (přímo 230V v zásuvce), část venkovního osvětlení, aktivace blokování ohřevu TUV, čerpadlo v retenční nádrži, do budoucna je v plánu inteligentní cirkulace TUV.

Venkovní osvětlení je specialitka - je to vlastně převážně dekorace, tedy LED pásek na pár místech a nízkopříkonová LED bodovka namířená na jeden ze stromů, který je vidět z ulice. Spíná se se západem slunce a vypíná ve 23h. A zároveň se sepnutím je odblokování PIR čidlo pro detekci pohybu osob v okolí vstupních dveří, které následně přes další relé spíná klasické venkovní osvětlení. Tím je zajištěno, že i s levným PIR čidlem nesvítím uprostřed noci, když kolem projde kočka.

Systém mám dále několik digitálních vstupů. Detekce otevření vrat garáže (magnetická kontakt), spoušť domovního zvonku (takže existuje záznam, kdy kdo zazvonil - ano, pošťačka tvrdila, že tedy s tím dopisem byla... a já vím 100%, že ne), detekce externího napájení (kvůli výpadku elektřiny). Vše je připojeno na GPIO centrální řídicí jednotky, což je Raspberry Pi Zero W. O něm ale podrobněji příště.

Zvonek má příjemný gong dostatečné intenzity, jedná se o model z Aliexpressu s přidaným DCDC konvertorem. PIR senzor je typ Panlux SL2400/C. Požadavkem byla černá barva. Elektronika všech levných kusů je plus mínus stejná, snímač a obvod BISS0001 nebo jeho klony. Rozdíl je ale v zakrabičkování, které je pro funkci dost důležité - samotné moduly z Číny se chovaly hrozně, senzor od Panluxu díky krabičce o dost lépe. Část čočky obvykle zalepím gafou, aby zorné pole zabíralo jen to, co má. Elektroniku PIR snímače jsem z poloviny vyházel. Místo 230V a relé na výstupu jsem nechal nízkonapěťové napájení a otevřený kolektor, takže je vše připojené UTP kabelem, který vede do vhodného místa. Relé na 230V spínající světla je umístěno v jedné z instalačních šachet uvnitř domu.

pátek 11. června 2021

TinyHA: žaluzie

Venkovní žaluzie byly na dům jasnou volbou vč. elektrického pohonu. V základní verzi se jedná o Somfy J4 WT, což je chytrý motorek, pro 230V napájení využívá dvou různých vodičů - nahoru a dolů. Kromě toho umožňuje nastavovat doraz, programovací mód se spustí připojením napětí na obě napájení po danou minimální dobu.

Elektroniku jsem se rozhodl umístit do hlubokých instalačních krabic pod ovládací tlačítka. Řešení jsem chtěl autonomní, tedy nouzově funkční i při selhání rozšiřující elektroniky. Nakonec je koncept navržený tak, že pomocí optočlenů snímá stisk ovládacího tlačítka a pomocí relé ho dále přemosťuje. V nejjednodušším případě tedy po detekci dostatečně dlouhého stisku "přidrží" relátkem tlačítko stisknuté po dalších několik desítek sekund, než žaluzie sjede nebo vyjede kompletně. Bez napájení stále fungují tlačítka manuálně.

  

U každého okna mám pod omítkou vedený kablík k magnetickému senzoru pro detekci otevření, což je další vstup, který do elektroniky vede. Celá elektronika je umístěna v miniaturní vaničce vytvořené na 3D tiskárně, která je následně zalita nehořlavou epoxidovou hmotou. Těchto rozšířených tlačítek je po domě cca 10ks, ke každé žaluzii jedno. Dále jsem vyrobil jedno speciální, které slouží k hromadnému ovládání všech 5ks žaluzií v obýváku+kuchyni, to není připojené na 230V, ale pouze na sběrnici.

 

Firmware je funkcí trochu komplikovaný, protože musí reagovat na různé kombinace stavů - např. když žaluzie jedou nahoru a stiskne se tlačítko dolů, zastaví. Když se drží krátce (pod nastavenou dobu), nedělá nic. Když dlouze, sepne příslušné relé a podrží ho po specifikovaný čas. Když přijme odpovídající povel po sběrnici, simuluje stisk tlačítka. Možností je poměrně hodně a jsou docela dobře vidět v main.c.

Každá žaluzie má přiřazeno vlastní adresovací ID a dále volitelně skupinové ID, na které reaguje. Jedná se vlastně o jednoduchý multi-master systém, kdy mastery na sběrnici je buď řídicí jednotka (v této fázi projektu ještě neexistovala) nebo dedikované ovládací tlačítko. Ostatní tlačítka pak vystupují jako slave, odpovídají pouze na jim adresované dotazy.

pondělí 22. března 2021

TinyHA: základní koncepce

Před několika lety jsme dokončovali stavbu rodinného domu, kde máme mimo jiné nainstalovány venkovní žaluzie Climax s pohonem Somfy J4 WT. A to byl první impuls ke zvažování vlastního bastl řešení. Originální ovládání mi přišlo předražené, mechanické řešení spínače s aretací pak příliš primitivní. Rozhodl jsem se, že ovládání žaluzií vyřeším vlastním systémem, který bude zapojený paralelně k ABB žaluziovým tlačítkům a stane se základem budoucí domácí automatizace. Každá žaluzie má tedy vlastní ovládací tlačítko v hluboké podomítkové krabici. A při tahání elektroinstalace jsme všechny krabice kromě 230V rozvodu prosmyčkovali Cat5e kabelem.

Tím byl dán základní stavební prvek TinyHA - drátová sběrnice, fyzicky realizovaná "venkovním" Cat5e kabelem - jeden pár pro rozvod napájení 24V, druhý pro RS485 sběrnici, zbývající dva volné. Napětí 24V bylo zvoleno jako kompromis mezi co nejnižšími úbytky na nezanedbatelně dlouhém vedení a snadnou dostupností DC/DC spínaných zdrojů. Sběrnice RS485 byla jasná volba, je to jediné široce rozšířené rozhraní, které zvládne divokou kombinaci hvězdicové a stromové topologie bez impedančních zakončení, s rozumnou spolehlivostí a přijatelnou cenou.

Pro komunikaci jsem si navrhl jednoduchý vlastní protokol s adresací, který popíšu později. Celková koncepce je nepříliš striktní master-slave, který prakticky umožňuje multi-master s využitím náhodného přístupu na sběrnici (Aloha). Prakticky to funguje tak, že celé TinyHA má jeden centrální bod, postavený na Raspberry Pi Zero W na desce s rozhraními, který je umístěný v místě vyústění všech kabelů (moje miniserverovna kombinovaná se špajzkou). Jednotlivé nódy jsou pak slave zařízení, které pouze odpovídají na dotazy. Výjimkou je ovládací tlačítko pro sdružené řízení žaluzií v obýváku, které při stisku povel vysílá samo, stává se z něj tedy na okamžik další master.

Elektronika zařízení je postavená na AVR a obvykle zabudovaná v podomítkové krabici, není tedy přístupná pro přeprogramování. Pro tento účel jsem si upravil jednoduchý bootloader, který umožňuje aktualizovat firmware a přitom využívat adresu nódu uloženou v EEPROM paměti. Mohu tedy bez rozpojení sběrnice selektivně aktualizovat pouze vybraná zařízení.

Ovládání žaluzií, o kterém budu podrobněji psát příště, bylo první realizovanou částí. To proto, že stát u tlačítka a držet ho dvě minuty než žaluzie sjede až dolů, je fakt otrava, takže mě to donutilo dokončit ovládání poměrně rychle :-) Postupně ale přibývaly další části systému TinyHA: výstupní relé (pro otevírání garáže, spínání topných žebříků, venkovní osvětlení, pokles TUV apod.), vstupy (teplotní čidla na 1-wire sběrnici, senzor otevření vrat garáže, indikace domovního zvonku atd.), centrální jednotka s Raspberry Pi (sběr dat, webové rozhraní pro ovládání, grafy), ePaper panel (grafické zobrazení aktuálních teplot, grafy historie, měření kvality ovzduší CO2, předpověď počasí), měření objemu vody v retenční nádrži pomocí ultrazvukového dálkoměru, průtokoměr vody na zalévání, reimplementace Lidl zvonku, jednotka zálohovaného napájení miniserverovny a pár dalších kousků, které se teprve tvoří.

pátek 12. března 2021

Vzkříšení blogu

Po mnoha letech jsem se rozhodl, že se pokusím opět po kouskách publikovat své výtvory veřejně. Zaručeně to bude nesourodé, nepravidelné a neúplné... zkrátka žádné návody, ale jen myšlenky a podklady pro další bastlení!

V záloze mám především už relativně rozsáhlý systém domácí automatizace TinyHA. Podstatné zdrojáky jsem zveřejnil na Githubu, ale chce to ještě doplnit hodně popisování a navíc je to živý projekt, na kterém průběžně pracuji. Základní myšlenka TinyHA je, že vzniká "lepením", tedy bez důkladného plánu na počátku, co vše má systém umět. Přesný opak toho, co dělám v práci. Aktuálně obsahuje hromadu AVR, nějaké ESP32, řídicí Raspberry Pi Zero, hromadu relátek a pár set metrů Cat5e kabeláže, zaomítané a natahané všemožně po baráku i kolem.

Z dalších zajímavých projektů bych jmenoval vývoj elektroniky SSTV kamery pro nanosatelity - cubesat PSAT2 (aktuálně v provozu) a pocketqube Hades (čeká na start). Sledovat obrázky z vesmíru, vyfocené čínskou kamerou za pár dolarů a zpracované komplet vlastním hardwarem a firmwarem, je úžasné. A abych nezapomněl, podařilo se mi také znovu kompletně zprovoznit své památeční Atari 800XL!

pondělí 7. března 2016

Nové mapy.cz a nefunkční MapGen

Update 6/2021: Po dlouhé době jsem potřeboval stáhnout kousek mapy, takže jsem byl donucen se podívat po funkčním řešení. Doporučuji aplikaci Geokuk - intuitivní ovládání, super rychlost stahování i skládání!

Na mapy.cz změnili v posledních měsících v podstatě celý vnitřní systém uspořádání mapových čtverců, předělali souřadný systém i úrovně zoomu. Stará data už nejspíš nic oficiálně nevyužívá, takže je můžou kdykoliv zrušit. Což se teď také stalo, takže MapGen přestal fungovat.

Momentálně bohužel nemám kapacity se MapGenu věnovat a od dob vydání offline verzí mapy.cz pro Android už ani nemám takovou motivaci. Uvidíme, až budu potřebovat stáhnout nějakou speciálnější mapku...

sobota 12. července 2014

Aktualizovaný MapGen "gé" a jiné novinky

Protože server mapy.cz opět trošku změnil formát URL, aktualizoval jsem obě větve MapGenu. Ke stažení je MapGen v2.5g (pro OziExplorer, 3,05MB) a MapGen v3.0g (pro Locus, 3,05MB). Tentokrát jsem místo editace založil nový příspěvek, protože jinak to vypadá, že píšu jednou za dva roky... no ne že by to nebyla pravda :-)



Sledujete-li vývoj regulátoru EMIR2, pak vězte, že v propadlišti dějin ještě zcela neskončil! Ale opět jsem překopal celou koncepci. Srdcem bude některá z ARMových desek podporovaných prostředním mbed.org, což je mimochodem krásný projekt, kompletně online, který odbourává "hardwarovou" část programování (kód se stáhne do PC jako soubor, vývojová deska se připojí přes USB, objeví se jako disk, na který se stažený soubor okopíruje; tím je firmware naprogramovaný). Sice má ještě dětské nemoci a člověk si musí některé systémové knihovny sám ozáplatovat a pospravovat, ale bez toho by to ani nebyla taková sranda :-)

Favority na řídicí desky jsou Freescale FRDM-K64F a low-cost FRDM-KL25Z. Ovládání z PC nebo z tabletu, žádné další terminály a podobné bloky nebudou. Mám hotovou rozšiřující desku se vstupy/výstupy, budičem 1wire, SD kartou a RTC.


Takže teď už to chce "jen" víc času na dopsání základního firmwaru... který samozřejmě není. Studium už je kompletně za mnou včetně obhajoby disertace, na fakultě zatím zůstávám a věnuji se především výuce mikrokontrolérů AVR a ARM, kromě toho se starám o našich cca 40 serverů, pracuji na řadě různých menších i větších projektů a v neposlední řadě bych měl "dělat vědu"... nicméně vývoj systému hodnocení vědy a výzkumu v posledních letech jde naprosto špatným směrem na všech úrovních, od RVVI přes univerzitu až k nám. Vše zaměřené jen na časopisecké publikace, aplikované a realizační výstupy hodnoceny mizerně a nesrovnatelně. To se samozřejmě projeví na prestiži univerzitního aplikovaného výzkumu a vývoje, v důsledku na penězích... a nejlepší lidé odcházejí do firem. Studenty pak vyučují teoretici, kteří nemají zkušenosti z reálného světa.

Tento nepříznivý trend je bohužel zjevný a pokud nebude odvrácen z úrovně vlády (tj. RVVI), odhaduji, že v horizontu 2-5 let budou naše technické školy bez mladších prakticky orientovaných odborníků, protože všichni zdrhnou do průmyslu. Nicméně vzhledem k jedné velké (a vysoké!) novince v mém osobním životě mě už víc jak rok tyto záležitosti trápí tak nějak mnohem méně... ;-)

sobota 10. listopadu 2012

MapGen v2.5d, v3.0d - nové definice

Tentokrát jen stručný update - jak poznamenal Logout v komentářích k poslední verzi, opět funguje možnost stahovat již sloučené podklady. Čili odvolávám co jsem odvolal a slibuji co jsem slíbil - nově stačí místo prokládání vrstev zvolit přímo č. 12 (turistický podklad s turistickými značkami), č. 13 (turistický podklad s cyklotrasami) nebo č. 14 (turistický podklad se značkami i cyklotrasami). Zrychlení je značné, protože není potřeba dělat proklad v počítači, je již hotový.

Nové verze s aktualizovanými definicemi podkladů jsou ke stažení jako MapGen v2.5d (pro OziExplorer, 3,05 MB) a MapGen v3.0d (pro Locus, 3,05 MB). Žádné další vylepšení jako třeba sloučení 2.5 a 3.0 nebo dokonce podpora SQLite se nekoná, není čas, klasika.

Ještě bych rád z diskuze vyzdvihl odkaz na Logoutův blog, kde najdete obstojnou konkurenci MapGenu pro přátele příkazové řádky a Linuxu, aneb mých nechutných 640 řádek Delphi převedeno na 120 řádek čistého Perlu. S trochou škodolibosti upřímně přeji hodně úspěchů - kdo někdy do světa vypustil otevřený software, o který se pak chtě nechtě musí starat, jistě chápe :-)



Edit 3.7.2013: Změnil se formát URL používaný na mapy.cz, do adresy přibyl vykřičník. Díky za upozornění v komentářích i mailem. Ke stažení aktualizované verze MapGen v2.5e (pro OziExplorer, 3,05 MB) a MapGen v3.0e (pro Locus, 3,05 MB).



Edit 15.12.2013: Na mapy.cz jsou dostupné nové podklady pro zimní - lyžařské turistické mapy. Aktualizovány definice podkladů v INI souborech, ke stažení aktualizované verze MapGen v2.5f (pro OziExplorer, 3,05 MB) a MapGen v3.0f (pro Locus, 3,05 MB).

čtvrtek 12. července 2012

MapGen v2.5b, v3.0b - turistické mapy, update Cygwinu

Dnešního dne se mapy.cz vytasily se zbrusu novou turistickou mapu, která na rozdíl od starší verze už používá formát PNG, bylo tedy třeba aktualizovat definiční soubory MapGenu. Nová vrstva již obsahuje overlay turistických i cyklo značek, většině uživatelů bude tedy stačit zvolit 0 a bude hotovo.

Po dlouhé době jsem aktualizoval podpůrné utility z balíku Cygwin, tj. tar, netpbm a především wget. Hlavním důvodem aktualizace byla nová verze wgetu, která již podporuje HTTP/1.1, a tedy korektně zvládá keep-alive připojení. Tím se rychlost stahování zpravidla několikanásobně zvýší. Další změnou (pouze ve v3.0b pro TAR mapy) je možnost tvorby TAR archivu bez rekomprese obrázků - při vypnutém resamplování barev a jediné zdrojové PNG vrstvě nejsou obrázky převáděny na PNM a zpět, ale rovnou kopírovány do finálního archivu. Použitelné zejména pro novou vrstvu turistických map, zrychlení je řádové.

Ke stažení - klasická verze pro OziExplorer je označená MapGen v2.5b (3,05 MB), verze pro generování TAR map aplikace Locus jako MapGen v3.0c (3,05 MB). Až bude čas (cha cháááá), tak bych rád obě verze spojil do jedné univerzální a opravil přímé zadání UTM souřadnic - v současnosti je to hrozná přepočítávačka z nějakého podivného, dávno opuštěného interního formátu, čili k ničemu.



Edit 1.9.2012: Tak mapám dlouho spojení turistických podkladů s turistickými a cyklo značkami do jedné vrstvy nevydrželo, už je zase potřeba smíchávat 0,1,2. Pro stahování MapGenem pomalejší, ale univerzálnější. Opravil jsem chybu, kdy ve v3.0b nefungovalo generování při více vrstvách a vypnutém resamplování PNG, nyní již ve v3.0c běží korektně.

pondělí 6. února 2012

MapGen v3.0 - TAR mapy pro Locus

Před časem jsem i já podlehl tlaku okolí, že "in" je mít chytrý telefon. A protože veškeré mé virtuální věci fungují na službách Googlu, padla samozřejmě volba na telefon se systémem Android, konkrétně LG Optimus 2X. Tak tedy stručně a k věci - brácha mi doporučil vynikající mapovou aplikaci Locus, je použitelná i ve Free verzi, ale za ty peníze už jsem koupil i Pro. Dostupné jsou ale většinou jen základní mapy, takže dlouhodobý cíl byl jasný - dostat podklady z mapy.cz do Locusu.


Po delším vrtání se v podkladech a různých formátech (díky, Pavle!) jsem došel k závěru, že by mělo být celkem hodně snadné upravit MapGen tak, aby místo generování jednoho obrovského obrázku raději proložil čtverce, automaticky je správně pojmenoval a uložil do TAR archivu. Tento formát původně používala aplikace TrekBuddy, ale tu jsem nezkoušel - je možné, že by mapy vzala taky, ale není to jisté, ověřil jsem jen Locus Pro.

Mapy se tedy skládají ze čtverců 256x256px, kalibrace je generována opět automaticky a sedí perfektně. Všechny funkce jsou prakticky stejné jako v minulých verzích MapGenu, nová verze ale podporuje pouze TAR mapy, negeneruje tedy podklad pro OziExplorer. To možná časem zase dodělám, takto to bylo snadnější. Generování je odporně pomalé, zvláště, pokud použijete funkci resamplování PNG na méně barev. Ale přežít se to dá, aspoň to podporuje základní ideu stahovačů map - uložit si vždy jen malou oblast, v které se budeme pohybovat, ne do zásoby celou republiku.

K názvu vygenerované mapy se automaticky přidá číslo udávající zoom, takže je možné po zvolení rohů MapGen spustit např. jednou pro úroveň 13, pak 12, 11 a 10. Tím se vygenerují čtyři TAR archivy, které zkopírujete na kartu telefonu do složky /Locus/maps. Locus je při spuštění načte a rozezná jednotlivá zvětšení. Nový MapGen v3.0 (2890 kB) (již neaktuální - viz zde) je betaverze, asi se najde nějaký zádrhel, i když jsem ho úspěšně otestoval.

čtvrtek 12. ledna 2012

MapGen v2.5 - nový formát mapy.cz

Po mnoha a mnoha urgencích jsem si konečně našel volné odpoledne a aktualizoval MapGen. Nová verze MapGen 2.5a (2737 kB) (již neaktuální - viz zdetedy podporuje zadávání rohů nebo středu mapy v novém formátu, který je dostupný na adresním řádku při prohlížení na serveru mapy.cz. Kromě toho jsem doplnil do definic jednu starší ortofotomapu.


MapGen prozatím neumí pracovat s mapami z ptačí perspektivy, které jsou nově dostupné - jejich adresa používá trochu jiné formátování. Dalším vylepšením do budoucna by mohlo být automatické počítání Moving Map parametrů v .map souboru pro OziExplorer, aby nebylo nutné mapy otevřít a uložit v Ozim jako nyní. Když už jsem zvládl převod z WGS84 na UTM, tak zpátky by to taky neměl být problém. Uvidíme, kdy se zase najde čas.

Zveřejněný MapGen je betaverze, je možné, že něco nefunguje jak má, zkoušel jsem to jen na kousku mapy kolem Brna. Kdyby něco, pište do diskuze.

pondělí 26. září 2011

Zmrtvýchvstání EMIR2

Redigovaná kopie emailu, který jsem dnes rozeslal pár (desítkám) lidí:

Vážení přátelé, obracím se na vás, jelikož jste v uplynulých letech projevili zájem o můj regulátor EMIR, případně o stavbu nové verze. Po dlouhé době jsem se konečně rozhoupal k uvolnění všech zdrojáků projektu a principu regulace pro veřejnost pod GPL. V současnosti je (již dlouho) odladěný a plně funkční EMIR první generace, založený na AT89S52. Nyní bych se rád pomalu znovu pustil do vývoje druhé generace.

Vývoje jsem se naposled dotkl před více než třemi roky a stav je nyní takový, že hardware je víceméně navržený. Rozpracoval jsem i firmware, ale ten nebyl šťastně řešený, bude třeba jej zpracovat víceméně od nuly. K tomu je ale nutné si nejdříve ujasnit koncepci. Moje představa je následující: řídicí jednotka s AVR, teplotní čidla na 1wire, komunikace po RS485 a asi ModBus protokol, nepovinné terminály (přepínání režimu, prohlížení teplot apod.), řídicí aplikace na PC realizovaná nejlíp ve dvou variantách - jako nativní program pro Windows s přímým přístupem na RS485 a dále jako web rozhraní, které by mohlo běžet např. na libovolném Linuxovém routeru s USB portem. Jádro systému musí být stabilní a snadno rozšiřitelné, protože každý obvykle máme své specializované požadavky.

Veškeré materiály jsou dostupné na http://code.google.com/p/emir/, mezi Downloads jsou nyní k dispozici věci k první generaci EMIRa, v repozitáři pod Sources jsou kompletně přenesené mé materiály k druhé generaci, vč. plošňáků a starého rozpracovaného firmwaru.

Pokud vás vývoj regulátoru zaujal, připojte se prosím do diskuzní skupiny http://groups.google.com/group/emir-dev. Jak se přihlásit najdete na webu, případně můžete jen poslat prázdný mail na emir-dev+subscribe@googlegroups.com a mělo by být hotovo, email skupiny pro další komunikaci je pak emir-dev@googlegroups.com.

Rád bych zlákal zejména aktivní účastníky, kteří se mnou dříve hlouběji diskutovali o praktických úskalích regulace, dále testery a aspoň nějaké lidi, ochotné přispět programátorským umem - zejména na PC aplikaci a později web rozhraní, já jsem přece jen spíše embedded vývojář - zpracoval bych jádro systému a základní ekvitermní regulaci z první generace. Veškerou diskuzi ohledně EMIR2 bych od tohoto okamžiku rád směroval do zmíněného mailinglistu a neřešil ji již soukromě s jednotlivými lidmi.

Pokud vás projekt EMIR2 zaujal a rádi byste se zúčastnili (ať už aktivně či jen pasivně), uvítám vaši registraci do diskuzní skupiny, kde budeme doufám pokračovat.

pondělí 1. srpna 2011

Přesun na Google Apps

Tak jsem včera po měsících odkládání konečně slil svůj původní Google účet se systémem, který mi běží v rámci Google Apps na doméně. Bylo to věru potřeba, protože v tom byl už šílený nepořádek. Nicméně se to neobešlo bez zádrhelů, služba Bloggeru nešla přesunout přímo... vzal jsem to podle návodu v helpu a nějak jsem ignoroval poznámku, že po smazání původního uživatele přijdu o všechny obrázky, která na blog nahrál... a ejhle, ona to byla pravda. Takže jsem právě strávil příjemné dvě hodinky procházením všech příspěvků a ručním prolinkováváním na obrázky z Picasy. Doufám, že už to bude fungovat a vydrží navěky, nebýt mé averze k mazání čehokoliv, co už se na netu jednou objevilo, asi bych se na to vykašlal.

Na pravidelnější psaní příspěvků jsem definitivně rezignoval, prostě až bude zase potřeba něco vypustit do světa, tak to udělám. Dřív to bylo lepší... ono je to asi tím doktorandským, jak má člověk povinnost psát vědecké články, chuť dělit se se světem o zajímavosti ze svého oboru nějak opadne. Navíc to souvisí s přechodem od koníčku k práci, o mnoha komerčních projektech se zkrátka povídat nemůže.

No a když už jsem se po takové době dostal k napsání příspěvku, tak si neodpustím aspoň nějakou tu aktuální fotečku: důkaz mé pořádkumilovnosti (fotka je staršího data, nyní už přibyla další vrstva či dvě elektroniky důkladně promíchané s papíry), měření RFID tagů v EMC komoře (viz popis čtečky EXIN-1 v časopisu Elektrorevue) a konečně můj router Asus WL-520gU (ze kterého jsem volně podle návodu udělal bezva internetové rádio).