Langsung ke konten utama

Arduino : Darimana Saya harus memulai?


Bismillah, Tulisan pertama tentang Arduino.

Mungkin sudah banyak Orang yang mengenal Arduino terutama Praktisi Mikrokontroller atau Mahasiswa Teknik Elektro. Tak jarang pula beberapa Mahasiswa dari Jurusan lain mengenal Arduino. Saya sendiri baru mengenal Arduino pada saat saya semester 2, tapi saat itu saya belum cukup mengerti Arduino dan berbagai macam isinya. Hehehe, maklum masih perlu banyak belajar saat itu, Dan sekarang pun Arduino sudah mengalami berbagai macam improvement. 

Apa itu Arduino?

Arduino atau Genuino (untuk luar USA) adalah open-source platform yang berfungsi sebagai modul pengendali berbagai macam unit Input/Output. Untuk orang awam, Arduino merupakan board mikrokontroller yang sudah jadi dan siap pakai. Kalian bisa bermain-main dan mengendalikan berbagai macam sensor, aktuator, dan berbagai device lainnya yang mendukung platform Arduino. Setiap board Arduino sudah dilengkapi dengan modul power supply sehingga kita tidak perlu membuat rangkaian Power Supply untuk Arduino. Didalam arduino sudah berisikan dengan Mikrokontroller, Rangkaian Power Supply, dan berbagai komponen pendukung lainnya sehingga Board ini siap pakai.
Yang lebih menarik dari Arduino adalah platform ini juga memiliki Program Editor  / Sofware IDE yang sangat memanjakan programmer. Kalian tidak harus menguasai bahasa assembly mesin atau bahkan menghafal register-register didalam Mikrokontroller yang kalian gunakan.
Sebelum ada Arduino, untuk membuat sebuah modul pengendali berbasis mikrokontroller, kita harus memiliki dasar-dasar Arsitektur Mikrokontroller yang kuat. Mulai dari pemahaman register, memory, dan fitur-fitur Mikrokontroller yang semuanya sudah tertuliskan di Datasheet Mikrokontroller yang kita gunakan. Mudahnya, kalian tidak perlu membaca Datasheet Mikrokontroller yang berjumlah ratusan halaman itu. Bahagia sekali bukan? hehe, Apalagi semua tentang Arduino mulai dari rangkaiannya, cara penggunaannya dan software-nya bisa kita browse dan download secara free di website Arduino. Lebih bahagia lagi bukan? hehe,
Ada beberapa keunggulan yang membuat Arduino sangatlah recommended untuk dipelajari dan digunakan, apalagi untuk praktisi embedded system :
1. Murah
Harga dari Arduino bisa dibilang murah apabila dibanding dengan platform lain. Hal ini dikarenakan Arduino sudah siap pakai dan bisa langsung diprogram dengan software IDE nya. Berbeda dengan platform lain yang memerlukan downloader terpisah.
2. Cross-Platform
Arduino compatible dengan berbagai OS : Windows, Linux, dan Mac. Berbeda dengan kebanyakan platform lain yang terkadang hanya bisa di Windows.
3. Programming yang mudah dan simpel
Pemrograman sangatlah mudah dan simpel karena banyak sekali tutorial yang tersedia di internet. Bahkan Arduino telah membuat tutorial step per step yang mudah dipahami.
4. Open-Source dan Extensible Software
Dengan adanya library, sangat memudahkan programmer dalam memrogram Arduino. Library pun sangat beragam dan kita dapat dengan mudah mencari nya di Internet baik buatan orang lain atau pun buatan Arduino.
5. Open-Source dan Extensible Hardware
Dengan adanya shield Arduino, sangat memudahkan dalam pengembangan hardware Arduino karena shield sudah bisa langsung dipasang di board Arduino.

Hardware

