Hva er Arduino og Genuino?

Hva er Arduino og Genuino?

I dette første kapittelet går vi gjennom hva Arduino er, og hva du kommer til å lære i denne boken. Du kan bla videre til Kom i gang med Arduino hvis du vil hoppe over bakgrunnsinformasjonen og umiddelbart begynne å klargjøre datamaskinen din.

Arduino kan styre det meste

Det stadig voksende utvalget av mobilapper er et tydelig tegn på at interessen for programmering øker. I dag kan alle som lærer seg å programmere, lage kule og nyttige apper til datamaskiner, mobiler og nettbrett. Det kan dreie seg om alt fra enkle, blinkende apper til avanserte bilderedigeringsprogrammer (for ikke å snakke om alle spillene).

Programmering trenger ikke å være begrenset til apper som vises på en skjerm. I dag finnes det kode som en programmerer har skrevet, i nesten alt utstyr som kobles til strømnettet eller drives av batteri. Mikrobølgeovnen har en timerprogramvare som styrer hvor lenge maten skal varmes. TV-fjernkontrollen har programvare med kommandoer som sendes når noen trykker på en knapp. Robotstøvsugeren kjører en avansert programvare som styrer hvordan støvsugeren beveger seg, kommer seg forbi hindre og finner tilbake til ladestasjonen.

Arduino er løsningen som gjør at alle fra nybegynnere til erfarne programmerere kan skrive kode som kjøres utenfor mobilens, nettbrettets eller datamaskinens skjerm. Med Arduino kan alle som har interesse av det, bygge egne elektronikkprosjekter. Det kan dreie seg om alt fra lysdetektorer og vekkerklokker til mobiltelefoner og radiostyrte bilder. På kjll.cm/arduino-ideas finnes det en lang liste med for øyeblikket over 50 forskjellige prosjektideer (med tilhørende bygge- og programmeringsinstruksjoner).

På Youtube finnes det selvsagt enda flere eksempler på hva som kan gjøres med Arduino. Se for eksempel svenske Simone Giertz, som har blitt verdensberømt for sine "shitty robots". I 2015 ble hennes frokostmaskin (en Arduino-basert robotarm som serverer klassisk frokostmat) en viral suksess. Etter det har hun publisert mange flere morsomme prosjekter, blant annet en popkornmater.

Simone Giertz sin popkornmater (fotograf: Alba Giertz)

Hva er Arduino?

Det går ikke an å si nøyaktig hva Arduino er, ettersom det er mange forskjellige ting. Riktige svar på spørsmålet kan være:

  • et utviklingskort (Arduino Uno)
  • et utviklingsmiljø (Arduino IDE)
  • et programmeringsspråk (Arduino Programming Language)
  • et fellesskap av utviklere
  • et foretak (Arduino LLC)
  • et annet foretak (Arduino SRL).

Det beste svaret er nok at Arduino er en plattform for alt det ovennevnte. Og for å gjøre det enda mer forvirrende brukes av og til navnet Genuino i stedet for å beskrive enkelte av tingene ovenfor. I resten av dette kapittelet skal vi forklare de ulike delene av hva Arduino (og Genuino) egentlig er.

Utviklingskort

Som tidligere nevnt i kapittelet styres alt fra mikrobølgeovner til robotstøvsugere av kode. Den koden kjøres på en mikrokontroller som ligger i produktet. Mikrokontrolleren er en liten datamaskin i en brikke som inneholder prosessor, minne og inn- og utganger. Hvor rask prosessoren er, hvor stort minnet er og hvor mange inn- og utganger den har, varierer fra modell til modell. En enkel oppgave (f.eks. telle ned tiden på en mikrobølgeovn) kan utføres med et fåtall linjer med kode og en forholdsvis svak mikrokontroller. En avansert oppgave (f.eks. styre en robotstøvsuger) krever betydelig flere linjer med kode og en kraftig mikrokontroller.

