Litt mer om Arduino Roger Antonsen Sten Solli INF1510 31. januar 2011
ARDUINO Input (Data) Prosessering Output
Arduino Man kan bruke de 3 elementene i varierende grad, og også kutte noen helt ut. Det finnes nesten uendelig med forskjellige typer input og output. Disse mulighetene gjør Arduino til en meget fleksibel plattform. Med nok elektronikk og Arduinobrikker kan man lage nesten hva som helst.
Input Seriell kommunikasjon Direkte fra ekstern datalagring Fra sensorer Fra kontrollere
Seriell kommunikasjon Sender ett og ett bit på linjen, men ofte i grupper. Mange vanlige protokoller bruker slik kommunikasjon i dag, ethernet og USB er to eksempler. Dere har begynt å kommunisere med kortet fra pc via USB. Et utall programmeringsspråk kan brukes til pc- Arduino kommunikasjon via USB. Arduino IDE er for eksempel skrevet i Java. http://www.arduino.cc/playground/main/interfacingwithsoftware
Seriell kommunikasjon Det er mulig å koble mange kommunikasjonsplattformer til Arduino. Ethernet, WiFi, GSM, Bluetooth osv. Se hva som er tilgjenglig hos forhandlerne og let opp eksempler på nettet. Ofte tilgjenglig som shields dette blir beskrevet senere. Med slike plattformer kan et Arduino-kort kommunisere med nesten hva som helst. Også med andre Arduino-kort.
Seriell kommunikasjon Arduino IDE har en Serial Monitor hvor man kan lese av hvilke data Arduino sender på USB. Meget nyttig for debugging! Arduinokortet har to lys som blinker når Arduino mottar (RX) eller sender (TX) seriell data. /* Hello World! * This is the Hello World! for Arduino. * It shows how to send data to the computer */ void setup() // run once, when the sketch starts { Serial.begin(9600); // set up Serial library at 9600 bps Serial.println("Hello world!"); // prints hello with ending line break } void loop() // run over and over again { // do nothing! }
Direkte fra datalagring Det er mulig å koble mer minne til et Arduinokort. For eksempel flashminne. Nyttig hvis man skal ha et system som trenger mer lagringsplass enn det innebygde.
Sensorer Sensorer er komponenter som registrerer påvirkninger fra miljøet. Det finnes veldig mange forskjellige (og ikke så forskjellige) sensorer. Tenk først hva dere vil registrere så er sjansene gode for at dere kan finne en sensor, eller flere sensorer sammen, som kan gjøre dette for dere. (http://en.wikipedia.org/wiki/list_of_sensors)
Digitale sensorer Sensorer som sender digitale data til Arduino. Kan være ett bit eller flere.
Analoge sensorer En vanlig virkemåte er at ytre påvirkninger forandrer motstanden i sensoren slik at spenningen som leses av fra sensorer kan tolkes. Slike sensorer må kobles til Arduino sine analoge pinner.
Kontrollere Fellesbetegnelse på input-komponenter som ikke er sensorer som registrerer miljøet Knapper, spaker, potensiometer og andre ting som vi kan interraktere med er vanlige eksempler. Komponenter som har et definert sett av tilstander kobles til en eller flere digitale inputpinner. Komponenter som er trinnløse må kobles til en analog input.
Bruk av komponenter Komponentene trenger en spenning for å fungere. Det vil si at de må ha en spenningsforskjell mellom to tilkoblinger. I praksis er den ene tilkoblingen koblet enten direkte, eller via andre komponenter, til Gnd (0V). Den andre er enten direkte, eller via andre komponenter, koblet til +5V eller en output pin fra Arduino. Sistnevnte kan gi +5V eller 0V. Examples -> tonepitchfollower : /* Pitch follower Plays a pitch that changes based on a changing analog input circuit: * 8-ohm speaker on digital pin 9 * photoresistor on analog 0 to 5V * 4.7K resistor on analog 0 to ground */
Bruk av motstander For å regulere spenningen et komponent får inn bruker man gjerne motstander. Jo større motstand jo mer reduserer du spenningen (Ohms lov). Flere komponenter trenger dette da den opprinnelige spenningen kan ødelegge disse. Dette gjelder blant annet LED og transistorer. Motstander er fargekodet (se heftet), men er ikke kritisk at man bruker nøyaktig den verdien som er oppgitt i skjemaet.
Pull-up og pull-down Såkalte pull-up og pull-down motstandere er viktig når man bruker noen former for sensorer og kontrollere koblet til digitale input pinner på Arduino. Disse er med for å sørge for at den inputen som gis er av en kjent definert tilstand (HIGH eller LOW), og ikke noe flytende midt i mellom som tilfeldig blir tolket som høy eller lav.
Bruk av dioder Dioder er vanlig å bruke rundt brytere, knapper og andre komponenter som bryter kretsen. Disse er der så man ikke skal få uønsket flikring når man bryter kretsen. Siden dioder, inkludert Light Emitting Diode, bare leder strøm en vei må de settes riktig vei for å fungere.
Arduino sine pinner 14 digitale input-/outputpinner og 6 analoge inputpinner. Digitale outputpinner kan drive en LED uten problemer og ganske mange sensorer, men ikke komponenter som krever en del strøm slik som motorer og relays. Dette må kobles til +5V og styres av og på på annen måte.
Arduino sine pinner Digitale inputpinner trenger lite strøm for å reagere og prøver å avgjøre om spenningen inn er HIGH eller LOW. For å gjøre dette tydelig kan man bruke pull-up og pull-down motstander. Pin 13 er vanskelig å bruke som input pinne siden den er koblet til en lysdiode på selve kortet merket L. På de analoge inputpinnene bruker Arduino en A/D-converter for å representere spenningen inn med et tall fra 0 (0v) til 1023 (+5V). Man kan bruke de analoge pinnene som digitale input eller outputpinner om man trenger det: pinmode(a0, OUTPUT); digitalwrite(a0, HIGH); Sett aldri mer enn 5V på en Arduino pinne!
Roger snakker om koding
Output Seriell kommunikasjon på samme måte som med input. Lagring til eksternt minne på samme måte som med input. Elektroniske komponenter koblet direkte til Arduino. Ved hjelp av ekstra elektronikk kan Arduino styre eksterne systemer. Arduino kan programmeres til å kommunisere på nesten hvilken protokoll du vil.
Shields Shields er kort som kan plugges inn oppå Arduino-kortet og utvide dets egenskaper. Shields kan gi nye fancy input og/eller output muligheter, eller bare gjøre bruken av Arduino lettere. Det finnes mange hundre forskjellige shields som forenkler avansert bruk av Arduino. http://shieldlist.org/ http://www.arduino.cc/playground/main/similarboards
Avansert Input og Output I tillegg til shields kan man koble andre avanserte input og output komponenter til Arduino. Du kan selvfølgelig programmere muligheten for å sende eller motta data fra nesten hva som helst.
Hva er mulig? Nesten alt! Hundrevis av spennende prosjekter på nettet som viser noe av det som er mulig.
Hva er mulig? Begrensningene ligger i kompleksiteten, størrelse, tid og ressurser, ikke elektronikken. Tenk hva dere vil registrere av input først så finner dere ut hvordan etterpå. Tenk på hva dere har å presentere av output så finner dere ut mest praktiske måte etterpå.