
Apakah IDE atau Integrated Development Environtment itu? Untuk merancang sebuah program dalam aplikasi mikrokontroler berikut ini adalah tahap-tahap yang harus dilalui
- Program atau dalam Arduino biasanya disebut Sketch akan ditulis / diedit dengan sebuah Text Editor. Program ini berupa syntax-syntax yang ditulis dalam bahasa yang manusiawi sehingga dapat dimengerti oleh manusia (biasanya dalam bahasa C)
- Kemudian sketch atau program tersebut akan melalui proses compile dengan sebuah program compiler menjadi Program Obyek yang dapat dimengerti oleh mikrokontroler (biasanya dalam file Hex)
- Program obyek ini kemudian akan diisikan ke dalam mikrokontroler melalui Proses Download. Memang dalam Arduino IDE proses ini disebutkan dengan istilah Upload. Tapi saya tidak setuju dengan istilah ini, karena seharusnya definisi Download adalah proses pengiriman data dari sistem yang lebih besar (PC / Laptop) ke sistem yang lebih kecil (mikrokontroler). Oleh karena itu dalam setiap artikel saya proses ini akan tetap saya tuliskan sebagai Proses Download dan bukan Upload. Arduino memang mengambil istilah yang dari Microsoft di mana Upload adalah pengiriman data keluar dari PC dan Download adalah pengiriman data masuk ke PC. Tapi saya lebih memilih istilah yang dipakai vendor-vendor mikrokontroler yang menggunakan istilah Downloader sebagai perangkat untuk menuliskan data dari PC ke mikrokontroler
Ok kita tinggalkan saja dulu istilah download vs upload ini kembali ke definisi IDE. Software yang dapat digunakan untuk ketiga langkah di atas itulah yang disebut IDE di mana proses editor, compile dan download dapat dilakukan.
IDE yang kita bahas dalam artikel ini adalah IDE Arduino yang dapat didownload di link berikut:
Sebelum kita mulai menggunakan Arduino IDE maka terlebih dahulu ada beberapa pengaturan yang harus dilakukan:
- Tentukan folder Sketchbook Location. Dalam merancang sebuah program seringkali kita membutuhkan library-library yang digunakan untuk mengakses perangkat-perangkat tertentu seperti micro SD, LCD, EEPROM dan lain-lain. Perlu diperhatikan bahwa apabila kita hanya menulis sebuah program saja mungkin hal ini tidak perlu diperhatikan dan cukup kita gunakan default folder saja yang ditentukan dari awal oleh arduino. Namun apabila kita berencana menuliskan banyak program untuk berbagai project maka perlu dibiasakan agar setiap kali menuliskan program baru folder Sketchbook Location ini harus ditentukan berbeda untuk setiap programnya. Dengan ini maka setiap project akan memiliki folder library tersendiri

Dengan mengatur setiap project memiliki library sendiri-sendiri hal ini mencegah terjadinya error library. Kadang-kadang sebuah sketch yang sudah pernah kita tulis dan uji coba bekerja dengan baik, beberapa waktu kemudian mendadak error. Hal ini disebabkan karena pada saat kita mengerjakan sketch yang lain dan melakukan update / editing library hingga sesuai dengan sketch yang baru bisa jadi mengakibatkan tidak sesuai dengan sketch yang lama.
Pada contoh di atas kita atur sketchbook location di folder ….\Quote Data Logger\gpssuhu6, maka akan terbentuk folder library di dalam lokasi tersebut di mana nantinya library-library pada project ini akan tersimpan. Berikutnya apabila kita akan membuat sketch untuk project pju maka sketchbook location bisa diatur di folder ….\pju di mana library-library pju akan tersimpan di folder libraries yang terbentuk di dalamnya. Dengan ini, apabila kita mengedit library-library di sketch pju tidak akan mempengaruhi sketch gpssuhu6 lagi.
Detail untuk management library akan kita bahas di Cara Pengaturan Library di Arduino IDE
2. Tentukan Board Manager URL, board di sini adalah merupakan rangkaian elektronik yang kita gunakan memasang mikrokontroler yang akan diprogram. Board manager URL adalah merupakan link yang menyediakan arsitektur disain / konfigurasi pin dari Vendor Board yang digunakan.



Anda dapat memasukkan lebih dari satu URL di box ini, contohnya pada gambar ini kita inputkan URL dari board arduino dan board ESP8266
3. Tentukan Board yang akan digunakan, setelah kita inputkan URL dari Board Manager maka pada bagian Board Manager akan tampil daftar board yang akan kita gunakan seperti pada gambar berikut

4. Tentukan Microprocessor, setelah board dipilih berikutnya kita harus menentukan microprocessor yang akan digunakan contohnya di sini ATMega328P untuk Board Arduino Nano. Kadang-kadang ada Board Arduino Nano yang tidak dapat menggunakan Microprocessor ATMega328P sebagai pilihannya karena masih menggunakan bootloader lama. Di sini kita dapat memilih ATMega328P old bootloader sebagai pilihannya.

5. Tentukan Port, untuk menghubungkan Board ke Arduino IDE dilakukan melalui Port USB. Untuk pertama kali menggunakan Arduino IDE biasanya Port USB masih belum ter instalasi dengan driver

