středa 7. října 2015

Dual Joystick USB adaptér

Pravděpodobně jste někdy hráli hry na starých skvělých 8bitových počítačích jako jsou Atari 800 XL nebo třeba Commodore C64. Anebo jste mladšího data výroby, takže jste už jen slyšeli vyprávět, jaké to bylo úžasné, když vaši rodiče pařili celé dny i noci nesmírně chytlavé, hratelné, boží hry.

International Karate pod posvátnou horou, která dala tvar Atari logu
Pokud nemáte to štěstí, že byste měli doma funkční počítač z osmdesátých let, nezoufejte. Existuje celá řada velmi zdařilých emulátorů, programů, díky kterým i na obyčejném kancelářském PC či Macu můžete zprovoznit k nerozeznání podobné prostředí, ve kterém bezchybně běží ty 30 i více let staré, ale stále naprosto dokonalé a zábavné hry.

Montezuma's Revenge
Jen namátkou jmenuji Atari800 emulátor (na kterém už přes deset let pracuji v celosvětovém týmu dalších dobrovolníků), nebo jsem teď třeba viděl emulátor konkurenčního počítače C64 pojmenovaný VICE. Samozřejmě existují mnohé jiné emulátory stejných počítačů - Atari 800 i C64 byly ve své době naprosté fenomény a každý je chtěl, což přetrvalo i do doby, kdy programátoři museli dospět a přejít na kancelářské nevzhledné šedivé krabice (=PC). Takže jak to bylo jen trošku možné, ti schopnější ihned začali programovat emulátory svých dávných lásek a díky tomu máme dnes skutečně bohatý výběr.

legenda Quick Shot, kdo by si ho nepamatoval?

Ovšem je tu jedna věc, která zážitek kazí: chybí původní ovladače, pákové joysticky. Ano, ty otřískané, vymleté, stokrát spravované a někdy i ulomené Quick Shoty II a jim podobné. Hrát tehdejší hry na dnešní klávesnici není vůbec zábavné, je to jiné ovládání, jiný pocit. Ale kdyby tak bylo možné vzít ze skříně ten starý joystick (případně někde koupit nový) a připojit ho k PC/Mac/RaspberryPi, pustit emulátor oblíbeného stroje přes celou obrazovku, osolit zvuk naplno - tak by to bylo stejně úžasné jako tehdy!

elegantní stříbrná raketa se dvěma tryskami
Pokud chcete dětem ukázat, jaký gamesník se ve vás ukrývá, případně chcete pochopit, proč na ty staré hry s 2D grafikou a čtyřkanálovým zvukem vaši rodiče pořád s láskou vzpomínají, pořiďte si můj nejnovější vynález - Dual Joy USB adaptér.

levý je #1, pravý je #2
Díky němu jednoduše připojíte jeden nebo dva pákové ovladače k jakémukoliv stroji s USB a můžete začít pařit stejně jako tehdy!

adaptér doporučuji připojit přes USB prodlužku
Adaptér je testován pod Androidem, MS Windows XP/7/8/10, Apple OS X a Linuxem, ale nemá důvod nefungovat i kdekoliv jinde. Funguje jako standardní HID zařízení a zprostředkuje 4 směry a jedno tlačítko, přesně jako to měly ty staré Atari/Commodore joysticky (pokud tam bylo více "Fire" tlačítek, byly navzájem propojené).

Archon - bojové "šachy" pro dva hráče
Při jeho návrhu a výrobě jsem využil téměř roční zkušenosti s PARCP-USB adaptérem, takže jsem už nešel do mini USB zásuvky, ale nechal jsem trčet USB konektor ven.


Může vám to připadat nezvyklé, nebo dokonce nebezpečné, ale když použijete krátkou USB prodlužku (místo abyste adaptér cpali přímo do PC), tak ten konektor snad nevylomíte.


