osobní blog o tom co mě baví, co se děje a kdo se směje :-)

Zobrazují se příspěvky se štítkemarduino. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemarduino. Zobrazit všechny příspěvky

čtvrtek 5. listopadu 2015

Nanowrimo pátý den - chce se mi spát

18:57 Posted by Sochise , No comments
Viděli jste film Marťan? Dobrý film. Viděl jsem ho v kině. Viděli jste Avatara? Stejný případ. Vždycky mě štve, jak nahrávají ty denní vlogy. Asi to má nějaký význam. Budu to tu muset pojmout stejným způsobem.

Takže je tu pátý den. Asi si říkáte jak to ten člověk dělá? Přes den v práci, odpoledne shání kostým na páteční maškarák, chodí na procházky s pejskem a pak ještě dokáže napsat minimálně denní limit, 1667 slov a ještě o tom psát na blogu. Ano je to neuvěřitelné, ale nic na tom není :-D

Pátý den a mě chytají první spací mory. Na chvíli jsem se lehl na gauč a už mě bere spánek. Dal jsem si kafe, tak doufám, že mi pomůže. Limit jsem zatím plnil vždy o něco málo nad rámec, takže bych teoreticky dneska nemusel napsat tak moc, abych se dostal na hranici, která je pro dnešní den nějakých 8300 slov. Ale musím se držet. Začal jsem psát o něco dříve dneska. Teď mě napadlo co budu psát příští rok :-)
No nic, jdu dopsat co mám rozepsané.
Ale ještě jedno video přidám. Když už jsem tu přidal nějaké mé zbytečné pokusy s Arduinem, můžete se mrknout jak se dají obě věci skloubit. Postavte si z Arduina metr pro měření počtu slov.
Pište, pište, pište.


sobota 18. dubna 2015

Arduino revealing - 2 - more amateur than ever

23:27 Posted by Sochise No comments
Jak jsem psal v prvním díle, nedávno jsme oprášil skříňku, kde jsem delší dobu uchovával své Arduino (nebo spíše, jeden z jeho klonů).
Možná teď bych se nad těmi klony mohl chvíli pozastavit. Pak zase popíšu jak jsem zápasil v dalším experimentu s LabVIEW. Tento seriál nemá za úkol učit, jak pracovat s Arduinem krok za krokem, ale být spíše inspirací, co dělat, aby Vás to bavilo.

Klony?

Ano Klony. žijeme v moderní době, kdy klonování je běžná věc.
Před více než rokem jsem začal zvažovat nákup nějaké hračky, abych využil svou pracovnu a vercajk, který jsem měl k dispozici z dob studia. Na internetu jsem našel zmínky o Arduinu. Hledal jsem tedy více informací. Na internetu jsou mraky aplikací pracující s touto platformou. Celkem se mi to líbilo, ale cena se mi zdála poněkud vysoká. Zas nejsem tak bohatý, abych dal několik tisíc za základní sadu, která by pak strávila značnou část své životnosti někde v zaprášené skříni. "Co když mě to nebude bavit" říkal jsem si. To by pak byly jenom vyhozené peníze. Zkusil jsem tedy využít své bohaté znalosti s nákupem na internetu v zahraničí. Zjistil jsem, že existují kopie - klony - Arduina. Dokonce jsem našel základní sadu s klonem Arduina. Jmenuje se Infiduino Uno R3

Jak už název napovídá, jedná se o klon modelu Arduino UNO. Na první pohled nepoznáte rozdíl. Stejně je to i s funkčností. Zkoušel jsem s ním už hodně věcí a funguje stejně jako originál. Důvod proč jsem se rozhodl koupit klon, byla hlavně cena. Infiduino je cenově neporovnatelně jinde. Pokud se nacházíte ve stejné nejistotě před nákupem Arduina, určitě můžu doporučit pořídit nejdřív klon.
Arduino je v současné době velice populární. Cena originálu je totiž v porovnání s podobnými vývojovými deskami velmi nízká. Podobné kity mohou stát klidně i desetinásobek a jsou tedy určeny pouze pro firmy s vlastním vývojem, kde si mohou vyzkoušet vlastnosti nového procesoru a podobně. Arduino je svou cenou dostupný i civilům, kteří mají bastlení jako hobby, nebo malým garážovým firmám. Ovšem českému nadšenci se může i tato cena zdát vysoká, proto jsem si taky pořídil nejdříve klon.