Uansett modell på mikrokontrolleren og hvilken oppgave som skal utføres, må mikrokontrolleren programmeres på et vis (dvs. koden må komme inn i mikrokontrolleren). Det kreves vanligvis en fysisk mikrokontrollerprogrammerer for å få koden fra datamaskinen der den skrives, til mikrokontrolleren. For å slippe dette bruker Arduino-plattformen utviklingskort.

Ett utviklingskort er et kretskort med en forhåndsmontert mikrokontroller og nødvendig ekstra elektronikk. Utviklingskortet kan kobles til en datamaskin (vanligvis via USB) og dermed gjøre det enkelt å overføre kode fra datamaskinen til mikrokontrolleren. Et av de mest populære utviklingskortene er Arduino Uno (rev. 3) som forøvrig er utviklingskortet vi kommer til å bruke i denne boken. På Arduino Uno er det en mikrokontroller som heter ATmega328. Den programmeres for å styre alt som kobles til utviklingskortet.

Utviklingskortet Arduino Uno kobles til datamaskinen med USB
og har en mikrokontroller som heter ATmega328.

Utviklingsmiljø

Dataprogrammet som vanligvis brukes til å skrive Arduino-kode (og sende kode fra datamaskinen til mikrokontrolleren på utviklingskortet), kalles Arduino IDE. Det er et program som finnes til Windows, Mac OS og Linux. Programmets kildekode er åpen, slik at hvem som helst kan undersøke og forbedre den. Programmet er gratis å laste ned fra Arduino sine nettsider. I Kom i gang med Arduino viser vi hvordan du installerer Arduino IDE på datamaskinen din.

Utviklingsmiljøet Arduino IDE finnes til både Windows og Mac OS.

Programmeringsspråk

På samme måte som vi mennesker snakker med hverandre på forskjellige språk, kan vi snakke med datamaskinene våre med forskjellige programmeringsspråk. Apper for iPhone skrives i programmeringsspråket Objective-C eller Swift, mens apper for Androidmobiler skrives i Java. Det mest brukte programmeringsspråket for Arduino kalles Arduino Programming Language (heretter ofte forkortet til APL). APL er i bunn og grunn basert på C og C++.

APL er det eneste programmeringsspråket du trenger å kunne for å programmere Arduino. Du kommer til å lære deg det grunnleggende som er nødvendig, når du leser denne boken. Du vil også få tips om hvordan du går videre og lærer deg enda mer. Hvis du allerede kan programmere i for eksempel C++ eller Java, vil alt som står her føles kjent.

Kode som er skrevet i APL, er enkel å forstå for mennesker. Her er koden som brukes til å få en lysdiode til å blinke (det holder med ni linjer med kode). Du forstår kanskje ikke koden nå, men når du har lest neste kapittel, vil det være åpenbart hva den gjør.

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}

Et fellesskap av utviklere

Arduino er en åpen plattform. Utviklingsmiljøet (Arduino IDE) er sluppet som åpen kildekode. Designet på utviklingskortet Arduino Uno er også offentlig tilgjengelig, slik at ikke bare ett foretak kan produsere kortene. Faktum er at den som vil bygge et eget Arduino Uno fra grunnen av, kan fritt gjøre det. Alt som behøves er her.

Siden Arduino er både åpent og populært trenger du aldri bekymre deg for å være alene. Rundt i hele verden finnes det massevis av såkalte "makers", som bygger ting med Arduino. De deler koden som de skriver, og hjelper hverandre med å forbedre den.

Her er noen eksempler på nettsider som er en del av fellesskapet og som er vel verdt å besøke.

hackster.io/arduino

Hos Hackster finner du morsomme prosjekter som andre makers har gjort.

forum.arduino.cc

På Arduino.cc er det et stort forum der du kan få hjelp av andre makers med alt fra idekonsept til feilsøking.

 instructables.com

På Instructables.com finnes det instruksjoner for hvordan du bygger alt mellom himmel og jord.