Vevnitř najdete mikrokontrolér a pár nezbytných součástek. Ano, chtěl jsem tam původně vestavět Arduino Pro Mini, ale o pár milimetrů se mi tam nevešlo, tak jsem stejně jako u PARCP-USB musel nakonec navrhnout vlastní plošný spoj a osadit to jiným procesorem. Nevadí, aspoň to vypadá krásně elegantně nejen zvenku, ale i uvnitř :-)

Takže pokud máte o tento můj nejnovější vynález zájem, napište mi mail.

A to nejlepší na závěr: pokud nemáte dostatek Atari her, určitě hned zamiřte na Fandalův archív - nebudete věřit, kolik tam toho má!

čtvrtek 3. září 2015

Solární dobíjení autobaterie - fáze I

Letošní horké léto dalo slušně zabrat olověným akumulátorům v automobilech. Nedávno jsem, při hrátkách s napojením se na sběrnici automobilu (což je další zajímavý příběh), změřil napětí baterie a zjistil, že má sotva 11,8 V - to je už podpětí zkracující životnost akumulátoru. Musel jsem rychle jednat - otevřel jsem motorový prostor, našel akumulátor, odpojil ho, přinesl nabíječku, připojil jsem ji k autobaterii a začal rychle dobíjet. Po hodině jsem šel situaci zkontrolovat a našel (komerční) nabíječku mrtvou. Pochopil jsem, že tudy cesta nevede a rozhodl jsem se pro lepší řešení - místo občasného složitého dobíjení autobaterie velkou nabíječkou z elektrické sítě bude lepší trvale a průběžně dobíjet autobaterii energií solární.

Samozřejmě, že pro solární dobíjení existují hotová řešení. A samozřejmě, že jsem si žádné z nich nekoupil a raději zkusil postavit vlastní. Proč? No přece abych si pohrál, a hlavně abych to udělal lepší, než jsou na trhu nabízená řešení. Lepší znamená mít vevnitř Arduino. Ale to bude až ve druhé fázi, nejdřív předvedu fázi I.

Takže pro solární dobíjení potřebujeme solární panel. Na AliExpressu jsem si koupil krásný "Solar Panel Module for Light Battery Cell Phone Charger Portable 6V 2W 330MA DIY" za $3,36, tedy asi 84 Kč:



Bylo zrovna 1. září, půl páté odpoledne, když jsem k panelu připájel kabely a poprvé ho zkusil vystavit středoevropskému slunečnímu svitu:



7 voltů místo slibovaných 6, a skoro 300 miliampér ve zkratu? To jsou na tak pozdní odpoledne výborné hodnoty!

Teď jen potřebuju z těch až sedmi voltů vyrobit trvalých 14,40 V, což je prý takové rozumné napětí pro konečnou fázi nabíjení ("udržovací napětí") plně nabité 12V olověné baterie/akumulátoru. Na to použiji osvědčený "zvyšovač" napětí s čipem XL6009 - "1pcs XL6009 DC-DC Booster module Power supply module output is adjustable Super LM2577 step-up module" za krásných $0,90, tedy asi 22 Kč:


No a na výstup měniče napětí stačí připojit konektor do "cigaretového zapalovače", trimrem nastavit správné napětí, zastrčit do palubní desky a už nabíjíme! :-)

EDIT 4.září: podle první reakce pod článkem jsem zřejmě nenapsal, co přesně od solární dobíječky autobaterie očekávám, takže to sem doplňuji: Tento můj "vynález" nemá za úkol naplno dobít zcela "vytlučenou" baterii, ale má jen doplňovat ztráty způsobené samovybíjením baterie a odběrem stojícího vozidla. Pokud zvládne i víc (doplňovat odběry způsobené starty motoru, hlasitým poslechem autorádia či svícením světlomety bez běžícího alternátoru), bude to příjemný bonus.