Experiment - Arduino + LabVIEW

A teď k experimentu. Tento experiment mě stál mnoho úsilí a nervů. Nakonec jsem však se dopracoval k výsledku a dokázal jsem pomocí softwaru LabVIEW provést experiment s blikáním LED (tedy téměř stejný experiment, který jsem v prvním díle schválně vynechal, protože je primitivní). Ale přece jen s LabVIEW je to o něčem jiném.
Pokud jste studovali elektrotechnickou školu, střední či vysokou, určitě jste na LabVIEW narazili. Například v laboratořích elektrotechnických měření jste jej využili pro nějakou blbost, jako třeba měření vybíjení kondenzátoru. LabVIEW představuje graficky a vývojový nástroj pro návrh systému od firmy National Instruments. V současné době mám možnost tento nástroj využívat.
Sedl jsem si tedy k PC a začal zkoumat jak propojit Arduino s LabVIEW. Pro amatéra jako jsem já, byla podpora celkem nedostatečná. Po instalaci LabVIEW jsem si přes VI package manager (VIPM), stáhl interface pro Arduino (LIFA). To je jednoduché. VIPM se nainstaluje společně s LabVIEW. Po otevření se zobrazení seznam možných rozšíření, které se stahují z internetu. Instalace doplňků je také jednoduchá. Po instalaci přišlo na řadu vlastní připojení. To bylo peklo. Stručně: Nešlo to. Po pár hodinách nervů a pročítání diskuzí, proč se pořád objevují chyby a připojení Adruina s LabVIEW nefunguje, jsem došel k tomu, že nové Arduino IDE nejspíše nespolupracuje s LIFA (LIFA_Base jednoduše nešlo nahrát).
Pro nové IDE (1.6.3) je třeba stáhnout jiný interface - LINX. Jak vypadá VIPM vidíte na obrázku níže. Červeně je zobrazen u mě nefunkční LIFA a žlutě nový, funkční LINX.
LIFA vs. LINX
Jde o to, že u LIFA jste museli mít puštěn také Arduino IDE a v něm nahraný LIFA_Base. LINX toto nevyžaduje a v prvním pokusu si sám nahrál do Arduina vše potřebné. Po spuštění LabVIEW je postup následující. V menu Tools vyhledejte MakerHub, pak LINX, Firmware Wizard. Vyskočí nové okno, kde postupně vyberete platformu, typ, COM port, firmware version (Serial/USB). Pak dojde k nahrání SW. LEDky TX a RX by měly svítit během nahrávání. Postup nahrávání je vidět i na monitoru. Pokud něco z toho nepozorujete, SW se nenahrál. Pokud dojde ke správnému nahrání, tlačítkem Lauch example spustíte první experiment. Celý postup je níže ve screenshotech.
experiment
Po spuštění experimentu vyskočí okno s ovládacím panelem. Zvolíte si digitální výstup (na obrázku je pin 13, který představuje SMD LED na DPS. Není třeba zapojovat žádnou diodu. Ale klidně si můžete připojit svou diodu přes rezistor podle schématu a zvolit si vlastní externí digitální pin. Taky přikládám video, jak to funguje.


A to by bylo asi všechno dneska. Dva dny jsem strávil nad tím, abych si mohl rozsvítit diodu, tak doufám, že se Vám to taky podaří :-). Zkusím ještě nějaké pitomosti s LabVIEW, dokud ho mám k dispozici.

Postup nahrání LINX do Arduina

výběr modelu
výběr portu


firmware version
nahraní 


kompletně nahráno
experiment










čtvrtek 16. dubna 2015

Arduino revealing - 1 (serial)

18:33 Posted by Sochise No comments
arduino
První díl seriálu okolo Arduina. Co to je a nějaký ten experiment

