Arduino og Code::Blocks IDE

Ég keypti mér lítinn Arduino Uno á flakki mínu um Bandaríkin í sumar. Eftir að hafa safnað ryki á borðinu mínu í marga mánuði ákvað ég loksins að gera eitthvað í því. Þar sem ég hef legið heima í veikindum og varla geta gert nokkurn skapaðan hlut ákvað ég að nýta tækifærið og fikta aðeins í þessu apparati.

Ég hef aldrei þolað IDE gaurinn sem fylgir Arduino, fyrir utan það hve ljótur hann er þá þykir mér hann einfaldlega leiðinlegur að eiga við. Hinsvegar hef ég fiktað aðeins með Code::Blocks (hverjum datt í hug að nota tvo tvípunkta þarna á milli!?) og þótt það allt í lagi IDE, eða að minnsta kosti skárri en sá sem Arduino býður uppá.

Ég fór því á stúfana og kannaði alla króka og kima lýðnetsins í leit að hentugri IDE, og hvort hægt væri að nýta Code::Blocks í málið, og viti menn, það er hægt! Því datt mér í hug að búa til lítið tutorial á íslensku um hvernig eigi að græja þetta. Aðalega fyrir sjálfan mig, ef ég skyldi þurfa að leita að þessu aftur, þá er þetta geymt hér á vefsíðunni (að því gefnu að gagnagrunnurinn fari ekki í mess aftur). Þetta tutorial er m.v. Ubuntu Linux og er unnið uppúr (ok ok, aðalega þýðing) tutorial sem er á Arduino Dev síðunni fínu. Sjá hér.

Mín uppsetning:

  • Ubuntu LTS 12.04
  • Arduino Uno (Atmega 328P)
  • Code::Blocks Version 10.05

Arduino & Code::Blocks IDE

Pakkarnir sem þarf:

  • Code::Blocks
  • G++ (C++)
  • GCC AVR (C/C++ compiler (vistþýðari) fyrir AVR)
  • GCC C library (kóðasafn?) fyrir AVR
  • AVRDUDE (Gaurinn sem halar HEX kóðanum yfir á Arduino og vica versa)
  • CuteCom (Serial Terminal forrit, til að fylgjast með serial samskiptum)

Með einni skipun má sulla þessu öllu saman í pottinn:

sudo apt-get install codeblocks g++ gcc-avr avr-libc avrdude cutecom

Ef þetta tekst áfallalaust, er hægt að vinda sér í meiri skemmtilegheit. Til að Code::Blocks nýtist eitthvað þarf að setja upp nokkrar auka skrár. Ef að codeblocks hefur ekki þegar búið til möppu undir /home/notendanafn þá þarf að gera það.

# mkdir ~/.codeblocks

Síðan mæli ég með að nota svn, (önnur aðferð er útskýrð á síðunni einnig, en ég nota svn svo ég læt þessa duga.)

# svn checkout svn://svn.code.sf.net/p/arduinodev/code/trunk/cbaddons ~/.codeblocks

Ef þú ert ekki með subversion uppsett má nálgast það með skipuninni

# sudo apt-get install subversion

Að breyta Code::Blocks Wizard gaurnum

Til að bæta Arduino inní Wizardinn þarftu að opna eftirfarandi skrá með þínum uppáhalds ritli (í mínu tilfelli, vim)

# sudo vim /usr/share/codeblocks/templates/wizard/config.script

Og bæta eftirfarandi kóða efst í skjalið á eftir function RegisterWizards()                         {

 // Arduino edit: þittnafnhértilminnis
    RegisterWizard(wizProject, _T(“arduino”), _T(“Arduino Project”), _T(“Embedded Systems”));

Voila!

Þetta er nú samt ekki búið. Ræsum Code::Blocks.

Veljum “File –> New –> Project”

Þá ætti “Arduino” að sjást í wizardnum.

Veljið Arduino  og ýtið á “go” og þá kemur upp

Hér veljið þið bara ‘next’

Þá er kominn tími til að gefa verkefninu (e. project) nafn, í mínu tilfelli kalla ég það ‘test’ og set það í Dropboxið mitt.

Þá erum við komin með project sem virkar, næstum því.
Þarna sjáum við Workspace, undir því er hírarkía af allskyns dóti. Skjalið sem við höfum mestan áhuga á, til að byrja með, er ‘sketch.cpp’. Það er í raun ‘blink’ úr hefðbundna Arduino IDE gaurnum og fínt að nota til að prófa.

Til að byrja með mætti prófa að vistþýða, það er gert með velja ‘build’ og ‘build’ eða einfaldlega nota ctrl + F9. Til að keyra forritið á Arduino þarf aðeins að fiffa.

Efst upp í valmyndinni er flipi sem heitir ‘tools’ og undir honum ættu að koma allskyns valmöguleikar. Ef allt hefur gengið upp í uppsetningunni ætti að sjást eftirtaldir valmöguleikar:

  • Serial Terminal
  • USB Upload (flash)
  • USB Upload (EEPROM)
  • USBASP Upload
  • Configure Tools…

Við viljum nota USB Upload (Flash), en til að það virki þarf að fara í valmyndina aftur og finna ‘Project’ og þar undir sést ‘Build options…’ Við opnum það.

Þar má sjá eftirfarandi.

Þarna þarf að setja inn /dev/ttyACM0 (eða samsvarandi fyrir Arduinoinn sem þú ert með). Að sjálfsögðu þarf líka að velja réttan Arduino, í þessu tilfelli er ég með Arduino Uno. Arduino birtist að ég held oftast með /dev/ttyACM0 eða /dev/ttyUSB0 en sjálfsagt er það misjafnt eftir stýrikerfum.

Hægt er að gera:

# ls /dev/ | grep ttyACM*

Ætti þá að koma /dev/ttyACM0 uppá skjáinn eða ACM með annað endanúmer. Væri gaman að átta sig á hvaðan þessi nóðunúmer á Arduino koma í Ubuntu. (Í ubuntu LTS 10.04 minnir mig endilega að það hafi verið /dev/ttyUSBx)

Voila!

Þá ætti að vera hægt að fara að fikta. Það er einn galli við þessa uppsetningu, að í hvert skipti sem búið er til nýtt “project” þarf að setja inn nóðunúmerið á Arduino brettinu. Sem er svo sem ekki sem verst en væri gaman að finna út meira viðvarandi lausn. Vonandi að þetta nýtist fleirum en mér. :)

 

This entry was posted in Electronics, Mechatronics and tagged , . Bookmark the permalink.

One Response to Arduino og Code::Blocks IDE

  1. Eiki says:

    Djöfulsins snillingur!

Leave a Reply

Your email address will not be published. Required fields are marked *