Podle Wikipedie se samovybíjením olověného akumulátoru ztratí 3 - 20 % kapacity měsíčně. Mám novou 60 Ah baterii, tak dejme tomu 5 % za 30 dní, to jest 0,1 Ah za den.

Elektrosoustava stojícího vozidla (tj. jen alarm, rádio, blikající LED na palubovce) odebírá například 5 mA (to jsem neměřil, ale díval jsem se po fórech a může to být kolem 4 mA, nebo při více spotřebičích trochu víc) - tak potom je denní ztráta 0,12 Ah.

Dohromady tedy denně baterie stojícího automobilu zchudne o 0,22 Ah (velmi hrubým odhadem) . A toto množství energie tam potřebujeme doplnit. Moje sestava solárního panelu a měniče dokáže dodávat řekněme 100 mA (nezměřeno, jen tipuju) při opravdu pěkném slunečním svitu. To znamená, že za tři hodiny by měla denní ztráty pokrýt...

Samozřejmě v praxi budou všechna ta čísla u každého auta úplně jiná, podle stáří baterie, zapojení vozidla, nastavení panelu ke Slunci atd. Plus kdo denně 10x startuje, ale ujede dohromady jen 5 km, vybije baterii startérem. Ale čistě teoreticky by to mělo být schopno autobaterii aspoň trošku udržovat při životě... Praxe ukáže!

V plánované fázi II připojím k sestavě Arduino s displejem, které bude měřit napětí, proud, a počítat energii, kterou Slunce do akumulátoru vložilo. O tom napíšu zase příště, až budou fotky, schéma, plošný spoj a program hotový.

středa 2. září 2015

Stabilní napájení pro Raspberry Pi s WiFi a NoIR kamerou

Kromě haldy Arduin mám doma i jedno staré Raspberry Pi s (infra) kamerkou. Kdysi jsem si ho koupil, abych mohl sledovat a nahrávat noční život. Na nic jiného se Raspberry Pi asi nehodí - protože všechno ostatní zastane Arduino :)

Když jsem ho teď po půldruhém roce našel, oprášil a pokusil se ho použít, narazil jsem na zásadní problémy s napájením. Jak jsem je vyřešil, a co jsem na infra kamerku nakonec natočil, jsem sepsal do blogpostu, který se nakonec proměnil v článek na http://www.root.cz/clanky/nocni-lovy-beze-zbrani-s-raspberry-pi/

neděle 21. června 2015

Oddechovka: Arduino a piezzo bzučák

Rozdělal jsem starý analogový telefon, kterých jsme desítku vyřazovali ve firmě.



Na zvuk zvonění telefonu je tam obvod LS1240 a piezzo reproduktor.


Připojil jsem ten piezzo reproduktor k Arduinu napřímo, protože, na rozdíl od dynamického reproduktoru, nezničí pin nadměrným proudem (aspoň doufám, neboť ohmmetr mi ukazuje u piezzo nekonečný odpor). Takže jeden pin toho piezzo vede na pin č. 9 (D9) Arduina a zároveň i na pin A0. Druhý pin piezzo vede na zem (GND).

Inspiroval jsem se několika zdrojovými kódy programů dostupných přes vyhledávač na frázi "Arduino piezzo" a nakonec si svůj program upravil do následující podoby. Čtení z pinu A0 se používá na detekci zvuku (zaklepání na stůl), protože ten piezzo jev zjevně funguje obousměrně (mění elektrické napětí na zvuk, i zvuk na elektrické napětí).

const int buzzerPin = 9;

char Indiana_notes[] = "e2f1g1 1C3 2d1e1f3 4g2a1b1 1F3 1a1b1C3D3E3 4e2f1g1 1C3 2d1e1f3 2D1D1E2 2D1D1E2 2D1D1E3 2D2D2F2 2E2D2C2";
char Kocka_notes[] = "c2d2e2f2g4g4a4a4g5 2a4a4g4 2f2f2f2f2e4e4d4d4c5";