Sice je to už rok, co jsem si koupil Arduino. Doma jsem si udělal v jednom pokoji pracovnu a řekl jsem si, že bych jí měl nějak využit. Pořídil jsem si tedy vývojovou sadu Arduino, se kterou bych si mohl hrát. Díky ní zkombinujete znalosti jak praktické elektroniky (zapojování, pájení ...), tak i programování. Já osobně mám malé praktické znalosti a zkušenosti s elektronikou a programování nezvládám téměř vůbec. Ale i přesto jsem se do toho pustil. Můžu říct, že mě to baví a dokonce to není ze začátku až tak složité. Sice se poslední půl rok prášilo na skříňku, kde byla celá sada uložena, ale opět jsem se rozhodl do toho vlítnout. To co jsem pochopil předtím jsem nezapomněl a hned sestavil malý, bezvýznamný obvod. A ten tady stručně popíšu.

Co je Arduino?

Vůbec nevím, jak bych odborně popsal tuto vývojovou platformu, proto jsem si našel vhodný text na českém webu zabývající se Arduinem - arduino.cz

"Arduino je nástroj pro tvorbu počítačů, které mají větší kontrolu a cit pro fyzický svět než váš běžný stolní počítač. Jedná se o fyzickou open-source počítačovou platformu, jež je založena na jednoduché mikrokontrolní desce a vývojářské prostředí sloužící k zápisu softwaru.
Pomocí Arduina můžete vyvíjet interaktivní předměty, získávat vstupy od různých spínačů a senzorů a ovládat například světla, motory či jiné fyzické výstupy. Arduino projekty mohou být buď samostatné, nebo ve spojení se softwarem na vašem počítači (např. Flash, Processing, MaxMSP). Desky mohou být sestaveny ručně, či zakoupeny již předem postavené, stáhnutí open-source IDE integrovaného vývojového prostředí) je zdarma.
Programovací jazyk Arduino využívá Wiring, obdobnou fyzickou počítačovou platformu, založenou na multimediálním programovacím prostředí Processing." (Zdroj: arduino.cz)

Otřepaná fráze - "Teorie by bylo už dost"

Experiment

Prvními experimenty s blikáním diody mám už za sebou. Dokonce jsem se dozvěděl, že nepotřebuji k desce připojovat žádné diody a odpory, ale první, nejjednodušší experiment lze provést jen s připojenou deskou k počítači a rozsvítit si diodu, která je už na desce (malá SMD LED) - (Zde naleznete tento experiment). Přeskočením těchto úvodních experimentů, se chci zároveň vyhnout prvotnímu nastavení, připojení, instalace a podobně. Toto naleznete na oficiálních stránkách docela podrobně. Doporučuji řídit se přesně jejich pokyny.
Na Obr.1 je vidět pohled na téměř celý obvod experimentu. Není tam vidět pouze samotná deska Arduina a PS2 joystick, který je však na Obr. 2. Původně jsem chtěl rozepsat, jak jsem k tomuto obvodu došel, ale nakonec to neudělám. Pouze stručně jsem si chtěl vyzkoušet čtení analogových hodnot z joysticku. Hodnoty jsem pak sledoval na Serial monitoru. Ale chtěl jsem udělat něco navíc, tak jsem připojil displej a hodnoty si nechal vypsat na něm. Prostě jednoduchá věc. Pak jsem si už jenom hrál s kalibrací, aby se středová pozice joysticku ukazovala jako 0 a následně se vypisoval textově i směr, kam s joystickem pohybuji. Celý kód pro tento experiment naleznete dole. Taky jsem vložil videa s demonstrací funkčnosti zapojení.
Obr.1 - Experiment


Obr. 3 - kalibrace na střed


