Vad är Arduino och Genuino?

Vad är Arduino och Genuino?

I detta första kapitel går vi igenom vad Arduino är och vad du kommer att lära dig i denna bok. Du kan bläddra vidare till Kom igång med Arduino om du vill hoppa över bakgrundsinformationen och börja förbereda din dator direkt.

Arduino kan styra det mesta

Det ständigt växande utbudet av mobilappar är ett tydligt tecken på att intresset för programmering ökar. Idag kan alla som lär sig programmera skapa häftiga och användbara appar till datorer, mobiler och surfplattor. Det kan handla om allt från enkla blinkande appar till avancerade bildredigeringsprogram (för att inte tala om alla spel).

Programmering behöver inte vara begränsat till appar som visas på en skärm. Idag finns kod som någon programmerare har skrivit i nästan alla saker som kopplas till elnätet eller drivs på batteri. Mikrovågsugnen har en timermjukvara som styr hur länge maten ska värmas. TV-fjärrkontrollen har en mjukvara med kommandon som skickas när någon trycker på dess knappar. Robotdammsugaren kör en avancerad mjukvara som styr hur dammsugaren rör sig, tar sig förbi hinder och hittar tillbaka till sin laddstation.

Arduino är lösningen som gör att allt från nybörjare till erfarna programmerare kan skriva kod som körs utanför mobilens, surfplattans eller datorns skärm. Med Arduino kan alla som har intresset bygga egna elektronikprojekt. Det kan röra sig om allt från ljusdetektorer och väckarklockor till mobiltelefoner och radiostyrda bilar. På kjll.cm/arduino-ideas finns en lång lista med för närvarande över 50 olika projektidéer (med tillhörande bygg- och programmeringsinstruktioner). 

Ännu fler exempel på vad som går att åstadkomma med Arduino finns självfallet på Youtube. Se exempelvis svenska Simone Giertz som har blivit världsberömd för sina "shitty robots". 2015 blev hennes frukostmaskin (en Arduinobaserad robotarm som serverar klassisk frukostmat) en viral succé. Hon har sedan dess publicerat många fler roliga projekt, bland annat en popcornmatare.

Simone Giertz popcornmatare (fotograf: Alba Giertz)

Vad är Arduino?

Det går inte att säga exakt vad Arduino är, eftersom det är många olika saker. Rätt svar på frågan kan vara:

  • ett utvecklingskort (Arduino Uno)
  • en utvecklingsmiljö (Arduino IDE)
  • ett programmeringsspråk (Arduino Programming Language)
  • en community av utvecklare
  • ett företag (Arduino LLC)
  • ett annat företag (Arduino SRL).

Det bästa svaret är nog att Arduino är en plattform för allt det ovannämnda. Till råga på allt används ibland namnet Genuino i stället för att beskriva några av ovanstående saker. I resten av detta kapitel kommer vi att förklara de olika delarna av vad Arduino (och Genuino) egentligen är.

Utvecklingskort

Som det nämndes tidigare i detta kapitel styrs allt från mikrovågsugnar till robotdammsugare av kod. Den koden körs på en mikrokontroller som sitter i produkten. Mikrokontrollern är en liten dator i ett chip som innehåller processor, minne samt in- och utgångar. Hur snabb processorn är, hur stort minnet är och hur många in- och utgångar den har varierar från modell till modell. En enkel uppgift (t.ex. räkna ned tiden på en mikrovågsugn) kan utföras med ett fåtal rader kod och en förhållandevis klen mikrokontroller. En avancerad uppgift (t.ex. styra en robotdammsugare) kräver betydligt fler kodrader och en kraftfullare mikrokontroller.

Oavsett modell på mikrokontroller och vilken uppgift som ska utföras måste mikrokontrollern programmeras på något sätt (d.v.s. koden måste komma in i mikrokontrollern). Det krävs normalt en fysisk mikrokontrollerprogrammerare för att få koden från datorn där den skrivs till mikrokontrollern. För att slippa behovet av en sådan använder Arduino-plattformen utvecklingskort.

Ett utvecklingskort är ett kretskort med en förmonterad mikrokontroller och nödvändig kringelektronik. Utvecklingskortet kan anslutas till en dator (vanligtvis via USB) och därigenom göra det enkelt att föra över kod från datorn till mikrokontrollern. Ett av de populäraste utvecklingskorten är Arduino Uno (rev. 3) som för övrigt är utvecklingskortet som vi kommer att utgå från i denna bok. På Arduino Uno sitter en mikrokontroller som heter ATmega328. Den programmeras för att styra allt som kopplas till utvecklingskortet.

Utvecklingskortet Arduino Uno kopplas till datorn med USB och
har en mikrokontroller som heter ATmega328.

Utvecklingsmiljö

Datorprogrammet som vanligtvis används för att skriva Arduino-kod (och skicka kod från datorn till mikrokontrollern på utvecklingskortet) kallas Arduino IDE. Det är ett program som finns för Windows, Mac OS och Linux. Programmets källkod är öppen, så att vem som helst kan inspektera den och förbättra den. Programmet i sig är gratis att ladda ned från Arduinos webbsidor. I Kom igång med Arduino visar vi hur du installerar Arduino IDE på din dator.

Utvecklingsmiljön Arduino IDE finns till både Windows och Mac OS.

Programmeringsspråk