unsigned int tempo = 150;
bool melody;

void setup() 
{
}

void loop()
{
    while(analogRead(A0) < 50) ;
    
    playMelody(melody ? Indiana_notes : Kocka_notes);
    melody = !melody;

    delay(500);
}

void playMelody(const char *notes)
{
    pinMode(buzzerPin, OUTPUT);
    unsigned int len = strlen(notes);
    for (unsigned int i = 0; i < len; i+=2) {
        unsigned int duration = (notes[i+1]-'0') * tempo;
        if (notes[i] != ' ')
            tone(buzzerPin, frequency(notes[i]), duration);
        delay(duration + tempo/10);
    }
    pinMode(buzzerPin, INPUT);
}


unsigned int frequency(char note) 
{
    char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'D', 'E', 'F', 'G', 'A', 'B' };
    unsigned int frequencies[] = {262, 294, 330, 349, 392, 440, 494, 523, 587, 659, 698, 784, 880, 988};

    for (byte i = 0; i < sizeof(names); i++) {
        if (names[i] == note)
            return frequencies[i];
    }
    return 0;
}

Výsledek jsem nadšeně hodil na YouTube. Nechte se inspirovat a taky něco s Arduinem spíchněte :-)


úterý 2. června 2015

Výroba kusových plošných spojů levně v Česku

V mém příspěvku o výrobě plošných spojů doma i venku jsem popsal dvě firmy, které plošné spoje komerčně vyrábějí - jedna je v USA a druhá v Číně. Měl jsem tehdy za to, že všechny české firmy se zbláznily a zhotovit zde malé plošné spoje v kusovém množství za rozumnou cenu je prostě nemožné, a proto jsem se zaměřil na zahraničí.

Od té doby jsem ale náhodou sám narazil na jednu firmu, a zároveň se od kamarádů i od čtenářů mých blogů v komentářích dověděl o dalších českých firmách, které se zaměřily právě na kusovou výrobu a v podstatě jsou schopné udělat velmi pěkné plošné spoje, velmi rychle, a za výbornou cenu. Všechny tyto firmy mají několik společných rysů:

  • vyrábějí plošné spoje fotocestou
  • bez problémů zvládají oboustranné a někdy i vícevrstvé plošné spoje
  • umějí vyvrtat otvory
  • ...ale neumějí udělat v otvorech prokovy
  • výslednou desku plošných spojů umějí pokrýt tenkou vrstvou něčeho dalšího chránící před korozí či usnadňující pájení
  • ...ale neumějí nepájivou masku
Některé z těch firem pak vyhrávají kromě ceny ještě i rychlostí od objednávky po dodání výsledku, která může být i 25krát (!) lepší než v případě zahraničních firem. To je samozřejmě dané především tím, že pošta nejde ze zámoří, ale jen tady u nás po Česku, kde to náš víceméně monopolní přepravce zvládá poslední dobou docela rychle ("večer podáte, ráno dodáme").

Dá se říct, že ty firmy nedělají nic jiného než to, co si člověk může udělat s minimem vybavení a spoustou pečlivosti sám doma - ale dělají to tak levně a tak rychle, že se naráz nevyplatí podomácku plošné spoje vyrábět! A to říkám s plným vědomím toho, že jsem před necelým rokem investoval nemalou částku do vybavení právě pro domácí leptání plošných spojů. Dnes už je ale doma nedělám a plně se spoléhám na jednu konkrétní firmu, kterou uvedu níže.

Takže které že to firmy jsem našel nebo se o nich dověděl? Místo jmen uvedu rovnou jejich URL a to v pořadí, v jakém jsem se o nich dověděl:

