Introductie van Arduino! Jody Culkin 2011 Vertaald door J.A. Korten Een paar aantekeningen Dit is het script voor mijn Introductie van Arduino stripverhaal. Elke pagina wordt beschreven in termen van de Paneelen op de betreffende pagina. This is the script for my Introduction to Arduino Comic. Each PAGINA is described in terms of the Paneels on that PAGINA. For each Paneel, there is a description of the Tekening or visual content, any tekst in tekst balloons, tekst in the tekst Paneels at the bottom of the Paneels, and tekst labels that are in the Tekening. I have indicated what tekst is in bold in Tekstballons and tekst Paneels. Probably the best way to check placement and font styles would be to compare with the original PDF. Fonts: For most of the tekst in Tekstballons and tekst Paneels, I used LetterOMatic! 9 pt. I used LetterOMatic! 10 pt bold for tekst I wanted to emphasize in tekst Paneels, 9 pt in Tekstballons. Most tekst is black (#000000), highlighted tekst is sometimes red (#FF0000) or gray (#666666). I included some of the font size and color information in the descriptions of the Paneels themselves if it is different from the standard 9 pt. For code, I used Monaco 10 pt with code formatted with the same colors as in the Arduino interface in the illustrator file (see my original PDF). On the last PAGINA, which has a lot of tekst, sub-heads are in 11 or 9 pt, links are 8 pt. In final Paneel, my info is 10 pt, thanks are 7 pt, Creative Commons license info is 6 point. PAGINA 1: Intro and Definition of terms Paneel 1: Tekening: Arduino! Over semi-transparent detail of Arduino Uno Tekening. By Jody Culkin Paneel 2 Tekening: Character head and shoulders facing left Tekstballon: Wat is een Arduino? (In tekst Paneel) Het is een open source elektronica prototype platform. Wat houdt dat in? Paneel 3 Tekening: Definitions of open source, electronics, prototyping, platform on blue background with terms on left in black 14 pt type, white shapes with definitions on right in gray 9 pt type (tekst) Open Source- "Bronnen die gratis gebruikt, verspreid of aangepast kunnen worden. Vaak soft- of hardware." Elektronica- "Technologie welke gebruik maakt van het op gecontroleerde manier sturen van elektrons door verschillende media". Prototype- "Een originele vorm welke de basis of standaard kan vormen voor andere dingen." Platform- "Een hardware architectuur met software omgeving waarop andere software kan draaien". PAGINA 2: Intro van het platform en microcontrollers Paneel 4 Tekening: Een op een draadbord aangesloten Arduino met een lichtgevoelige cel met een karakter welke op An Arduino connected to a breadboard with a photocell and LED with character looking on pointing. Labels: Microchip Lichtgevoelige cel Draadbord LED (In tekst Paneel): Een Arduino is een microchip. Dat wil zeggen een heel kleine computer die je kunt programmeren. Je kunt er sensoren op aansluiten welke bepaalde omstandigheden kunnen meten (zoals hoe veel licht er in een ruimte is). De chip kan het systeem laten reageren op basis van deze omstandigheden (kamer donker, dan LED aan). Paneel 5 Tekening: 2 schakelaars Labels: ON OFF (In tekst Paneel) of het kan reageren wanneer er op een knop gedrukt is. Paneel 6 Tekening: finger points to mouse and monitor. Tekstballon: Een muis is een input (invoer) apparaat voor een PC, een monitor is een output (uitvoer) apparaat. (In tekst Paneel) Microcontrollers gebruiken in- en outputs net zoals elke computer. Invoer verzamelt informatie van de gebruiker of omgeving, terwijl uitvoer juist iets doet met deze verzamelde informatie. PAGINA 3: Inputs en outputs, analoog en digitaal Paneel 7 Tekening: Momentary switch and force sensitive resistor Labels: Drukknop Drukgevoelige weerstand (In tekst Paneel) Een input van de Arduino is meestal een schakelaar of sensor. Paneel 8 Tekening: DC motor, laptop Labels: Gelijkstroom Motor (In tekst Paneel) Elk object wat we willen besturen of aan of uit zetten, kan een output worden. Gewoon een motor of zelfs een computer. Paneel 9 Tekening: Character head and shoulders facing right Tekstballon: What’s the difference between digital and analog inputs and outputs? (In tekst Paneel) Inputs and outputs can be digital or analog. Digital information is binary- it is either true or false. Analog information is continuous, it can hold a range of values. Paneel 10 Tekening: Character with hands on hips Tekstballons: Left balloon: Digitale informatie is discreet en eindig. Alle informatie wordt in twee toestanden beschreven: 1 of 0; aan of uit. Een schakelaar is een digitale input, een sensor is (vaak) een analoge input. Het bereik van een analoge sensor wordt beperkt door omzetten van de meetwaarde van analoog naar digitaal. PAGINA 4: Review of electricity, terms and concepts Paneel 11 Tekening: Character profile, arms pointing up Tekstballon: Voltage? Spanning? Weerstand? Wet van Ohm? (In tekst Paneel): Voordat we de Arduino aansluiten, staan we stil bij een paar termen en principes van hoe elektriciteit (en dus elektronica) werkt. Paneel 12 (definitions on white shapes) Voltage (V) is de eenheid van elektrische spanning in een circuit. Dit wordt uitgedrukt in volts. Paneel 13 Spanning (I) is de mate van stroom door geleidend materiaal. Dit wordt uitgedrukt in ampères. Paneel 14 Weerstand (R) geeft aan in welke mate bepaald materiaal 'tegenstribbelt' bij de stroom van elektische spanning door het materiaal. Dit wordt uitgedrukt in Ohms. (tekst Paneel underneath all) Elektriciteit is de stroom van elektrische energie door een geleidend materiaal. Paneel 15 Tekening: tank with water connected to pipes through which water flows with valve attached that limits flow (tekst in white shapes) (Near tank) De snelheid van de stroom wordt bepaald door het voltage (Near valve) Weerstand vergroot of vermindert de stroom (Near pipes) Hoeveelheid stroom die door pijpen stroomt is spanning (In tekst Paneel): De vergelijking met water wordt vaak gebruikt om deze termen uit te leggen. Hier is een model daarvan. PAGINA 5: ohm’s law, what is a circuit, schematic Paneel 16 Tekening: (Ohm’s law on white shape. Top line in red 16 pt, rules 9 pt black, or gray 7 pt type) Ohm’s law Spanning = Voltage/Weerstand (I= V/R) or Weerstand = Voltage/Spanning (R = V/I) or Voltage = Weerstand * Spanning (V = R*I) (In tekst Paneel): De Duitse natuurkundige Georg Ohm heeft de relatie tussen voltage, spanning en weerstand ontdekt. Paneel 17 Tekening: Tank with hose with valve limiting flow (In tekst Paneel): Bijvoorbeeld, weerstand verhogen: minder stroom. Paneel 18 Tekening: Bigger tank, more flow from hose (In tekst Paneel): Of het potentiaal vergroten: meer stroom. Paneel 19 Tekening: battery attached with wires to switch and light bulb (In tekst Paneel): Laten we eens kijken naar een eenvoudige schakeling: Elk circuit is een gesloten lus met een energiebron (batterij) en een last (lamp). De last zet de elektrische energie van de batterij om en gebruikt deze op. Deze heeft ook een schakelaar. Paneel 20 Tekening: Schematic of simple circuit Labels: (font-Geneva) Lamp Schakelaar Voedingsbron (gelijkspanning) (In tekst Paneel): Dit is een schema van dezelfde schakeling (de symbolen van elektronische componenten geven de schakeling symbolisch weer). Als de schakelaar gesloten is, stroomt spanning uit de voeding zodat de lamp gaat branden. PAGINA 6 AC, DC, back to Arduino, USB, software Paneel 21 Tekening: Schematic with Direct Current and Alternating Current. Labels: Gelijkspanning (DC) Wisselspanning (AC) (In tekst Paneel): Er zijn twee veel voorkomende soorten schakelingen, te weten gelijkspanning en wisselspanning. In een DC schakeling stroomt de spanning altijd in één richting. Bij AC stroomt de spanning regelmatig wisselend in tegengestelde richting. Arduino werkt met gelijkspanning, daar houden wij ons dus mee bezig. Paneel 22 Tekening: close up of Arduino, character in profile with hand on cheek Tekstballon: Nu we een aantal basis elementen van elektriciteit besproken hebben, gaan we weer verder met Arduino. (In tekst Paneel): De Arduino moet gevoed worden om te werken. We moeten de Arduino op de computer aansluiten om deze te kunnen programmeren. Paneel 23 Tekening: Arduino, laptop, USB cable poised to connect them (In tekst Paneel): Het aansluiten van de Arduino aan de computer met een USB kabel, levert de voeding die we nodig hebben en laat ons de Arduino programmeren. Paneel 24 Tekening: close up of interface of Arduino web PAGINA. White shape with tekst: Labels: Download Here (red type 18 pt) http://www.arduino.cc/en/Main/Software (black 10 pt)(linked) (In tekst Paneel): You’ll have to download and install software to program the Arduino. it is available from the URL above free of charge. The Arduino software runs on the Mac OS X, Windows and Linux platforms. PAGINA 7: Download software and connect board Paneel 25 Tekening: tekst in white shape (URLS are linked) (URLS in 10 pt red type, other tekst 9 pt black) Voor instructies over hoe je Arduino op een Mac kunt installeren: For instructions on how to install Arduino software on a Mac: http://www.arduino.cc/en/Guide/MacOSX Voor instructies over hoe je Arduino op Windows kunt installeren: For instructions on how to install on Windows: http://www.arduino.cc/en/Guide/Windows Voor instructies over hoe je Arduino op Linux kunt installeren: For instructions on how to install on Linux: http://www.arduino.cc/playground/Learning/Linux (In tekst Paneel): Ga naar bovenstaande URL's voor uitgebreide instructies over het installeren van de software op deze platformen. Paneel 26: Tekening: Detail of Arduino with LED at pwr lit up. (In tekst Paneel): Nadat je de software hebt geïnstalleerd, sluit je de Arduino aan. Een LED (met ON) moet nu gaan branden. Paneel 27: Tekening: Screenshot of menus in interface of Arduino software, selecting the board (In tekst Paneel): Lanceer de Arduino software. In het 'tools' menu selecteer je het juiste bord (Tools > Board). Bijvoorbeeld, Arduino Uno. Paneel 28: Tekening: Screenshot of menus in interface of Arduino software, selecting the serial port (In tekst Paneel): Vervolgens de seriële poort. (Tools > Serial Port). Op een Mac ziet het er ongeveer zo uit: /dev/tty.usbmodem. Op Windows is het COM# (bijv. COM3). PAGINA 8: IDE, First script Paneel 29: Tekening: Character talking head shot facing left. (Word bubble): Wat is een IDE? (In tekst Paneel): Als je de Arduino software downloadt, haal je een IDE binnen. Een IDE bestaat uit een tekstverwerker, compiler en andere toepassingen om programmeurs te helpen software te ontwikkelen. Paneel 30: Tekening: Screenshot of interface of menus, selecting Blink Script (In tekst Paneel): De Arduino IDE stelt je in staat op schetsen oftewel programma's te maken en naar het Arduino bord te uploaden. Open het voorbeeld "Blink" uit het menu. File > Examples > 1.Basics > Blink. Paneel 31: Tekening: Screenshot of interface of Arduino software, strip of buttons and part of sketch. Arrow pointing to upload button Labels: Upload button (In tekst Paneel): Om de schets (sketch) naar het Arduino bord te uploaden, klik je op de upload knop (in de werkbalk). Er verschijnen berichten onderaan het scherm en uiteindelijk staat er (hopelijk) "Done uploading". Paneel 32: Tekening: Close-up of the Arduino with LED light at pin 13. (In tekst Paneel): De LED op pin 13 van de Arduino begint nu te knipperen. PAGINA 9: writing scripts: setup and loop- brief overview of language Paneel 33: Tekening: Blink script on white shape void setup() { // initialiseer de digitale pin als een uitgang (output). // Pin 13 heeft op de meeste Arduino's standaard een LED: pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); // zet de LED aan delay(1000); // wacht een seconde digitalWrite(13, LOW); // zet de LED uit delay(1000); // wacht een seconde } (In tekst Paneel): Een sketch is net als en ander computer programma, een set van instructies voor de computer. Als we beter kijken naar de Blink sketch, zien we twee vaste onderdelen, setup en loop. Paneel 34: Tekening: fingers point to definitions of setup and loop on white shapes. tekst (setup en loop zijn nu red type, definition in black all 10 pt.) Setup: wordt één keer uitgevoerd bij de start Loop: eindeloos herhalende lus (In tekst Paneel): Deze blokken code worden functies (of: methodes) genoemd en zitten in elke Arduino sketch. Ze beginnen altijd met een { en eindigen met een }. Paneel 35: Tekening: Back of character reading Arduino reference guide on laptop. URL (linked) on white shape tekst (10 pt red type) http://arduino.cc/en/Reference/HomePAGINA (In tekst Paneel): Lees de handleiding op de Arduino site. Je vindt er ook allerhande andere bronnen om Arduino te leren. Paneel 36: Tekening: Close up of blink script with explanation line by line with comments. Comments are in red in LetterOMatic tekst void setup() { //declareert een codeblok pinMode(13, OUTPUT); //zet pin 13 op output } // einde van codeblok void loop() { //declareert een codeblok digitalWrite(13, HIGH); //zet pin 13 op high (5V/3.3V) delay(1000); // 1 seconde wachten digitalWrite(13, LOW); //zet pin 13 low (0V) delay(1000); // 1 seconde wachten } //einde van codeblok (In tekst Paneel): Laten we nu regel voor regel door deze eenvoudige code lopen en kijken wat elke regel doet. PAGINA 10: Using a Breadboard, LED digital output Paneel 37: Tekening: Hand holding breadboard (In tekst Paneel): Hoe besturen we objecten die niet op het Arduino bord zitten? We sluiten de Arduino aan op een draadbord (zonder te hoeven solderen). Zo kunnen we snel een schakeling maken en testen. Paneel 38: Tekening: Close up of breadboard- tekst on white shapes with pointing arrows: (red type 10 pt bold) Labels: Horizontaal verbonden gaatjes Vertikaal verbonden gaatjes (In tekst Paneel): Dit draadbord heeft 2 rijen met gaatjes aan zowel de linker als de rechter kant. Aan beide kanten van de middenrichel zitten rijen met 5 gaatjes. De 2 rijen aan zijkanten zijn vertikaal verbonden, de rijtjes van 5 gaten horizontaal. Paneel 39: Tekening: Power and ground connected from Arduino to breadboard and across top of board so power and ground run down both sides (In tekst Paneel): We gebruiken de horizontale zijkanten, om de voeding (5V, soms 3.3V) en de grond (GND) aan te sluiten. We sluiten andere componenten aan op het middenste deel en als nodig draden van de voeding en grond 'rails' naar deze componenten lopen. Paneel 40: Tekening: LED. tekst defines anode and cathode Labels: Anode (positief, lang, voeding) Kathode (negatief, kort, grond) (In tekst Paneel): Als spanning (in de juiste richting) door de LED (Licht uitstralende Diode) stroomt, gaat deze branden. We zullen een LED aansluiten op het draadbord. Daarna op de Arduino zodat we deze met code kunnen besturen. PAGINA 11: Digital output Paneel 41: Tekening: Breadboard attached to Arduino with LED attached (In tekst Paneel): De anode (lang) wordt aangesloten op pin 2 van de Arduino via een 220Ω weerstand. De kathode (kort) wordt op de grond aangesloten. Pinnen 2 t/m 13 kunnen ingesteld worden als digitale in- en outputs. Druk op de 'New' knop om een sketch te beginnen. Paneel 42: Tekening: Script on white shape void setup() { pinMode(2, OUTPUT); } void loop() { digitalWrite(2, HIGH); delay(500); digitalWrite(2, LOW); delay(500); } (In tekst Paneel): In setup stellen we 2 in als output. In de lus zetten we pin 2 eerst 'high' waardoor de LED gaat branden. Delay pauseert het programma voor 500 ms (halve seconde). Pin 2 wordt 'low' gezet en dan pauseren we nogmaals een halve seconde. Paneel 43: Tekening: buttons on Arduino IDE interface. tekst labels buttons with pointing arrows (red 10 pt type bold) Labels: Verify button Upload button (In tekst Paneel): Klik op 'verify' om de code te controleren of er geen fouten zijn. Daarna op upload om het programma in de Arduino te zetten. Paneel 44: Tekening: 2 Paneels, LED glows on, LED off (In tekst Paneel): De LED gaat een halve seconde aan, dan een halve seconde uit, enzovoorts. PAGINA 12: Digital input: setting up a switch to turn LED on and off Paneel 45: Tekening: hand holding switch (In tekst Paneel): We voegen een schakelaar toe via een digitale input en laten daarmee de LED aan en uit gaan. Paneel 46: Tekening: Detail of switch attached to board along with LED and resistors (In tekst Paneel): Sluit één kant van de momentschakelaar aan op pin 4 van de Arduino. Sluit een 10kΩ weerstand aan dezelfde kant aan op grond. De andere kant van de knop sluit je aan op voeding (5V of anders 3.3V). De LED blijft hetzelfde. Paneel 47: Tekening: code for switch script written on white shape void setup() { pinMode(2, OUTPUT); pinMode(4, INPUT); } void loop() { if(digitalRead(4) == HIGH){ digitalWrite(2, HIGH); }else{ digitalWrite(2, LOW); } } (In tekst Paneels): Nu gaan we de code schrijven. In setup declareren we pin 2 als output. Pin 4 maken we input. In de lus zetten we de LED op HIGH als pin 4 ook HIGH is, anders zetten we de LED LOW (uit). Paneel 48: Tekening: split Paneel, finger pushing switch with LED lit, finger lets up and LED is off (In tekst Paneel) The LED lights when the switch is held down. PAGINA 13: Analog input. Potentiometer Paneel 49: Tekening: Character head shot in front of gigantic potentiometer. Tekstballon: Een potentiometer, potmeter, is een variabele weerstand. De hoeveelheid weerstand verandert hierbij afhankelijk van welke richting we de potmeter draaien. (In tekst Paneel): We gebruiken nu een analoge input en sluiten er een potentiometer op aan. Paneel 50: Tekening: Breadboard with potentiometer attached to Arduino (In tekst Paneel): Verbind de middelste pin van de potentiometer met analoge pin A0. Ee ander pin (links/rechts) moet naar de voeding, de overgebleven pin naar GND. Paneel 51: Tekening: code for analog read serial output on white shape void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(A0)); } (In tekst Paneel): We kijken eerst maar eens naar het bereik van de waarden welke we meten als we de potmeter draaien en in de serial monitor kijken. We hebben in de setup de monitor (terminal) op snelheid 9600 (baud) gezet. In de lus lezen we de analoge waarde van pin a0 en schrijven deze naar de terminal met functie println (mbv het Serial object). Paneel 52: Tekening: Serial monitor window in Arduino software interface with numbers showing range of values. Arrows point to serial monitor button Labels: Click to open serial window (In tekst Paneel): Na uploaden van het programma naar de Arduino, druk je op de "Serial Monitor" knop. Een scherm (terminal) opent. Als je de knop draait, zie je waarden tussen de 0 en 1023 verschijnen. PAGINA 14: Analog output Paneel 53: Tekening: breadboard attached to Arduino with pot, LED and resistors (In tekst Paneel): We kunnen deze veranderende waarde ook gebruiken om een LED te dimmen. Sluit de anode van de LED aan op (digitale) pin 3. De cathode aan de GND via een weerstand. Paneel 54: Tekening: Diagram of pulse width modulation duty cycles on white shape. Labels: 0% bedrijfscyclus - analogWrite(0) 50% bedrijfscyclus - analogWrite(127) 100% bedrijfscyclus - analogWrite(255) (In tekst Paneel): We gebruiken Puls Breedte Modulatie (PWM). Dit is een methode om een analoge waarde te simuleren door het voltage te manipuleren, door deze met verschillende ratio (bedrijfscycli) aan/uit te zetten. Je kunt PWM gebruiken op pinnen 3, 5, 6, 9, 10, en 11. Paneel 55: Tekening: code for analog read analog write on white shape int sensorValue = 0; void setup() { pinMode(3,OUTPUT); } void loop() { sensorValue = analogRead(A0); analogWrite(3, sensorValue/4); } (In tekst Paneel): Eerst reserveren we een variabele om de waarde van de potmeter op te kunnen slaan. In de lus zetten we waarde van a0 daadwerkelijk in de variabele. Daarna schrijven we de waarde naar pin 3 (onze LED pin). We delen de waarde door 4 zodat we van 0..1023 resolutie naar 0..255 (het PWM bereik) gaan. Paneel 56: Tekening: On left, split Paneels- top: LED shines dimly, bottom: LED shines brightly. Right side: hand turns potentiometer. (In tekst Paneel): De felheid van de LED verandert nu van volledig uit, naar volledig aan, door te draaien aan de potmeter. PAGINA 15: Links, credits Paneel 57: Tekening: Standing view of character pointing down in front of detail of Arduino board and name Tekstballon: That’s it! Dit is slechts een hele korte introductie. In de volgende kaders staan links en andere bronnen. Bekijk ze en ontdek nog veel meer! Paneel 58: Tekening: tekst inside of white shape (all URLs are linked) Links Software Software Download http://www.arduino.cc/en/Main/Software Taal Handleiding http://arduino.cc/en/Reference/HomePAGINA Onderdelen Sparkfun Electronics http://www.sparkfun.com/ Adafruit Industries http://adafruit.com/ Maker Shed http://www.makershed.com/ Jameco Electronics http://www.jameco.com/ Paneel 59: Tekening: tekst inside of white shape (all URLs are linked) Tutorials Arduino site Tutorials http://www.arduino.cc/en/Tutorial/HomePAGINA Lady Ada http://www.ladyada.net/learn/arduino/ Instructables http://www.instructables.com/tag/type-id/ category-technology/channel-arduino/ Boeken Getting Started with Arduino by Massimo Banzi Making Things Talk: Using Sensors, Networks, and Arduino to See, Hear, and Feel Your World by Tom Igoe Physical Computing: Sensing and Controlling the Physical World with Computers by Dan O'Sullivan & Tom Igoe Arduino Cookbook by Michael Margolis Paneel 60: Tekening: tekst inside of white shape. Creative Commons license logo in lower right hand corner. Alle tekst en afbeeldingen door Jody Culkin voor meer, ga naar jodyculkin.com Met dank aan Tom Igoe, Marianne Petit, Calvin Reid, the faculty and staff of the Interactive Telecommunications Program at NYU, particularly Dan O’Sullivan, Danny Rozin and Red Burns. Thanks to Cindy Karasek, Chris Stein, Sarah Teitler, Kathy Goncharov & Zannah Marsh. Veel dank aan het Arduino team om ons te voorzien van deze robuuste en flexibele open source platform oplossing. Met dank aan de levendige, actieve en nog steeds groeiende Arduino community. Introduction to Arduino by Jody Culkin is licensed under a Creative Commons Vertaling naar Nederlands door Johan Korten, i&i, vakvereniging voor ICT en onderwijs (www.ieni.org). Attribution-NonCommercial-ShareAlike 3.0 Unported License.