Setelah beberapa lama menggunakan Arduino, kadang-kadang terfikir bagaimana Arduino IDE Software berfungsi ?
Namun bagi yang beginners, tidak rugi jika anda dapat fahami apa yang terjadi dalam Software Arduino IDE diperingkat awal.
Nota : Artikel-artikel di MatGyver.my telah disesuaikan dan dipermudahkan pemahaman untuk golongan-golongan beginners sehingga intermediate yang hanya memerlukan pemahaman ditahap permukaan sahaja. Namun, comment-comment dari pihak-pihak yang sudah advance adalah amat kami alu-alukan bagi proses penambah-baikan artikel-artikel kami.
ASAS MEMPROGRAM MICROCONTROLLER
AVR-GCC adalah bahasa coding asas bagi memprogram kebanyakan Microcontroller terutamanya dari ATMEL. Hampir semua Arduino board menggunakan ATMEL sebagai chip Microcontroller. Arduino UNO sebagai contoh, menggunakan chip ATMEL ATMega328P yang mengandungi 32kB Flash Memory (storage simpanan coding), internal clock frequency 16Mhz dan merupakan 8 bit procesor.
(Nota: AVR bermaksud Advance Virtual RISC)


Microcontroller hanya memahami coding digital binary 101011. Designer Microcontroller (MCU) telah meng-kompak-kan lagi bahasa binary ke dalam bentuk HEX atau bahasa ASCII. Contoh coding HEX adalah seperti 0X7E, 0A6EF8 dan sebagainya. HEX apabila diterjemahkan, akan mengandungi coding-coding binary 100110.
Bahasa HEX atau ASCII juga dikenali dengan nama lainnya, Intel HEX file. Intel HEX, HEX atau ASCII juga dikenali dengan nama lain Machine Code.
PROSES DARI IDE KE MICROCONTROLLER (MCU)
Arduino IDE Software, telah dicipta bagi mempermudahkan golongan-golongan yang tiada latar belakang Electrical Engineering untuk memprogram MCU. Arduino IDE menggunakan asas coding C/C++ yang lebih mudah difahami bagi menulis struktur-struktur code arahan bagi Arduino MCU.

COMPILER
Apabila butang ‘Upload’ atau ‘Compile’ ditekan dalam Arduino IDE, Internal Compiler dalam IDE akan meringkaskan coding C++ kepada bentuk C dalam format AVR-GCC. Format AVR-GCC adalah format programming C untuk kebanyakan Microcontroller dari ATMEL.
Dalam masa yang sama, Compiler juga akan ‘link’-kan coding C/C++ tadi kepada library AVR-GCC yang sedia ada dalam Arduino IDE.
Ya, Arduino IDE mengandungi beratus-ratus coding library AVR-GCC untuk setiap fungsi Microcontroller. Berbanding dengan memprogram setiap fungsi dari basic, akan mengambil terlalu banyak masa dan tenaga.
Sebagai contoh, untuk menetapkan suatu pin pada Arduino sebagai Input atau Output, kita perlu menulis coding asas AVR-GCC yang perlu menetapkan beberapa faktor seperti kelajuan clock, data register dan sebagainya. Tetapi, library yang ada di dalam Arduino IDE telah ada hampir kesemua codings asas AVR-GCC tadi. Tugas compiler, hanya link-kan fungsi yang dipanggil dalam code C++ dan membawa masuk library yang diperlukan.
Inilah antara kelebihan utama Arduino dan Arduino IDE berbanding Microcontroller lain dalam pasaran.
AVRDude
AVRDude adalah software-tool di dalam Arduino IDE yang akan meng-upload-kan coding akhir HEX ke dalam Arduino.
USB-Serial TTL Converter

Disebabkan protocol USB adalah berlainan dengan protocol komunikasi Serial diperingkat chip/hardware, Arduino Board mempunyai USB-Serial TTL chip untuk menterjemahkan protocol tersebut supaya dapat dihadam oleh Microcontroller ATMega328P tadi. Namun, secara asasnya, komunikasi serial tetap menggunakan data binary cuma dalam bentuk protocol voltage yang berlainan.
Kebanyakan Arduino board lama menggunakan chip FTDI untuk tujuan ini. Kemudian, ia telah di-upgrade dengan menggunakan Microcontroller kecil ATMega8U2 yang telah diprogramkan untuk berfungsi seperti chip FTDI.
Board-board baru telah mula menggunakan chip ATMega16U2 dan ada sesetengah replica Arduino yang menggunakan chip CH340 untuk tujuan yang sama.
TAMBAHAN INFO : BOOTLOADER
Bootloader adalah satu Program Asas yang akan paling awal bertindak apabila MCU di-On-kan. Bootloader bertindak hanya pada startup dalam hanya beberapa millisecond sahaja.
Ketika Start-Up Microcontroller (di-ON-kan), coding asas yang dipanggil Bootloader, akan menanti selama beberapa detik untuk sebarang coding baru yang dimasukkan melalui Serial Connection (USB). Jika tiada coding baru dimasukkan, Bootloader akan mengarahkan MCU untuk menggunakan coding sedia-ada.
Bootloader adalah satu program asas yang telah di-‘burn’ dalam Flash Memory MCU ATMega328P pada Arduino. Bootloader ini hanya mengambil ruang hampir 0.5kb daripada keseluruhan 32kb flash memory space.
MELANGKAH LEBIH ADVANCE
Untuk mengkaji dengan lebih mendalam, beberapa artikel yang kami cadangkan seperti berikut:
Assalamualaikum
Saya student network, ermmm tatau mcm mana nak start hidupkan arduino uno tu .
Projek kami adalah guna system touch and go, gunakan ardiuno ntuk rfid , LCD n wifi shield.
Laundry electronic payments system.
Pergi dobi tak payah bawa duit just bawa kad y dah ada topup , scope kami adalah kamsis sahaja .
LikeLike
Waalaikummusalam Cikpuan Mazlina. Terima kasih kerana meninggalkan komen.
Beberapa student lain pernah menghubungi saya sebelum ini, saya lihat semua menghadapi masalah yang sama, iaitu mahu membuat projek fyp tetapi tidak pernah menggunakan Arduino.
Arduino bukanlah benda yang boleh dipelajari dalam sehari dua untuk terus mahir membuat apa-apa projek yang kita mahukan. Terdapat beratus-ratus dan pelbagai-bagai fungsi dalam Arduino yang harus digabungkan untuk menghasilkan sesuatu projek.
Memang anda boleh copy dan paste dan tiru apa yang orang lain post dalam youtube dan blog mereka, tetapi, saya pasti, sebaik anda menghadapai masalah, anda pasti akan blur, dan tidak pasti mahu bertanyakan pada siapa.
Pada pandangan saya, tidak kira jika kita buat projek sendiri mahupun projek universiti, adalah lebih baik kita buat projek sehabis baik.
Bermakna, jika kita mahu gunakan Arduino, pelajari dulu asas-asas Arduino melalui kit pembelajaran. Kit pembelajaran boleh didapati di mana-mana, kami sendiri juga ada kit kami di Webstore kami, dan tutorial untuk kit tersebut ada di dalam blog ini.
Jangan anggap membeli kit itu membazirkan duit, kerana saya yakin, ilmu Arduino ini pasti akan diperlukan dan digunakan suatu hari nanti selain hobby.
LikeLike
Jika cikpuan sudah mempunyai Arduino dan tidak tahu cara menghidupkan Arduino buat pertama kali, cikpuan boleh ikuti link artikel kami berikut ini:
https://matgyver.my/2017/02/04/langkah-pertama-dengan-arduino-arduino/
LikeLike