Osobně mám zkušenosti jen s prvně uvedenou firmou "Plošňáky.cz" a to z jednoho prostého důvodu: o plosnaky.cz a tistaky.cz jsem se dověděl prakticky ve stejnou chvíli a tak jsem oběma napsal mailem stejný dotaz. Pán z plosnaky.cz mi odpověděl během pár hodin, zatímco pán z tistaky.cz mi neodpověděl ani za půl roku. Tím bylo rozhodnuto a začal jsem posílat své zadání právě do Plošňáky.cz. Tato firma se za posledních pět měsíců, kdy jejich služby využívám, rychle vyvíjela a výrazně zlepšovala své výrobní schopnosti.



Zatímco v lednu ještě přišly desky pocínované, v březnu (i na můj popud ;-) už byly postříbřené. A v dubnu už byly i vyvrtané. A co jsem sledoval její twitter účet, tak vývoj neustal a služby se stále zlepšují. Co je pro mě ale "killer feature" je brutální rychlost reakce. Když v neděli večer pošlu zadání, a v úterý ráno mám doma hotové plošné spoje, tak to je prostě masakr. Anebo jsem zkoušel ve středu v poledne, a měl jsem je doma na druhý den ráno! V tu chvíli přimhouřím oko i nad občasnou mírnou nepřesností leptání (která nemá vliv na funkci živočicháře). Umožňuje mi to vyrábět elektronické prototypy mnohem rychleji než dříve, můžu dělat plně SMD věci atd.. Zkrátka je to výborné!



Mí kamarádi z Olomouce mají dobrou zkušenost s Haspojem, kamarád z Prahy si dělával spoje u Tišťáky.cz a byl s nimi taky spokojen. A čtenář v diskusi mi poradil tu poslední firmu, která je podle svých webových stránek taky levná, přesná a rychlá. Tak co víc si přát?


Pokud znáte ještě další firmy, které dokáží vyrobit levně, rychle a kvalitně kusovky plošných spojů, napište mi do komentářů (a buďte předem přihlášení ke google účtu, jinak vám komentář zmizí, jak bude google přesměrovávat na přihlašovací stránku!). Takové informace mohou pomoci dalším lidem baslit levněji, rychleji a na vyšší úrovni (SMT FTW! :-)

pondělí 1. června 2015

Arduino termostat podrobněji

Domluvil jsem se s redakcí root.cz a můj blogpost o digitálním termostatu tam teď vychází ve formě seriálu (protože mají limit na délku článku a můj text jej několikanásobně překročil). Pokusil jsem se tam rozepsat podrobněji, co a jak. Zatím vyšly dva díly, tento týden vyjde díl třetí, věnovaný hardware termostatu. Příště bude díl o software a pak možná ještě napíšu pátý obsahující nějaké shrnutí, uvidíme.

Jelikož mě čtenáři mého blogu požádali o podrobnější informace o mém termostatu, píšu sem, že je postupně najdou tam, na Root.cz :-) Celý seriál najdete na následující adrese: root.cz/serialy/inteligentni-internetovy-termostat/

Doporučuji nakouknout i do diskuse, je neuvěřitelně bohatá. V tuto chvíli je pod prvním dílem 246 komentářů a pod druhým 117. Téma čtenáře skutečně zaujalo, ovšem v diskusi se sešli především odborníci "od fochu". Díky tomu je v ní ukryto velké informační bohatství, i když je znát, že by to profíci řešili jinak než Arduinem :-)

čtvrtek 23. dubna 2015

Jak jsem se hloupě nechal hacknout přes prohlížeč v Linuxu

Tak jsem si dobrovolně nechal hacknout můj klíčový pracovní stroj, jen vlastní důvěřivostí a hloupostí. V nejbezpečnějším prohlížeči na světě zvaném Google Chrome, běžícím v bezpečném operačním systému Ubuntu, bez návštěv pochybných stránek na Internetu, jsem měl pocit sucha a bezpečí jako uvnitř Alcatrazu - že na mě nikdo nemůže, že jsem fakt dobře zabarikádovaný a nedobytný.

