Arduino

Úr Wikibókunum, frjálsa kennslubókasafninu
Jump to navigation Jump to search

Hvað er Arduino? (í MJÖG stuttu máli)[breyta]

Mynd af Arduino/Genuino UNO örtölvu
Forritunarumhverfi Arduino, útgáfa 1.6.7

Arduino er fjölskylda örtölva (e. microcontroller) sem byggja á opnum vélbúnaði sem og frjálsum- og opnum hugbúnaði. Á bakvið Arduino eru bæði formleg samtök og gríðarstórt notendasamfélag. Arduino-borðin innihald einnig alla þá nauðsynlega íhluti sem notandinn þarf til að geta forritað örtölvuna eins og til dæmis kristal, þétta, viðnám, díóður og svo framvegis. Þessi borð eru einnig með tengipunkta sem þjóna alhliða ílagi og frálagi (e. GPIO). Arduino-borðin eru með mismunandi örtölvur frá 8-bita AVR upp í 32-bita ARM. Þar sem Arduino er opinn vélbúnaðarvangur þá mega allir framleiða og selja afleiður sem gera nokkurn veginn það sama. Þess vegna er gríðarlegt úrval örtölvuborða fáanlegt, allt frá ódýrum eftirlíkingum upp í vönduð borð sem bjóða upp á sérhæfða möguleika.

Hvernig forritar maður Arduino?[breyta]

Fyrsta skrefið er að nálgast hugbúnað, bæði til að skrifa kóða og einnig til að flytja kóðann yfir í vélbúnaðinn (örtölvuna). Einfaldasta leiðin er að sækja hugbúnaðinn 'Arduino IDE' af vefsvæði samtakanna.
Til að geta flutt kóðann er nauðsynlegt að velja rétt borð, þ.e.a.s. að stilla Arduino-hugbúnaðinn fyrir það borð sem við ætlum að nota ásamt því að velja viðeigandi tengi. Það er gert í verkfæravalmyndinni(Tools) sem fellur niður og þar má velja borð og tengi (Port).
Mjög algengt er að fólk byrji á að prófa forrit sem heitir 'Blink' en það er einfalt forrit sem gerir ekkert annað en að kveikja og slökkva á ljósdíóðu. Áður en hægt er að flytja forrit yfir í örtölvuna þarf að kanna hvort að kóði sé í lagi með því að ýta á 'Verify' en þá reynir hugbúnaðurinn jafnframt að þýða kóðann yfir á vélamál. Sé kóðinn í lagi er hægt að ýta á 'Upload' og þá flyst kóðinn yfir í örtölvuna.

Hvaða forritunarmál nota ég?[breyta]

Arduino-forritunarmálið er byggt á C/C++ og málskipan náskyld C. Því er hægt að læra heilmikið í C, í gegnum Arduino og algengt að fólk noti Arduino til að gera nám í C hlutstæðara.

Fyrsta forritið[breyta]

Þegar maður býr til nýtt forrit eða breytir eldra forriti er mjög gott, og í raun æskilegt, að skrifa athugasemdir í kóðann. Tvöfalt skástrik ( // ) fremst í línu gera það að verkum að viðkomandi lína verður ekki þýdd og telst þar með athugasemd en ekki alvöru kóði.
Ef athugasemdin þarf að spanna margar línur, eða ef við viljum óvirkja margar línur af kóða án þess að eyða þeim, þá getum við notað /* til að hefja athugasemd og */ til að ljúka athugasemd. Dæmi um þetta má sjá í fyrstu línum forritsins hér að neðan en það er einmitt algengt að höfundar setji gagnlegar upplýsingar í "margra-línu-athugasemd" efst í forrit fyrir aðra notendur.
Góðir forritarar setja athugasemdir í kóðann sinn!

/*
  Blink
  Kveikir á ljósdíóðu í eina sekúndu og slekkur í eina sekúndu endalaust...
 
  Þetta kóðadæmi er nýtur ekki höfundar-eða einkaleyfisverndar og fylgir með Arduino-IDE
 */
 
// Flest Arduino-borð eru með innbyggða ljósdíóðu sem er tengd við pinna 13.
// Búum til breytu:
int led = 13;

// uppsetningarferlið keyrir einu sinni þegar borðið er endurræst:
void setup() {                
  // frumstillum stafræna pinnann/tengið sem frálag (e. output) með fallinu pinMode():
  pinMode(led, OUTPUT);     
}

// lykkjan keyrir síðan aftur og aftur, endalaust:
void loop() {
  digitalWrite(led, HIGH);   // kveikir á ljósdíóðunni ('HIGH' er spennugildið)
  delay(1000);               // bíður í eina sekúndu (1000 millisekúndur!)
  digitalWrite(led, LOW);    // slekkur síðan á ljósdíóðunni með því að breyta spennugildinu í 'LOW'
  delay(1000);               // bíður í eina sekúndu
}

Hvað gera öll þessi tengi?[breyta]

Séð ofan á Arduino UNO, merkingar á tengjum sýnilegar.

Hér munum við taka Arduino UNO borðið sem dæmi, það er vinsælasta borðið og það sem flestir byrja með. Arduino UNO er með ATmega 328, 8-bita örtölvu frá Atmel.
Skipta má tengipunktum á UNO-borðinu í þrjá grunnflokka:

  • 14 stafræn í- og frálagstengi (nr. 0-13)

Þessi tengi má bæði nota sem ílag (e. input) eða frálag (e. output). Ílagstengi má nota til að lesa merki frá skynjurum en frálagstengi til að stýra vökum (e. actuators) í öðrum vélbúnaði. Við skilgreinum hlutverk tengisins (í eða frá) í kóðanum sem við skrifum. Sama hvort tengið er notað sem ílag eða frálag þá geta þau bara tekið við, eða sent, tvennskonar merki; Hátt eða Lágt (kveikt eða slökkt, já eða nei).

  • 6 hliðræn ílagstengi (nr. 0-5)

Hliðrænu ílagstengin eru notuð til að lesa spennustig frá hliðrænum skynjurum. Öfugt við stafrænu stafrænt ílag, sem getur einungis greint á milli tveggja mismunandi merkja, þá getur hliðrænt ílag mælt 1024 mismunandi stig spennu.

  • 6 hliðræn frálagstengi (nr. 3, 5, 6, 9, 10 og 11)

Þessi tengi eru reyndar sex af stafrænu tengjunum sem geta framkvæmt þriðju virknina; þ.e.a.s. hliðrænt frálag. Rétt eins og með stafræn merki, þá skilgreinum við hvað það er sem við viljum að tengin geri í kóðanum okkar.

Varðandi það að knýja borðin, þá eru tveir einfaldir möguleikar:

  • Með USB-tenginu, annaðhvort úr tölvu eða t.d. símahleðslutæki.
  • Á sumum borðum, þar á meðal UNO, er 2.1mm tengi fyrir spenni (mælt er með 7-12V).

Ef borðið getur fengið spennu frá báðum tengjum (USB og 2.1mm) þá velur borðið alltaf 2.1mm tengið. Það er því óhætt að hafa spennu á báðum tengjum.