Minggu, 03 Mei 2015

Arduino (Introduction)

Hello Guys !!!
mumpung lagi rajin dan kebetulan weekend free, jadi gw pikir bikin bahasan baru aja :D
Okay kali ini kita bakal bahas tentang arduino. So, nanti harapannya kalian bakal tau tentang "Apa itu Arduino?", "Apa itu Arduino Bootloader?", "Apa itu Arduino IDE?"
Nah, biar lebih jelas pemahamannya nantinya, gw rekomendasiin kalian buat baca tentang Microcontroller (Introduction) dulu, soalnya materi ini berhubungan banget sama microcontroller. Jadi kalian harus tau dasarnya dulu biar gak bingung ama kata-kata gw nanti :D
catatan nih guys : sebelumnya kalian musti tau dulu apa definisi dari program, juga biar kalian paham kata-kata gw. :D hehe
Program adalah serangkaian instruksi yang ditulis untuk melakukan suatu fungsi spesifik. 

Okay let's begin with first question guys :D
"Apa itu Arduino?". Hmmm jadi pada intinya Arduino itu adalah platform, ngomongin platform jelas didalamnya ada hardware ama software. Hardwarenya itu pada Arduino Boardnya yang terintegrasi dengan Atmel AVR (microcontroller buatan Atmel), nah kalo softwarenya sendiri pada Arduino IDE. yang menjembataninya itu bootloader (secara sofrware) dan komunikasi serial juga terus beberapa rangkaian secara fisiknya. Okay, simpan pertanyaan kalian dulu dan kita coba bahas satu per satu secara lebih detail ;)


Secara umum kita udah tau apa itu arduino, cuman didalamnya mungkin ada hal yang membingungkan kita.. Nah, kita bahas board arduinonya sendiri dulu deh. Sebenernya boardnya ini cuman sebatas rangkaian yang dirancang biar bersifat flexible biar penggunanya bisa leluasa bereksperimen dan juga yang keren dari arduino ini yakni bersifat open-source, jadi menyenangkan lah kemua bersifat terbuka, dishare, dan bahkan itu memungkinkan buat ngemodif sesuai selera kalian :D
di board arduino udah ada interface buat komunikasi serialnya juga (UART), terus rangkaian buat catudaya eksternal terus designnya juga bisa gw bilang global dan simple dah pokoknya.


guys itu gambar cuman contoh salah satu arduino board, masih banyak model board yg lain yang mungkin microcontroller yg dipake juga beda. gw tampilin contoh yg umum aja :D


Berikutnya Arduino IDE, Hmmmmm. Secara umum, Arduino IDE ini dipake buat upload program yang udah kita tulis (istilah di arduino namanya Sketch atau sering dibilang listing program kalo d pemprograman biasanya dibilang skrip) program di upload ke board arduino dan bakalan dijalankan oleh si pemproses (MCU). Jadi gw bisa bilang kalo arduino ide itu tempat kita menuangkan ide program kita untuk microcontroller yang terintegrasi (arduino) atau tempat buat ngasi tau si microcontroller tentang apa yang harus dia lakukan nanti.
Gambar 1 bakalan ngasi liat sedikit tampilan tentang Arduino IDE, gw gak bahas detail didalamnya dipostingan kali ini cuman nanti bakal gw bahas di next post yang sekalian kita bereksperiment juga :D


Gambar 1 Tampilan Arduino IDE

Jadi dari arduino ide itu kita bisa melakukan kompilasi program kita guys, terus bisa upload program kita, terus ada serial terminalnya juga buat nge'cek komunikasi serialnya (kalo misalkan program kita memerlukan komunikasi ke perangkat lain). Nah kalo ngomongin bahasa pemprogramannya, bahasa arduino ini adalah turunan dari bahasa C/C++ makanya prosedur penulisannya didalamnya agak mirip-mirip dikit ama bahasa 'ortu'nya (C/C++).

