Arduino

hårdvaru- och mjukvaru- företag

Arduino är ett mikrokontrollerkort som är öppen hårdvara. Det är utvecklat från den öppna utvecklingsplattformen Wire[1][2] med målet att göra elektronikanvändning mer tillgänglig. Hårdvaran består av en enkel och öppen kretsdesign med en Atmel AVR och stöd för in- och utgångar. Mjukvarustödet består av ett programspråk, kompilator och en bootloader som körs på kortet.[3]

En Arduino med RS-232 seriell databuss (uppe till vänster) och en Atmel ATmega8 mikrokontroller (svart, nere till höger). De 14 digitala in- och utgångarna kan ses mot överkanten, och 6 analoga ingångar i underkant.

Arduinohårdvaran programmeras med ett Wire-liknande språk som liknar C++ med vissa förenklingar och en Processingbaserad integrerad utvecklingsmiljö.[3]

Nuvarande versioner kan köpas färdigbyggda, men hårdvaruspecifikationen finns tillgänglig för de som vill bygga en Arduino för hand.

Arduinoprojektet fick ett hedersomnämnande i Digital Communities vid 2006 års Prix Ars Electronica.[4][5]

Historia redigera

Ett projekt påbörjades 2005 i Ivrea, Italien (där datorföretaget Olivetti har sitt högkvarter) med målet att skapa en enhet för att kontrollera elevbyggda projekt för en billig penning jämfört med andra tillgängliga prototypsystem. Grundarna Massimo Banzi och David Cuartielles namngav projektet efter Arduino av Ivrea, en lokalt viktig historisk gestalt.[6] "Arduino" är också ett italienskt mansnamn med betydelsen "modig vän".[7]

Arduinoprojektet är en förgrening av den öppna Wiringplattformen. Den colombianska programmeraren Hernando Barragán skapade Wiring som en avhandling vid Interaction Design Institute Ivrea under översikt av Massimo Banzi och Casey E.B. Reas. Wiring baserades på programmeringsspråket Processing och dess integrerade utvecklingsmiljö som skapades av Reas och Ben Fry.[8]

Arduino byggdes runt Wiringprojektet av Hernando Barragan. Wiring var Hernandos avhandlingsprojekt vid Interaction Design Institute Ivrea. Det var menat att vara en elektronisk version av programmeringsspråket Processing som använde vår utvecklingsmiljö och formgavs efter Processingsyntaxen. Det övervakades av mig och Massimo Banzi, en av Arduinos grundare. Jag tror inte Arduino skulle finnas om det inte varit för Wiring, och jag tror inte Wiring skulle funnits om det inte varit för Processing. Och jag är säker på att Processing definitvt inte skulle existera utan programmeringsspråket Design By Numbers och John Maeda.[1]

I maj 2011 beräknades antalet tillverkade Arduinodatorer till mer än 300 000.[9] Felipe på baligena.com kallar Arduinon "nästa datorvåg för tjugoförsta århundradet".

Plattform redigera

Hårdvara redigera

 
En officiell Arduino Duemilanove (rev 2009b).
 
En Gameduinosköld staplad ovanpå en Arduino Uno

Ett Arduinokort består av en 8-bitars Atmel AVR mikrokontroller med ytterligare hårdvara för att möjliggöra programmering och inbyggnad i andra kretsar. En viktig del av Arduino är att kopplingar görs med standardiserade och enkelt tillgängliga kopplingspunkter, vilket låter utvecklare koppla in allehanda tredjepartsenheter och dessutom standardiserade moduler som kallas sköldar (eng. shields). Sköldmodulerna pluggas in till Arduinokorten via kopplingspinnarna. Vissa sköldar kommunicerar direkt med Arduinokortet medan andra sköldar får åtkomst via seriebussen I²C, vilket medger att många sköldar kan staplas och användas parallellt. Officiella Arduinokort använder megaAVR-serien, specifikt ATmega8, ATmega168, ATmega328, ATmega1280 och ATmega2560. En handfull andra processorer används av kompatibla kort. De flesta kort använder en 5 V spänningsregulator och en 16 MHz kristalloscilator (eller keramisk resonator i vissa implementationer), även om vissa designer (såsom Lilypad) körs på 8 MHz och inte använder spänningsregulator på grund av restriktioner på formfaktorn. Mikrokontrollern på Arduinokort har en bootladdare förinstallerad, vilket förenklar uppladdningen av kod till flashminnet på chippet, jämfört med andra typer av mikrokontrollers som i allmänhet kräver en hårdvaruprogrammerare.

