Home > Aplikasi Desktop, Tutorial > Arduino di Linux Ubuntu 12.10

Arduino di Linux Ubuntu 12.10

Arduino GUI akan diinstall di Linux Ubuntu 12.10. Kemudian, program contoh akan dicoba dan diupload ke board Arduino Uno. Beberapa masalah yang terjadi juga akan dipecahkan, terutama tidak bisanya upload hex ke board menggunakan downloader Arduino, dengan pesan “stk500_getsync(): not in sync: resp=0x31” atau pesan “avrdude: usb_open(): cannot read serial number “error sending control message: Operation not permitted” saat menggunakan programmer eksternal, misalnya AVRISP MKII.

Ubuntu telah mempunyai paket Arduino-1.0.1+dfsg-7 yang sudah ada di repository, sehingga instalasi bisa menggunakan apt-get. Paket dependensi akan terinstall.

$ sudo apt-get install arduino
Working...
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
arduino-core avr-libc avrdude binutils-avr ca-certificates-java default-jre default-jre-headless extra-xdg-menus gcc-avr
...
The following NEW packages will be installed:
arduino arduino-core avr-libc avrdude binutils-avr ca-certificates-java default-jre default-jre-headless extra-xdg-menus gcc-avr
...
Need to get 0 B/74.1 MB of archives.
After this operation, 160 MB of additional disk space will be used.

Setelah terinstall, shortcut program Arduino diletakkan di bagian Electronics. Klik Applications->Electronics->Arduino IDE untuk menjalankan Arduino. Tampilan pertama yang muncul adalah dialog untuk menambahkan user ke grup dialout. Grup dialout ini diberi wewenang untuk mengakses device programmer, baik serial maupun usb. Karena userid saya belum masuk ke grup dialout, maka akan muncul dialog tersebut. Klik OK, dan password root harus dimasukkan untuk menambahkan user ke grup dialout.

Dialog untuk menambahkan user ke grup dialout

Dialog untuk menambahkan user ke grup dialout

Jendela program Arduino IDE telah tampil. Sketch (istilah kode di Arduino?) dapat dibuat. Sketch contoh “Blink” akan dipanggil, dikompile, dilink untuk menghasilkan kode hex dan diupload ke board Arduino Uno. Kompilasi dan linking akan menggunakan avr-libc, gcc-avr dan binutils-avr yang ikut terinstall saat instalasi Arduino IDE.
Jendela Arduino IDE telah siap menerima perintah:

Jendela sketch Arduino IDE

Jendela sketch Arduino IDE

Sketch blink diambil dari kode contoh:

Memanggil kode sketch sample blink

Memanggil kode sketch sample blink

Isi sketch blink yang siap untuk dikompile:

Sketch blink

Sketch blink

Kompilasi (dan link) dilakukan dengan klik menu Sketch->Verify/Compile atau dari tombol shortcut.

Perintah kompile sketch

Perintah kompile sketch

Sketch telah berhasil dikompile dan dilink serta menghasilkan kode hex yang siap diupload.

Kode hex blink telah siap

Kode hex blink telah siap

Kode hex akan diupload ke board Arduino Uno dengan menggunakan “Arduino as ISP”. Pemilihan board target dan programmernya dapat dilakukan dari menu Tools.

Memilih board target (Arduino Uno)

Memilih board target (Arduino Uno)

Memilih programmer (AVR ISP MKII)

Memilih programmer (AVR ISP MKII)

Saat memilih programmer menggunakan Arduino untuk mengupload kode hex (dari menu File->Upload), terdapat error dengan pesan “stk500_getsync(): not in sync: resp=0x31”. Programmer dilakukan mencolokkan kabel langsung ke port USB board. Kalau ditemui masalah tersebut, yang perlu dilakukan adalah membakar bootloader (menu Tools->Burn Bootloader). Untuk melakukannya, akan dibutuhkan programmer eksternal, misalnya AVRISP MKII.

Saya menggunakan AVRISP MKII untuk memprogram bootloader ke board. Bootloader sudah ada di paket Arduino IDE. Kabel programmer dicolokkan ke port ICSP. Programming dilakukan dari menu File->Upload Using Programmer. Namun, muncul pesan error avrdude: usb_open(): cannot read serial number "error sending control message: Operation not permitted". Solusinya adalah menambahkan rules ke udev. Buat file rules, misalnya /etc/udev/rules.d/40-avrdude.rules dan beri wewenang ke grup dialout untuk menggunakan device yang terdaftar di rule. Berikut isi file untuk beragam programmer.

$ sudo cat > /etc/udev/rules.d/40-avrdude.rules << EOF
# Atmel AVRICE mkII
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2103", GROUP="dialout", MODE="0660"
# Atmel AVRISP mkII
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2104", GROUP="dialout", MODE="0660"
# Atmel AVRONE!
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2105", GROUP="dialout", MODE="0660"
# Atmel STK600
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2106", GROUP="dialout", MODE="0660"
# Atmel Dragon
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2107", GROUP="dialout", MODE="0660"
# Atmel XPLAIN CDC Gateway
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="210d", GROUP="dialout", MODE="0660"
# at90usb AVR DFU bootloader (AT90USB1287 on XPLAIN and others)
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", GROUP="dialout", MODE="0660"
# fischl.de USBASP
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", GROUP="dialout", MODE="0660"
EOF

Cabut dan colokkan kembali kabel programmer dari PC. Upload bootloader menggunakan programer AVRISP MKII. Setelah berhasil, programmer board Arduino Uno bisa digunakan. Dan Anda bisa bereksperimen menggunakan board ini tanpa programmer eksternal.

Sumber:

  1. No comments yet.
  1. No trackbacks yet.
*

This blog is kept spam free by WP-SpamFree.

Skip to toolbar