Hingga saat ini, Arduino telah me-release beberapa board dengan spesifikasi, dimensi,dan fitur sendiri-sendiri. Mikrokontroller yang digunakan pun beragam dari Atmel. Saat ini, Arduino sedang mengembangkan integrated hardware dimana sudah ada fitur-fitur komunikasi atau pun sensor yang sudah tertanam di Arduino seperti Arduino 101(yang release pada bulan Oktober 2015) yang sudah ada integrated bluetooth dan sensor IMU didalamnya. Berikut board-board yang sudah di-release oleh Arduino dan masih didevelop (karena ada beberapa board yang sudah retired.
Kategori Entry level adalah board-board yang cocok digunakan untuk pengguna pemula Arduino atau pun penggunaan dengan jumlah pin IO dan serial yang terbatas. Dimensi nya yang lebih kecil dari lainnya terkadang menjadi kebutuhan tertentu bagi seseorang. Namun dengan kategori ini pun sudah cukup bagi pemula Arduino untuk memelajari Arduino.
Sedangkan untuk Kategori Enhanced Feature adalah board-board yang biasa digunakan oleh pengguna menengah Arduino. Karena pada kategori ini, board nya memiliki jumlah pin IO dan serial yang lebih banyak. Seperti pada Arduino Mega dan Due yang memiliki pin serial UART sebanyak 4 pasang. Selain memiliki konfigurasi pin yang lebih banyak, kategori ini memiliki CPU speed yang lebih diantara yang lain yaitu pada Arduino Due sebesar 84Mhz yang merupakan CPU speed tercepat untuk Arduino.
Ketegori Internet of Things merupakan board atau pun berupa shield yang bisa berkomunikasi dengan Internet atau perangkat wireless lainnya. Ada yang sudah tertanam (integrated) didalam board nya, ada yang masih berupa shield.
Untuk kategori Wearable ini merupakan kategori dengan dimensi yang paling kecil karena didesain untuk aplikasi alat-alat yang wearable (bisa dipakai). 
Untuk perbandingan antara board-board Arduino, bisa dilihat dibawah ini:


Ada berbagai board dengan berbagai macam nama dan spesifikasi tertentu. Processor merupakan mikrokontroller yang digunakan yang berfungsi sebagai pengendali input output Arduino. Setiap mikrokontroller memiliki datasheet sendiri-sendiri yang bisa dicari sendiri. Namun, dengan Arduino kita tidak perlu repot-repot membaca dataasheet mikrokontroller. Operating/Input Voltage merupakan tegangan kerja dari Arduino. Tidak ada toleransi dalam memberikan catu daya pada Arduino karena kesalahan dalam mencatu Arduino akan menyebabkan kerusakan. CPU Speed merupakan kecepatan proses instruksi dari Arduino. Analog In/Out merupakan jumlah pin Analog yang tersedia. Dan digital IO/PWM merupakan jumlah input output ditigal dan pin dengan fitur PWM. EEPROM merupakan besar memory Non-Volatile dimana data didalam memory tidak akan hilang ketika Arduino dimatikan. Sama hal nya pada Flash Memory yang merupakan tempat program arduino disimpan. EEPROM dan Flash Memory sama-sama bersifat Non-Volatile. Sedangkan untuk SRAM merupakan tempat program membuat dan memanipulasi variabel ketika Arduino menjalankan program. USB merupakan jumlah koneksi USB yang bisa terhubung dengan Arduino. Dan yang terakhir, USART merupakan jumlah pasangan pin serial dari Arduino untuk komunikasi Serial. 
Semua informasi detail dari masing-masing board Arduino sudah tersedia di web Arduino mulai dari spesifikasi nya, hingga layout PCB Eagle nya sehingga sebenarnya kita pun dapat membuat Board Arduino kita sendiri. Oleh karena itu banyak sekali clonning Arduino yang terjual dengan harga murah. Untuk memelajari Arduino, tentu saja kita membutuhkan Board Arduino yang dapat kita beli di pasaran atau pun merangkai sendiri.

Ada pula Arduino Certified , yang merupakan hardware yang mendukung pemrograman dengan menggunakan Arduino IDE. Untuk produk official Arduino Certified adalah Intel Galileo, Intel Galileo Gen 2, dan Intel Edison. 

Software

Arduino menyediakan software Program Editor yang digunakan untuk program & debug board Arduino. Software ini menggunakan bahasa pemrograman simplified programming dimana programmer menjadi lebih mudah dalam pemrograman mikrokontroller. Sebelum ada Arduino, untuk melakukan konfigurasi pin IO mikrokontroller sangatlah ribet dan njelimet menyusahkan. Kita harus set register satu persatu untuk menentukan suatu pin menjadi input atau kah output. Sofware Arduino IDE dapat didownload di link : https://www.arduino.cc/en/Main/Software .
Kita dapat memilih software sesuai dengan OS komputer kita. OS yang compatible dengan Arduino adalah Windows, Linux, dan Mac. Namun sepertinya kita harus menginstall Java terlebih dahulu untuk menjalankan aplikasi ini karena Software Arduino menggunakan Java.
Berikut tampilan awal Software Arduino (versi 1.6.5) :


Toolbar Menu
Verify
Memastikan program yang dibuat bisa dicompile dan di upload.
Upload
Compile program dan meng-upload ke board yang telah dipilih.
Note: Jika kamu menggunakan external programmer dengan board mu, kamu bisa tekan "shift" lalu klik icon ini. 
New
Membuat sketch baru
Open
Membuka program yang telah dibuat
Save
Simpan sketch
Serial Monitor
Membuka serial monitor.

Menu

File

New 
Creates a new instance of the editor, with the bare minimum structure of a sketch already in place.
Open 
Allows to load a sketch file browsing through the computer drives and folders.
Open Recent 
Provides a short list of the most recent sketches, ready to be opened.
Sketchbook 
Shows the current sketches within the sketchbook folder structure; clicking on any name opens the corresponding sketch in a new editor instance.
Examples 
Any example provided by the Arduino Software (IDE) or library shows up in this menu item. All the examples are structured in a tree that allows easy access by topic or library.
Close 
Closes the instance of the Arduino Software from which it is clicked.
Save 
Saves the sketch with the current name. If the file hasn't been named before, a name will be provided in a "Save as.." window.
Save as... 
Allows to save the current sketch with a different name.
Page Setup 
It shows the Page Setup window for printing.
Print 
Sends the current sketch to the printer according to the settings defined in Page Setup.
Preferences 
Opens the Preferences window where some settings of the IDE may be customized, as the language of the IDE interface.
Quit 
Closes all IDE windows. The same sketches open when Quit was chosen will be automatically reopened the next time you start the IDE.

Edit

Undo/Redo 
Goes back of one or more steps you did while editing; when you go back, you may go forward with Redo.
Cut 
Removes the selected text from the editor and places it into the clipboard.
Copy 
Duplicates the selected text in the editor and places it into the clipboard.
Copy for Forum 
Copies the code of your sketch to the clipboard in a form suitable for posting to the forum, complete with syntax coloring.
Copy as HTML 
Copies the code of your sketch to the clipboard as HTML, suitable for embedding in web pages.
Paste 
Puts the contents of the clipboard at the cursor position, in the editor.
Select All 
Selects and highlights the whole content of the editor.
Comment/Uncomment 
Puts or removes the // comment marker at the beginning of each selected line.
Increase/Decrease Indent 
Adds or subtracts a space at the beginning of each selected line, moving the text one space on the right or eliminating a space at the beginning.
Find 
Opens the Find and Replace window where you can specify text to search inside the current sketch according to several options.
Find Next 
Highlights the next occurrence - if any - of the string specified as the search item in the Find window, relative to the cursor position.
Find Previous 
Highlights the previous occurrence - if any - of the string specified as the search item in the Find window relative to the cursor position.

Sketch

Verify/Compile 
Checks your sketch for errors compiling it; it will report memory usage for code and variables in the console area.
Upload 
Compiles and loads the binary file onto the configured board through the configured Port.
Upload Using Programmer 
This will overwrite the bootloader on the board; you will need to use Tools > Burn Bootloader to restore it and be able to Upload to USB serial port again. However, it allows you to use the full capacity of the Flash memory for your sketch. Please note that this command will NOT burn the fuses. To do so a Tools -> Burn Bootloader command must be executed.
Export Compiled Binary 
Saves a .hex file that may be kept as archive or sent to the board using other tools.
Show Sketch Folder 
Opens the current sketch folder.
Include Library 
Adds a library to your sketch by inserting #include statements at the start of your code. For more details, seelibraries below. Additionally, from this menu item you can access the Library Manager and import new libraries from .zip files.
Add File... 
Adds a source file to the sketch (it will be copied from its current location). The new file appears in a new tab in the sketch window. Files can be removed from the sketch using the tab menu accessible clicking on the small triangle icon below the serial monitor one on the right side o the toolbar.

Tools

Auto Format 
This formats your code nicely: i.e. indents it so that opening and closing curly braces line up, and that the statements inside curly braces are indented more.
Archive Sketch 
Archives a copy of the current sketch in .zip format. The archive is placed in the same directory as the sketch.
Fix Encoding & Reload 
Fixes possible discrepancies between the editor char map encoding and other operating systems char maps.
Serial Monitor 
Opens the serial monitor window and initiates the exchange of data with any connected board on the currently selected Port. This usually resets the board, if the board supports Reset over serial port opening.
Board 
Select the board that you're using. See below for descriptions of the various boards.
Port 
This menu contains all the serial devices (real or virtual) on your machine. It should automatically refresh every time you open the top-level tools menu.
Programmer 
For selecting a harware programmer when programming a board or chip and not using the onboard USB-serial connection. Normally you won't need this, but if you're burning a bootloader to a new microcontroller, you will use this.
Burn Bootloader 
The items in this menu allow you to burn a bootloader onto the microcontroller on an Arduino board. This is not required for normal use of an Arduino or Genuino board but is useful if you purchase a new ATmega microcontroller (which normally come without a bootloader). Ensure that you've selected the correct board from the Boards menu before burning the bootloader on the target board. This command also set the right fuses.

Untuk lebih lengkap nya bisa di buka di link berikut : https://www.arduino.cc/en/Guide/Environment

In syaa Allah tulisan ini berlanjut :) Stay Tune yaa :D hahahaha



























