1 BSPR11 Lektion 5 / Arduino intro Mogens Jacobsen / moja@itu.dk
Dagen i dag 2 Weird & Wild: Grupperne 5 & 6 + mogens Lektion 5 (AUD 3) Om det kommende forløb Om Arduinos historie og slægtskab Om programmering Arduino! (DesignLab) Arduino anatomi Vore Arduino eventyr 4 stoppesteder Digital vs analog Øvelser
Weird & Wild på bloggen 3 Grupperne 5 & 6 i dag Og én (atypisk) fra Mogens Grupperne 7 & 8 til næste gang Husk bloggen (send til Louise)
Har I husket? 4 Download Arduino IDE Installer det USB kabler Bidetænger (15kr i Netto)
Læringsmål 5 - udarbejde digitalt-materielle interaktive sketches, gør udvalgte dele af en tilstræbt brugeroplevelse tilgængelig for direkte manipulation og kropslig erfaring gennem handling.
Slægtskab 6 John Maeda MIT media lab, USA DBN/Design By Numbers Casey Reas Benjamin Fry Zachary Lieberman Theo Watson IDII Ivrea, Italien Processing Massimo Banzi Arduino openframeworks CIID, DK
Computer? 7 Processor: Intel Core 2 Duo Hastighed: 2,66GHz Hukommelse: 4GB Harddisk: 250GB Vægt: 2500g Pris: 16500kr Processor: ATMEL ATmega328 Hastighed: 0,016GHz Hukommelse: 0,0000032GB Harddisk: 0 Vægt: 30g Pris: 200kr ( OpenSource)
Ikke et interface-board 8 Arduino inkluderer en Atmel Atmega mikroprocessor Arduino inkluderer et OS (Arduino Bootloader) Arduino har hukommelse (RAM) Arduino kører programmet uafhængigt af modercomputeren Arduino kan køre på et batteri Arduino starter seneste program, når den tændes igen
Algoritme (klassisk definition) 9 A systematic procedure that produces in an finite number of steps the answer to a question or the solution to a problem Peter Wegner & Dina Goldin: Turing s Ideas and Models of Computation http://www.cse.uconn.edu/~dqg/papers/turing04.pdf
Abū Abdallāh Muḥammad ibn Mūsā al-khwārizmī 10 Persisk mathematiker, astronom, geograf Ca. år 780 til 850 Vores brug af decimaler
Te-brygger algoritme 11 1. If the kettle does not contain water then fill the kettle 2. Plug the kettle into the power point and switch it on. 3. If the teapot is not empty then empty the teapot. 4. Place tea leaves in the teapot. 5. If the water in the kettle is not boiling then go to step 5 6. Switch the kettle off. 7. Pour water from the kettle into the teapot.
Algoritmer 12 if
13 Zach Liebermann: Fear of Programming Stereotype of programmers People think of programming as a sort of reclusive breed of geeky guys Walls of books at bookstores Fear of math Stay fearful, but know that programming is not (but can be for sure) as complicated as most high school math classes Fear of hieroglyphics
Vamos! 14
Arbejdsgangen 15 1. Kode 3. Send til Arduino 2. Kompilering 4. Afvikling
Udlevering af Arduino 16 2 stk Arduino pr gruppe Pas på dem tag dem evt. med hjem Sub-grupper af 3 personer Hver sub-gruppe har en plastbox Der skal kvitteres for nogle dimser Gælder accelerometre, sonar, motorer, TLC5940-chips, flexsensors Kvittering hos hjælpelærerne
Anduino anatomi 17 Power outputs
Anduino IDE anatomi 18 Jeres kode Feedback (og fejl-meddelelser)
Anduino IDE anatomi 19 Verify (kompiler) Stop Upload (til Arduino)
Afsnit 20 setup() Kører én gang når skitsen starter. loop() Gentages også efter sluk
Arduino kode 21 Stave-kritisk (men viser genkendt kode) Forskel på store og små bogstaver Sætning afsluttes med ; (semikolon) Afsnit begrænses af { og } (tuborg-klamme) Linier med // afvikles ikke: Kommentarer Online ordbog: Menu > Help > Reference
Anduino GO! 22 Installer IDE (done) Installer drivere http://arduino.cc/en/guide/macosx http://arduino.cc/en/guide/windows Vælg det rigtige board Menu > Tools > Board Vælg den rigtige kommunikations-port Menu > Tools > Serial Port
Bill Verplank: Do? Feel? Know? 23 BIID Lektion 9
Input/output 24 How do you do? Sensors Actuators How do you feel? Input Sensors Output Actuators
Eksempler 25 Sensors Kontakt Lysfølsom modst. Temperatur modst. Ultralyd afstand Piezo tryk Flex modst. RFID læser & tags Accelerometer Actuators LED (lysdiode) Piezo buzzer (lyd) Motor (bevægelse) Vibrator Blæser (bevægelse luft) Pumpe (bevægelse vand) Kontakt Relæ Optokobler Peltier (kuld/varme)
Digitalt 26 Binært To tilstande: Tændt / slukket 1 / 0 HIGH / LOW
Analog vs Digital 27 Analog kommer fra græsk analogos med betydningen "tilsvarende, lignende". Bruges også om billedlig repræsentation (f.eks. tegning) i modsætning til symbolsk el. digital repræsentation. (f.eks. ord, tal). Digital kommer af latin digitus, der betyder finger eller tå. Afledt heraf er betydningen at tælle eller blot tal. Betydningen ses i engelsk, hvor digit betyder tal, ciffer. Kontinuert Diskret
4 basale input/output modes 28 Digital output digitalwrite(pinnummer, [HIGH/LOW]) Digital Input Værdi[HIGH/LOW] = digitalread(pinnummer) Analog Input Værdi[0-1023] = analogread(pinnummer) Analog Output analogwrite(pinnummer, [0-255])
Digital Output 29 Lysdiode LED = Light Emitting Diode
Lysdiode (LED) 30 Polaritet: Den skal vendes rigtigt Det korte ben på en LED skal sluttes til jord (GND).
Diagrammer 31
Blink (LED på pin 13) 32 void setup() { pinmode(13, OUTPUT); // sets the digital pin as output } void loop() { digitalwrite(13, HIGH); delay(1000); digitalwrite(13, LOW); delay(1000); }
Andre lysdioder (LED) 33 Lys udenfor det synlige område IR (infrarød) LED i fjernbetjening 3 leds i én RGB LED (flere farver)
Motorer 34 Alm. lille motor Step motor Kører et step for hver puls Servo motor Kører til en bestemt vinkel/position (men ikke ren digital output)
Motorer (varianter) 35 Vibrator motor Er en alm. motor med asymmetrisk lod på aksen Pumpe Akavarium/springvand Blæser/køler Lufttryk
36 Advarsel: Kun meget små motorer kan sættes direkte på
Digital Input 37 Kontakt
Trykknap (kontakt) 38
Trykknap: Logisk HIGH & LOW 39 HIGH LOW Sluttet kontakt giver 5V = logisk HIGH Men åben kontakt fluktuerer og er derfor ikke nødvendigvis logisk LOW R skal blot være mange Ohm (10K eller 1M..)
Modstand (resistor) 40 Værdi måles i Ω (Ohm) 1kΩ = 1kilo = 1.000 Ω 1 MΩ = 1mega= 1.000.000Ω Værdi angives med farve-kode
Farvekoder for modstande 41
Altid modstand foran LED 42 Egentligt skal der altid en modstand foran en LED. Men på ben 13 er den indbygget Ca 200-500 Ohm
Reed Relæ (en speciel kontakt) 43 En magnet kontakt
Kontakt 44 void setup() { pinmode(13, OUTPUT); pinmode(2, INPUT); } void loop(){ int buttonstate = digitalread(2); } if (buttonstate == HIGH) { digitalwrite(13, HIGH); } else { delay(1000); //for at gøre det lidt mere interessant digitalwrite(13, LOW); }
Kontakt2 45 int blinketid = 1000; // ny variabel void setup() { pinmode(13, OUTPUT); pinmode(2, INPUT); } void loop(){ int buttonstate = digitalread(2); } if (buttonstate == HIGH) { } digitalwrite(13, HIGH); else { } delay(blinketid); digitalwrite(13, LOW);
Resten af dagen 46 Eksperimenter med lysdioder (husk modstand foran) og kontakter go crazy NOW! Flere blinkede lysdioder Tilfældig blink-tider (se random under online ref.) Kontakt der skal trykkes 2 gange på En elektronisk terning: 6 LEDS og 1 kontakt Et æggeur: Tryk X gange og den lyser X minutter.osv
Til næste gang 47 10/3 Kan alle være her kl 10-16? 17/3 Ren øvelses-/arduino-gang i DesignLab.
Næste gang 48 Aflevering: Tænk over hvad I vil bruge Arduino til i jeres designforløb. (Skriv kommentar på bloggen under aflevering) Læs om breadboards: http://www.tigoe.net/pcomp/code/circuits/breadboards Læs om analog input: http://www.arduino.cc/en/tutorial/analoginput Læs Goldschmidt: The Backtalk of self-generated sketches
49