Obr. 2 - PS2 Joystick
Na začátku dojde k nastavení LCD. Tedy vložení knihovny a definování jeho připojení. 
Void setup jsem nevyužil, jelikož jsem neměl co nastavovat.
Ve void loop pak je zapsán celý cyklus programu. Nejdřív jsem nastavil proměné x, y, d, kterým jsem nastavil analogové piny a nastavil na čtení. Tím jsem zakončil první část programu, díky kterému získám analogovou hodnotu pozice joysticku. Jak jsem psal výše, hodnoty jsem si nechal zobrazovat na Serial monitoru. Tady však popíšu rovnou obvod se zapojeným LCD. Teď už je čas na zobrazení hodnot. Nejdřív se definuje počet sloupců a řádků displeje a nastaví kurzor na pozici 0,0. Teď se už vypisují pouze příkazy k výpisu toho co chci. Aby data byla jasně rozpoznatelná na displeji, nechal jsem si vypsat nejříve X= a za to hodnotu, která je přečtená na analogovém vstupu A5. Při středové pozici joysticku mi displej ukazuje hodnotu 524. Aby se na LCD ukázala 0 při středové poloze, odečtu tuto hodnotu přímo v kódu - (x-524). Stejnou kalibraci provedu i u y-osy. U y-osy je však nastaven kurzor na pozici 0,2. Tedy začátek řádku 2. 
Pokud chci textově vypsat i směr pohybu joysticku, použiji na to podmínky - IF a IF ELSE. Pokud bude hodnota x vyšší než 524, bude se vypisovat pohyb směrem doprava. Když bude hodnota x menší než 524, bude směr vlevo. Při hodnotě rovnající se 524, se vypíše střed. Stejně to platí u y-osy. Do podmínek se musí vložit reálné hodnoty a ne kalibrované na nulu.
Takto si můžete různě pohrát. U prvního videa uvidíte i funkčnost tlačítka joysticku. U druhého videa jsem tlačítko vynechal a zaměřil jsem se pouze na zápis hodnoty osy x a y.
Takže hodně zdaru s pokusy. Na příště vymyslím zase nějakou zbytečnost :-) Pokud by jste něčemu nerozuměli, tak piště komentáře a něco s tím uděláme.




Program experimentu

//první dojde k nastavení LCD displeje
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2);

void setup() {

}

void loop() {
  int x = analogRead(A5); //Analogový vstu A5 nastaven pro čtení osy x
  int y = analogRead(A4); //Analogový vstu A4 nastaven pro čtení osy y
  int d = analogRead(A3); //Analogový vstu A3 nastaven pro čtení tlačítka joysticku
  
  lcd.begin(16, 2);     // nastavení displeje - počet sloupců a řádků 
  lcd.setCursor(0, 0);  // nastavit kurzor na sloupec 0, řádek 0
  lcd.print("X=");      // vypíše na LCD text X=
  lcd.print(x - 524);   // vypíše hodnotu (odečtení čísla 524 je z důvodu kalibrace a vypsaní 0 pro pozici středu

  if (x > 524) {        // pokud je hodnota vyšší než středová vypíše se "vpravo"
    lcd.setCursor(7, 0);
    lcd.print("vpravo");
  }
  else if (x < 524) {  // pokud je hodnota nižší než středová vypíše se "vlevo"
    lcd.setCursor(7, 0);
    lcd.print("vlevo");
  }
  else if (x = 524) {  // pokud se hodnota rovná 0 vypíše se "střed"
    lcd.setCursor(7, 0);
    lcd.print("stred");
  }
  
  lcd.setCursor(0, 2); //pro y platí to stejné jako x
  lcd.print("Y=");
  lcd.print(y - 505);
  if (y > 505) {
    lcd.setCursor(7, 2);
    lcd.print("nahoru");
  }
  else if (y < 505) {
    lcd.setCursor(7, 2);
    lcd.print("dolu");
  }
  else if (y = 505) {
    lcd.setCursor(7, 2);
    lcd.print("stred");
  }

}



LabelPart TypeProperties
LCD1LCD screentyp Character; piny 16
R1Rotary Potentiometer (Small)track Linear; typ Rotary Shaft Potentiometer; pouzdro THT; maximální odpor 10kΩ; velikost Rotary - 9mm
Součástka1Arduino Uno (Rev3)typ Arduino UNO (Rev3)
Součástka2Thumb Joystick





pátek 30. května 2014