Sekarang kita bakalan bahas Bootloader. "Apaan sih bootloader?" "emang bagian penting?" | Jelas sekali penting guys kalo ngomongin tentang arduino, dan ini musti diketahui! kalo seandainya gada bootloader, itu program yg kita tulis dari arduino IDE gak bakalan bisa dimengerti ama si microcontroller, dan dia gak bakal ngerti apa yg kita maksud walaupun kita tulis dengan tulisan dan prosedur penulisan yang udah sangat jelas dan benar, karena kita nulisnya pake bahasa arduino, jadi di mikrokontrolernya musti ada bootloader arduino juga buat jadi 'penterjemah'.
"Jadi bootloader itu apa?" secara umum pengertian bootloader sama kayak bootloader di komputer (pc). Itu sebuah program yang ditempatin di flash memory atau dengan kata lain bisa dibilang firmware, soalnya dia punya tempat sendiri di memory (ada partisinya sendiri gtu dalam memory) jadi sebenernya kalo microcontroller yang pake bootloader itu tu bikin space di memory jadi sedikit berkurang, karna yaa gtu ada tempat khusus yg disediain buat bootloadernya di memory. Salah satu kegunaan bootloader di arduino itu yaitu buat nerjemahin bahasa itu tadi, jadi kita 'ngomong' buat ngasi tau apa yg harus di kerjakan oleh microcontroller (istruksi/program) gak perlu pake bahasa asli dia, cukup dengan bahasa yang mendekati dengan bahasa kita seperti contohnya bahasa yg dipake di arduino ide. Bootloader arduino udah dibikin sedemikian rupa guys, jadi kita musti berterimakasih ama itu orang yg bikin bootloader karna udah membantu mempermudah kita buat nyampein program apa yg kita mau masukin ke microcontroller. :D
contoh sederhananya gini, jadi skenarionya kalo tanpa ada bootloader maka ;
  • kita tulis program dengan bahasa yang microcontroller pakai terus kita upload dan itu bakal jadi 'sistem operasi' di mikrokontrollernya.
sedangkan kalo kita pake bootloader jadi gini ;
  • masukkan bootloader, jadinya kan firmware tuh.. dia udah menjalankan program sebenernya, cuman program bootloader itu nanti bakal merujuk ke program yg kita upload lagi nantinya.. hehe agak rumit yaa pemahamannya :D
  • lalu kita tulis program dengan bahasa yang sesuai sama bootloadernya dan kemudian kita upload.. dan microcontroller bakal ngejalanin programnya yang bisa dibilang nantinya bakal jadi 'sistem operasinya' :D
Jadi gw rasa dari gambaran itu kalian udah bisa ngeliat lumaian jelas gimana dan apa itu bootloader, dan bahkan kalian bisa ngerti kesamaan definisinya pada umumnya ;)

Hhahahahaa
gw yang jelasin juga ampe rada pusing sendiri, so kalo kalian masih punya banyak pertanyaan atau kritik dan saran langsung aja komen yaa guys ^_^
thank you...

#Arduino #Arduino IDE #Bootloader #Arduino Board

Microcontroller (Introduction)

Okay di posting pertama kali ini gw bakal bahas tentang microcontroller, intinya gw harap setelah bahas ini kalian bakalan bisa jawab kalo ada pertanyaan semacam "apa sih microcontroller itu?", "gimana sih bentuknya?", "biasanya ada dimana?", "trus gimana prinsip kerjanya?". hmmmmm
Ya, bahasan yang cukup banyak dan singkat ya guys. tapi percaya dah, dari sini bakal banya hal menarik yang mungkin nantinya bisa jadi muncul suatu kreativitas yang unik :D hehe

Okay, pertama kita mulai dengan pertanyaan "apa itu microcontroller?". Hhmmmmmm simplenya gw bilang dia itu pemproses atau pengendali. microcontroller itu sebuah Integrated Circuit (IC) atau nama lainnya Micro Controller Unit (MCU) yang punya 'otak' sendiri buat memproses atau mengolah masukan menjadi keluaran yang diinginkan (Input-->MCU-->Output). Nah, buat kalian yang udah tau microprocessor pasti muncul pertanyaan kayak "terus bedanya sama microprocessor apa dong?" hmmmm kali ini gw gak bahas perbedaannya disini, cuman intinya microcontroller sama microprosessor itu punya spesifikasi yang berbeda, yaa walaupun kalo dilihat secara umum seolah sama. :D
Jadi kalo ngomongin MCU atau IC kalian musti tau bahwa didalamnya itu ada sebuah rangkaian yang rumit dengan ukuran fisik yang kecil :D nah gambar 1 dibawah ini contoh gambar MCU dari suatu produsen pembuat MCU.



Gambar 1. Atmega328P-PU

