Arduino a RC vysílačka
9.12.2014, arduino, JohnyPotřeboval jsem řídit krokový motor pomocí modelářské vysílačky. Motor řídit umím, nicméně se čtením PWM signálu z vysílačky jsem se trochu trápil. Celkově jsem vyzkoušel tři přístupy jak hodnotu z vysílačky číst. První nápad byl použít pulseIn(), dále manuální čtení stavu pinu a výpočet času změny. Nakonec nejlepším řešením bylo použití interuptu.
Co vlastně načítám?
PWM signál z vysílačky je v podstatě neustále se měnící 1 a 0 (HIGH/LOW) hodnota. Čím rychleji se mění, tím menší hodnota na vysílačce je. Čím pomaleji se mění, tím vyšší hodnota na vysílačce je.
Tento článek tedy rozebírá v podstatě pouze to, jak nejlépe a co možná nejpřesněji měřit délku pulzů, které nám jdou z přijímače.
Pro názornost přikládám obrázek z mého osciloskopu, kde je vidět jak signál vypadá když je „plynová páčka“ na vysílačce v poloze MIN a MAX (stačí přejet přes obrázek myší). Jeden dílek na stupnici je 500us. Z toho je patrné, že minimální hodnota pro signál je cca 1000us a maximální cca 2000us. Na mojí vysílačce to je přesněji cca 990us až 1980us, jak rozebírám později.
Arduino a krokový motor potřetí
20.11.2014, arduino, JohnyMůj kód z předchozího příkladu fungoval, nicméně nešel snadno použít pro víc motorů – což může být někdy docela nepříjemné. Důvodem samozřejmě byla existence pouze jedné proměnné s piny motoru i proměnná která udržuje aktuální „krok“ motoru.
(čtěte celý článek...)Arduino a motor 28BYJ-48 podruhé
17.11.2014, arduino, JohnyNedalo mi to, a s motorem si stále hraji. Navíc jsem objednal dalších 5 kousků. Tolik věcí, co by to mohlo dělat – automaticky stahovat žaluzie, mohu si postavit vlastní robotický podvozek, kamerový motorový slider atd atd. Prostě super ;-)
Pro začátek jsem zkusil zapojení, aby bylo jasnější, jak to funguje. Obvod ULN2003 je vlastně jenom pole tranzistorů a jediný efekt je ten, že nám pomocí 5V z arduina sepne GND (zem) z baterky do daného vývodu motoru. Motor je nastálo připojen k +5V, a právě tím, že se různě přepojuje zem se zapínají a vypínají jednotlivé cívky.
zapojení ULN2003 s 28-BYJ-48
Arduino - řízení krokového motoru
11.11.2014, arduino, JohnyDelší dobu si na amatérské úrovni hraju s Arduinem. Už jsem zapojil hromadu různých legrácek, které by se občas hodili. Bohužel, často to jen zapojím – zkusím – funguje – rozeberu – zapomenu.
Často je tak zapojení včetně programu ztraceno na vždy. A přitom třeba debugger DMX signálu za pár korun by se mi už tolikrát hodil! Měl jsem si to poznamenat. Znovu to znovu hledat a ladit se mi strašně nechce :(
Proto jsem se rozhodl občas zde zveřejnit nějaké mé zapojení a programy tak, abych s odstupem času měl kam sáhnout, super, ne? :)
Mé zapojení krokového motoru
Implementace ICMP Pingu v PHP
10.1.2013, site, JohnyPotřeboval jsem naprogramovat poměrně sofistikovaný script, který bude kontrolovat dostupnost internetu. V případě výpadku analyzuje situaci a podle potřeby automaticky modifikuje routovací tabulku na routerech. Protože takovéto utilitky programuji nejčastěji v PHP5, tak jsem hledal řešení jak z PHP poslat ping. PHP ping st tak stal základním stavebním kamenem mého scriptu a protože jsem se nad ním pořádně zapotil, rozhodl jsem se tento kus kódu dát veřejně k dispozici. Třeba se někomu taky hodí.
(čtěte celý článek...)