Model prototyping system pengendali jarak jauh dengan embedded system arduino berbasis webserver HTTP 1.1 - USD Repository
MODEL PROTOTYPING SYSTEM PENGENDALI JARAK
JAUH DENGAN EMBEDDED SYSTEM ARDUINO BERBASIS
WEBSERVER HTTP 1.1
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Oleh :
Fendi Dwi Fauzi
075314067
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2012
PROTOTYPE MODEL REMOTE CONTROL SYSTEM WITH
ARDUINO EMBEDDED SYSTEM BASE ON
WEBSERVER HTTP 1.1
A THESIS
Presented as Partial Fulfillment of The Requirements
to Obtain The Sarjana Komputer Degree
in Informatics Engineering Study Program
By :
Fendi Dwi Fauzi
075314067
INFORMATICS ENGINEERING STUDY PROGRAM
INFORMATICS ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2012
ABSTRAK
Arduino merupakan board mikrokontroler yang bersifat opensource.
Penggunaan arduino jauh berkembang pesat digunakan berbagai macam proyek
teknologi komputer dan elektronika, misalnya server yang dibangun berbasis
embedded system arduino. Server yang dibangun dengan board mikrokontroler
arduino berfungsi sebagai system pengendali jarak jauh. Ethernet shield
wiznet5100 ditambahkan pada arduino sebagai shield agar arduino dapat bekerja
dalam jaringan komputer.Pada proyek tugas akhir ini, dirancang sebuah webserver berbasis arduino
yang berfungsi sebagai prototype system pengendali jarak jauh. Prototipe system
dikembangkan bertujuan melakukan proses mengolah I/O pada arduino. Input
webserver dirancang pada halaman HTML disisi web browser sebagai kontrol
perintah dari user. Webserver akan memberikan respon terhadap perintah kontrol
user. Pengujian dilakukan dengan teknik tapping pada jaringan untuk
menganalisis pertukaran protocol data yang terjadi.Kata kunci: arduino, webserver arduino, ethernet shield wiznet5100, prototype system pengendali jarak jauh, webduino
ABSTRACT
Arduino is a opensource microcontroller board. Arduino rapidly growing used to a variety of computer technology and electronics projects, for an example server base from Arduino embedded systems. Server based from an Arduino microcontroller board is able to function as a remote control system. Ethernet shield wiznet5100 added for Arduino as a shield to running in computer networking.
In this final project, designed a server based on Arduino that serves as a prototype remote-control system. The prototype system was developed aiming to do the processing I/O on the Arduino. Input process of websever design in client side with HTML page. Furthermore, the webserver will provide a response to user control commands. Testing is by tapping technique on the network to analyze the data exchange protocol that occurred.
Keywords: arduino, arduino webserver, ethernet shield wiznet5100, remote-control system prototype, webduino
KATA PENGANTAR
Puji syukur kepada Tuhan Yang Maha Esa, atas segala rahmat dan anugerah yang telah diberikan, sehingga penulis dapat menyelesaikan Tugas Akhir “ Model
Prototyping System Pengendali Jarak Jauh Dengan Embedded System
” ini dengan baik. Dalam menyelesaikan
Arduino Berbasis Webserver HTTP 1.1
tugas akhir ini, penulis tidak lepas dari bantuan sejumlah pihak, oleh sebab itu penulis ingin mengucapkan terima kasih kepada:
1. Allah SWT dan Muhammad SAW , tempat dimana penulis memanjatkan doa untuk diberikan kemudahan dan hidayah dalam mengerjakan karya tulis ini.
2. Henricus Agung Hernawan, S.T., M.Kom., selaku dosen pembimbing I tugas akhir penulis.
3. Ir. Tjendro, M.Kom., selaku dosen pembimbing II tugas akhir penulis 4. Ibu dan Ayah yang telah memberi dukungan doa, materi, serta semangat.
Tanpa semua itu penulis tidak akan memperoleh kesempatan untuk menimba ilmu hingga jenjang perguruan tinggi dan akhirnya dapat menyelesaikan karya ilmiah ini.
5. Elisa Oktaviani yang telah banyak memberikan semangat dan doa untuk penulis.
6. Untuk pihak-pihak yang tidak dapat penulis sebutkan satu per satu. Penulis mengucapkan terima kasih atas bantuannya sehingga penulis dapat menyelesaikan karya ilmiah ini Akhir kata, penulis berharap karya ilmiah ini dapat bermanfaat bagi kemajuan dan perkembangan ilmu pengetahuan.
Yogyakarta, 23 Juli 2012 Penulis
MOTTO “
” (Fendi Dwi Fauzi)
DAFTAR ISI
Halaman LEMBAR JUDUL .......................................................................................... i HALAMAN PERSETUJUAN PEMBIMBING ............................................. iii HALAMAN PENGESAHAN......................................................................... iv PERNYATAAN KEASLIAN HASIL KARYA............................................. v PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ...................................................................... vi ABSTRAK ...................................................................................................... vii ABSTRACT .................................................................................................... viii KATA PENGANTAR .................................................................................... ix MOTTO .......................................................................................................... x DAFTAR ISI ................................................................................................... xi DAFTAR GAMBAR ...................................................................................... xvi DAFTAR TABEL ........................................................................................... xviii
BAB I. PENDAHULUAN I.1. Latar Belakang ....................................................................................
1 I.2. Rumusan Masalah ...............................................................................
2 I.3. Batasan Masalah .................................................................................
2
xi
I.4. Tujuan Penulisan ..............................................................................
3 I.5. Metodelogi Penelitian .........................................................................
3 I.6. Sistematika Penulisan .........................................................................
4 BAB II LANDASAN TEORI II.1 Embedded System Arduino ...............................................................
6 II.1.1 Arduino .........................................................................................
6 II.1.2 Sejarah .............................................................................................
7 II.1.3 Hardware ........................................................................................
8 II.1.3.1 ATmega Pin Mapping ..................................................................
9 II.1.3.2 Bentuk Board Arduino .................................................................
11 II.1.3.3 Bootloader ....................................................................................
14 II.1.4 Model Board Arduino .....................................................................
16 II.1.5 Software Arduino IDE .....................................................................
18 II.1.6 Kelebihan Arduino Sebagai Opensource Hardware .......................
20 II.2 Shield Arduino ...................................................................................
22 II.3 Input/Output .......................................................................................
24 II.3.1 Sensor ..............................................................................................
26 II.3.2. Switch .............................................................................................
26 II.4 PWM .................................................................................................
27 II.5 Protokol HTTP ...................................................................................
28
xii
II.5.1 Non-Persistent dan Persistent Connections ....................................
30 II.5.1.1 Non-Persistent Connections ........................................................
31 II.5.1.2 Persistent Connections ................................................................
34 II.5.2 HTTP Message Format ..................................................................
35 II.5.2.1 HTTP Request Message ..............................................................
35 II.5.2.2 HTTP Response Message ............................................................
39 II.6 Software Analisa Protocol Jaringan ..................................................
41 BAB III ANALISIS DAN PERANCANGAN III.1 Deskripsi Pemodelan Input/Output Webserver Arduino .................
43 III.2 Skenario Perancangan ......................................................................
44 III.2.1 Skenario Perancangan Input Digital - Output Analog (ON/OFF LED) ................................................................................................................... 44
III.2.2 Skenario Perancangan Input Digital - Output Analog (Dimmer Lampu) ................................................................................................................... 46 III.4 Model Perilaku Sistem ......................................................................
47 III.4.1 Skenario Perancangan ....................................................................
47 III.5 Desain Antarmuka............................................................................
50 III.5.1 Antarmuka halaman HTML ...........................................................
50 III.5.1.1 Antarmuka HTML SPJJ-001 ......................................................
51 III.5.1.2 Antarmuka HTML SPJJ-002 ......................................................
51 III.5.2 Antarmuka Arduino Webserver .....................................................
52
xiii
xiv
III.5.2.1 Daftar Alat dan bahan .................................................................52 III.6 Skenario Uji webserver dengan teknik tapping ................................
53 BAB IV IMPLEMENTASI DAN ANALISIS PERANCANGAN IV.1 Implementasi Pemodelan Input/Output Webserver Arduino...........
55 IV.1.1 Implementasi .................................................................................
56 IV.2 Uji Webserver Dengan Teknik Tapping Menggunakan Software Sniffing ................................................................................................................... 65 IV.2.1 Analisis Use Case Use case SPPJJ-001 ........................................
65 IV.2.1.1 Proses I/O Arduino dengan State OFF input ............................
65 IV.2.1.2 Proses I/O Arduino dengan State ON input ...............................
66 IV.2.1.3 Handling ACK LDR Gagal........................................................
68 IV.2.2 Analisis Use Case Use case SPPJJ-002 ........................................
69 IV.2.2.1 Proses I/O Arduino dengan input Slider ..................................
69 IV.2.2.2 Tapping Protokol dengan software wireshark ...........................
72 BAB V. PENUTUP V.1 Simpulan ...........................................................................................
75 V.2 Saran ...................................................................................................
76 DAFTAR PUSTAKA ...................................................................................
77 LAMPIRAN
xv 1. Skema Prototipe Webserver Arduino SPJJ ...............................................
78 2. Coding ........................................................................................................
79 3. Gambar Lampiran Hasil Perangkat ............................................................
89 4. File Library Program ..................................................................................
93 Library Webserver.h .................................................................................
93 Library SPI.h ............................................................................................. 117 Library Ethernet.h ..................................................................................... 118 Library Protothread (pt.h) ......................................................................... 119 Library lc.h ................................................................................................ 126
xvi DAFTAR GAMBAR Gambar 2.1 Prototyping arduino generasi pertama oleh Massimo Banzi ....
33 Gambar 2.12 Mekanisme Response Time Modeling Non-Persistent ............
48 Gambar 3.5 Diagram sequence komunikasi data SPJJ-002 ...........................
47 Gambar 3.4 Diagram State komunikasi data SPJJ-001 ..................................
44 Gambar 3.3 Diagram sequence komunikasi data SPJJ-001 ...........................
42 Gambar 3.1 Skema Prototipe Sistem Pengendali Jarak Jauh .........................
40 Gambar 2.15 Software Wireshark ..................................................................
37 Gambar 2.14 Format header response HTTP message ...................................
34 Gambar 2.13 Format header request HTTP message ....................................
29 Gambar 2.11 Mekanisme 3-Way handshaking ............................................
7 Gambar 2.2 Mapping dari PIN ATmega 328 ..................................................
28 Gambar 2.10 Mekanisme Request – Reponse Web HTTP .............................
27 Gambar 2.9 Konsep PWM dalam arduino .....................................................
25 Gambar 2.8 Simbol switch ..............................................................................
19 Gambar 2.7 Perbandingan sinyal digital dengan analog .................................
18 Gambar 2.6 Software IDE arduino .................................................................
15 Gambar 2.5 Arduino dengan versi minimum system (BBB dan RBBB) .......
11 Gambar 2.4 Arsitektur logical arduino ...........................................................
9 Gambar 2.3 Arduino Board v1 (Diecimila) ....................................................
49
xvii Gambar 3.6 Diagram State komunikasi data SPJJ-002 ..................................
50 Gambar 3.6 Antarmuka HTML SPJJ-001......................................................
51 Gambar 3.7 Antarmuka HTML SPJJ-002......................................................
51 Gambar 3.8 Uji webserver dengan teknik tapping menggunakan software sniffing ...................................................................................................................
53 Gambar 4.1 Tampilan Input OFF radiobutton SPJJ-001 ...............................
65 Gambar 4.2 Tapping 3-way Handshake SPJJ-001 .........................................
66 Gambar 4.3 Tampilan Input ON radiobutton SPJJ-001 .................................
66 Gambar 4.4 Tapping POST SPJJ-001 dari user .............................................
67 Gambar 4.5 Tapping method GET SPJJ-001 .................................................
68 Gambar 4.6 Konfirmasi pesan ACK LDR gagal SPJJ-001 ...........................
69 Gambar 4.7 Tapping 3-way Handshake SPJJ-002 ........................................
72 Gambar 4.8 Tapping POST input slider SPJJ-002 ..........................................
73 Gambar 4.9 Tapping method GET SPJJ-002 .................................................
74
DAFTAR TABEL
Tabel 2.1 Perbandingan spesifikasi microcontroller ATmega 8 /168 /328 pada arduino board .................................................................................................8 Tabel 2.2 Deskripsi Mapping Pin ATmega 328 .............................................
10 Tabel 2.3 Model Board Arduino .....................................................................
16 Tabel 2.4 Method Request pada HTTP/1.0 dengan HTTP/1.1 ......................
38
xviii
BAB I PENDAHULUAN I.1 Latar belakang Mikrokontroler adalah suatu alat elektronika digital yang mempunyai
masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus
dengan cara khusus. Secara harfiahnya bisa disebut "pengendali kecil" dimana
sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-
komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan
akhirnya terpusat serta dikendalikan oleh sebuah chip mikrokontroler.Arduino merupakan mikrokontroler yang dirancang dalam single board
dengan hardware Atmel AVR sebagai prosessornya. Jenis mikrokontroller yang
digunakan dalam arduino adalah ATMega 8/168/328 dan ATMega 2560
memiliki fasilitas PWM, komunikasi serial, ADC - DAC, timer, interupt, SPI dan
I2C. Sehingga Arduino bisa digabungkan bersama modul atau alat lain dengan
protokol yang berbeda-beda. Selain itu arduino bersifat opensource dimana setiap
produsen diperbolehkan membuat board arduino serta mengembangkannya sesuai
kebutuhan spesifikasi elektronika di berbagai bidang. Bahasa pemrograman yang
digunakan arduino adalah menggunakan Bahasa C yang sudah ada, lebih tepatnya
adalah bahasa C yang menggunakan compiler AVR-GCC (AVR – GNU C-
Compiler).
1
2 Dewasa ini penggunaan arduino jauh berkembang pesat salah satu
contohnya adalah server yang dibangun dengan arduino. Contohnya adalah server
arduino bernama Tiny Webserver karena memiliki kelebihan seperti penggunaanresource yang digunakan relatif kecil baik dari segi daya, memory, kerumitan dan
efisiensi dibandingkan dengan server yang dibangun oleh computer (Predescu, 2010).Arduino dapat digunakan sebagai webserver dengan menambahkan
Ethernet shield Wiznet W5100. Ethernet Shield arduino telah mendukung
protocol TCP/UDP sehingga mampu menerima maupun mengirim data secara
jaringan client - server. Ethernet shield yang dikembangkan saat ini mampu
menangani thread koneksi sampai dengan empat socket secara simultan.
Webserver arduino yang dibangun dengan protocol HTTP 1.1 dapat digunakan
sebagai pengendali jarak jauh dan system otomatisasi. Sistem pengendali jarak
jauh merupakan system yang mampu mengendalikan perangkat yang diatur oleh
arduino melalui media kabel maupun nirkabel. Seperti contoh mengendalikan
perangkat TV, lampu, dan berbagai macam alat elektronik dikendalikan oleh
arduino. Sedangkan system otomatisasi yang dibangun oleh arduino dapat berupa
penggerak gerbang otomatis menggunakan perangkat wireless.Dari situs resmi www.arduino.cc , Arduino dengan Ethernet Shield
WIZNET 5100 menyediakan paket library Webduino. Library ini dapat digunakan
sebagai webserver yang mampu bekerja pada protocol HTTP 1.1. Dengan library
ini arduino dapat dikembangkan menjadi webserver untuk dijadikan model
prototype sebagai system pengendali jarak jauh memproses I/O analog dan digital.
3 I.2 Rumusan Masalah Dari melihat latar belakang masalah, maka dapat dirumuskan adalah
bagaimana model prototyping system pengendali jarak jauh webserver arduino
yang dibangun menggunakan protocol HTTP 1.1 dengan input/output analog dan
digital.I.3 Batasan Masalah Dari penulisan karya ilmiah ini penulis membatasi lingkup masalah pada
perancangan model prototype system pengendali jarak jauh webserver arduino
dengan protocol HTPP 1.1 dengan I/O berupa analog dan digital dengan koneksi
sejumlah single connection.I.4 Tujuan penulisan Tujuan penulisan skripsi ini dapat menghasilkan prototyping system
pengendali jarak jauh dengan webserver arduino yang dibangun dengan protocol
HTTP 1.1.
I.5 Manfaat Penulisan
Adapun manfaaat dari pembuatan tugas akhir ini adalah :
1. Manfaat Bagi penulis: Dapat bermanfaat sebagai penerapan ilmu ataupun pengalaman yang telah didapat baik di bangku kuliah maupun dikehidupan sehari-hari.
2. Manfaat secara teoritis:
4 Dapat dijadikan sebagai bahan pembelajaran dan acuan untuk pengembangan lebih lanjut webserver HTTP 1.1 menggunakan arduino dan Ethernet shield dengan chipset WIZNET 5100.
3. Manfaat secara praktis: Menghasilkan sebagai model prototyping system pengendali jarak jauh menggunakan webserver HTTP 1.1 yang dibangun oleh embedded system arduino beserta shield Ethernet dengan chipset WIZNET 5100.
I.6 Metodelogi Penulisan
Metode penelitian pada karya ilmiah ini adalah :
1. Studi pustaka mengenai literature arduino dan Ethernet shield dengan
memahami buku referensi atau sumber-sumber yang lain yang diperlukan.2. Analisis kebutuhan perancangan.
3. Mengimplementasikan analisis dan desain tersebut ke dalam system .
4. Analisa system yang dikembangkan dan menguji hasil simulasi perancangan.
I.7 Sistematika Penulisan
BAB I PENDAHULUAN Bab ini berisi tentang latar belakang masalah, rumusan masalah, batasan masalah,
tujuan penelitian, dan metodologi penelitian yang digunakan serta sistematika isi
penulisan laporan.5 BAB II LANDASAN TEORI
Bab ini menjelaskan konsep dan teori dasar yang mendukung penulisan skripsi ini. BAB III ANALISIS dan PERANCANGAN SISTEM Bab ini berisi pembahasan mengenai analisis kebutuhan, desain dan perancangan webserver arduino yang dibangun dengan protocol HTPP 1.1. BAB IV IMPLEMENTASI dan ANALISA HASIL Bab ini berisi implementasi dari hasil perancangan pada Bab III dan analisis terhadap hasil pengujian dari aplikasi yang telah dibangun. BAB V KESIMPULAN dan SARAN Bab ini berisi tentang kesimpulan dan saran dari penulisan skripsi yang disusun.
BAB I I LANDASAN TEORI II.1 Embedded System Arduino II.1.1 Arduino Arduino adalah Arduino adalah platform prototipe elektronik open-
source berada dibawah lisensi Creative Commons Attribution-ShareAlike 3.0,
berdasarkan perangkat keras dan lunak yang fleksibel dan mudah digunakan.
Lisensi Creative Commons Attribution-ShareAlike 3.0 merupakan lisensi
opensource yang memberikan jaminan kebebasan untuk mendistribusikan pada
pihak umum, mengubah dan membuat dokumentasi lengkap terhadap
pengembangan piranti board arduino.Arduino diperuntukkan bagi seniman, desainer, hobiis dan siapa pun
yang tertarik untuk membuat obyek atau lingkugan yang interaktif. Hardwarenya
memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman
sendiri. Arduino hardware di program menggunakan program Wiring-based
language (syntax + libraries), merupakan bahasa pemrograman C++ dengan
penyederhanaan serta modifikasi bahasa pemrogramannya sedangkan
implementasi code menggunakan software bebasis IDE.
6
7 II.1.2 Sejarah Proyek arduino ini berawal di Ivrea, Italia pada tahun 2005 berawal
kesulitan mempelajari microcontroller di lingkungan edukasi maka dibuatlah
system minimum ATmega8 dengan bootloader dan software compiler tersendiri.
Pendiri proyek ini adalah Massimo Banzi dan David Cuartilles bernama proyek
Arduin of Ivrea , karakter utama sejarah kota tersebut. "Arduino" adalah sebuah
kota di Italia, yang berarti "teman yang kuat". Versi bahasa Inggris dari nama
tersebut adalah "Hardwin". Sejalan perkembangannya Arduino sebagai hardware
yang opensource memiliki berbagai versi yang dikembangkan oleh pengguna di
seluruh dunia.Gambar 2.1 Prototyping arduino generasi pertama oleh Massimo Banzi8 II.1.3 Hardware Arduino menggunakan beberapa microcontroller seri ATmega8,
ATmega168, ATmega328, ATmega1280, ATmega2560 dan beberapa
microcontroller dari keluarga ATMEL yang compatible untuk arduino board.
Penggunaan dari subsitusi microcontroller ini tidak terlepas dari datasheet resmi 8
bit microcontroller 4/8/16/32K in-programming system yang dikeluarkan oleh
www.atmel.com sebagai produsen mikrochip.Berdasarkan datasheet yang dikelurkan ATMEL sebagai produsen
mikrontroller dari ATmega,arduino dikembangkan dan dibuat sesuai dengan
mapping fungsi dari setiap pin. Untuk saat ini teknologi board arduino
menggunakan microcontroller berbasis ATmega168 dan 328 dengan
perbandingan ukuran flash memorynya dan beberapa fitur lainnya.Dari datasheet 8 bit microcontroller 4/8/16/32K in-programming system,
Board Arduino menggunakan dapat microcontroller ATmega8 /168/328 sebagai
prossesor. Berikut ini merupakan tabel perbandingan spesifikasi dari
microcontroller ATmega8 /168/328.Tabel 2.1 Perbandingan spesifikasi microcontroller ATmega 8 /168 /328 pada arduino boardMicrocontroller ATmega 8 ATmega 168 ATmega 328 Operating Voltage
5V
5V
5V Input Voltage 7-12V 7-12V 7-12V (recommended) Input Voltage 6-20V 6-20V 6-20V (limits)
9 Digital I/O 14 pins (of which 3 provide PWM output) 14 pins (of which 6 provide PWM output) 14 pins (of which
6 provide PWM output) Analog Input Pins 6 pins 6 pins 6 pins DC Current per I/O Pin 40 mA 40 mA 40 mA DC Current for
3.3V Pin 50 mA 50 mA 50 mA Flash Memory
8 KB (1 kb used by bootloader)
16 KB (2 kb used by bootloader)
32 KB (2 kb used by bootloader) SRAM
1 KB
1 KB
2 KB EEPROM 512 bytes 512 bytes 1 bytes Clock Speed 16 mhz 16 mhz 16 mhz
II.1.3.1 ATmega Pin Mapping
Gambar 2.2 Mapping dari PIN ATmega 32810 Microcontroller ATmega 328 bertipe PDIP dan DIP yang digunakan
pada arduino memiliki mapping pin sebanyak 28 dengan setiap pin memiliki
fungsi masing – masing. Berikut ini table fungsi I/O setiap pin :VCC
15 OC1A/PCINT1 (port B) Digital pin 9 (PWM)
16 SS/OC1B/PCINT2 (port B) Digital pin 10 (PWM)
17 MOSI/OC2A/PCINT3 (port B) Digital pin 11 (PWM)
18 MISO/PCINT4 (port B) Digital pin 12
19 SCK/INT5 (port B) Digital pin 13
20 AVCC
21 AREF Analog reference
13 PCINT23/AIN1 (port D) Digital pin 7
22 GND GND
23 ADC0/PCINT8 (port C) Analog input 0
24 ADC1/PCINT9 (port C) Analog input 1
25 ADC2/PCINT10 (port C) Analog input 2
26 ADC3/PCINT11 (port C) Analog input 3
27 ADC4/SDA/PCINT12 (port C) Analog input 4
14 PCINT0/CLKO/ICP1 (port B) Digital pin 8
12 PCINT22/OC0A/AIN0 (port D) Digital Pin 6 (PWM)
Tabel 2.2 Deskripsi Mapping Pin ATmega 3286 PCINT20/XCK/T0 (port D) Digital pin 4
No Pin Nama Pin Fungsi pada Board Arduino
1 PCINT14/Reset Reset
2 PCINT16/RXD (port D) Digital pin 0 (RX)
3 PCTINT17TXD (port D) Digital pin 1 (TX)
4 PCINT18/INT0 (port D) Digital pin 2
5 PCINT19/OC2B/INT1 (port D) Digital pin 3 (PWM)
7 VCC
11 PCINT21/OC0B/T1 (port D) Digital pin 5 (PWM)
VCC
8 GND GND
9 PCINT6/XTAL1/TOSC1 (port
B) Crystal
10 PCNIT7/XTAL2/TOSC2 (port
B) Crystal
28 ADC5/SCL/PCINT13 (port C) Analog input 5
Gambar 2.3 Arduino Board v1 (Diecimila) Gambar diatas merupakan standard bentuk board arduino yang11 II.1.3.2 Bentuk Board Arduino
dikembangkan oleh tim arduino. Memiliki ukuran 68.6 mm × 53.3 mm atau
sekitar 2.7 x 2.1 inchi dengan bentuk bukan persegi yang unik.Detail nama dan fungsi pin :
- Analog Reference pin (orange)
- Digital Ground (light green)
- Digital Pins 2-13 (green)
- Digital Pins 0-1/Serial In/Out - TX/RX (dark green)
- Reset Button - S1 (dark blue)
12
- In-circuit Serial Programmer (blue-green)
- Analog In Pins 0-5 (light blue)
- Power - Ground Pins (power: orange, grounds: light orange)
- External Power Supply In (9-12VDC) - X1 (pink)
- Toggles External Power and USB Power (Jumper untuk external power) - SV1 (purple)
- USB – Koneksi ke PC Komputer untuk upload sketch dari software
arduino IDE (yellow)
- ICSP – jumper dengan 2x3 header sebagai alternative upload sketch ataupun burn bootloader dari usbdownloader
- IC – microcontroller ATmega 8/168/328
1. Digital Pins
Dalam beberapa fungsi yang spesifik, pin digital pada board arduino dapat
digunakan berbagai fungsi sebagai input maupun output dengan perintah
pinMode(), digitalRead(), digitalWrite. Setiap pin telah memiliki resistor internal
yang dapat diaktifkan dengan perintah digitalWrite() pada kondisi logika HIGH
ataupun LOW saat pin tersebut digunakan sebagai input. Untuk maximum arus
output setiap pin menghasilkan 40 mA- Serial: 0 (RX) and 1 (TX). Digunakan untuk mengidentifikasikan
receive (RX) dan transmit (TX) TTL serial data. Fungsi ini biasanya dapat dilihat dari nyala LED indicator ketika upload sketch program melalui USB.
13
- External Interrupts: 2 and 3. Pin ini dapat dikonfigurasi untuk memicu
perintah pada nilai yang rendah, naik atau turun, atau perubahan dalam nilai.
- PWM: 3, 5, 6, 9, 10, and 11. Dari beberapa output pin digital, 6
diantaranya dapat difungsikan sebagai PWM dengan perintah analogWrite(). Pada board arduino yang menggunakan microcontroller
ATmega8, PWM output keluarannya hanya dari pin 9, 10, dan 11.
- BT Reset: 7. (Arduino BT-only).
- SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini digunakan
mendukung komunikasi SPI,dimana sketch program dapat diupload langsung tanpa menggunakan software arduino (upload sketch melalui
ICSP menggunakan usb downloader).
- LED: 13. Led ini berfungsi sebagai indicator yang terhubung dengan pin 13.
2. Analog Pins
Analog pin dapat mendukung fungsi ADC hingga 10 bit dengan perintah
analogRead(). Beberapa dari input pin analog dapat juga digunakan sebagai digital
pin, contohnya dari analog input 0 sebagai pin digital input 14 sampai pada pin 5
sebagai digital pin 19.14
3. Power Pins
- VIN merupakan input voltage untuk board arduino, biasanya dapat langsung dihubungkan dengan input tegangan 9V.
- 5V. Pin 5V akan menghasilkan tegangan 5v untuk supply tegangan logic
microcontroller, selain itu supply 5v juga akan digunakan ketika menggunakan shield arduino yang ditumpuk diatasnya.
- 3V3. 3.3 volt supply generated untuk on-board FTDI chip (komunikasi USB – TTL).
- GND. Ground pin.
Other Pins
- AREF. Pin ini merefernsikan tegangan untuk input analog, fungsi nya dengan perintah analogReference().
- Reset.
II.1.3.3 Bootloader
Arduino dapat dikembangkan dari minimum system ATmega8/168/328
dengan mengisinya dengan bootloader. Tujuan adanya bootloader arduino
bermaksud memudahkan board arduino untuk berkomunikasi secara 2 level yakni
level atas adalah software Arduino IDE dan level bawah adalah sketch yang
menjadi main program yang berinteraksi langsung dengan device.15 Bootloader merupakan mekanisme logical yang menarik dari arduino.
Bootloader dapat menerjemahkan sketch atau code program yang dibuat didalam
software IDE yang nantinya akan diupload ke microcontroller itu sendiri.Gambar 2.4 Arsitektur logical arduino Bootloader hanya disimpan pada area tertentu di flash memory
microcontroller. Misalnya pada mikro ATmega328 mengalokasikan 2 kb untuk
bootloader. Pada saat microcontroller start, sistem menjalankan bootloader
kemudian bootloader sendiri akan mengeksekusi sketch code program (main
program) yang diterjemahkan oleh bootloader arduino.16 II.1.4 Model Board Arduino Arduino sebagai hardware yang opensource saat ini telah berkembang
pesat dan dipatenkan dengan beberapa nama. Awal perkembangannya arduino
dipatenkan dengan nama board arduino diecimila yang artinya 10.000 dalam
bahasa italia (pembuatan board sebanyak 10.000 untuk umum) dan kemudian
release resmi dengan nama ardiuno duemilanove pada tahun 2009. Dari beberapa
banyak jenis arduino yang dikenal pasaran, arduino tetap menggunakan prossesor
inti yaitu microcontroller ATmega168,328, 1280 dan 2560 sedangkan ATmega8
sudah tidak banyak dipakai lagi karena bootloader arduino memakai in-
programming sebesar 2 kb dari space memori microcontroller ATmega.1 Tabel 2.3 Model Board Arduino Tabel model board arduino diatas adalah keluaran resmi dari tim 1
pengembang arduino di Italia. Sedangkan pengembangan board arduino di dunia
http://en.wikipedia.org/wiki/Arduino17
telah banyak dengan nama paten tersendiri. Pengembangan board ini tidak
menyalahi hukum karena karena sifat arduino yang opensource hardware. Namun
untuk menghindari nama komersial dari arduino,maka pengembang yang
mendistribusikan arduino baik dari design tim arduino resmi di www.arduino.cc
atau design pengembang wajib menggunakan kata arduino ‘compatible’ atau ‘-
duino’ sebagai nama variannya. Sedangkan forum bebas yang mengembangkan
dan mendistribusikan ulang arduino berada di situs resmi www.freeduino.org .Model board arduino selain tersedia atau mendukung secara hardware
namun mampu mendukung secara software, khususnya untuk bootloader.
Bootloader digunakan untuk memudahkan komunikasi dengan software arduino
IDE. Model board ini dikenal dengan Bare Bones Board (BBB) dan Really Bare
Bones Board (RBBB) yang hanya menggunakan microcontroller sebagai inti dan
beberapa komponen yang dipakai sebagai minimum system. Implementasinya
dapat dirancang dan dibuat pada breadboard ataupun pcb dengan ukuran kecil,
kemudian bootloader dipasang didalam micro. Untuk upload sketch program yang
telah dicompile dari software IDE menggunakan USB downloader ataupun
dengan converter Serial maupun USB.18 Gambar 2.5 Arduino dengan versi minimum system (BBB dan RBBB)
II.1.5 Software Arduino IDE
Software arduino IDE adalah software aplikasi cross-platform ditulis
dengan bahasa pemrograman java, dan berasal dari IDE untuk bahasa
pemrograman pengolahan wiring project. Hal ini dirancang untuk memudahkan
para pengguna yang baru mempelajari microcontroller dengan software
development. Termasuk didalam software dengan kode editor dengan fitur seperti
sintaks, brace pencocokan, dan indentasi otomatis, dan juga mampu meng-
compile dan meng-upload program dengan sekali perintah klik tombol.IDE Arduino dilengkapi dengan library C / C++ membuat operasi input
/ output jauh lebih mudah dipahami. Pengguna hanya perlu mendefinisikan dua
fungsi untuk membuat sebuah program runnable ketika dieksekusi dalam board
arduino :19
* Setup() - fungsi berjalan sekali pada awal dari sebuah program yang dapat
menginisialisasi pengaturan.* Loop() - fungsi yang dieksekusi berulang kali sampai board dalam
keadaan mati.
IDE, code ini untuk membuat LED pin 13 berada dalam kondisi ON-OFF(blink)
selama selang waktu beberapa detik.#define LED_PIN 13 void setup () { pinMode (LED_PIN, OUTPUT); // enable pin 13 for digital output } void loop () {
20 digitalWrite (LED_PIN, HIGH); // turn on the LED delay (1000); // wait one second (1000 milliseconds) digitalWrite (LED_PIN, LOW); // turn off the LED delay (1000); // wait one second } Fungsi I/O Pin arduino Digital I/O
- pinMode() : konfigurasi pin arduino yang berfungsi sebagai input/output
• digitalWrite() : output nilai HIGH (5v) atau LOW(0v) dari konfirgurasi
pin output.- digitalRead() : membaca nilai dari pin arduino, seperti nilai logika HIGH
atau LOW Analog I/O
• analogReference() : konfigurasi dari tegangan referensi yang digunakan
sebagai input analog
- analogRead() : Membaca nilai dari analog pin input arduino seperti sensor analog menggunakan fungsi ADC mikrokontroller.
- analogWrite() : berfungsi sebagai output PWM pin arduino
II.1.6 Kelebihan Arduino Sebagai Opensource Hardware
Pengembangan desain dan board arduino bersifat opensource hardware
yang dilindungi lisensi Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0).
Dengan lisensi ini setiap orang diperbolehkan mengembangkan dan membuat
dokumentasi dari piranti arduino board yang diproduksi sebagai varian baru.
21 Tidak hanya demikian, selain board arduino yang dikembangkan, shield sebagai
board pendukung lain dari arduino bisa mudah untuk dikembangkan dengan
dokumentasi lengkap.Dari beberapa hal yang berkaitan dari arduino sebagai opensource
hardware untuk board edukasi memliki beberapa kelebihan dibandingkan dengan
board trainer elektronika yang dikembangkan :1. Arduino menggunakan software yang berbasis IDE sehingga memudahkan pengguna awam untuk belajar bahasa pemrograman level microcontroller.
2. Pada level hardware, arduino memiliki bootloader sebagai program kecil yang ditanamkan dalam microcontroller ATmega dimana berfungsi untuk melakukan interaksi ke level atas dengan software IDE ketika program di compile dan di upload.
Sedangkan pada level bawah, bootloader dapat mengeksekusi
sketch yang telah di upload pada mikrokontroller.
3. Multi platform, software arduino IDE dapat dijalankan pada semua jenis system operasi seperti Windows, Mac maupun Linux.
Tidak hanya itu drivernya menggunakan chipset FTDI sebagai koneksi USB telah mendukung pada semua system operasi.
4. Tersedia kumpulan library dalam bentuk java, C/C++ siap pakai dan juga mampu digunakan dengan banyak perangkat input/output seperti sensor, LCD, 7-segmen maupun Ethernet.
22
5. Compatible dengan banyak shield sebagai modul pendukung fungsi pengembangan board arduino untuk proyek piranti elektronika.
II.2 Shield Arduino
Shield arduino dibuat untuk memperluas fungsi penggunaan untuk
keperluan perangkat elektronika lain. Seperti contoh arduino tidak mampu
menggerakan motor stepper dan motor servo (driver motor) karena arduino tidak