Konceptuellt sett kommunicerar alla moduler som använder mjukvarustacken via RS-232 seriekommunikation. Arduinokort som använder seriekommunikation använder en enkel inverterare för att konvertera signaler från RS-232 till TTLnivåer. Nyare Arduinokort programmeras via USB och har implementerat ett USB-till-seriekommunikationschip liknande FTDI FT232. Vissa varianter, såsom Arduino Mini och en inofficiella Boarduino, använder en avtagbar USB-till-serieomvandlare, Bluetooth eller andra metoder.

Arduinokortet exponerar de flesta av mikrokontrollerns in- och utgångar för att underlätta koppling till andra kretsar. Diecimila, Duemilanove och Uno har 14 digitala in- och utgångar varav sex kan producera PWM-signaler och sex analoga ingångar. Dessa pinnar har monterats på kortets översida och använder standardiserade 0,1" (2,54 mm) avstånd.

Arduino Nano, Arduinokompatibla Bare Bones Board och Boarduino har stift på undersidan som tillåter att de kan användas på lödlösa kopplingsbrädor.

Arduinomodeller redigera

Arduino Processor Frekvens Spänning Flash
kB
EEPROM
kB
SRAM
kB
Digitala I/O
pins
...med
PWM
Analoga
ingångar
USB
typ
Annan
I/O
Dimensioner Släppdatum
ADK ATmega2560 16 MHz 5 V 256 4 8 54 14 16 8U2 MAX3421E
USB Host
Mall:Convert/x
BT (Bluetooth) ATmega328 16 MHz 5 V 32 1 2 14 4 6 Ingen Bluegiga WT11 Bluetooth
Diecimila ATmega168 16 MHz 5 V 16 0.5 1 14 6 6 FTDI Mall:Convert/x
Due[10] AT91SAM3X8E 84 MHz 3.3 V 512 0[11] 96 54 12 12 16U2
+ native host[12]
2 DAC Mall:Convert/x
Duemilanove ATmega168/328P 16 MHz 5 V 16/32 0.5/1 1/2 14 6 6 FTDI Mall:Convert/x
Ethernet ATmega328 16 MHz 5 V 32 1 2 14 4 6 Ingen Wiznet Ethernet
Fio ATmega328P 8 MHz 3.3 V 32 1 2 14 6 8 Ingen Mall:Convert/x
Leonardo Atmega32u4 16 MHz 5 V 32 1 2 14 6 12 32u4 Mall:Convert/x
LilyPad ATmega168V or ATmega328V 8 MHz 2.7-5.5 V 16 0.5 1 14 6 6 Ingen Mall:Convert/LoffAonDxSoff ⌀
Mega ATmega1280 16 MHz 5 V 128 4 8 54 14 16 FTDI Mall:Convert/x
Mega2560 ATmega2560 16 MHz 5 V 256 4 8 54 14 16 8U2/16U2 Mall:Convert/x
Nano ATmega168 or ATmega328 16 MHz 5 V 16/32 0.5/1 1/2 14 6 8 FTDI Mall:Convert/x
Uno ATmega328P 16 MHz 5 V 32 1 2 14 6 6 8U2/16U2 Mall:Convert/x
Micro ATmega32u4 16 MHz 5 V 32 1 2.5 20 7 12

Mjukvara redigera

Arduino Software
 
 
UtvecklareArduino Software
Skriven iJava
OperativsystemMultiplattform
LicensLGPL or GPL license
Webbplatsarduino.cc (gå till)

