Embedded System
Embedded System
Banyak yang belum mengenal ataupun mengetahui mengenai embedded system (sistem tertanam). Padahal hampir setiap hari kita menemukan bahkan menggunakan embedded system ini. Berbagai aplikasi elektronik, seperti jam digital, MP3 player, lampu lalu lintas, dan AC merupakan contoh alat-alat yang di dalamnya sudah ditanamkan embedded system. Embedded system tidak hanya dapat digunakan dalam dunia IT, tetapi dapat diimplemetasikan juga di dunia otomotif, atau bahkan kedokteran. Pada bab ini akan dijelaskan mengenai apa itu embedded dan penggunaan salah satu aplikasinya, yaitu system Arduino IDE.
A. Mengenal Embedded System
Embedded system merupakan sistem komputer yang didesain dan dibuat dengan tujuan dan fungsi tertentu secara spesifik. Embedded system terdiri atas perangkat keras dan perangkat lunak. Perangkat keras dalam embedded system meliputi mikroprosesor atau mikrokontroler dengan penambahan memori eksternal, I/O, dan komponen lainnya seperti sensor, keypad, LED, dan LCD. Adapun, perangkat lunak embedded berfungsi sebagai penggerak pada embedded system.
Sebagian besar perangkat lunak pada embedded system ini didukung oleh Real Time Operating System (RTOS). Real Time Operating System (RTOS) merupakan sistem operasi multitasking yang diperuntukkan dan dikhususkan untuk aplikasi real-time. Perangkat lunak embedded biasanya disebut firmware karena perangkat lunak tipe ini dapat dimuat ke ROM, EPROM atau Memory Flash. Sekali program dimasukkan ke dalam perangkat keras maka program tersebut tidak akan pernah berubah kecuali jika di program ulang.
Embedded system biasanya ditanamkan pada perangkat yang lebih besar yang didalamnya terdapat perangkat keras dan berbagai peralatan mekanik. Berbeda dengan komputer, embedded system dikhususkan untuk melakukan fungsi dan tugas yang spesifik. Saat ini sudah banyak teknologi yang telah ditanamkan embedded system ini contohnya pada kamera digital. Embedded system diimplementasikan pada kamera digital agar dapat melakukan fitur autofocus.
Dengan menggunakan embedded system, maka kita dapat mengontrol perangkat untuk melakukan suatu tugas yang spesifik. Dibandingkan dengan komputer/PC, embedded system lebih cepat dalam waktu proses pada sistemnya. Hal tersebut terjadi karena embedded system dibangun menggunakan bahasa pemrograman yang lebih dekat/ dikenali oleh perangkat keras. Bahasa pemrograman yang digunakan untuk mengembangkan embedded system ini di antaranya bahasa pemrograman ADA, Java, System, C, dan VHDL.
Untuk mengetahui perbedaan embedded system dengansistem lain, berikut merupakan ciri-ciri dari embedded system.
1. Mempunyai computing power (dilengkapi dengan sebuahprocessor).
2. Bekerja di lingkungan luar ruangan IT (tidak dilengkapi dengan AC dan mendapatkan gangguan seperti getaran dan debu).
3. Memiliki tugas yang spesifik.
Pemakaian embedded system dalam kehidupan sehari-hari dapat ditemukan pada aplikasi-aplikasi berikut.
1. Automatic Teller Machine (ATM)
2. Peralatan jaringan komputer, termasuk Router, Timeserver dan Firewall
3. Printer komputer
4. Mesin fotokopi
5. Telepon genggam.
6. Penyimpanan Hard Disk
7. Engine Controllers dan Antilock Brake Controller pada mobil
8. Pengontrolan pabrik
9. Komputer transaksi di jalan tol
10. Peralatan Smart Electronic yang terpasang di dalam mobil Sistem kerja dari embedded system adalah sebagai berikut.
1. Input analog/digital yang dilakukan oleh pengguna. Contohnya adalah melalui saklar tombol, keypad, sensor, dan layar sentuh.
2. Memproses input yang telah diberikan. Pemrosesan dapat berupa perhitungan atau konversi. Misalnya, ADC (pengonversi analog ke digital) mengubah input analog sensor ke output digital.
3. Memberikan hasilnya melalui perangkat output.
Contohnya adalah motor, LCD, dan layar sentuh
1. Kategori Embedded System
Embedded system dapat diklasifikasikan berdasarkan fungsi dan kinerjanya, yaitu sebagai berikut.
a. Embedded system stand alone (berdiri sendiri)
Embedded system stand alone merupakan embedded system yang dapat bekerja sendiri. Embedded system ini dapat menerima input digital atau analog, melakukan kalibrasi, konversi, pemrosesan data, serta
menghasilkan output data misalnyamelalui tampilan LCD. Contoh alat dengan embedded system yang dapat berdiri sendiri adalah konsol video game, MP3 player, dan kamera digital.
b. Embedded system real-time Sistem yang dapat dikatakan embedded system real-time adalah jika memiliki waktu respon yang cepat. Beberapa tugas tertentu harus dilakukan dalam periode waktu yang spesifik sehingga waktu respon ini merupakan hal yang sangat penting. Terdapat 2 jenis dalam embedded system real time ini, yaitu sebagai berikut.
1) Embedded system hard real-time
Hal yang perlu diperhatikan dalam embedded system hard real- time adalah jika pengerjaan operasinya melebihi waktu yang ditentukan, maka dapat menyebabkan terjadinya kegagalan yang fatal dan kerusakan pada alat. Batas waktu respon sistem ini yaitu dalam millisecond atau bahkan bisa lebih singkat lagi. Contohnya adalah pada embedded system kontrol rudal (peluru kendali). Jika penyelesaian operasinya tidak sesuai waktu, maka dapat menyebabkan bencana. Contohlain implementasi embedded system hard real-time adalah pada sistem kontrol kantong udara pada mobil. Jika penyelesaian operasi pada sistem ini tidak sesuai, maka dapat mengancam keselamatan pengendara mobil karena kecelakaan dapat terjadi dalam waktu yang sangat singkat. Embedded system harus dapat bekerja dengan batas waktu yang sangat tepat. Oleh karena itu, pemilihan chip dan RTOS sangatlah penting pada embedded system hard real-time ini.
2) Embedded system soft real-time Pada beberapa embedded system, keterlambatan waktu dapat ditoleransi pada batas tertentu. Embedded system tersebut termasuk ke dalam kategori embedded system soft real time. Pelanggaran batas waktu tersebut dapat menyebabkan kinerja sistem menurun, namun masih tetap dapat beroperasi. Contoh alat pada embedded system kategori ini adalah microwave dan mesin cuci. Walaupun ada batas waktu untuk setiap operasinya, namun keterlambatan yang dapat ditoleransi adalah dalam hitungan detik, bukan millisecond.
c. Networked embedded systems respon
Networked embedded system digunakan untuk menghubungkan jaringan ke sumber akses. Jaringan yang dihubungkan dapat melalui jaringan Local Area Network (LAN), Wide Area Network (WAN) atau internet. Media transmisinya dapat menggunakan kabel atau nirkabel. Contoh dari LAN networked embedded system adalah pada sistem pengamanan rumah di mana Semua sensor (misalnya pendeteksi gerak, sensor tekanan, ensor cahaya, dan sensor asap) terhubung melalui kabel dan ijalankan dengan protokol TCP/IP. Sistem pengamanan umah dapat diintegrasikan dengan tambahan jaringan amera yang dijalankan dengan protokol HTTP. Subsistem ari embedded system jaringan ini dapat bekerja dengan real-time aupun non real-time. Pada sistem real-time, embedded system pat berdiri sendiri ataupun terhubung dengan jaringan.
2. Aspek-Aspek Penting dalam Embedded System
Berikut ini merupakan aspek-aspek penting yang membedakan embedded system dengan sistem lain, di antaranya adalah sebagai berikut.
a. Biaya
Komponen yang optimal memungkinkan untuk implementasi sistem dengan biaya yang serendah rendahnya. Hal ini disebabkan karena perbedaan harga sedikit saja dapat sangat berpengaruh pada embedded system ketika dipasarkan secara luas dalam jumlah yang besar.
b. Batasan waktu
Pada umumnya embedded system merupakan real-time system. Real-time system yaitu sistem yang prosesnya terbatasi oleh batas waktu (time limit). Sistem-sistem ini umumnya merupakan sistem yang digunakan untuk keperluan yang kritikal dan harus selalu aktif. Embedded system harus dapat menangani masalah jika suatu saat real-time system mengalami serangan Denial of Service (DoS) yang membuatnya menjadi lambat sehingga batas waktunya tidak lagi terpenuhi.
c. Interaksi langsung dengan dunia nyata Embedded system control application pada umumnya berhubungan langsung dengan dunia nyata. Oleh karena itu, jika terjadi kesalahan atau kerusakan pada embedded system ini akan ber- dampak lebih besar dibandingkan dengan sistem komputer biasa.
d. Batasan energi
Banyak embedded system yang mengambil daya dan energinya dari baterai. Maka, serangan atau gangguan pun dapat terjadi pada embedded system melalui power supply.
e.Elektronika
Karena embedded system merupakan sistem yang sangat erat kaitannya dengan elektronika, maka serangan-serangan atau gangguan juga mungkin didapatkan secara elektrik. Misalnya analisis dengan multimeter dan logic analyzer. Walaupun sistem komputer lain pada dasarnya juga merupakan alat elektronik, tetapi kemungkinan serangan dan gangguan pada embedded system bisa lebih besar terjadi.
B. Mikrokontroler
Mikrokontroler adalah sebuah komputer kecil dalam satu sirkuit yang berisi inti prosesor, memori, dan input/output. Mikrokontroler tidak ditanamkan dalam komputer, karena mikrokontroler ini tidak didesain untuk melakukan pekerjaan-pekerjaan rumit. Mikrokontroler didesain khusus individ untuk embedded system.Mikrokontroler ini berukuran lebih kecil karena menyesuaikan dengan embedded system yang tidak membutuhkan kapasitas dan address bus yang terlalu besar. Mikrokontroler juga banyak dipasang ke barang-barang eletronik karena harganya yang terjangkau.
.Arduino adalah papan rangkaian elektronik yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino dikembangkan oleh Mazimo Banzi dan rekan- rekannya dengan tujuan untuk memudahkan dalam mengakses teknologi elektronika khusunya mikrokontroler.
Arduino diharapkan menjadi alat yang memudahkan paraindividu kreatif untuk merealisasikan ide yang ada tanpa harus terhalangi oleh beban teknis. Beberapa fitur yang dimilliki oleh Arduino adalah sebagai berikut.
1. Multiplatform environment. Arduino IDE (Integrated Environment Development) dapat berjalan pada berbagai macam sistem operasi (Windows, Linux, dan Macintosh).
2. Software Arduino IDE memiliki tampilan dan fungsi yangbersifat intuitif dan mudah digunakan.
3. Open source baik pada perangkat keras maupun perangkat lunak.
4. Investasi yang lebih murah (dilihat dari segi biaya dan waktu pengembangan).
5. Sumber informasi dapat dicari dimana pun karena
banyak forum dan artikel yang telah membahas mengenaipenggunaan Arduino.
6. Arduino cocok digunakan untuk pemula yang ingin memasuki dunia mikrokontroler.
1. Hardware Arduino
Hardware Arduino dibagi menjadi dua bagian, yaitu modul Arduino dan modul shield. Modul Arduino merupakan modul mikrokontroler yang digunakan sebagai pengendali. Adapun modul shield merupakan modul tambahan (add- on) yang fungsinya bermacam-macam seperti sensor, motor driver, LED display, LCD, GPS, dan ethernet.
Kelebihan dari Arduino terletak pada konsep shield. Jika pada umumnya koneksi antara modul mikrokontroler dengan modul sensor dilakukan menggunakan kabel, maka pada Arduino ini koneksi dapat dilakukan hanya dengan memasang modul shield di atas modul Aduino. Hal tersebut membuat Arduino menjadi lebih praktis.
a.Modul Arduino
Arduino merupakan gabungan dari perangkat keras dan perangkat lunak yang sifatnya open-source. Arduino membebaskan semua kalangan untuk memodifikasi rancangan perangkat keras maupun perangkat lunaknya dengan beberapa ketentuan. Hal itu yang menyebabkan
Lahirnya produk produk Arduino compatible.
b. Modul Shield
Modul shield merupakan modul tambahan dalam Arduino untuk memudahkan proses penggunaan Arduino. Fungsi setiap modul shield beragam sesuai dengan keperluan.
2. Arduino IDE
IDE (Integrated Development Environment) merupakan lingkungan terintegrasi yang digunakan untuk melakukan pengembangan program. Disebut sebagai lingkungan karena melalui aplikasi ini Arduino dapat menjalankan suatu program untuk melakukan fungsi-fungsi yang ditanamkan melalui sintaks pemrograman. Arduino menggunakan bahasa pemrograman sendiri yang menyerupai bahasa C. Bahasa pemrograman Arduino (sketch) telah mengalami perubahan
Arduino IDE dilengkapi dengan library C/C++ yang biasa disebut wiring. Wining ini dapat membuat operasi input dan output menjadi lebih mudah. Arduino IDE merupakan pengembangan dari software processing yang akhirnya diubah menjadi Arduino IDE khusus untuk pemrograman dengan Arduino. Terdapat tiga bagian utama dari Arduino IDE, di antaranya adalah sebagai berikut.
1. Editor
Antarmuka yang digunakan pengguna
mengetikkan kode program.
2. Compiler
Bagian yang akan mengubah kode program yang dituliskan oleh user menjadi instruksi mesin yang dimengerti oleh mikrokontroler pada modul Arduino.
3. Uploader
Digunakan untuk melakukan proses mengunggah program dari aplikasi Arduino IDE ke modul Arduino.
a. Tombol dan Fungsi pada Aplikasi Arduino IDE
Terdapat beberapa toolbar pada Arduino IDE dengan fungsi- fungsinya masing-masing. Berikut merupakan deskripsi dari tombol-tombol yang ada pada toolbar Arduino IDE beserta fungsinya.
b. Struktur Dasar Pemrograman Arduino
Bahasa pemrograman yang digunakan pada aplikasi Arduino IDE adalah bahasa pemrograman C/C++. Jadi sebaiknya kamu sudah mengetahui dan mengenal dasar-dasar menulis pemrograman dalam bahasa C/C++.
Struktur dasar penulisan kode pada aplikasi Arduino IDE ini adalah sebagai berikut.
void setup() (
// simpan kode disini
// kode program yang ada di dalam fungsi ini hanya akan..
// .. dieksekusi satu kali
void loop() (
// simpan kode disini berjalan secara.. /!.. terus menerus berulang kali
// kode yang ada di dalam fungsi ini akan
1) Setup0
Setup0 hanya akan dijalankan satu kali saja, yaitu pada. saat program dijalankan. Fungsi ini digunakan untuk mendeklarasikan nilai variabel, deklarasi library, dan kode-kode lain yang hanya dijalankan satu kali.
2) Loop0
Loop0 akan berjalan berulang-kali dan terus menerus sampai program Arduino dimatikan.
a) Function
Function (fungsi) adalah blok program yang mempunyai nama dan pernyataan yang akan dieksekusi ketika function tersebut dipanggil. Fungsi setup() dan loop0) telah dibahas sebelumnya.
Cara penulisan dalam pendeklarasian function sebagai berikut.
type functionName (parameters)
// Statement;
Pada contoh tersebut diketahui blok program tersebut miliki nilai balik int (integer). Jika tidak menghendaki adanya nilai balik maka tipe function tersebut harus diganti menjadi void.
b) Curly brace "{}" me
Curly brace digunakan untuk mendefinisikan awal dan akhir dari sebuah blok fungsi. Jika programmer lupa memberi curly brace tutup, maka ketika di compile akan ada pemberitahuan error.
c) Semicolon ";"
Semicolon harus diberikan pada setiap pernyataan program yang dibuat. Semicolon ini merupakan pembatas dari setiap pernyataan program yang dibuat.
d) Block comment "/*...*/"
Block comment berfungsi menyimpan komentar. Block comment ini biasanya digunakan jika komentar yang ditambah memakai banyak baris. Block comment ini harus selalu ditutup agar tidak ikut tereksekusi dan tidak akan di compile sehingga tidak mempengaruhi program yang dibuat.
e) Line comment "//"
Fungsi dari line comment sama dengan block comment. Perbedaannya adalah line comment ini digunakan jika komentar yang ditambahkan hanya dalam satu baris saja.
f) Variabel
Variabel digunakan untuk menyimpan nilai yang dibutuhkan dalam program. Dalam mendeklarasikan variabel harus dituliskan tipe variabel serta nilai awal variabel Variabel dapat diubah sesuai dengan kebutuhan.
g) Tipe Data
Dalam setiap variabel memiliki tipe data yang akan digunakan oleh compiler untuk mengetahui jenis data yang disimpan.