Komentar

Postingan populer dari blog ini

Cerita KP : Hari Pertama di GMF

Mungkin bagi seorang mahasiswa kegiatan magang, kerja praktik, atau penelitian merupakan hal yang biasa dilakukan untuk melengkapi sebagian cerita dalam perjalanan kuliahnya. Hal ini juga saya alami dimana saya diwajibkan untuk menjalani Kerja Praktik/ KP untuk menggenapkan 144 sks saya. Sebenarnya saya sudah memikirkan masalah KP mulai dari tempat, akomodasi, dan segala macam tetekbengek  yang harus saya siapkan untuk menjalani KP. Karena tahun ke-dua dan ke-tiga saya mempunyai amanah di Tim Robot UGM sehingga saya memutuskan untuk KP pada tahun ke-empat supaya tidak mengganggu jalannya persiapan lomba KRI. Dan pilihan tempat jatuh kepada perusahaan GMF AeroAsia. Awalnya saya hanya tahu dari kakak tingkat yang sudah KP di tempat tersebut. Namun, dikarenakan letak GMF AeroAsia berada di Tangerang dan lumayan dekat ke Rumah Keluarga saya di Tangerang, ditambah pula saya kelahiran Tangerang yang gatau kenapa jadi menambah hasrat untuk KP disini, ditambah lagi ada Eyang dari Mama yang ad