Arduinos IDE är en multiplattformsapplikation skriven i Java och är utvecklat från projekten Processing och Wiring. En målsättning har varit att underlätta programmering för de som inte är vana vid mjukvaruutveckling. Utvecklingsmiljön inkluderar ett kodredigeringsverktyg med färgkodade nyckelord, markering av parenteser och klamrar och automatisk indentering av kodrader. Verktygen tillåter även kompilering och uppladdning med ett enda klick. Normalt sett behöver utvecklaren inte redigera makefiler eller använda kommandoradskommandon, men det kan göras vid behov.

Arduinos IDE levereras med ett C/C++-bibliotek som kallas Wiring (från projektet med samma namn), vilket förenklar in- och utmatningsoperationer mycket. Arduinoprogram skrivs i C/C++, men det är bara två funktioner som krävs för att kunna köra ett program:

  • setup() – en funktion som körs en gång i början av programmet - valfritt, men kan användas för att initiera variabler
  • loop() – en funktion som anropas kontinuerligt medan Arduinon är påslagen
 
Den integrerade lysdioden på stift 13

I Arduinomiljön kan ett enkelt program som får en lysdiod att blinka se ut så här:[13]

#define LED_PIN 13

void setup () {
    pinMode (LED_PIN, OUTPUT);     // Sätt upp stift 13 för digital utmatning
}

void loop () {
    digitalWrite (LED_PIN, HIGH);  // Slå på lysdioden
    delay (1000);                  // Vänta 1 sekund (1000 millisekunder)
    digitalWrite (LED_PIN, LOW);   // Slå av lysdioden
    delay (1000);                  // Vänta 1 sekund (1000 millisekunder)
}

De flesta Arduinokort har en lysdiod och en lastresistor mellan trettonde stiftet och jord vilket medger ett behändigt test för enkla funktioner.[13] Eftersom ovanstående kod inte utgör giltig standard C kod kopierar IDE:n koden till en temporär fil där main()-funktionen och diverse headerfiler läggs till innan kompilering kan ske.

Arduinoverktygen använder utvecklingsverktyg från GNU-projektet och AVR Libc för kompilering. Programmet avrdude används för att ladda upp den kompilerade koden till Arduinokortet.

Eftersom Arduinoplattformen använder Atmels mikrokontrollers kan deras utvecklingsmiljö, AVR Studio eller Atmel Studio, också användas för utveckling. [14][15]

I utbildningssyfte kan ett tredjepartsprogram kallat Miniblog användas (tillgängligt under en open source-licens).

Tillämpningar redigera

Officiell hårdvara redigera

 
Arduino LilyPad har designats att vara flexibel så att den ska kunna inkluderas i klädplagg.

Den ursprungliga Arduinohårdvaran tillverkas av det italienska företaget Smart Projects.[17] Några kort med Arduinonamnet har designats av det amerikanska företaget SparkFun Electronics.

Fjorton versioner av Arduinohårdvaran har tillverkats kommersiellt till dags dato:[3]

  1. Serial Arduino, programmeras via DE-9 seriekoppling och använder en ATmega8.
  2. Arduino Extreme, med ett USB-interface för programmering av en ATmega8.
  3. Arduino Mini, en miniatyrversion av Arduino med en ytmonterad ATmega168.
  4. Arduino Nano, en ännu mindre Arduino med en ytmonterad ATmega168 eller, i nyare versioner, en ATmega328.
  5. LilyPad Arduino, a minimalistisk design för bärbar teknologi som använder en ytmonterad ATmega168.
  6. Arduino NG, med USB-interface för programmering av en ATmega8.
  7. Arduino NG plus, med USB-interface för programmering av en ATmega168.
  8. Arduino Bluetooth, med Bluetooth-interface för programmering av en ATmega168.
  9. Arduino Diecimila, med USB-interface för programmering av en ATmega168 i ett DIL-28paket
  10. Arduino Duemilanove ("2009"), med ett USB-interface för programmering av en ATmega168 eller, i nyare versioner, en ATmega328.
  11. Arduino Mega, med USB-interface för programmering av en ytmonterad ATmega1280 för utökat minne och I/O.[18]
  12. Arduino Uno, använder samma ATmega328 som nyare Duemilanove, men istället för chipsettet FTDI använder Uno en ATmega8U2 som seriekonverterare.
  13. Arduino Mega2560, använder en ytmonterad ATmega2560 med ett totalt minne på 256 kB. Version 3 av kortet använder även ATmega16U2 som chipset för USB-kopplingen.
  14. Arduino Leonardo, använder ett ATmega32U4 chip som eliminerar behovet av USB-kopplingen för programmering och kan istället använda ett virtuellt tangentbord och mus.