Precis som vi människor kan tala med varandra på olika språk, kan vi tala med våra ­datorer med olika programmeringsspråk. Appar för Iphone skrivs i programmeringsspråken Objective-C eller Swift, medan appar för Androidmobiler skrivs i Java. Det mest använda programmeringsspråket för Arduino kallas Arduino Programming Language (hädanefter ofta förkortat till APL). APL är i grund och botten baserat på C och C++.

Det enda programmeringsspråket du behöver kunna för att programmera Arduino är APL. Du kommer att lära dig grunderna som du behöver genom att läsa denna bok. Du kommer också få tips på hur du kommer vidare och lär dig ännu mer. Om du redan kan programmera med till exempel C++ eller Java kommer allt som står här att kännas bekant. 

Kod som är skriven i APL är lätt att förstå för människor. Här följer koden som används för att få en lysdiod att blinka (det räcker alltså med nio korta rader kod). Du kanske inte förstår koden nu, men när du har läst några kapitel till kommer det vara uppenbart vad den gör. 

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

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

En community av utvecklare

Arduino som plattform är öppen. Utvecklingsmiljön (Arduino IDE) är släppt som öppen källkod. Designen på utvecklingskortet Arduino Uno är också tillgänglig offentligt så att inte enbart ett företag kan tillverka korten. Faktum är att den som vill bygga en egen ­Arduino Uno från grunden kan göra det själv. Allt som behövs finns här.

Eftersom Arduino både är populärt och öppet behöver du aldrig oroa dig för att vara ensam. Runt om i världen finns massvis av så kallade makers som bygger saker med ­Arduino. De delar med sig av koden som de skriver och hjälper varandra att förbättra den. 

Här följer exempel på webbsidor som är en del av communityn och som är väl värda att besöka.

hackster.io/arduino

Hos Hackster finns roliga projekt som andra makers har gjort.

forum.arduino.cc

På Arduino.cc finns ett jättestort forum där du kan få hjälp av andra makers med allt från idékoncept till felsökning.

 instructables.com

På Instructables.com finns instruktioner på hur du bygger allt mellan himmel och jord. 

arduino.stackexchange.com

Stackexchange är sidan där programmerare ställer frågor och ber varandra om hjälp. Självfallet finns en stor avdelning för Arduino-makers.

github.com/arduino

När en programmerare vill låna kod eller dela med sig av kod är Github webbsidan som används överlägset mest. Där finns all officiell Arduino-mjukvara (inkl. källkoden) och all Arduino-hårdvara (inkl. kretskortsdesigner). Självfallet finns där även massvis av nyttig kod från andra makers. Se även github.com/kjellcompany.

Arduino och Genuino

Det brukar sägas att en idé föder nya idéer. Så är även fallet med Arduino. Det ursprungliga Arduino-konceptet är en vidareutveckling av andra projekt som således har legat till grund för Arduinos framgång.

Det som i slutänden blev plattformen som kallas Arduino togs fram av en liten kärngrupp. Enligt den ansedda webbtidningen Spectrum från IEEE bestod kärngruppen av fem personer (Twitter-namn står inom parentes): Massimo Banzi (@mbanzi), David ­Cuartielles (@dcuartielles), Tom Igoe (@tigoe), Gianluca Martino och David Mellis (@mellis)1. Tyvärr är denna kärngrupp numera splittrad efter interna bråk.

Den som googlar efter Arduinos officiella webbsida inser snabbt att det finns två sådana: www.arduino.cc och www.arduino.org. Banzi, Cuartielles, Igoe och Mellis ligger bakom arduino.cc medan Martino ligger bakom arduino.org. Arduino.cc drivs av Arduino LLC som äger rättigheterna till varumärket Arduino i USA. I Europa ägs rättigheterna där­emot av Arduino SRL (som driver arduino.org). Konsekvensen av grundarnas interna stridigheter är alltså att det finns två "riktiga" Arduino-företag. Lyckligtvis har detta inte ställt till med några kompatibilitetsproblem (åtminstone inte än). Du som läser denna bok kan själv välja om du vill ladda ned mjukvaran från www.arduino.cc eller www.arduino.org. Vi kommer att använda www.arduino.cc i våra exempel, men vi gör det utan att lägga någon värdering i vårt val. 

Varumärket Genuino är ett systervarumärke till Arduino. Det används av Arduino LLC på produkterna som de säljer utanför USA. Produkten som heter Arduino Uno i USA heter således Genuino Uno i Europa. Bortsett från namnet finns det inget som skiljer mellan de två versionerna. Själva namnet "Genuino" är en anspelning på att det skulle vara "det genuina (riktiga) Arduino".

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

Målet med boken

Målsättningen med denna bok är att lära dig grunderna för att komma igång med Arduino. Du kommer att få lära dig programmeringsspråket Arduino Programming Language och hur du använder det för att skriva kod till Arduino Uno. Vi kommer hela tiden att arbeta i programmet Arduino IDE.

Du kommer att lära dig grundläggande kunskaper om de vanligaste elektroniska komponenterna och hur de kopplas till varandra.

Till denna bok finns ett tillhörande komponentkit. Det innehåller ett Arduino Uno-kompatibelt utvecklingskort och alla komponenter som behövs för att koppla projekten som vi går igenom. Du behöver inte komponentkittet för att hänga med i boken (det räcker med en Arduino Uno), men det kan vara till stor hjälp. Om du använder komponenterna i kittet när du går igenom övningsprojekten kommer du i slutänden ha byggt en internetuppkopplad IOT-produkt (Internet of Things). Exakt vad du vill använda den till är upp till dig och din fantasi. 

Relaterade produkter

Referenser

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

Senast ändrad: 2017-07-21