Apabila belum terinstal driver maka akan tampil pesan “Device driver software was not successfully installed” dan ada tanda “!” pada USB Serial. Klik pada bagian itu dan pilih update driver dan arahkan folder ke driver CH340. Apabila kita belum memiliki driver tersebut dapat didownload di link berikut

Di sini kita dapat melihat Driver CH340 ter instal di COM3, maka kita dapat arahkan port pada Arduino IDE pada COM3 seperti pada gambar berikut

Sampai di sini pengaturan-pengaturan yang diperlukan pada Arduino IDE sudah selesai dan kita sudah dapat mulai menggunakan Arduino IDE tersebut. Berikut adalah proses-proses yang dapat dilakukan oleh Arduino IDE
- Proses Verify/compile, pada proses ini sketch atau program akan dicompile di mana sketch ataupun program tersebut akan diubah menjadi program object.

Namun pada proses compile Arduino IDE ini, program object tidak dapat dilihat / diambil oleh pengguna dan hanya tersimpan pada internal Arduino IDE. Proses ini hanya digunakan untuk memeriksa apakah sketch yang ditulis ada syntax yang error atau tidak. Pesan error atau hasil compile dapat dilihat pada bagian bawah seperti pada gambar berikut. Apabila tampil pesan Done Compiling artinya sketch / program sudah tidak ada syntax yang error dan siap untuk didownload ke board

2. Proses Download, merupakan proses pengiriman data dari Arduino IDE ke board. Pada proses ini sebetulnya bukan hanya download, tetapi terlebih dahulu diawali dengan Proses Verify / Compile terlebih dahulu yang mengubah sketch menjadi program obyek baru selanjutnya program obyek ini akan dikirim ke Port USB sesuai dengan COM yang dipilih menuju ke board. Bootloader yang ada di dalam bagian Boot Flash Section pada memory microcontroller/micropocessor yang ada dalam board akan menerima program obyek tersebut dan menyimpan ke dalam memori bagian Application Flash Section dan dilanjutkan dengan reset board yang menjalankan program obyek yang tersimpan tersebut.
Pada proses ini, apabila terjadi kesalahan syntax pada penulisan sketch maka proses verify/compile juga akan berhenti sambil menunjukkan syntax yang error dan proses download program tidak akan diteruskan.


Pada struktur memori microcontroller AVR yang menjadi microprocessor/microcontroller dari Board Arduino Flash Memory terdiri dari 2 bagian yaitu Boot Flash Section yang merupakan lokasi memori Bootloader dan Application Flash Section yang merupakan lokasi memori Program Aplikasi tempat Program Obyek didownload.
3. Proses Download using Programmer, proses ini sama dengan Proses Download namun bedanya program obyek bukan dikirim melalu Port USB dari COM yang dipilih namun akan dikirim melalui Port USB dari COM di mana Perangkat Programmer yang telah dipilih oleh Arduino IDE

Pada proses ini, program obyek dikirim melalui Port USB dari COM perangkat Programmer yang dipilih oleh Arduino IDE dan diisikan ke dalam Program Memory dari microprocessor/microcontroller yang ada di Board. Bedanya dengan Proses Download, di sini program obyek tersimpan ke boot flash section maupun application flash section sehingga bisa juga menghapus bootloader Arduino. Fungsi ini biasanya digunakan untuk:
- Mengupdate bootloader Arduino
- Mendownload program ke microcontroller tanpa bootloader arduino

Pada gambar di atas Arduino IDE diatur agar memilih AVRISP MKII sebagai perangkat programmer yang digunakan untuk mendownload program ke Flash Memory dari microcontroller yang ada di Board Arduino

Di sini program obyek tidak didownload melalui port usb dari Arduino Board tapi melalui port usb dari perangkat AVR ISP MKII dan diteruskan ke Arduino Board melalui Port ISP (In System Programming) yaitu di pin MOSI, MISO, SCK, RST.
4. Proses Export Compiled Binary, merupakan proses compile sketch menjadi program obyek.

Bedanya pada proses ini dibandingkan verify/compile adalah di sini program obyek dapat diakses oleh pengguna yaitu berupa file *.hex yang dapat dilihat pada folder berikut

Pada gambar tersebut terlihat dua buah program obyek dalam bentuk HEX yaitu GPSSuhurev9.ino.standard.hex yang merupakan program obyek saja dan GPSSuhurev9.ino.with_bootloader.standard.hex yang merupakan program obyek dan termasuk bootloadernya. Jadi apabila file ini yang diisikan ke microcontroller maka sudah termasuk dengan bootloadernya. File HEX ini biasanya diisikan ke microcontroller melalui ISP Port dengan menggunakan Perangkat Programmer dan software downloader seperti AVR Studio, Zadig dll
5. Proses Serial Monitor, merupakan proses untuk melihat / monitor data yang lewat pada serial port dari microcontroller yang terhubung pada Port USB sesuai COM yang dipilih oleh Arduino IDE

Pastikan Port sudah diatur untuk memilih COM yang dideteksi oleh Arduino Board dan kemudian pilih Tool – Serial Monitor

Tampak di sini layar terminal menampilkan data serial yang dikirimkan oleh Arduino Board ke COM berupa pesan sebagai berikut:
Scan a MIFARE Classic PICC to demonstrate read and write.
Using key (for A and B): FF FF FF FF FF FF
BEWARE: Data will be written to the PICC, in sector #1
DELTA ELECTRONIC
Paulus Andi Nalwan, ST