Öppen hårdvara och öppen mjukvara redigera

Arduinohårdvarans referensdesigner distribueras under Creative Commons licens Attribution Share-Alike 2.5 och finns tillgängliga på Arduinos webbplats. Layout och produktionsinformation finns även för vissa modeller av korten. Källkoden för utvecklingsmiljön och biblioteken finns tillgängliga under GPLv2.[3]

Hårdvarutillbehör redigera

 
En prototypsköld monterad på en Arduino

Arduino och Arduinokompatibla kort använder sköldar, vilket är kretskort som monteras ovanpå en Arduino och kopplas in via förmonterade kopplingsplintar. Det finns många funktioner som dess sköldar erbjuder såsom Ethernetfunktion, motorkontroll och trådlöst nätverk.[3]

En lista på Arduinokompatibla sköldar finns på Arduino Shield List[19]. Ett antal sköldar kan även byggas för hand.[20][21][22]

Arduinokompatibla kort redigera

Det finns en stor mängd Arduinokompatibla och Arduinoderiverade kort. Vissa av dem fungerar precis som en Arduino och kan användas istället för en Arduino. Många använder i stort sett samma design som Arduino men med ytterligare utmatningsmetoder, ofta för utbildningsändamål för att bygga små robotar och bilar. Andra har samma funktion men använder en annan formfaktor. Andra kort använder olika mikrokontrollers med varierande kompatibilitet som följd.

Emedan hårdvaru- och mjukvarudesign finns fritt tillgängliga under copyleftlicenser har utvecklarna begärt att namnet "Arduino" ska användas exklusivt för den officiella produkten och inte för kopior och derivatprodukter. Den officiella policydokumentationen om användningen av namnet Arduino lägger stor vikt vid att projektet är öppet och mycket väl kan implementera arbete från andra personer.[3] Det finns ett flertal Arduinokompatibla kommersiellt tillgängliga produkter som undviker namnet Arduino, men behåller ändelsen "-duino".[23]

Utvecklingsgruppen redigera

Arduinos kärngrupp av utvecklare består av Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis och Nicholas Zambetti. Massimo Banzi intervjuades den 21 mars 2009 (avsnitt 61) på FLOSS Weekly på nätverket TWiT.tv. Banzi diskuterade historien och målen med Arduinoprojektet.[24] Han talade även vid konferensen TEDGlobal 2012 där han gav exempel på ett flertal användningsområden för Arduinokort världen över.[25]

Referenser redigera

