Blog
Už delší dobu jsem se zabýval myšlenkou na přenesení díla Andreje Sládkoviče do počítače. V Banské Bystrici má zvláštní sochu v zahradě evangelického kostela a na nedalekém hřbitově je i pohřben. Teď přes svátky jsem si našel trochu volného času a překonvertovat jsem jeho báseň Marína do pole v C++.
V tomto článku si propojíme Arduino a HTML stránku, na které se nachází AngularJS aplikace. K propojení využijeme Node.js a komunikaci mezi serverem a stránkou zajistí Socket.
Naše dítě mělo nedávno dva roky a jeho nejoblíbenější slova jsou auto a blik. Pojďme si takovýto blik vyrobit pomocí mikrokontroléru ATtiny85. Program Blik je nejzákladnějším programem pro Arduino, na kterém se naučíte základy ovládání vývodů z mikrokontroléru.
Mikrokontrolér ATtiny85 má dva 8bitové timery. Pomocí nich lze ovládat stmívání LED diod. 8 bitů je ale málo v případě, že chcete mít změnu jasu přizpůsobenou lidskému oku.
V dnešním článku si připojíme více Arduin k počítači pomocí Node.js balíčku serialport. Budeme upravovat předchozí příklad, ve kterém jsme připojovali pouze jedno Arduino.
Z jednoho projektu jsem vybral příklad monitorování stisknutí tlačítka pomocí Arduina. Program sleduje stisk tlačítka pomocí přerušení a zasílá informaci o stlačeném tlačítku pomocí sériového portu do počítače. V příkladu najdete nastavení přerušení pomocí funkce attachInterrupt a makra digitalPinToInterrupt.
Své Orange Pi Zero jsem si koupil bez krabičky. Když dorazilo, začal jsem s ním experimentovat a hned jsem narazil na jeden problém. Orange Pi Zero má rozměry 5x5 cm a je neuvěřitelně lehké.
Mohu se s vámi podělit o zkušenost se selháním Cloudu. Moje stránky mám umístěny v Google App Engine. Před pár dny jim na několik hodin selhala důležitá služba, která se nazývá Memcache.
V předchozím článku o Orange Pi Zero jsme si ukázali ovládání GPIO pinů pomocí knihovny WiringOP. Na jednoduché činnosti vám tato knihovna poslouží dobře, ale při komplikovanějších projektech byste se potrápili, pokud byste všechno odladili. Pokud máte k dispozici Arduino, můžete jej připojit do USB portu a využívat jeho možnosti.
Tento článek popisuje aktualizovanou verzi balíčku serialport ve verzi 6. Budeme pomocí sériového portu komunikovat s Arduinem. V JavaScriptu v prohlížeči nelze použít sériový port na lokálním počítači.
V datasheetu k obvodu DS1307 se dočtete, že doporučené napájení integrovaného obvodu je v intervalu 4,5 - 5 V. Na Internetu ale najdete mnoho příkladů připojování tohoto integrovaného obvodu k ESP8266, kde nikdo otázku napájení neřeší. Pojďme se podívat na to, zda DS1307 je schopno bez problémů spolupracovat s ESP8266.
I2C tester je užitečná pomůcka pro každého, kdo připojuje k Arduinu nové I2C zařízení. Pomocí něj se snadno zkontroluje, zda I2C komunikace funguje. Většina z nás využívá I2C tester ze stránek Arduina.
Není vůbec jednoduché fotografovat elektronické součástky. Musíte mít dobré světlo, dobrý podklad bez odlesků a nikdy nevíte, zda lepší výsledek dosáhnete s bleskem nebo bez něj. Píši tento blog již několik let a stále jsem s tímto problémem zápasil.
WiringOP je modifikace knihovny WiringPi pro Orange Pi. Umožňuje ovládat GPIO vývody na desce. Vývody na desce se nacházejí na 26-pinovém konektoru.
Integrovaný obvod DS1307 má jeden vývod označený jako SQW. Na něm je možné zapnout generování signálu s obdélníkovým průběhem. Generovaný signál může mít nastavenou různou frekvenci.
V dnešním článku si vysvětlíme základy používání integrovaného obvodu DS1307. Naučíme se nastavit čas a naučíme se také číst čas z obvodu. Vysvětlíme si, jak využívat celou RAM, kterou nám integrovaný obvod poskytuje.
V tomto článku si ukážeme instalaci Node.js na Orange Pi Zero. Tento program umožňuje vytvářet serverové aplikace pomocí JavaScriptu.
Mikrokontrolér ATmega2560 je součástí desky Arduino Mega 2560. Obsahuje více vývodů a jeho autoři přidali i více časovačů. Obsahuje dva 8bitové a čtyři 16bitové timery.
Oblíbeným projektem pro Arduino je řízení světelné křižovatky. V dnešním článku si takový semafor naprogramujeme. Nebudeme to dělat klasicky, ale využijeme sekvencer, pomocí kterého se tato úloha změní na velmi jednoduchou úlohu.
Narození druhého dítěte bylo inspirací pro tento projekt. Potřebovali jsme snadno přenositelný zdroj světla, na kterém lze plynule nastavit jas. Využil jsem zkušenosti z projektu Bambíno a ATtiny13A a vytvořil jsem projekt LED světla, které je napájeno 4,5 V baterií.
V pondělí se nám s manželkou narodilo druhé miminko. Bude zajímavé sledovat, jak se mi podaří spojit hobby a náročnou péči během prvního měsíce jejího života. A velmi mě zajímá i to, zda bude mít takovou vášeň pro součástky, jako má náš chlapec.
Vyzkoušel jsem malý 1,5 F kondenzátor spolu s mikrokontrolérem ATtiny85. Vyrábí ho firma Panasonic a pracuje s napětím maximálně 5,5 V. Kondenzátor je určen pro zálohování nízkoenergetických zařízení.
Pro dnešní téma jsem vybral zajímavou oblast. Budeme pomocí Arduina vytvářet signál SOS. Signál se bude zobrazovat pomocí LED diody.
Natrefil jsem na zaujímavý článek, který popisuje nastavení gama korekce pro LED diody. V článku se objevuje známá tabulka 256 hodnot, které umožňují přizpůsobit jas LED diody pro lidské oči. Já sám jsem tu tabulku několikrát použil (stmívač LED pásku, 1W led stmívač), ale vůbec jsem neznal autora, který danou tabulku vytvořil.
Arduino má implicitně všechny PWM kanály nastaveny na 8-bitové rozlišení. Toto není maximální rozlišení. Timer1 umí použít až 16bitové rozlišení.
Dnes se budeme věnovat zajímavé knihovně, která umožňuje ukládat heslo k WiFi. Díky tomu můžete používat jeden program pro všechny své ESP8266. V něm nemáte žádné heslo.
Udělal jsem pár experimentů s NTP serverem a ESP8266. Stažení času a konverze do UTC je dobře popsána přímo v demo příkladech. Konverze času do časové zóny a používání letního času není skoro nikde dokumentováno.
V tomto článku budeme skenovat WiFi sítě pomocí ESP8266. Budeme vycházet ze vzorového příkladu, který upravíme tak, aby výsledky zobrazoval na OLED displeji 0.96.
V bytě, který jsem si koupil, byla předsíň upravena tak, aby tam vznikl malý šatník. Kolem šatníku byla u stropu namontována dřevěná konstrukce, v níž byly halogenová světla. Nefungovalo to a po obhlídce jsem zjistil, že původní řešení bylo nebezpečné.
V tomto článku vysvětlím princip činnosti stmívače LED pásků. Je to čtvrtý ze série článků, na kterých vám ukážu, jak postupně probíhá vývoj programů a jak diametrálně se může lišit výsledný program. Tento text popisuje aktuální verzi kódu 1.
K napsání tohoto článku mě inspirovala otázka na Google+ fóru. Jak dostat jméno a heslo (například k WiFi) do Arduina tak, aby to nebylo nutné zapsat přímo do programu. Tak totiž hrozí nebezpečí, že z neopatrnosti zašlete své heslo například na GitHub.
Na tuto chvíli jsem se dlouho těšil. Konečně je venku nová verze Google Cloud Translation API, která překládá pomocí neuronových sítí. Proto jsem se pustil do automatických překladů mých stránek do češtiny a angličtiny.
V tomto blogu najdete mírně vylepšení konstrukce stmívače. V první verzi jsem nadělal několik drobných chyb, které jsem zde opravil. Pokud si chcete postavit vlastní stmívač, vycházejte z této konstrukce.
Navážeme na starší článek o používání Arduina jako ISP programátoru. Pomocí něj naprogramujeme mikrokontrolér ATtiny84. To je 14-vývodový mikrokontrolér, který je velmi podobný na ATtiny85.
Šťastná náhoda napomohla tomu, abych dokončil projekt iluze svatojánské mušky. Ve výprodeji jsem koupil vázu, která byla ze skla a měla originální motiv z červených skvrn. Do ní bylo snadné umístit celou elektroniku, která vytvořila výslednou iluzi.
Toto jsou komentované příklady pro Node.js. Zdrojové texty najdete na stránce https://github.
Dnes plynule navážeme na předchozí článek. S rádiovými moduly budeme pracovat pomocí knihovny Radiohead. Opět využijeme dvojici vysílač a přijímač, která spolu komunikuje na frekvenci 433 MHz.
Každý z nás se na Ebay setkal s neuvěřitelně levnými moduly, které umožňují bezdrátovou komunikaci mezi Arduinami. Nabídka je tam neuvěřitelně pestrá a my se v tomto článku podíváme na to nejlevnější v nabídce. Dvojici vysílač a přijímač, která spolu komunikuje na frekvenci 433 MHz.
V tomto článku vysvětlím princip činnosti stmívače LED pásků. Je to třetí ze série článků, na kterých vám ukážu, jak postupně probíhá vývoj programů a jak diametrálně se může lišit výsledný program. Postupně projdeme zdrojové kódy programu od verze 1.
V několika článcích jsme se věnovali úvodu k Node.js a dnes se podíváme na první zajímavou tému. Budeme pomocí sériového portu komunikovat s Arduinem.
V předchozím článku jsme se zaměřili na data z externí EEPROM. Byla to jen zvědavost. Skutečným důvodem pro získání paměti EEPROM byl test paměti.
Tento článek popisuje, jak si nainstalovat virtuální stroj od firmy Bitnami. Jejich připravené virtuálky mají výhodu v tom, že už je vše připraveno a nemusíte úplně všechno instalovat. Pouze si předinstalovaný stroj upravíte na své potřeby.
V tomto článku vysvětlím princip činnosti stmívače LED pásků. Je to druhý ze série článků, na kterých vám ukážu, jak postupně probíhá vývoj programů a jak diametrálně se může lišit výsledný program. Postupně projdeme zdrojové kódy programu od verze 1.
Z nějaké odpálené desky jsem vyspájkoval 32 Kb EEPROM v SOIC8 pouzdře. Plánuji ji použít na test výdrže přepisování, ale ještě předtím, než ji definitivně zničím, zajímalo mě, co se na EEPROM ukrývá. Dají se z takové EEPROM ještě přečíst údaje? A abych to zbytečně nenatahovat, tak deska sice odpálena byla, ale EEPROM byla v pořádku a tady je kód, pomocí kterého se dají z této konkrétní EEPROM přečíst údaje.
V tomto článku budeme rozvíjať kód, ktorý sme vytvorili v predchádzajúcom článku. Navrhneme si triedu, ktorá bude optimalizovaná na zapisovanie pola objektov do EEPROM. Objektom môže byť napríklad nameraná hodnota, ale fantázii sa medze nekladú.
Před pár dny jsem psal o tom, že mám v Google Cloud experimentální server pro Node.js. Chtěl bych na něm primárně dělat propojení mezi Arduinem a javascriptem.
V tomto článku navážeme na předchozí, ve kterém jsme si vysvětlili základní použití externí EEPROM. Navrhneme si třídu, která nám umožní pohodlně ukládat do EEPROM libovolný objekt. Využijeme přitom šablony jazyka C++ a doplníme do třídy dvě funkce, které budou plnit tento úkol.
ATtiny85 obsahuje dva 8bitové timery. Nemají sice takový rozsah jako ty v ATmega328P, ale na většinu úkolů to postačuje. V tomto článku se podíváme na časovače z hlediska CTC režimu.
Pred pár mesiacmi sme nahliadli do Arduino Web Editora. Je to online prostredie, ktoré umožňuje písať programy pre Arduino priamo v prehliadači. V dnešnom článku nahliadneme pod jeho kapotu a povieme si niečo o tom, ako toto nové prostredie kompiluje program.
V tomto článku si vysvětlíme, jak můžeme pracovat s externí EEPROM. Externí EEPROM se obvykle ovládají protokolem I2C a v tomto článku se budeme věnovat právě takovým EEPROM. Příklad bude pro 24LC16B, ale až na drobnosti bude tento návod univerzální pro libovolnou EEPROM.
Na stránkach môžete hľadať podľa zadaného výrazu. Fulltextové vyhľadávanie nájde všetky stránky, ktoré daný výraz obsahujú. Hľadanie je urobené pomocou Search API pre Google App Engine.
Pomocí timeru si můžete zjednodušit několik úkolů. Můžete ho využít i ke kontrole stavu tlačítka. V tomto článku si ukážeme, jak můžeme kontrolovat dvě tlačítka, které mění hodnotu proměnné.
Dnes to bude trošku odlehčená téma. Využil jsem mikrokontrolér ATtiny13A v projektu pro naše malé bambíno. Strašně rádo si cvaká vypínačem na stěně a sleduje, jak se světlo zapne nebo vypne.
Vytvoril som ďalšiu aplikáciu. V tejto je možné zobraziť si tabuľku všetkých registrov konkrétneho mikrokontroléra. V tabuľke možno hľadať podľa názvu registra a podľa názvu bitu.
Tento článek popisuje připojení OLED displeje k Arduinu Uno. OLED displej má velikost 0.96 a rozhraní SPI.
Arduino Uno má 6 PWM kanálů na pinech 3, 5, 6, 9, 10 a 11. V tomto článku si ukážeme, že to nemusí být konečný počet. Hardwarové PWM ale musíme nahradit vlastním kódem.
V tomto článku vysvetlím princíp činnosti stmievača LED pásikov. Bude to prvý zo série článkov, na ktorých vám ukážem, ako postupne prebieha vývoj programov a ako diametrálne sa môže líšiť výsledný program. Postupne prejdeme zdrojové kódy programu od verzie 1.
V tomto článku navážeme na předchozí článek, který popisoval timer2. Pokusíme se o stejnou vizualizaci činnosti registru TCNT0, který se nachází v časovači 0. Timer0 v Arduinu obsluhuje výpočet času a proto zásahy do něj ovlivňují i funkce millis a delay.
Pri testovaní mojej aplikácie na výpočet timerov v CTC režime som natrafil na zaujímavý článok, ktorý ma inšpiroval k tomuto pokusu. Jednoduchý spôsob, ako možno vizualizovať to, čo sa deje počas činnosti timera. Preto som len mierne preusporiadal zapojenie z predchádzajúceho experimentu a pustil sa do vlastnej vizualizácie.
V dnešním článku se zase podíváme na časovač (timer) v CTC režimu. Předvedeme si jednoduchou animaci s osmi LED diodami. Protože veškerou práci s časováním animace nám provede timer, v kódu budeme muset pouze napsat vhodný kód pro samotnou animaci.
V tomto článku najdete popis algoritmu, který vytvoří psychedelické přechody barev pomocí RGB LED diod. Jak to vypadá se popisuje obtížněji, proto se podívejte na video na konci článku, kde se tyto barvy plynule mění. Toto byl první experiment na daném poli a proto je výsledek trochu jiný, než jsem čekal.
Před pár dny jsem na mé stránky přidal sekci Aplikace. Vytvářím tam malé aplikace, které se mohou ve světě elektroniky hodit. Všechny aplikaci jsou vytvářeny pomocí JavaScriptu.
Výpočet nastavení časovače v režimu CTC jsme si ukázali v předchozím článku. Není složitý, problémem je správně nastavit všechny registry. Pro každý časovač v Arduinu se nastavení liší.
Každé Arduino obsahuje několik časovačů (timerů). Ty mají různé využití. My se v tomto článku zaměříme na časovač, který v pravidelných intervalech vyvolává přerušení, které nám umožní v přerušení provést požadovanou akci.
Doplnil jsem novou sekci s názvem Aplikace. Jako první aplikaci jsem naprogramoval výpočet veličin podle Ohmova zákona. Je to sice jednoduchý výpočet, ale právě proto mi dobře posloužil, abych se mohl zdokonalit v používání webového frameworku AngularJS.