Gambar diatas merupakan salah satu contoh microcontroller yang dikeluarkan Atmel, biasanya itu microcontroller dipake di platform yg namanya Arduino. Cuman masalah arduinonya nanti di postingan berikutnya bakal gw bahas lagi yaa, disini cukup tau aja dulu :D hehee



Gambar 2. Board Arduino UNO R3 dengan microcontroller Atmega328P-PU

Okay sekarang kita ngomongin pengaplikasian microcontroller. Sebenernya salah satu udah gw kasi liat di gambar 2 itu salah satu pengaplikasiannya, cuman disitu masih belum bisa beroperasi, itu arduino biasanya dipake anak" riset buat bereksperimen. soalnya modelnya tinggal colok ke rangkaian trus di program arduinonya..
Nah buat yang udah pastinya yang sering kalian liat dan mungkin gak kalian sadari itu pengaplikasiannya contoh pada keyboar (yg biasa di komputer itu) terus di pointer (yg buat presentasi itu) terus di lampu lalulintas, kalkularor, terus di drum kit, di mouse, terus di alarm mobil, terus di pengaman rumah, dan pokoknya masih banyak lagi dah... | wah bisa itu peralatan brarti bisa dibikin sendiri dong? | jelas bisa, tapi gw bakal posting projectnya lain waktu ya guys :D

Nah sekarang kita bahas gimana prinsip kerjanya, cuman sebelumnya kita bahas dulu komponen penyusunnya. "Mikrokontroler disusun oleh beberapa komponen penyusun yaitu CPU ( Central Processing Unit ), ROM ( Read Only Memory ), RAM ( Random Access Memory ) dan I/O ( Input / Output ). Keempat komponen ini secara bersama-sama membentuk sistim komputer dasar. Namun beberapa mikrokontroler memiliki tambahan komponen-komponen yang lain seperti ADC ( Analog to Digital Converter ), Timer/Counter dll". Nah kalo ngomongin CPU brarti kan didalamnya ada transistor-transistor yang tersusun secara kompleks tuh, belum lagi ada ROM, RAM, dan sebagainya. Hmmmmm itulah luarbiasanya semua itu tersusun dalam 1 chip :o keren ya guys :D hahaa
So, yg kalian liat di gambar 1 itu udah punya fitur" kayak yang disebutin itu (ADC dan Timernya). cuman kalo ngomongin timernya emang keakuratannya sih gw rasa kurang kalo pake yg internal itu, soalnya kalo ngomongin 1 detik secara umum si atmega328 ini belum bener-bener bisa dikatakan beneran 1 detik hitungan dia.
Okay prinsip dasar kerjanya si microcontroller ini kayak yang udah gw sebutin sebelumnya (input-->prosess-->output) jadi si microcontroller ini yang biasanya dipake buat sistem otomatisasi pada intinya dia diprogram (contoh pembahasan pemprogramannya di postingan berikutnya) untuk 'ngebaca inputan' kemudian itu data inputan dia proses sesuai program yang kita mau lalu dia bakal ngeluarin hasil sesuai programnya. Jadi gambarannya gini, kita ngeprogram dia itu kayak ngajarin dia buat nglakuin sesuatu. Nah, masalah cara kita ngajarin itu gimana yaa sama pake bahasa juga biar dia paham maksud kita, nah bahasa dasarnya yaa bahasa mesin. Cuman sekarang banyak dikembangin bahasa mesin itu yang udah mendekati bahasa manusia, yaa kayak contohnya Arduino (microcontroller yg di arduino board itu pake bahasa yg namanya arduino) :D

Okay sampai sini kira-kira udah ada gambaran belum ama itu microcontroller? atau tambah bingung nih? :D hahaa
gpp kalo bingung langung aja tanyain, comment aja :D kali aja apa yg gw sampein juga banyak yg kurang jadi tar bisa gw tambahin.. Kritik dan saran dari kalian sangan gw butuhin :)
yeah, baca terus updatenya, next post kita bakal bahas arduino atau kalo ada yg rekuest buat cara make aplikasi simulasinya di komputer juga bisa dan nyobain beberapa eksperimen serta nyobain beberapa project yang menggunakan microkontroller bareng kalian semua ;)
thank's guys ^_^

#Microcontroller #Atmega328 ##Atmega328P-PU #Mikropengendali