Den här artikeln är helt eller delvis baserad på material från Engelska Wikipedia.
  1. ^ [a b] Shiffman, Daniel (23 september 2009). ”Interview with Casey Reas and Ben Fry”. Rhizome.org. http://rhizome.org/editorial/2009/sep/23/interview-with-casey-reas-and-ben-fry/. 
  2. ^ "Wiring". wiring.org.co
  3. ^ [a b c d e f] ”Project homepage”. arduino.cc. http://arduino.cc. 
  4. ^ ”Prix Ars Electronica 2006 — Digital Communities — ANERKENNUNGEN — listing” (på tyska). Arkiverad från originalet den 31 maj 2011. https://web.archive.org/web/20110531140034/http://90.146.8.18/de/archives/prix_archive/prix_year_cat.asp?iProjectID=13638&iCategoryID=12420. Läst 18 februari 2009. 
  5. ^ ”Prix Ars Electronica 2006 — Digital Communities — ANERKENNUNGEN — description” (på tyska). Arkiverad från originalet den 28 maj 2009. https://web.archive.org/web/20090528053002/http://90.146.8.18/de/archives/prix_archive/prix_projekt.asp?iProjectID=13789. Läst 18 februari 2009. 
  6. ^ Lahart, Justin (2009-11-27). ”Taking an Open-Source Approach to Hardware”. The Wall Street Journal. http://online.wsj.com/article/SB10001424052748703499404574559960271468066.html. Läst 24 mars 2012. 
  7. ^ ”View Name: Arduino”. Behind the Name. http://www.behindthename.com/name/arduino. Läst 15 september 2012. 
  8. ^ Reas, Casey; Fry, Ben (2010). Getting Started With Processing. Sebastopol: O'Reilly. ISBN 978-1-4493-7980-3 
  9. ^ Phillip Torrone (12 maj 2011). ”Why Google Choosing Arduino Matters and Is This the End of “Made for iPod” (TM)?”. makezine.com. Arkiverad från originalet den 10 december 2011. https://web.archive.org/web/20111210190318/http://blog.makezine.com/archive/2011/05/why-google-choosing-arduino-matters-and-the-end-of-made-for-ipod-tm.html#comment-202890947. Läst 1 januari 2012. 
  10. ^ Chirgwin, Richard (20 september 2011). ”Arduino to add ARM board this year”. The Register. http://www.theregister.co.uk/2011/09/20/arduino_goes_arm/. Läst 20 september 2011. ”Arduino [...] showed off the new version in time for the New York Maker’s Faire, with a 96 MHz clock speed, 256 KB of flash memory, 50 KB of SRAM, five SPI buses, two I2C interfaces, five UARTs and 16 12-bit analog interfaces.” 
  11. ^ ”atmel.com”. Arkiverad från originalet den 16 oktober 2019. https://web.archive.org/web/20191016183342/https://www.microchip.com/. Läst 26 november 2012. 
  12. ^ atmel.com
  13. ^ "Using Atmel Studio for Arduino development"
  14. ^ ”"Using AVR Studio for Arduino development"”. Arkiverad från originalet den 28 augusti 2012. https://web.archive.org/web/20120828135304/http://www.engblaze.com/tutorial-using-avr-studio-5-with-arduino-projects/. Läst 26 november 2012. 
  15. ^ Pearce, Joshua M. 2012. “Building Research Equipment with Free, Open-Source Hardware.Science 337 (6100): 1303–1304.open access
  16. ^ Smart Projects. Retrieved from http://smartprj.com/ Arkiverad 5 mars 2016 hämtat från the Wayback Machine..
  17. ^ ”ArduinoBoardMega”. Arduino.cc. Arkiverad från originalet den 30 mars 2009. https://web.archive.org/web/20090330012608/http://arduino.cc/en/Main/ArduinoBoardMega. Läst 26 mars 2009. 
  18. ^ ”Arduino Shield List”. shieldlist.org. http://shieldlist.org. Läst 1 april 2018. 
  19. ^ "Shields fuer Arduino wenig Aufwand Selbst Bauen" Arkiverad 30 juli 2014 hämtat från the Wayback Machine.. web.de.
  20. ^ "Arduino breadboard shield: US$10 & 10 mins" Arkiverad 16 september 2017 hämtat från the Wayback Machine.. todbot.com.
  21. ^ Igoe, Tom (April 4, 2006). "Arduino Shields for Prototyping" Arkiverad 2 juli 2017 hämtat från the Wayback Machine.. tigoe.net
  22. ^ ”Freeduino Open Designs”. Freeduino.org. Arkiverad från originalet den 10 april 2008. https://web.archive.org/web/20080410220309/http://www.freeduino.org/freeduino_open_designs.html. Läst 3 mars 2008. 
  23. ^ "FLOSS Weekly Episode 61 - Arduino" (ljudfil, MP3). Twit.tv. March 21, 2009.
  24. ^ Banzi, Massimo. ”How Arduino is open-sourcing imagination”. TED. http://www.ted.com/talks/massimo_banzi_how_arduino_is_open_sourcing_imagination.html. 

Vidare läsning redigera

Externa länkar redigera