arduino.stackexchange.com

Stackexchange er siden der programmerere stiller spørsmål og ber hverandre om hjelp. Selvsagt finnes det også en stor seksjon for Arduino-makers.

github.com/arduino

Når en programmerer vil låne eller dele kode, er Github nettsiden som helt klart brukes mest. Der finner du all offisiell Arduino-programvare (inkl. kildekoden) og all Arduino-maskinvare (inkl. kretskortsdesigner). Selvsagt er det også massevis av nyttig kode fra andre makers der. Se også github.com/kjellcompany.

Arduino og Genuino

Det sies at en idé avler nye ideer. Slik er det også med Arduino. Det opprinnelige Arduino-konseptet er en videreutvikling av andre prosjekter som således har ligget til grunn for Arduinos fremgang.

Det som til slutt ble plattformen som ble kalt Arduino, kom fra en liten kjernegruppe. Ifølge det anerkjente nettidsskriftet Spectrum fra IEEE bestod kjernegruppen av fem personer: Massimo Banzi (@mbanzi), David Cuartielles (@dcuartielles), Tom Igoe (@tigoe), Gianluca Martino og David Mellis (@mellis)1. Dessverre er denne kjernegruppen nå splittet etter internt bråk.

Hvis du googler etter Arduinos offisielle nettside, vil du raskt oppdage at det finnes to slike: www.arduino.cc og www.arduino.org. Banzi, Cuartielles, Igoe og Mellis står bak arduino.cc, mens Martino står bak arduino.org. Arduino.cc drives av Arduino LLC, som eier rettighetene til varemerket Arduino i USA. I Europa eies rettighetene derimot av Arduino SRL, (som driver arduino.org). Konsekvensen av grunnleggernes interne motsetninger er altså at det finnes to "ekte" Arduino-foretak. Heldigvis har dette ikke ført til noen kompatibilitetsproblemer (ikke ennå i hvert fall). Du som leser denne boken, kan selv velge om du vil laste ned programvaren fra www.arduino.cc eller www.arduino.org. Vi kommer til å bruke www.arduino.cc i eksemplene våre, men vi gjør dette uten å legge noen vurdering i valget vårt.

Varemerket Genuino er søstervaremerket til Arduino. Det brukes av Arduino LLC på produktene de selger utenfor USA. Produktet som heter Arduino Uno i USA, heter således Genuino Uno i Europa. Bortsett fra navnet er det ingenting som skiller de to versjonene. Selve navnet "Genuino" er en hentydning til at det skal være "den genuine (riktige) Arduino.

1. IEEE (2011). The Making of Arduino (spectrum.ieee.org/geek-life/hands-on/the-making-of-arduino). Publisert 2011-10-26. Hentet 2016-07-04.

Målet med boken

Målet med denne boken er å lære deg det grunnleggende for å kunne komme i gang med Arduino. Du kommer til å lære deg programmeringsspråket Arduino Programming Language, og hvordan du bruker det til å skrive kode til Arduino Uno.

Du kommer til få grunnleggende kunnskaper om de vanligste elektroniske komponentene, og hvordan de kobles til hverandre.

Det følger med en tilhørende komponentpakke til denne boken. Pakken inneholder et Arduino Uno-kompatibelt utviklingskort og alle komponenter som trengs for å bygge prosjektene som vi går gjennom. Du trenger ikke komponentpakken for å henge med i boken (det holder med Arduino Uno), men det kan være til god hjelp. Hvis du bruker komponentene i pakken når du går gjennom øvelsesprosjektene, vil du til slutt ha bygd et internettilkoblet IOT-produkt (Internet of Things). Nøyaktig hva du bruker det til, er helt opp til deg og fantasien din.

Referanser

1. IEEE (2011). The Making of Arduino. Publisert 2011-10-26. Hentet 2016-07-04.
spectrum.ieee.org/geek-life/hands-on/the-making-of-arduino

Sist endret: 2017-09-08