BAB II TINJAUAN PUSTAKA 2.1 Arduino Arduino adalah platform pembuatan prototipe elektronik yang bersifat open-source hardware yang berdasarkan pada perangkat keras dan perangkat lunak yang fleksibel dan mudah digunakan. Arduino pada awalnya dikembangkan di Ivrea, Italia. Nama Arduino adalah sebuah nama maskulin yang berarti teman yang kuat. Platform arduino terdiri dari arduino board, shield, bahasa pemrograman arduino, dan arduino development environment. (Simanjuntak,MG.2013). 2.1.1 Arduino Uno Arduino Uno merupakan sebuah board minimum system mikrokontroler yang bersifat open source. Didalam rangkaian board arduino terdapat mikrokontroler AVR seri ATMega 328 yang merupakan produk dari Atmel. Memiliki 14 pin input/output yang mana 6 pin dapat digunakan sebagai output PWM, 6 analog input, crystal osilator 16 MHz, koneksi USB, jack power, kepala ICSP, dan tombol reset. Arduino mampu men-support mikrokontroller; dapat dikoneksikan dengan komputer menggunakan kabel USB. (angin,B Perangin . 2013) Gambar 2.1 Board Arduino Uno (sumber : www.arduino.cc) 7 8 Berikut ini adalah konfigurasi dari arduino uno adalah sebagai berikut : - Mikronkontroler ATmega328 - Beroperasi pada tegangan 5V - Tegangan input (rekomendasi) 7 - 12V - Batas tegangan input 6 - 20V - Pin digital input/output 14 (6 mendukung output PWM) - Pin analog input 6 - Arus pin per input/output 40 mA - Arus untuk pin 3.3V adalah 50 mA - Flash Memory 32 KB (ATmega328) yang mana 2 KB digunakan oleh bootloader - SRAM 2 KB (ATmega328) - EEPROM 1KB (ATmega328) - Kecepatan clock 16 MHz ATMega328 adalah mikrokontroller keluaran dari atmel yang mempunyai arsitektur RISC (Reduce Instruction Set Computer) yang dimana setiap proses eksekusi data lebih cepat dari pada arsitektur CISC (Completed Instruction Set Computer). Mikrokontroller ATmega 328 memiliki arsitektur Harvard, yaitu memisahkan memori untuk kode program dan memori untuk data sehingga dapat memaksimalkan kerja dan parallelism. (angin,B Perangin. 2013) Mikrokontroller ini memiliki beberapa fitur antara lain : - 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock. - 32 x 8-bit register serba guna. - Kecepatan mencapai 16 MIPS dengan clock 16 MHz. - 32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2 KB dari flash memori sebagai bootloader. - Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 1KB sebagai tempat penyimpanan data semi 9 permanent karena EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan. - Memiliki SRAM (Static Random Access Memory) sebesar 2KB. - Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width Modulation) output. - Master / Slave SPI Serial interface. Gambar 2.2 Konfigurasi Pin ATMega328 (sumber : angin,B Perangin. 2013) 2.1.2 Pin Masukan dan Keluaran Arduino Uno Masing-masing dari 14 pin digital arduino uno dapat digunakan sebagai masukan atau keluaran menggunakan fungsi pinMode(), digitalWrite() dan digitalRead(). Setiap pin beroperasi pada tegangan 5 volt. Setiap pin mampu menerima atau menghasilkan arus maksimum sebasar 40 mA dan memiliki resistor pull-up internal (diputus secara default) sebesar 20-30 KOhm. Sebagai tambahan, beberapa pin masukan digital memiliki kegunaan khusus yaitu: - Komunikasi serial: pin 0 (RX) dan pin 1 (TX), digunakan untuk menerima(RX) dan mengirim(TX) data secara serial. - External Interrupt: pin 2 dan pin 3, pin ini dapat dikonfigurasi untuk memicu sebuah interrupt pada nilai rendah, sisi naik atau turun, atau pada saat terjadi perubahan nilai. - Pulse-width modulation (PWM): pin 3,5,6,9,10 dan 11, menyediakan 10 keluaran PWM 8-bit dangan menggunakan fungsi analogWrite(). - Serial Peripheral Interface (SPI): pin 10 (SS), 11 (MOSI), 12 (MISO) dan 13 (SCK), pin ini mendukung komunikasi SPI dengan menggunakan SPI library. - LED: pin 13, terdapat built-in LED yang terhubung ke pin digital 13. Ketika pin bernilai HIGH maka LED menyala, sebaliknya ketika pin bernilai LOW maka LED akan padam. Arduino Uno memiliki 6 masukan analog yang diberi label A0 sampai A5, setiap pin menyediakan resolusi sebanyak 10 bit (1024 nilai yang berbeda). Secara default pin mengukur nilai tegangan dari ground (0V) hingga 5V, walaupun begitu dimungkinkan untuk mengganti nilai batas atas dengan menggunakan pin AREF dan fungsi analogReference(). Sebagai tambahan beberapa pin masukan analog memiliki fungsi khusus yaitu pin A4 (SDA) dan pin A5 (SCL) yang digunakan untuk komunikasi Two Wire Interface (TWI) atau Inter Integrated Circuit (I2C) dengan menggunakan Wire library. Di sisi lain, beberapa pin mempunyai fungsi spesial: - TWI: pin A4 atau SDA dan pin A5 atau SCL. Mensupport komunikasi TWI dengan menggunakan Wire library Ada sepasang pin lainnya pada board: - AREF. Referensi tegangan untuk input analog. Digunakan dengan analogReference(). - Reset. Membawa saluran ini LOW untuk mereset mikrokontroler. Secara khusus, digunakan untuk menambahkan sebuah tombol reset untuk melindungi yang memblock sesuatu pada board. 2.1.3 Peta Memori Arduino Uno Arduino Uno adalah arduino board yang menggunakan mikrokontroler ATmega328. Maka peta memori arduino uno sama dengan peta memori pada mikrokontroler ATmega328. 11 a. Memori Program ATMega328 memiliki 32K byte On-chip In-System Reprogrammable Flash Memory untuk menyimpan program. Memori flash dibagi kedalam dua bagian, yaitu bagian program bootloader dan aplikasi. b. Memori Data Memori data ATMega328 terbagi menjadi 4 bagian, yaitu 32 lokasi untuk register umum, 64 lokasi untuk register I/O, 160 lokasi untuk register I/O tambahan dan sisanya 2048 lokasi untuk data SRAM internal. c. Memori Data EEPROM Arduino uno terdiri dari 1 KByte memori data EEPROM. Pada memori EEPROM, data dapat ditulis/dibaca kembali dan ketika catu daya dimatikan, data terakhir yang ditulis pada memori EEPROM masih tersimpan pada memori ini, atau dengan kata lain memori EEPROM bersifat nonvolatile. 2.1.4 Bahasa Pemograman Arduino Arduino menggunakan pemrograman dengan bahasa C. Berikut ini adalah sedikit penjelasan singkat mengenai karakter bahasa C dan software Arduino. (www.arduino.cc ) - Struktur Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada. - void setup( ) { } Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya. - void loop( ) { } Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Dan akan dijalankan lagi sampai catu daya (power) dilepaskan. Syntax Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan. - // (komentar satu baris) 12 Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. - /* */ (komentar banyak baris) Jika anda punya banyak catatan, maka hal itu dapat dituliskan pada beberapa baris sebagai komentar. - { } (kurung kurawal) Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan). - ; (titk koma) Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan). Variabel Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang digunakan untuk memindahkannya. - int (integer) digunakan untuk menyimpan angka dalam 2 byte (16 bit). - long (long) digunakan ketika integer tidak mencukupi lagi. - boolean (boolean) Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar) atau FALSE (salah). - float (float) digunakan untuk angka desimal (floating point). - char (character) menyimpan 1 karakter menggunakan kode ASCII (misalnya‘A’=65). Operator Matematika Operator yang digunakan untuk memanipulasi angka (bekerja seperti matematika yang sederhana). = (misalnya: x = 10 * 2, x sekarang sama dengan 20). % (misalnya: 12 % 10, ini akan menghasilkan angka 2). + (penjumlahan) 13 - (penguraangan) * (perkalian) / (pembagian) Operator Pembanding Digunakan untuk membandingkan nilai logika. == (Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah TRUE (benar)) != (Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12 adalah FALSE (salah)) < (Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar)) > (Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah)) Struktur Pengaturan Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan (banyak lagi yang lain dan bisa dicari di internet). 1. if..else, dengan format seperti berikut ini: if (kondisi) { } else if (kondisi) { } else { } Dengan struktur seperti diatas program akan menjalankan kode yang ada di dalam kurung kurawal jika kondisinya TRUE, dan jika tidak (FALSE) maka akan diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode pada else yang akan dijalankan. 2. for, dengan format seperti berikut ini: for (int i = 0; i < #pengulangan; i++) { } 14 Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i–. Digital 1. PinMode(pin, mode) Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa digunakan adalah INPUT atau OUTPUT. 2. DigitalWrite(pin, value) Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground). 3. DigitalRead(pin) Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground). Analog Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi di dalam alam analog (menggunakan trik). Berikut ini cara untuk menghadapi hal yang bukan digital. 1. AnalogWrite(pin, value) Beberapa pin pada Arduino mendukung PWM (pulse width modulation) yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on) atau mati (off) dengan sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog. Value (nilai) pada format kode tersebut adalah angka antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% 15 duty cycle ~ 5V). 2. AnalogRead(pin) Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volt) dan 1024 (untuk 5 volts). 2.2 Sensor Ultrasonik Sensor Ultrasonik adalah sensor yang bekerja berdasarkan prinsip pantulan gelombang suara dan digunakan untuk mendeteksi keberadaan suatu objek tertentu di depannya, frekuensi kerjanya pada daerah di atas gelombang suara 40 KHz. Sensor ultrasonik terdiri atas dua unit, yaitu pemancar dan penerima. Struktur unit pemancar dan penerima sangatlah sederhana, sebuah kristal piezoelectric dihubungkan dengan mekanik jangkar dan hanya dihubungkan dengan diafragma penggetar. Tegangan bolak-balik yang memiliki frekuensi kerja 49 KHz-400 KHz diberikan pada plat logam. Struktur atom dari kristal piezoelectric akan berkontraksi (mengikat), mengembang atau menyusut terhadap polaritas tegangan yang diberikan dsan ini disebut dengan efek piezoelectric. Kontraksi yang akan terjadi diteruskan ke diafragma penggetar sehingga terjadi gelombang ultrasonik yang dipancarkan ke udara (tempat sekitarnya). Pantulan gelombang ultrasonik akan terjadi bila ada objek tertentu dan pantulan ultrasonik akan diterima kembali oleh unit sensor penerima. Selanjutnya unit sensor penerima akan menyebabkan diafragma penggetar akan bergetar dan efek piezoelectric menghasilkan sebuah tegangan bolak-balik dengan frekuensi yang sama. (Wibowo, Irwan. 2012 : 5) Besar amplitudo sinyal elektrik yang dihasilkan unit sensor penerima tergantung dari jauh dekatnya objek yang dideteksi serta kualitas dari sensor pemancar dn sensor penerima. Proses sensoring yang dilakukan pada sensor ini menggunakan metode pantulan untuk menghitung jarak antara sensor dengan 16 objek sasaran. Jarak antara sensor tersebut dihitung dengan cara mengalikan setengah waktu yang digunakan oleh sinyal ultrasonik dalam perjalanannya dari rangkaian pengirim sampai diterima oleh rangkaian penerima, dengan kecepatan rambat dari sinyal ultrasonik tersebut media rambat yang digunakan, yaitu udara. (Wibowo, Irwan. 2012 : 5) Gambar 2.3 Prinsip Kerja Sensor Ultrasonik (Sumber : Tri, Tedi Saputro, 2010) Ultrasonik yang digunakan yaitu ultrasonik SRF04, yaitu sensor nonkontak pengukur jarak menggunakan ultrasonik. Prinsip kerja sensor ini adalah transmitter mengirimkan seberkas gelombang ultrasonik, lalu diukur waktu yang dibutuhkan hingga datangnya pantulan dari objek. Lamanya waktu ini sebanding dengan dua kali jarak sensor dengan objek, sehingga jarak sensor dengan objek dapat ditentukan persamaan : 𝑠= 𝑣. 𝑡 2 Keterangan : s = jarak (meter) v = kecepatan suara (340 m/detik) t = waktu tempuh (detik) SRF04 dapat mengukur jarak dalam rentang antara 3 cm – 3 m dengan output panjang pulsa yang sebanding dengan jarak objek. Sensor ini hanya memerlukan 2 pin I/O untuk berkomunikasi dengan 17 mikrokontroler, yaitu TRIGGER dan ECHO. Untuk mengaktifkan SRF04 mikrokontroler mengirimkan pulsa positif melalui pin TRIGGER minimal 10 µs, selanjutnya SRF04 akan mengirimkan pulsa positif melalui pin ECHO selama 100 µs hingga 18 ms, yang sebanding Dibandingkan dengan sensor ultrasonik dengan lain, seperti jarak objek. PING, SRF04 mempunyai kemampuan yang setara, yaitu rentang pengukuran antara 3 cm – 3 m dan output yang sama yaitu panjang pulsa. Meski cara pengoperasiannya mirip, namun kedua sensor tersebut berbea jumlah pin I/O – nya, yaitu 2 untuk SRF04 dan 1 untuk PING. Dibawah ini spesifikasi dari sensor ultrasonik srf04 : Spesifikasi dari sensor ultrasonik SRF04 adalah sebagai berikut : a. Dimensi b. Tegangan : 24mm (P) x 20mm (L) x 17mm (T). : 5 VDC c. Konsumsi Arus : 30 mA (rata-rata), 50 mA (max) d. Frekuensi Suara : 40 kHz e. Jangkauan : 3 cm – 3 m f. Sensitivitas : Mampu mendeteksi objek dengan diameter 3 cm pada jarak > 2 m g. Input Trigger : 10 mS min. Pulsa Level TTL h. Pulsa Echo : Sinyal level TTL Positif, Lebar berbanding proporsional dengan jarak yang dideteksi Sensor ultrasonik srf04 ini memiliki fungsi dari masing – masing, koneksi sensor ultrasonik SRF04 sebagai berikut: a. 5V supply : sebagai tegangan supply yang nantinya dihubungkan ke power supply 5V. b. Echo Pulse Output : sebagai pin output yang nantinya dihubungkan ke mikrokontroller sehingga mikrokontroller dapat membaca pulsa yang dihasilkan sensor. c. Trigger Pulse Input : sebagai pin input yang nantinya dihubungkan ke mikrokontroller untuk mendapatkan pulsa dari mikrokontroller. 18 d. 0V Ground 2.3 : sebagai pertanahan atau grounding. Baterai Baterai adalah alat listrik-kimiawi yang menyimpan energi dan mengeluarkan tenaganya dalam bentuk listrik. Sebuah baterai biasanya terdiri dari tiga komponen penting, yaitu: 1. Batang karbon sebagai anoda (kutub positif baterai) 2. Seng (Zn) sebagai katoda (kutub negatif baterai) 3. Pasta sebagai elektrolit (penghantar) Baterai yang biasa dijual (sekali pakai) mempunyai tegangan listrik 1,5 volt. Baterai ada yang berbentuk tabung atau kotak. Ada juga yang dinamakan rechargeable battery, yaitu baterai yang dapat diisi ulang, seperti yang biasa terdapat pada telepon genggam. Baterai sekali pakai disebut juga dengan baterai primer, sedangkan baterai isi ulang disebut dengan baterai sekunder. Baik baterai primer maupun baterai sekunder, kedua-duanya bersifat mengubah energi kimia menjadi energi listrik. Baterai primer hanya bisa dipakai sekali, karena menggunakan reaksi kimia yang bersifat tidak bisa dibalik (irreversible reaction). Sedangkan baterai sekunder dapat diisi ulang karena reaksi kimianya bersifat bisa dibalik (reversible reaction). (Handayani,FS.2015) Dalam percobaan ini baterai yang digunakan adalah baterai Lipo turnigy. Gambar 2.4 Baterai Turnigy (Sumber : Handayani,FS.2015) 19 Baterai Lipo Turnigy 2200mA 3S digunakan karena memiliki spesifikasi antara lain: 1. Minmum Capacity : 2200Mah 2. Configuration : 3 S1p / 11.1V / 3 cell 3. Vonstant Discharge : 25C 4. Peak Discharge : (10 sec) : 35C 5. Peak weight : 188g 6. Pack size : 105 x 33 x 24mm 7. charge Plug : JST – XH 8. Discharge Plug : XT60 2.4 Modul Mp3 Player Modul MP3 kompak dan murah dapat langsung dihubungkan ke speaker . Modul dengan baterai power supply , speaker , keypad dapat digunakan sendiri , juga dapat dikontrol melalui port serial , modul Arduino UNO Untuk atau mikrokontroler seri . Modul itu sendiri sempurna terintegrasi hardware decode MP3 , WAV , WMA . Sementara driver kartu TF dukungan perangkat lunak mendukung FAT16 , sistem file FAT32 . Dapat dilakukan dengan perintah serial sederhana mainkan musik , serta cara bermain musik dan fungsi lainnya , tanpa operasi yang mendasari rumit , mudah digunakan , stabil dan dapat diandalkan . (Bodnar,D. 2015) Spesifikasi Teknis : 1. Mendukung laju sampling ( KHz ) : 8 / 11,025 / 12/16 / 22.05 / 24/32 / 44.1 / 48 2. 24 DAC keluaran dinamis dukungan range: 90dB , dukungan SNR : 85dB 3. Mendukung penuh FAT16 , sistem file FAT32 , kartu TF dukungan 32g maksimal , dukungan U disk 32G ini , 64M byte NORFLASH 4. Berbagai mode kontrol yang tersedia. Mode kontrol IO , modus serial, modus tombol AD kontrol 20 5. Tempat bahasa siaran fitur , Anda dapat menghentikan sebentar musik latar belakang yang dimainkan . Iklan telah selesai bermain kembali suara latar belakang terus bermain 6. Data audio diurutkan berdasarkan folder , mendukung hingga 100 folder , setiap folder dapat diberikan ke 255 lagu 7. 30 volume disesuaikan , enam EQ disesuaikan Aplikasi : 1. Siaran suara navigasi mobil 2. Inspektur transportasi jalan , stasiun tol konfirmasi suara 3. Stasiun kereta api , terminal bus pemeriksaan keamanan konfirmasi suara 4. Listrik, komunikasi , ruang bisnis keuangan konfirmasi suara listrik 5. Kendaraan masuk dan keluar dari saluran untuk memverifikasi konfirmasi suara 6. Channel perbatasan konfirmasi suara 7. Alarm suara multi-channel atau peralatan panduan operasi suara 8. Mobil listrik tamasya pemberitahuan suara aman mengemudi 9. Peralatan listrik kegagalan alarm suara alarm kebakaran 10. Peralatan siaran otomatis , siaran reguler Gambar. 2.5 Modul Mp3 Player (Sumber: Bodnar. D. 2015) 21 Tabel 2.2 Keterangan Port Modul Mp3 Player Number Name Description Note 1 VCC Input Voltage DC 3.2-5.0V; Typical: DC4.2 2 RX UART serial input 3 TX UART serial output 4 DAC_R 5 DAC_L 6 SPK2 Speaker Drive speaker less than 3W 7 GND Ground Power Ground 8 SPK1 Speaker Drive speaker less than 3W 9 IO1 Trigger port 1 10 GND Ground 11 IO2 Trigger port 2 12 ADKEY1 AD port 1 Trigger play first segment 13 ADKEY2 AD port 2 Trigger play fifth segment 14 USB+ USB+ DP USB Port 15 USB- USB- DM USB Port 16 Busy Playing Status 16 Busy Playing Status Audio output right channel Audio output left (Sumber: Bodnar. D. 2015) channel Drive earphone and amplifier Drive earphone and amplifier Short pree to play previous(long press to decrease volume) Power Ground Short pree to play next(long press to increase volume) Low means playing\High means no Low means playing\High means no 22 2.5 Speaker Speaker merupakan salah satu perlalatan output komputer berbentuk kotak atau bulat dengan kemasan unik yang berfungsi untuk mengeluarkan hasil pemrosesan berupa suara dari komputer. Agar speaker dapat berfungsi diperlukan hardware berupa sound card (pemroses audio/sound).( Yudibtira, K.2015) Gambar 2.6 Simbol dan Bentuk Speaker (Sumber : Okfriano, GZ - 2015) Speaker pada umumnya dapat dibedakan menjadi 2 kategori, yaitu : 1. Speaker Pasif (Passive Speaker) Speaker Pasif adalah Speaker yang tidak memiliki Amplifier (penguat suara) di dalamnya. Jadi Speaker Pasif memerlukan Amplifier tambahan untuk dapat menggerakannya. Level sinyal harus dikuatkan terlebih dahulu agar dapat menggerakan Speaker Pasif. Sebagian besar Speaker yang kita temui adalah Speaker Pasif. 2. Speaker Aktif (Active Speaker) Speaker Aktif adalah Speaker yang memiliki Amplifier (penguat suara) di dalamnya. Speaker Aktif memerlukan kabel listrik tambahan untuk menghidupkan Amplifier yang terdapat didalamnya.