Arduino
(Rozdíly mezi verzemi)
(→Co potřebujeme:) |
|||
Řádka 1: | Řádka 1: | ||
[[Soubor:Arduino_01.jpg|thumb|Arduino Duemilanove]] | [[Soubor:Arduino_01.jpg|thumb|Arduino Duemilanove]] | ||
− | [[Soubor:Arduino_02.png|thumb| | + | [[Soubor:Arduino_02.png|thumb|link=http://arduino.cc/hu/Main/Software|Download SW]] |
− | + | ||
Arduino | Arduino | ||
Řádka 56: | Řádka 56: | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | |||
+ | |||
+ | == Tutoriály: == | ||
+ | {| | ||
+ | |- | ||
+ | | [[Soubor:arduino_tutorial_series_jeremy_blum.jpg|100px]] [http://www.jeremyblum.com/portfolio/arduino-tutorial-series/ Arduino Tutorial Series by Jeremy Blum] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:arduino_tutorial.jpg|100px]] [http://www.ladyada.net/learn/arduino/index.html Arduino Tutorial - Step by Step] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:arduino-blok.png|100px]] [http://arduino-blog.cz/?page_id=6 Arduino Blog] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:Arduino-c.jpg|100px]] [http://www.linuxsoft.cz/article.php?id_article=1877 Arduino - programování v čistém C(++)] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:Arduino-root-cz.jpg|100px]] [http://www.root.cz/clanky/arduino-jak-pro-nej-zacit-programovat/ Jak pro něj začít programovat - seriál na ROOT.cz] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:Arduino-na-wiki.jpg|100px]] [http://cs.wikipedia.org/wiki/Arduino Arduino na wiki] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:arduino-josefnav.jpg|100px]] [http://www.josefnav.cz/Arduino.html Arduino Duemilanove - popis od ] | ||
+ | |||
+ | |- | ||
+ | |[[Soubor:arduinocheatsheet.png|100px]] [http://sites.google.com/site/mechatronicsguy/arduinocheatsheet download] | ||
+ | |||
+ | |- | ||
+ | |} | ||
+ | |||
+ | |||
+ | ==Aplikace:== | ||
+ | |||
+ | {| | ||
+ | |- | ||
+ | | [[Soubor:blikani-LED.jpg|100px]] [http://www.techdot.eu/index.php/2008/02/01/arduino-prvni-program-blikani-led/ Arduino: První program - blikání LED] [http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/ Arduino Examples #1] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:Arduino-Knight-rider.jpg|100px]] [http://pavel-novak.net/clanky/arduino-knight-rider.html Arduino: Knight rider] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:Arduino-L293.jpg|100px]] [http://letsmakerobots.com/node/2074 Control your motors with L293D] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:arduino_dc_motor.jpg|100px]] [http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/ Control a DC motor with Arduino and L293D chip] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:Arduino-LCD.png|100px]] [http://www.arduino.cc/en/Tutorial/LiquidCrystal LCD displays HD44780] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:Arduino-a-LCD-s-S6A0069-radicem.png|100px]] [http://blog.tomasbrincil.cz/?p=283 Arduino a LCD s S6A0069 řadičem] | ||
+ | |||
+ | |||
+ | |- | ||
+ | | [[Soubor:Arduino-web-camera.jpg|100px]] [http://blog.tomasbrincil.cz/?cat=20 Arduinem ovládaná webkamera streamující video přes VLC #2] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:How-to-Make-LEDs-Flash-to-Music-with-an-Arduino.jpg|100px]] [http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/ How to Make LEDs Flash to Music with an Arduino] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:arduino-distance-sensor-ping.jpg|100px]] [http://mattwiechec.wordpress.com/2010/01/26/arduino-distance-sensor-ping/ Arduino – Distance Sensor PING)))] | ||
+ | |||
+ | |- | ||
+ | | [[Soubor:arduino_MPX_display.jpg|100px]] [http://translate.google.co.jp/translate?js=y&prev=_t&hl=ja&ie=UTF-8&layout=1&eotf=1&u=http://arms22.blog91.fc2.com/blog-entry-365.html&sl=ja&tl=en&swap=1 Display the fan speed for the PC] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | |||
+ | ==Doplňky:== | ||
+ | |||
+ | <gallery> | ||
+ | |||
+ | Soubor:Arduino_deal.jpg|[http://www.dealextreme.com/p/multi-function-4wd-arduino-robot-raider-car-kits-128715?item=28 Arduino Robot Car Kits] | ||
+ | Soubor:propoj_kabel.jpg|[http://www.avratmel.eu Propojovací kablíky] | ||
+ | |||
+ | </gallery> | ||
===Jednoduchá aplikace pro Arduino:=== | ===Jednoduchá aplikace pro Arduino:=== | ||
Řádka 170: | Řádka 248: | ||
} | } | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Verze z 20. 5. 2012, 13:35
Arduino
- Mikrokontrolér: ATmega168 / ATmega328
- Takt procesoru: 16 MHz
- Pracovní napětí: 5V (Vstupní napětí (doporučené): 7 až 12V)
- 14 digitálních vstupně-výstupních pinů (z toho 6 s podporou PWM)
- 6 analogových vstupů
- Proudové zatížení I/O pinu: 40mA
- Flash paměť: 16 KB (ATmega168) nebo 32 KB (ATmega328), z toho 2 KB zabírá bootloader
- SRAM: 1 KB (ATmega168) nebo 2 KB (ATmega328)
- EEPROM: 512 bytů (ATmega168) nebo 1 KB (ATmega328)
Obsah |
Vývoj MIT aplikace s Arduino:
Jaký HW potřebujeme:
Varianta A:
Varianta B:
/* * Blink * http://www.arduino.cc/en/Tutorial/Blink */ int ledPin = 13; // LED je připojena na pin 13 void setup() // tato část proběhne jednou po startu { pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní } void loop() // tato část probíhá stále dokola { digitalWrite(ledPin, HIGH); // rozsvícení LED delay(1000); // pauza 1s digitalWrite(ledPin, LOW); // zhasnutí LED delay(1000); // pauza 1s }
Tutoriály:
Aplikace:
Doplňky:
Jednoduchá aplikace pro Arduino:
/* * Robot Pepík - učebna D10 * Tento program zobrazuje čas, který uběhl od spuštění programu * - při každé 0té sekundě popojede dopředu * - při každé první sekundě se zastaví * - při každé desáté sekundě popojede zpět * - při každé jedenácté sekundě se zastaví */ // přiložení knihovny pro práci s LCD #include <LiquidCrystal.h> // inicializace LCD - nastavení používaných pinů LiquidCrystal lcd(11, 9, 5, 4, 3, 2); //inicializace portů DC Motorů int motor_left[] = {6, 7}; // pole obsahující ovládací piny levého motoru int motor_right[] = {8, 10}; // pole obsahující ovládací piny pravého motoru void setup() { //DC motory - počáteční nastavení int i; for(i = 0; i < 2; i++){ pinMode(motor_left[i], OUTPUT); pinMode(motor_right[i], OUTPUT); } lcd.begin(16, 2); // nastavení rozsahu LCD monitoru lcd.setCursor(0, 0); // nastavení kurzoru na LCD na pozici 0:0 lcd.print("Minuty:"); // vytiskne text na LCD lcd.setCursor(0, 1); // nastavení kurzoru na LCD na pozici 0:0 lcd.print("Sekundy:"); // vytiskne text na LCD } void loop() { // tato funkce se neustále opakuje int sekundy = (millis()/1000); // zjištění a výpočet doby, od spuštění programu - v sekundách int minuty = millis()/1000/60; // zjištění a výpočet doby, od spuštění programu - v minutách sekundy -= minuty*60; // korekce času - po 60ti sekundách se sekundy vynulují if(sekundy == 0) // když se sekundy rovnají 0, display se vymaže { lcd.setCursor(10, 0); lcd.print(" "); lcd.setCursor(10, 1); lcd.print(" "); drive_forward(); // v nulté sekundě se motor vždy rozjede dopředu } lcd.setCursor(10, 0); // nastaví pozici kurzoru na LCD lcd.print(minuty); // vytiskne čas, který uběhl od spuštění programu v minutách if(sekundy==1) // v první sekundě se motor vždy zastavý { motor_stop(); } if(sekundy == 10) // v desáté sekundě se motor vždy rozjede dozadu { drive_backward(); } if(sekundy == 11) // v jedenácté sekundě se motor vždy zastavý { motor_stop(); } lcd.setCursor(10, 1); lcd.print(sekundy); // vytiskne čas, který uběhl od spuštění programu v sekundách } void motor_stop(){ //zastaví DC motory digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], LOW); delay(25); } void drive_forward(){ //zapne DC motory směrem dopředu digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW); } void drive_backward(){ //zapne DC motory směrem vzad digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], HIGH); } void turn_left(){ //zapne DC motory a zatočí vlevo digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW); } void turn_right(){ //zapne DC motory a zatočí vpravo digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], HIGH); }