(Power Supply) Linear vs Switching

Hal yang paling terpenting dari rangkaian elektronika adalah Power Supply -nya. Iya gak? Coba kalo ada circuit tapi gada power supply-nya. Apa bisa jalan? hehe, tentu saja gabisa jalan. Kan gapunya kaki (?) Haha, maksudnya nanti darimana sumber daya circuit nya? Nah, oleh karena itu pada posting an ini saya mau share ilmu saya yang sedikit ini tentang Power Supply. Tapi, yang akan saya bahas hanya Power Supply untuk Circuit DC (Direct Current) saja ya. Hehehe, soalnya kalo yang AC agak ribet dan kebetulan saya bukan bidangnya. Dari pengalaman saya, ada 2 cara dalam mensupply sebuah circuit. Bisa dengan Linear Regulator atau dengan Switching Mode. Biar lebih enak sharing-nya, misalkan saya ingin mensupply sebuah circuit dengan tegangan 5 volt. Kalo mau pake cara Linear Regulator kita bisa pake IC7805. Untuk yang Switching Mode bisa pake LM2576. IC7805 & LM2576 tu makanan apaan sih? Hahaha, coba buka datasheet-nya yak. Googling bae lah yak. Ohya, biar ga kelupaan, ane jelasin dulu

Catatan Perjalanan GMRT, Part Five: Alfarobi, Tim KRSBI UGM

Kekalahan yang menyakitkan. Sudah diberi kesempatan kedua yaitu bisa masuk KRI Nasional, masih saja saya tidak bisa memanfaatkan kesempatan tersebut. Banyak sekali evaluasi terutama untuk saya pribadi dalam hal manajemen waktu dan pikiran. Sempat saya berfikir, mungkin salah satu penyebab saya kurang maksimal adalah beban pikiran saya yang banyak. Kuliah, Tim Robot, dan Organisasi. Organisasi disini meliputi Event Organizer dan Organisasi Keluarga Mahasiswa Teknik Elektro dan Teknologi Informasi (KMTETi) UGM. Dari 3 hal tersebut, Haruslah ada yang dikorbankan. Mungkin, saya sendiri telah mengorbankan semuanya karena pada akhirnya saya tidak bisa fokus justru tidak bisa maksimal di setiap pikiran. Pada saat itu prestasi akademik saya menurun juga mungkin karena terlalu banyak beban pikiran yang saya pikirkan. Semua menjadi tidak maksimal karena saya hanya mempunyai waktu sehari 24 jam sama seperti yang lain sedangkan beban yang saya ampu mengharuskan saya bekerja lebih dari 24 jam dala