A pak jsem si před měsícem nainstaloval rozšíření Adblock Super (verze 2.7.4) a liboval si, jak mi ubylo reklamy na webu. Jenže před pár dny se mi začaly po kliku na odkazy otevírat úplně jiné stránky plné reklam na nějaké online gamesky. Tušil jsem, odkud vítr vane, tak jsem zakázal to jediné rozšíření, které jsem měl, ale nepomohlo to. Dál mi něco předělávalo stránky tak, že po kliku na normální odkazy jsem končil úplně jinde v reklamním pekle.

Začal jsem tedy pátrat online po podobně postižených. Zatímco pro Windows se dá najít několik nástrojů, které rádoby odstraňují různé podobně problémové situace, pro Linux neexistuje  nic - což je logické, neboť Linux se nedá zavirovat, že? Nakonec jsem našel vlákno v google product fóru, kde pár nešťastníků popsalo něco velmi podobného, co pronásleduje mě, ale řešení veskrze žádné - snad jen promazat ~/.cache/chrome a pak to prý přestane.

Nezbylo mi než se na podívat pořádně sám. Dobrá pomoc je, když v chrome://extensions povolíte "Režim pro vývojáře". U povolených rozšíření se objeví možnost "Zkontrolovat zobrazení" a URL. Pokud to URL obsahuje "background.html", tak běží v pozadí.


A když jsem otevřel background.html od Adblock Super, našel jsem tam kromě jeho 10+6 skriptů ještě jeden zjevně navíc: sosá z "https://cdn.dreamnetworld.com" soubor "extend.js":


A tento skript obsahuje funkci popupSnooze() a ta už jednou za několik hodin náhodně vkládá ty po***né (nevyžádané) reklamy:


Děsivé je, že na to jednak není žádná detekce (ani čerstvě nainstalovaný Extension Defender nic nenašel) a dále že nepomůže ani vypnout to nakažené rozšíření, background.html dál zjevně běží a škodí. WTF Google?

A jak může mít +Google Chrome ve vlastním Obchodě nakažené rozšíření? Kde to jsme?


Největší smrt je, že to může zjevně dělat s jakoukoliv stránkou cokoliv, tedy například číst údaje z mnou zadávaných platebních karet (když platím online), zná to login a heslo mého internetové bankovnictví, PayPalu, Bitcoin peněženky atd. Docela děsivé. Zbořil se mi mnohaletý mýtus o bezpečném operačním systému Ubuntu GNU/Linux a bezpečném prohlížeči Google Chrome. Zdá se, že jedinou možností, jak se aspoň trochu chránit, je odstranit z prohlížeče všechna rozšíření mající právo editovat jakékoliv stránky a používat ho bez nich, tak jak ho vydal výrobce.


P.S. možnost, že Adblock Super je v Chrome Webstore "čistý" a něco ho nakazilo až u mě na počítači raději ani neuvažuju - to by totiž bylo ještě mnohem horší...

EDIT: rozhodl jsem se to přece jen ověřit a na jiném počítači jsem se jal instalovat Adblock Super. Helemese - necelou hodinu po vydání tohoto blog postu je v Chrome Webstore naráz úplně jiná verze!


40x menší instalační soubor, major verze o jedničku nižší... Tak tomu říkám změna. Vtipné je, že kvůli menší verzi (1.3 < 2.7.4) nedojde k automatické aktualizaci u lidí, kteří už tu prokletou verzi s malware nainstalovanou mají.

ROTFL, tak ta "nová" verze je ještě horší. Sice už nemodifikuje cizí stránky, na rozdíl od té "mé" verze:


Za to ale obsahuje místo slibované funkčnosti jen zběsilé otevírání reklamních oken:


Takže jsem si nyní 100% jistý, že už ta verze 2.7.4 byla výrobcem nakažená, a teď se to snaží takto zamaskovat či "vylepšit"...

Z instalace rozšíření do prohlížeče jsem tímto definitivně vyléčen.