43 yang dipasang di lengan pasien, kemudian dipompa sampai pada tekanan tertentu yang selanjutnya baru dilakukan pengukuran tekanan darah. Gambar 3.12 Sensor tekanan Sensor Proximity. Proximity sensor merupakan sensor yang digunakan untuk mendeteksi suatu obyek benda berdasarkan jarak benda tersebut terhadap sensor. Proximity sensor ini akan mendeteksi obyek benda dengan jarak yang cukup dekat berkisar 1 mm sampai beberapa centimeter dari sensor. Berdasarkan penggunaanya, sensor proximity merupakan sensor yang mampu mendeteksi keberadaan suatu obyek logam maupun non logam tanpa menggunakan kontak fisik. Gambar 3.13 Sensor proximity Sensor Magnet atau disebut juga relai buluh, adalah alat yang akan terpengaruh medan magnet dan akan memberikan perubahan kondisi pada keluaran. Seperti layaknya saklar dua kondisi (on/off) yang digerakkan oleh adanya medan magnet di sekitarnya. Biasanya sensor ini dikemas dalam bentuk kemasan yang hampa dan bebas dari debu, kelembapan, asap ataupun uap. Implementasi dari alat ini seperti, Pengukuran medan magnet berbasis komputer terdiri dari sensor medan magnet UGN3503, Op-Amp LM358 dan ADC 0804. Prinsip kerja alat adalah mendekatkan magnet pada sensor. Keluaran sensor berupa tegangan akan dikuatkan oleh op-amp agar dapat diproses oleh ADC. Selanjutnya tegangan dikonversi oleh ADC menjadi data digital, kemudian diolah oleh komputer dengan program visual basic dan hasilnya ditampilkan pada PC. Gambar 3.14 Sensor magnet
44 Flame sensor merupakan sensor yang mempunyai fungsi sebagai pendeteksi nyala api yang dimana api tersebut memiliki panjang gelombang antara 760nm – 1100nm. Sensor ini menggunakan infrared sebagai tranduser dalam men-sensing kondisi nyala api. Gambar 3.15 Flame sensor Sensor PIR (Passive Infra Red) merupakan sensor yang digunakan untuk mendeteksi adanya pancaran sinar infra merah dari suatu object. Sesuai dengan namanya sensor PIR bersifat pasif, yang berarti sensor ini tidak memancarkan sinar infra merah melainkan hanya dapat menerima radiasi sinar infra merah dari luar. Sensor PIR dapat mendeteksi radiasi dari berbagai objek dan karena semua objek memancarkan energi radiasi, sebagai contoh ketika terdeteksi sebuah gerakan dari sumber infra merah dengan suhu tertentu yaitu manusia mencoba melewati sumber infra merah yang lain misal dinding, maka sensor akan membandingkan pancaran infra merah yang diterima setiap satuan waktu, sehingga jika ada pergerakan maka akan terjadi perubahan pembacaan pada sensor. Gambar 3.16 Sensor PIR Soil Moisture Sensor merupakan modul untuk mendeteksi kelembaban tanah, yang dapat diakses menggunakan mikrokontroler seperti arduino, NodeMCU ESP8266. Sensor kelembaban tanah ini dapat dimanfaatkan pada sistem pertanian, perkebunan, maupun sistem hidroponik mnggunakan hidroton. Soil Moisture Sensor dapat digunakan untuk sistem penyiraman otomatis atau untuk memantau kelembaban tanah tanaman secara offline maupun online.
45 Gambar 3.17 Sensor kelembaban tanah Flex sensor merupakan sensor yang dibangun dari elemen resistive carbon. Seperti variabel resistor, nilai resistensi flex sensor akan berubah sesuai dengan tekukan sensor. Gambar 3.18 Flex Sensor Hall Effect Sensor adalah komponen jenis transduser yang dapat mengubah informasi magnetik menjadi sinyal listrik untuk pemrosesan rangkaian elektronik selanjutnya. Sensor Efek Hall ini sering digunakan sebagai sensor untuk mendeteksi kedekatan (proximity), mendeteksi posisi (positioning), mendeteksi kecepatan (speed), mendeteksi pergerakan arah (directional) dan mendeteksi arus listrik (current sensing). Gambar 3.19 Hall effect sensor Accelerometer adalah sensor yang digunakan untuk mengukur percepatan suatu objek. Accelerometer dapat mengukur percepatan dinamis dan percepatan statis. Pengukuran dinamis adalah pengukuran percepatan pada objek bergerak, sedangkan pengukuran statis adalah pengukuran terhadap gravitasi bumi. Sesuai dengan namanya prinsip kerja dari accelerometer adalah prinsip percepatan (acceleration). Sebuah per dengan beban dan dilepaskan, beban bergerak dengan suatu percepatan sampai kondisi tertentu lalu berhenti. Bila ada sesuatu yang menggoncangkannya maka beban akan
46 berayun kembali. Pengukuran kapasitansi inilah yang umumnya menjadi hasil pengukuran chip. Agar sensor bisa mendeteksi 3 dimensi, maka dibutuhkan 3 pasang plat yang dipasang tegak lurus antar masing-masing. Gambar 3.20 Accelerometer CMPS03 merupakan sensor navigasi sensor kompas elektronik yang membantu dalam menentukan arah menuju robot dan dalam menelusuri dinding atau ruangan yang bekerja sesuai dengan prinsip kompas pada umumnya. Sensor kompas elektronik CMPS03 memiliki dua sensor yang akan mendeteksi medan magnet Bumi dari magnet magnetik dan juga memiliki rentang sudut 360˚. Gambar 3.21 Sensor navigasi Sensor sonar adalah sensor yang umum digunakan untuk menentukan jarak sebuah objek. Pada dasarnya sensor ini bekerja berdasarkan prinsip pemantulan gelombang suara, dimana dalam hal ini variabel yang diukur adalah waktu pemantulan sejak gelombang tersebut dipancarkan. Tidak seperti sensor jarak lain seperti inframerah atau sensor laser, sensor sonar ini memiliki jangkauan deteksi yang relatif luas. Sehingga dengan demikian untuk jarak deteksi yang didapat, kita tidak dapat menentukan lokasi objek secara tepat pada daerah deteksi tersebut tanpa menggunakan pengolahan lanjutan. Gambar 3.22 Sensor sonar
47 Lidar sensor. Lidar adalah (biasanya disebut LIDAR, LiDAR, dan LADAR) metode survei yang mengukur jarak ke target dengan menerangi target dengan sinar laser yang berdenyut dan mengukur pulsa yang dipantulkan dengan sensor. Perbedaan waktu kembali laser dan panjang gelombang kemudian dapat digunakan untuk membuat representasi digital 3-D dari target. Nama lidar, sekarang digunakan sebagai akronim pendeteksian cahaya dan jarak, (kadang-kadang pencitraan cahaya, deteksi, dan rentang), pada mulanya adalah pemantau cahaya dan radar. Gambar 3.23 Lidar sensor Tactile sensor. Tactile sensor adalah sebuah perangkat yang mengukur informasi yang timbul dari interaksi fisik dengan lingkungannya. Gambar 3.24 Tactile sensor Sensor sidik jari (fingerprint). Contoh pengaplikasian sensor ini, dapat diterapkan pada beberapa sistem antara lain: Sistem keamanan (security system), sistem waktu kehadiran pegawai, siswa, mahasiswa, kunci pintu (lock door system) seperti di hotel, dan lain sebagainya. Gambar 3.25 Sensor fingerprint
48 Pulse Sensor adalah salah satu sensor pendeteksi denyut jantung. Menggunakan modul WiFi ESP8266 menjadikan alat pendeteksi denyut jantung ini dapat digunakan dimana saja dengan menerapkan konsep internet of things. Gambar 3.26 Pulse sensor Sensor Penyandi (Encoder) digunakan untuk mengubah gerakan linear atau putaran menjadi sinyal digital, dimana sensor putaran memonitor gerakan putar dari suatu alat. Sensor ini biasanya terdiri dari 2 lapis jenis penyandi, yaitu; Pertama, Penyandi rotari tambahan (yang mentransmisikan jumlah tertentu dari pulsa untuk masing-masing putaran) yang akan membangkitkan gelombang kotak pada objek yang diputar. Kedua, Penyandi absolut (yang memperlengkapi kode binary tertentu untuk masing-masing posisi sudut) mempunyai cara kerja sang sama dengan perkecualian, lebih banyak atau lebih rapat pulsa gelombang kotak yang dihasilkan sehingga membentuk suatu pengkodean dalam susunan tertentu. Gambar 3.27 Sensor penyandi Velocity sensor. Sensor kecepatan atau velocity sensor adalah suatu sensor yang dipakai untuk mendeteksi kecepatan gerak benda guna selanjutnya diolah kedalam format sinyal elektrik.
49 Gambar 3.28 Velocity sensor Selain sensor yang telah disebutkan di atas, masih terdapat berbagai macam jenis sensor lainnya. 1. Sensor adalah perangkat yang digunakan untuk mendeteksi perubahan besaran fisik seperti tekanan, gaya, besaran listrik, cahaya, gerakan, kelembaban, suhu, kecepatan dan fenomenafenomena lingkungan lainnya. Setelah mengamati terjadinya perubahan, Input yang terdeteksi tersebut akan dikonversi mejadi Output yang dapat dimengerti oleh manusia baik melalui perangkat sensor itu sendiri ataupun ditransmisikan secara elektronik melalui jaringan untuk ditampilkan atau diolah menjadi informasi yang bermanfaat bagi penggunanya. 2. Karakteristik sensor a. Linearitas Sensor b. Sensitivitas Sensor c. Tanggapan Waktu Sensor (Respon Time) 3. Klasifikasi Sensor a. Proprioceptive sensor, Exteroceptive sensor b. Sensor Pasif, Sensor Aktif c. Sensor Analog, Sensor Digital 4. Jenis-Jenis Sensor pada Robot a. Touch Sensor b. Light Sensor c. Colour Sensor d. Distance Sensor e. Sound Sensor f. Balance Sensor atau gyro sensor g. Gas Sensor h. Temperatur Sensor i. Sensor tekanan j. Sensor Proximity Rangkuman
50 k. Sensor magnet l. Flame sensor m. Flex sensor n. Dan sebagainya 5. Berbagai contoh sensor 1. Jelaskan pengertian dan fungsi sensor pada robot! 2. Terdapat beberapa klasifikasi robot, sebutkan dan jelaskan! 3. Sebutkan pertimbangan dalam memilih sensor dalam pembuatan robot! 4. Sebutkan lima jenis sensor yang paling sering digunakan pada robot! 5. Berikan contoh beberapa sensor dan jelaskan spesifikasinya! Latihan
51 ▪ Pendahuluan ▪ Mikrokontroler Intel MCS51 ▪ Mikrokontroler AVR ▪ PIC (Programmable Intelligent Computer) ▪ Mikrokontroler ARM (Advanced RISC Machine) Setelah mempelajari bab ini, mahasiswa diharapkan mampu: ▪ Memahami prinsip kerja mikrokontroler ▪ Mengenal berbagai varian mikrokontroler ▪ Menjelaskan fungsi pin pada mikrokontroler ▪ Mengetahui kelebihan dan kekurangan dari berbagai macam mikrokontroler Mikrokontroler merupakan perpaduan dua kata, yaitu micro dan controller. Micro berarti ukuran kecil sedangkan controller merupakan alat yang berfungsi sebagai pengontrol sebuah sistem. Jadi mikrokontroler merupakan alat pengontrol berukuran kecil dan terintegrasi layaknya sebuah sistem komputer dalam sebuah chip. Mikrokontroler merupakan sebuah komputer kecil (special purpose computers) di dalam satu IC yang di dalamnya terdiri dari Central Processing Unit (CPU), memori, timer, saluran komunikasi serial dan paralel, port Input/Output (I/O) dan Analog to Digital Converter (ADC). Sehingga dapat disimpulkan jika mikrokontroler merupakan sebuah komputer kecil berbentuk IC yang di dalamnya terdapat CPU, memori dan port I/O serta komponen pendukung lainnya yang dapat digunakan sebagai alat pengontrol. Mikrokontroler berperan sebagai otak pada robot, yang mengendalikan actuator, sound, dan yang lainnya. Mikrokontroler memiliki bagian-bagian penting yang mirip seperti komputer, di antaranya adalah: BAB IV. MIKROKONTROLER Pokok Bahasan Tujuan Pembelajaran 4.1 Pendahuluan
52 1. CPU, yang bertugas untuk mengerjakan setiap instruksi yang diberikan. 2. Random Access Memory (RAM), yang berfungsi untuk menyimpan memori selama ada arus listrik yang mengalir dan bersifat sementara. 3. Read Only Memory (ROM), yang berfungsi membaca nilai memori yang tersimpan. 4. Port I/O, merupakan terminal yang dapat digunakan sebagai jalur input pada mikrokontroler dan menghasilkan output dalam bentuk sinyal. Dengan bentuknya yang kecil, mikrokontroler mempunyai kelebihan dalam hal pemrosesan data layaknya sebuah komputer. Penggunaan mikrokontroler dalam rangkaian elektronika memiliki beberapa kelebihan, yaitu sebagai berikut: 1. Bentuknya yang kecil dan praktis memudahkan dalam perancangan dan pemasangan pada rangkaian elektronika. 2. Kemudahan dalam mengubah fungsi dan alur logika program mikrokontroler. 3. Sistem rangkaian elektronika yang dibangun menjadi lebih efisien. 4. Tidak membutuhkan daya listrik yang besar. 5. Proses pencarian kerusakan atau gangguan fungsi rangkaian menjadi lebih mudah. 6. Harganya relatif murah. 7. Dapat diprogram berulang kali. Oleh karena itu, mikrokontroler sering diimplementasikan dalam rangkaian elektronika yang dikendalikan secara otomatis seperti mesin cuci, remote control, pendeteksi kebakaran, pengatur lampu lalu lintas, rangkaian lampu flip-flop dan lain sebagainya. Mikrokontroler juga sangat banyak digunakan dalam penelitian dan pengembangan. Mikrokontroler terdiri dari berbagai macam jenis dan merk. Setiap mikrokontroler mempunyai karakter berbeda, dengan kelebihan dan kekurangannya. Selain itu telah berkembang sehingga muncul turunan-turunan yang semakin lebih baik dan lebih mudah dalam penggunaannya.
53 Gambar 4.1 IC Mikrokontroler Berdasarkan arsitekturnya mikrokontroler dibagi menjadi dua jenis, yaitu Complex Instruction Set Computer (CISC) dan Reduce instruction Set Computer (RISC). 1. Mikrokontroler dengan arsitektur CISC merupakan jenis mikrokontroler yang memiliki jumlah instruksi yang kompleks dan lengkap. Contoh mikrokontroler CISC adalah Intel 80C51 (MCS51) dan Motorola 68HC11. 2. Mikrokontroler dengan arsitektur RICS merupakan jenis mikrokontroler yang memiliki jumlah instruksi yang terbatas dan sedikit. Pada arsitektur RISC jumlah instruksi lebih sedikit, tetapi memiliki banyak register dibandingkan dengan CISC. Selain itu pada arsitektur RISC kebanyakan instruksi dieksekusi hanya dalam satu clock cycle dan mode addressing memory yang sederhana. Contoh mikrokontroler RISC adalah ATMEL AVR, Microchip PIC2/16CXX dan National Semiconductor COP8. Mikrokontroler terbagi menjadi 4 keluarga besar, yaitu: 1. Mikrokontroler Intel MCS51 2. Mikrokontroler AVR 3. PIC 4. Mikrokontroler ARM Mikrokontroler ini termasuk dalam keluarga mikrokontroler CISC (Complex Instruction Set Computer). Sebagian besar instruksinya dieksekusi dalam 12 siklus clock. Mikrokontroler MCS51 buatan Atmel terdiri dari dua versi, yaitu versi 20 pin dan versi 40 pin. Kedua mikrokontroler ini dilengkapi dengan Flash PEROM (Programmable Eraseable Read Only Memory) sebagai media memori program, dan susunan pin IC tersebut sama pada tiap versinya. Perbedaan 4.2 Mikrokontroler Intel MCS51
54 dari mikrokontroler tersebut terutama terletak pada kapasitas memori program, memori data dan jumlah pewaktu 16-bit. Gambar 4.2 Diagram blok Mikrokontroler MCS51 Atmel Mikrokontroler MCS51 Atmel versi mini (20 pin) dan versi 40 pin secara garis besar memiliki struktur dasar penyusun arsitektur mikrokontroler yang sama.
55 Bagian-bagian tersebut secara lebih lengkap ditunjukkan dalam diagram blok pada gambar 4.2. Perbedaan mikrokontroler Atmel MCS51 tersebut ditunjukkan pada tabel 4.1. Tabel 4.1 Perbandingan antar Mikrokontroler MCS51Atmel Mikrokontroler MCS51 Atmel versi 40 kaki mempunyai 32 kaki sebagai port paralel dan 8 pin yang lain untuk konfigurasi kerja mikrokontroler. Satu port paralel terdiri dari 8 kaki, dengan demikian 32 kaki tersebut membentuk 4 buah port paralel yang masing-masing dikenal sebagai port 0, port 1, port 2, port 3. Nomor dari masing-masing jalur (kaki) dari port paralel mikrokontroler MCS51 Atmel mulai dari 0 sampai 7, jalur (kaki) pertama dari port 0 disebut sebagai P0.0 dan jalur terakhir untuk port 3 adalah P3.7. Mikrokontroler MCS51 Atmel versi mini mempunyai 20 kaki, 15 kaki diantaranya adalah kaki port 1 dan port 3. 5 kaki yang lain untuk konfigurasi kerja mikrokontroler. Port 1 terdiri dari 8 jalur yaitu P1.0 sampai P1.7 dan port 3 terdiri dari 7 jalur yaitu P3.0 sampai P3.5 dan P3.7. Susunan kaki mikrokontroler MCS51 atmel versi 40 kaki dapat dilihat pada Gambar 4.2 berikut.
56 Gambar 4.3 Susunan kaki Mikrokontroler MCS51 Atmel Fungsi-Fungsi Kaki (Pin) a. VCC Kaki VCC digunakan untuk masukan suplai tegangan. b. GND Kaki (pin) GND funsinya sebagai saluran ground atau pentanahan. c. RST Kaki RST fungsinya sebagai masukan reset. Kondisi “1” selama 2 siklus mesin pada saat oscillator bekerja akan me-reset mikrokontroler yang bersangkutan. d. ALE Kaki ALE digunakan sebagai keluaran ALE atau Address Latch Enable yang akan menghasilkan pulsa-pulsa untuk menahan byte rendah (low byte) alamat selama mengakses memori eksternal. Kaki ini juga berfungsi sebagai masukan pulsa program atau selama pemrograman flash. Pada operasi normal, ALE akan berpulsa dengan laju 1/6 dari frekuensi kristal dan dapat digunakan sebagai pewaktuan (timing) atau pendekatan (clocking) rangkaian eksternal. Kaki Program Store Enable merupakan sinyal baca untuk memori program eksternal. Saat mikrokontroler MCS51 menjalankan program dari memori eksternal, akan diaktifkan dua kali per-siklus mesin, kecuali dua aktivasi dilompati/ diabaikan saat mengakses memori data eksternal. e. VPP Kaki VPP (External Access Enable) fungsinya sebagai kontrol untuk mengakses memori harus dihubungkan ke ground, jika mikrokontroler akan mengeksekusi program dari memori eksternal. Selain itu harus dihubungkan ke VCC jika akan mengakses program secara internal. Kaki ini juga berfungsi untuk menerima
57 tegangan 12V (VPP) selama pemrograman flash, khususnya untuk tipe mikrokontroler 12V volt. f. XTAL1 Kaki XTAL1 merupakan masukan untuk penguat inverting oscillator dan masukan untuk clock internal pada rangkaian operasi mikrokontroler. g. XTAL2 Kaki XTAL2 merupakan keluaran dari rangkaian penguat inverting oscilator. Mikrokontroler Alv and Vegard’s Risc processor atau sering disingkat AVR merupakan mikrokonktroler RISC 8 bit. Karena RISC inilah sebagian besar kode instruksinya dikemas dalam satu siklus clock. Mikrokontroler AVR merupakan salah satu jenis arsitektur mikrokontroler yang menjadi andalan Atmel. Arsitektur ini dirancang memiliki berbagai kelebihan dan merupakan penyempurnaan dari arsitektur mikrokontroler-mikrokontroler yang sudah ada. Gambar 4.4 IC Mikrokontroler AVR Berbagai seri mikrokontroler AVR telah diproduksi oleh Atmel dan digunakan di dunia sebagai mikrokontroler yang bersifat low cost dan high performance. Di Indonesia, mikrokontroler AVR banyak dipakai karena fiturnya yang cukup lengkap, mudah untuk didapatkan, dan harganya yang relatif terjangkau. Dan secara umum ada 4 kelas dari AVR ini. Setiap kelas memilik fungsi, memori, dan peripheral yang berbeda. 4 kelas tersebut adalah: 1. ATTiny, 2. AT90Sxx, 3. ATMega, 4. dan AT86RFxx. Khusus untuk ATMega adalah yang paling populer, terutama setelah munculnya Arduino. 4.3 Mikrokontroler AVR
58 Antar seri mikrokontroler AVR memiliki beragam tipe dan fasilitas, namun kesemuanya memiliki arsitektur yang sama, dan juga set instruksi yang relatif tidak berbeda. Tabel di bawah ini membandingkan beberapa seri mikrokontroler AVR buatan Atmel. Tabel 4.2 Seri mikrokontroler AVR buatan Atmel Keterangan: ▪ Flash adalah suatu jenis Read Only Memory yang biasanya diisi dengan program hasil buatan manusia yang harus dijalankan oleh mikrokontroler. ▪ RAM (Random Acces Memory) merupakan memori yang membantu CPU untuk penyimpanan data sementara dan pengolahan data ketika program sedang running. ▪ EEPROM (Electrically Erasable Programmable Read Only Memory) adalah memori untuk penyimpanan data secara permanen oleh program yang sedang running. ▪ Port I/O adalah kaki untuk jalur keluar atau masuk sinyal sebagai hasil keluaran ataupun masukan bagi program. ▪ Timer adalah modul dalam hardware yang bekerja untuk menghitung waktu/pulsa. ▪ UART (Universal Asynchronous Receive Transmit) adalah jalur komunikasi data khusus secara serial asynchronous. ▪ PWM (Pulse Width Modulation) adalah fasilitas untuk membuat modulasi pulsa. ▪ ADC (Analog to Digital Converter) adalah fasilitas untuk dapat menerima sinyal analog dalam range tertentu untuk kemudian dikonversi menjadi suatu nilai digital dalam range tertentu. ▪ SPI (Serial Peripheral Interface) adalah jalur komunikasi data khusus secara serial secara serial synchronous. A. Varian Mikrokontroler AVR
59 ▪ ISP (In System Programming) adalah kemampuan khusus mikrokontroler untuk dapat diprogram langsung dalam sistem rangkaiannya dengan membutuhkan jumlah pin yang minimal. Mikrokontroler AVR sudah menggunakan konsep arsitektur Harvard yang memisahkan memori dan bus untuk data dan program, serta sudah menerapkan single level pipelining. Selain itu mikrokontroler AVR juga mengimplementasikan RISC (Reduced Instruction Set Computing) sehingga eksekusi instruksi dapat berlangsung sangat cepat dan efisien. Salah satu seri mikrokontroler AVR yang banyak menjadi andalan saat ini adalah tipe ATtiny2313 dan ATmega8535. Seri ATtiny2313 banyak digunakan untuk sistem yang relatif sederhana dan berukuran kecil. Berikut adalah features mikrokontroler seri ATtiny2313: ▪ Kapasitas memori Flash 2 Kbytes untuk program. ▪ Kapasitas memori EEPROM 128 bytes untuk data. ▪ Maksimal 18 pin I/O. ▪ 8 interrupt. ▪ 8-bit timer. ▪ Analog komparator. ▪ On-chip oscillator. ▪ Fasilitas In System Programming (ISP). Sedangkan Atmega8535 banyak digunakan untuk sistem yang kompleks, memiliki input sinyal analog, dan membutuhkan memori yang relatif lebih besar. Berikut adalah feature-feature mikrokontroler seri Atmega8535. ▪ Memori Flash 8 Kbytes untuk program ▪ Memori EEPROM 512 bytes untuk data ▪ Memori SRAM 512 bytes untuk data ▪ Maksimal 32 pin I/O ▪ 20 interrupt ▪ Satu 16-bit timer dan dua 8-bit timer ▪ 8 channel ADC 10 bit ▪ Komunikasi serial melalui SPI dan USART ▪ Analog komparator ▪ 4 I/O PWM ▪ Fasilitas In System Programming (ISP) Blok sistem mikrokontroler AVR dapat dilihat dalam Gambar 4.5. B. Arsitektur Mikrokontroler AVR
60 Gambar 4.5 Blok Diagram Mikrokontroler AVR
61 Konfigurasi pin Atmega8535 dengan kemasan 40 pin DIP (Dual Inline Package) dapat dilihat pada gambar 4.6. Gambar 4.6 Konfigurasi Pin Atmega8535 Dari gambar 4.6 dapat dijelaskan fungsi dari masing-masing pin Atmega8535 sebagai berikut: 1. VCC merupakan pin yang berfungsi sebagai masukan catu daya. 2. GND merukan pin Ground. 3. Port A (Port A0…Port A7) merupakan pin input/output dua arah dan pin masukan ADC. 4. Port B (Port B0…Port B7) merupakan pin input/output dua arah dengan fungsi khusus: ▪ PB7 : SCK (SPI Bus Serial Clock) ▪ PB6 : MISO (SPI Bus Master Input/ Slave Output) ▪ PB5 : MOSI (SPI Bus Master Output/ Slave Input) ▪ PB4 : SS (SPI Slave Select Input) ▪ PB3 : AIN1 (Analog Comparator Negative Input) OC0 (Timer/Counter0 Output Compare Match Output) ▪ PB2 : AIN0 (Analog Comparator Positive Input) INT2 (External Interrupt 2 Input) ▪ PB1 : T1 (Timer/ Counter1 External Counter Input) ▪ PB0 : T0 T1 (Timer/Counter External Counter Input) XCK (USART External Clock Input/Output) C. Konfigurasi Pin AVR ATMega 8535
62 5. Port C (Port C0…Port C7) merupakan pin input/output dua arah dengan pin fungsi khusus: ▪ PC7 : TOSC2 ( Timer Oscillator Pin2) ▪ PC6 : TOSC1 ( Timer Oscillator Pin1) ▪ PC5 : Input/Output ▪ PC4 : Input/Output ▪ PC3 : Input/Output ▪ PC2 : Input/Output ▪ PC1 : SDA ( Two-wire Serial Buas Data Input/Output Line) ▪ PC0 : SCL ( Two-wire Serial Buas Clock Line) 6. Port D (Port D0…Port D7) merupakan pin input/output dua arah dengan pin fungsi khusus: ▪ PD7 : OC2 (Timer/Counter Output Compare Match Output) ▪ PD6 : ICP (Timer/Counter1 Input Capture Pin) ▪ PD5 : OC1A (Timer/Counter1 Output Compare A Match Output) ▪ PD4 : OC1B (Timer/Counter1 Output Compare B Match Output) ▪ PD3 : INT1 (External Interrupt 1 Input) ▪ PD2 : INT0 (External Interrupt 0 Input) ▪ PD1 : TXD (USART Output Pin) ▪ PD0 : RXD (USART Input Pin) 7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler. 8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal. 9. AVCC merupakan pin masukan tegangan untuk ADC. 10. AREFF merupakan pin masukan tegangan referensi ADC. PIC sebelumnya merupakan kepanjangan dari Programmable Interface Controller, setelah berkembang menjadi Programmable Intelligent Computer. PIC ialah keluarga mikrokontroler tipe RISC buatan Microchip Technology. Pertama dikembangkan oleh Divisi Mikroelektronika General Instruments dengan nama PIC1640. Mikrokontroler PIC 16F84A menggunakan arsitektur Harvard Machine dimana memori data dan memori program terletak terpisah sehingga dapat menghindari terjadinya manipulasi antara data dan program. PIC 16F84A juga sama seperti CPU atau mikroprosessor yang memiliki fungsi perhitungan dan memori, juga dapat dikendalikan oleh software seperti mikrokontroler lainnya. Mikrokontroler PIC 16F84A merupakan salah satu keluarga PIC 16F8X 4.4 PIC (Programmable Intelligent Computer)
63 yang menggunakan teknologi CMOS dimana teknologi tersebut mempunyai beberapa keuntungan. Mikrokontroler PIC 16F84A juga sama seperti mikrokontroler AVR yang sama-sama mempunyai kapasitas memori yang kecil, kerja frekuensi maksimum clock untuk PIC 16F84A sendiri lebih besar dari AVR yaitu mencapai 20MHz sampai dengan 33MHz, dan kapasitas memori untuk menulis program adalah mencapai 1k sampai dengan 4k, frekuensi ini sangat mempengaruhi dalam membaca suatu program dan juga mengendalikan instruksi untuk mengeksekusi. Gambar 4.6 PIC PIC memungkinkan untuk mengontrol perangkat output ketika mereka dipicu oleh sensor dan switch. Program dapat dihasilkan dengan menggunakan diagram alur dalam perangkat lunak komputer, yang kemudian dapat didownload ke dalam chip PIC. PIC dapat ditulis ulang sebanyak yang dibutuhkan. Memori jenis ini disebut memori flash. PIC sangat populer digunakan karena biayanya yang murah, terjangkau dimana saja, pengunaannya yang luas, database yang besar, serta pemogramannya dilakukan melalui serial pada komputer. Dan juga karena ketahanan dan kekuatannya, sering dipakai untuk aplikasi lebih besar seperti industri. Mikrokontroler PIC mempunyai beberapa jenis tipe seperti PIC16F88, PIC16F87AA dan lain sebagainya, namun PIC yang sangat populer digunakan saat ini adalah PIC jenis 16F84A hal tersebut karena PIC 16F84A ini sangat praktis yang menggunakan teknologi flash memori sehingga dapat diprogram dan dihapus selama seribu kali dan juga memiliki kemasan yang tergolong praktis dengan 18 pin dan 13 jalur I/O saja. Namun mikrokontroler PIC jenis ini tidak termasuk memiliki fitur yang lengkap, lebih tergolong ke skala sedang. Berikut gambar pin diagram dari mikrokontroler PIC 16F84A.
64 Gambar 4.7 Pin Diagram PIC 16F84A Mikrokontroler PIC16F84 diproduksi dalam kemasan 18 pin PDIP (Plastic Dual In Line Package) maupun 18 pin SO (Small Outline). Namun yang banyak di pasaran adalah dalam kemasan PDIP. Mikrokontroler PIC ini mempunyai 3 jenis memori, diantaranya: RAM yang memiliki kapasitas 68 byte yang artinya memiliki lebar data 8 bit yang menempati 68 lokasi dengan alamat dari 0Ch-4Fh sebagai memori data, EEPROM yang berukuran 64 byte yang artinya memiliki lebar data 8 bit yang menempati 64 lokasi sebagai memori data dan memori ketika program disimpan atau disebut dengan flash memory yang berukuran 1024x14 artinya lebar data dalam flash memori adalah 14 bit dan menempati 1024 lokasi sehingga jika dalam satu kata atau lebar data 14 bit maka dalam flash memori 1k lebar data yang beralamat dari 0000h-03FFh sebagai memori program, memiliki 13 buah I/O lebih tepatnya 5 pada port A dan 8 pada port B, mempunyai kemampuan mode sleep sehingga dapat menghemat daya, mempunyai fuse untuk kode pengaman, mempunyai range tegangan operasional sebesar 2.0 V sampai dengan 5.5 V dan juga memiliki timer 8 bit dengan prescaler 8 bit, mempunyai WDT (watch dog timer) dengan osilator internal, memiliki 35 intruksi dan lain lain. Tabel 4.3 Daftar pin-pin pada PIC16F84 beserta fungsinya No. Pin Nama Pin Deskripsi 1 RA2 Pin kedua I/O Port A 2 RA3 Pin ketiga I/O Port A 3 RA 4 / TOCKI I/O Port A, input clock eksternal 4 MCLR / Vpp Input Reset, tegangan Vpp untuk pemrograman 5 Vss Ground, 0 V 6 RB0 Pin ke-nol I/O Port B 7 RB1 Pin pertama I/O Port B 8 RB2 Pin kedua I/O Port B
65 9 RB3 Pin ketiga I/O Port B 10 RB4 Pin keempat I/O Port B 11 RB5 Pin kelima I/O Port B 12 RB6 Pin keenam I/O Port B, jalur clock pada mode pemrograman 13 RB7 Pin ketujuh I/O Port B, jalur data pada mode pemrograman 14 Vdd Pin untuk sumber tegangan positif (+5V) 15 OSC2 Pin osilator 16 OSC1 Pin osilator 17 RA0 Pin ke-nol Port A 18 RA1 Pin pertama I/O Port A Untuk memasukkan atau menulis program mikrokontroller PIC tersebut dapat menggunakan programmer atau downloader, dari beberapa jenis tipe programmer atau downloader PIC adalah dapat menggunakan serial port yang mempunyai nama rangkaian propic 2 dimana rangkaian tersebut sudah menjadi downloader bagi mikrokontroller PIC. Namun pada PIC harus diisi dengan bilangan heksadesimal dengan menggunakan software MPLAB buatan dari microchip itu sendiri yang berbahasa assembly yang nantinya diterjemahkan terlebih dahulu ke bahasa mesin atau bilangan heksadesimal karena mikrokontroler tidak mengerti perintah dari bahasa assembly, setelah menulis bahasa assembly-nya tidak langsung menjadi file .hex namun menjadi file .asm terlebih dahulu, untuk menjadi file .hex maka file .asm di-compile terlebih dahulu, setelah itu file .hex tersebut diisi pada PIC 16F84A menggunakan software winpic800 sebagai programmer-nya yang terhubung dengan downloader serial port dengan rangkaian propic2 tersebut maka PIC tersebut sudah dapat berfungsi dengan program yang telah ditulis.
66 Gambar 4.8 Blok diagram PIC16F84 Sejarah dan Perkembangan ARM Arsitektur ARM merupakan arsitektur prosesor 32-bit RISC yang dikembangkan oleh ARM Limited. Dikenal sebagai Advanced RISC Machine dimana sebelumnya dikenal sebagai Acorn RISC Machine. Pada awalnya merupakan prosesor desktop yang sekarang didominasi oleh keluarga x86. Namun desain yang sederhana membuat prosesor ARM cocok untuk aplikasi berdaya rendah. Hal ini membuat prosesor ARM mendominasi pasar mobile electronic dan embedded system dimana membutuhkan daya dan harga yang rendah. Proyek Acorn RISC Machine resmi dimulai pada Oktober 1983. VLSI Technology, Inc dipilih sebagai mitra dalam memproduksi chip silikon dimana sebelumnya telah memproduksi ROM dan custom chip sebelumnya. Proses desain dipimpin oleh Wilson dan Furber, dengan tujuan utama latensi rendah (low-latency) pada penanganan input/output (interupsi) seperti pada prosesor MOS Technology 6502. Arsitektur 6502 memberikan pengembang mesin yang cepat dalam pengaksesan memori tanpa harus menggunakan perangkat direct access memory yang mahal. VLSI memproduksi chip ARM pertama kali pada 26 4.5 Mikrokontroler ARM (Advanced RISC Machine)
67 April 1985 yang berhasil bekerja dan dikenal sebagai ARM1. Dan disusul dengan ARM2 yang diproduksi pada tahun berikutnya. Pengaplikasian prosesor ARM pertama kali adalah prosesor kedua dari BBC Micro, untuk simulasi dalam pengembangan chip pendukung (VIDC, IOC, MEMC) dan untuk mempercepat penggunaan perangkat lunak CAD dalam pengembangan ARM2. Wilson menulis BBC Basic dalam bahasa assembly ARM, dimana kode sangat padat sehingga ARM BBC Basic sangat cocok untuk setiap emulator ARM. ARM2 mempunyai lebar bus sebesar 32-bit, 26-bit (64 Mbyte) alamat memory dan 16 buah register 32-bit. Program code harus ada dalam 64 Mbyte pertama dari memory, sebagaimana program counter dibatasi pada 26-bit karena 6-bit atas pada register 32-bit digunakan sebagai status flag. Kemungkinan besar ARM2 merupakan prosesor 32-bit paling sederhana di dunia dengan hanya 30.000 transistor bila dibandingkan dengan Motorola 68000 dengan 70.000 transistor. Kesederhanaan ini diperoleh karena ARM tidak mempunyai microcode yang mencakup seperempat hingga sepertiga transistor pada Motorola 68000. Selain itu ARM pada saat itu tidak memiliki cache memory. Hal ini membuat ARM sebagai prosesor dengan konsumsi daya rendah namun performansi yang lebih baik dari pada Intel 80286. Penerusnya yaitu ARM3 mempunyai 4 kByte cache yang meningkatkan performansi. Pada akhir 1980-an, Apple Computer dan VLSI Technology memulai kerja sama dengan Acorn untuk prosesor ARM berikutnya. Kerjasama ini sangat penting hingga Acorn melepas tim tersebut sebagai perusahaan baru bernama Advanced RISC Machines Ltd. pada tahun 1990. Sehingga seringkali ARM disebut sebagai Advanced RISC Machine di samping Acorn RISC Machine. Dan pada tahun 1998 Advanced RISC Machines menjadi ARM Ltd. Hasil kerja sama Apple-ARM menghasilkan ARM6 pada awal tahun 1992. Apple menggunakan ARM6 (ARM 610) sebagai prosesor pada PDA Apple Newton dan pada tahun 1994 Acorn menggunakan ARM6 pada komputer PC RISC. Pada frekuensi 233 MHz, prosesor ini hanya mengonsumsi daya sebesar 1 Watt dan versi berikutnya lebih kecil dari itu. Inti prosesor ARM tidak mengalami perubahan ukuran yang signifikan. Pada ARM2 terdapat 30.000 transistor sedangkan pada ARM6 bertambah hingga 35.000 transistor saja. ARM Ltd. hanya menjual IP (Intelectual Property) core dimana perusahaan lain dapat memproduksi mikrokontroller dan prosesor berdasarkan rancangan ARM.
68 Gambar 4.9 Mikrokontroler ARM Arsitektur ARM Seri arsitektur ARM terbaru terdiri dari 3 lini kelas penggunaan yaitu: a. ARM CORTEX A untuk prosesor aplikasi b. ARM CORTEX R untuk prosesor real time c. ARM CORTEX M untuk prosesor mikrokontroler a. ARM CORTEX A Cortex-A series merupakan prosesor yang menyediakan solusi untuk perangkat yang menggunakan platform sistem operasi canggih yang bervariasi mulai dari perangkat yang berbiaya murah seperti smartphone, digital TV STB, sampai solusi enterprises seperti jaringan, printer dan server. Cortex-A itu sendiri memiliki beberapa jenis, yaitu Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A12, dan Cortex-A15. Masing-masing memiliki kelebihan dan tujuannya sendiri. Keunggulan ARM Cortex A adalah: 1. Performa yang bagus, serta efisien. Digunakan mulai dari single to multi core, dengan perangkat yang saling terhubung. 2. Fleksibel. Diperuntukkan untuk tingkat premium, mid-range, dan entry level. 3. Menjadi acuan kompatibilitas dalam pembuatan perangkat lunak dan perangkat keras. Aplikasi ARM Cortex A, yaitu: 1. Smartphone 2. Otomotif dan ADAS system 3. Server dan Networking 4. Robotik 5. Penerimaan satelit, dll. b. ARM CORTEX R Prosesor real-time Arm Cortex-R menawarkan solusi komputasi berkinerja tinggi untuk sistem embedded, ARM Cortex R memiliki kehandalan tinggi, kesiapan tinggi dapat mentolerir gangguan-gangguan kecil, serta real time respon. Prosesor Cortex-R digunakan pada produk dimana persyaratan
69 kinerja dan tenggat waktu harus selalu dipenuhi. Selain itu, prosesor Cortex-R digunakan dalam sistem elektronik yang harus aman secara fungsional, untuk menghindari situasi berbahaya, misalnya dalam aplikasi medis atau sistem otonom. Cortex-R itu sendiri memiliki beberapa jenis, yaitu : Cortex-R4, CortexR5, Cortex-R52, Cortex-R7 dan Cortex-R8. Keunggulan ARM CORTEX R, yaitu: 1. Memiliki Performa paling tinggi dari seri lain 2. Kehandalan tinggi 3. Real time Operasi 4. Hemat biaya Aplikasi ARM Cortex R, yaitu: 1. Kamera 2. Sistem industri 3. Sistem otomotif 4. Mobile headset 5. Sistem penyimpanan c. ARM CORTEX M Cortex-M adalah jajaran prosesor terukur, hemat energi dan mudah digunakan, serta memenuhi kebutuhan aplikasi embedded system. Cortex M adalah prosesor yang didukung oleh teknologi nomer satu dunia dan telah dikirim lebih dari puluhan miliar perangkat. Prosesor Cortex-M membantu para pengembang menghadirkan lebih banyak fitur, dengan waktu yang lebih singkat, dengan biaya yang lebih rendah, konektivitas serbaguna, penggunaan kembali kode komprehensif, keamanan standar dan efisiensi energi yang mutakhir. Keluarga ARM Cortex-M adalah inti mikro prosesor ARM yang didesain untuk digunakan dalam mikrokontroller, ASIC, FPGA, ASSP, dan SoC. Inti Cortex-M biasanya digunakan sebagai pengendali mikro ter-dedikasi, namun juga sering "tersembunyi" dibalik SoC sebagai kontroler pengatur tenaga, pengendali I/O, pengendali sistem, pengendali layar sentuh, pengendali smart battery, dan kontroler sensor. Cortex-M itu sendiri memiliki beberapa jenis, yaitu: Cortex-M0, Cortex-M0+, Cortex-M23, Cortex-M3, Cortex-M33, Cortex-M4 dan Cortex-M7. Keunggulan ARM CORTEX M, yaitu: 1. High performance dan efisiensi tinggi 2. Mudah diprogram 3. Pengolahan data yang cepat 4. Hemat daya 5. Mendukung transfer data 8-bit, 16-bit dan 32-bit. Aplikasi ARM Cortex M, yaitu:
70 1. Sistem sensor 2. Perangkat pintar 3. Otomotif 4. Instrumen medis 5. Smart city 6. Industrial Kelebihan dan Kekurangan Prosesor ARM Prosesor ARM memiliki kelebihan dibanding dengan prosesor lain, yaitu: 1. Harga yang murah 2. Performa yang bagus 3. Hemat daya 4. Paling banyak dukungan dari developer 5. Mudah diprogram Adapun kekurangannya, yaitu: 1. loading lebih lama dibanding prosesor lain, karena memiliki chache yang kecil; 2. didesain untuk kompeksitas yang rendah; 3. mudah blank jika diaplikasikan pada kompleksitas yang tinggi; 4. tidak bisa menjalankan operating system x86. ARM adalah arsitektur prosesor 32 bit yang dibuat oleh ARM Holding dan dilisensikan untuk diproduksi oleh berbagai vendor di dunia termasuk AMD, Atmel, Freescale, Nuvoton, Nvidia, NXP, Samsung, ST Micro, dan TI. Prosesor ARM digunakan pada perangkat smartphone, tablet, dan embedded system. Kini ARM menjadi arsitektur prosesor yang paling banyak diproduksi di dunia. Mikrokontroler ARM STM32F4-series (Cortex-M4) STM32 adalah mikrokontroler buatan STMicroelectronics menggunakan arsitektur 32 Bit RISC berdasarkan ARM core buatan ARM Holdings. STM32 terbagi dalam beberapa jenis core, seperti Cortex-M4F, Cortex-M3, CortexM0+ dan Cortex-M0. Tidak seperti AVR dan PIC yang tersedia dalam package DIP dan SMD, semua variant STM32 hanya tersedia dalam package SMD (TQFP, QFP, FQFP, LQFP). Sehingga cukup menyulitkan bagi pengembang yang ingin membuat rangkaian menggunakan breadboard.
71 Gambar 4.10 ARM STM32F4 Discovery Gambar 4.11 Blok Diagram ARM STM32F4 Discovery STM32 terbagi menjadi beberapa varian sebagai berikut: 1. STM32 L1-series (Cortex-M3) 2. STM32 F0-series (Cortex-M0) 3. STM32 F1-series (Cortex-M3) 4. STM32 F2-series (Cortex-M3) 5. STM32 F4-series (Cortex-M4) 6. STM32 F3-series (Cortex-M4)
72 Varian yang sering digunakan di dalam proyek opensource dan edukasi adalah STM32 F1, STM32 F3 dan STM32 F4. Beberapa seri mikrokontroler dari keluarga STM32 F4-series ada STM32F407VGT6 dan STM32F405RGT6. STM32 F4-series adalah kelompok pertama dari STM32 mikrokontroler berdasarkan inti ARM Cortex-M4F. F4-series juga merupakan seri STM32 yang pertama yang memiliki DSP dan instruksi floating point. F4 merupakan seri yang kompatibel dengan STM32 F2-seri apabila komunikasi secara pin-to-pin dan memiliki kecepatan clock yang lebih tinggi, 64K CCM RAM statis, full duplex I²S, meningkatkan real-time clock, dan memiliki ADC yang lebih cepat. STM32F4 Discovery merupakan development board dengan mikrokontroler ARM Cortex-M4 yang memiliki tingkat kecepatan clock sampai dengan 168 MHz, mampu mengeksekusi perintah sampai dengan 210 MIPS (Million Instruction per Second). Mikrokontroller ini memiliki 1 MByte Flash PEROM (Flash Programmable and Eraseble Read Only Memory), 192 Kbyte SRAM, 100 pin, 5 buah port I/O yang mana setiap pin dalam masing-masing port dapat diprogram tersendiri, memiliki 12 buah timer/counter 16 bit dan dua buah timer/counter 32 bit. 1. Mikrokontroler merupakan sebuah komputer kecil berbentuk IC yang di dalamnya terdapat CPU, memori dan port I/O serta komponen pendukung lainnya yang dapat digunakan sebagai alat pengontrol. 2. Mikrokontroler MCS51 buatan Atmel terdiri dari dua versi, yaitu versi 20 pin dan versi 40 pin. 3. Secara umum ada 4 kelas dari AVR, setiap kelas memilik fungsi, memori, dan peripheral yang berbeda. 4 kelas tersebut adalah ATTiny, AT90Sxx, ATMega, dan AT86RFxx. 4. Mikrokontroler PIC 16F84A menggunakan arsitektur Harvard Machine dimana memori data dan memori program terletak terpisah sehingga dapat menghindari terjadinya manipulasi antara data dan program. 5. Seri arsitektur ARM terbaru terdiri dari 3 lini kelas penggunaan yaitu: a) ARM CORTEX A untuk prosesor aplikasi b) ARM CORTEX R untuk prosesor real time c) ARM CORTEX M untuk prosesor mikrokontroler 1. Sebutkan jenis-jenis mikrokontroler! 2. Jelaskan fungsi masing-masing kaki pada IC MCS51! 3. Berikanlah daftar seri mikrokontroler AVR buatan Atmel! 4. Sebutkan daftar pin-pin pada PIC16F84 beserta fungsinya! 5. Berikan contoh penggunaan IC ARM! Rangkuman Latihan
73 ▪ Pendahuluan ▪ Arduino Uno ▪ Arduino Due ▪ Arduino Leonardo ▪ Arduino 101 ▪ Arduino Pro Micro ▪ Arduino Mega 2560 Rev3 ▪ Arduino Esplora ▪ Arduino Yun Setelah mempelajari bab ini, mahasiswa diharapkan mampu memahami berbagai macam Arduino beserta spesifikasinya. Arduino is an open-source electronics platform based on easy-to-use hardware and software. Arduino boards are able to read inputs - light on a sensor, a finger on a button, or a Twitter message - and turn it into an output - activating a motor, turning on an LED, publishing something online (Arduino, 2018: 1). Arduino merupakan platform elektronik yang bersifat open-source (dapat diakses oleh siapa saja), terdiri dari hardware dan software yang mudah digunakan. Board Arduino dapat membaca nilai input seperti cahaya dari sensor dan mendeteksi jari pada tombol lalu dapat mengubahnya menjadi output yang dapat mengaktifkan motor atau menyalakan LED. Menurut Banzi (2011: 1) Arduino adalah sebuah perangkat komputasi fisik yang dapat diakses oleh siapa saja dengan papan I/O sederhana yang dikembangkan dengan mengimplementasikan suatu bahasa pemrosesan. Berdasarkan penjelasan-penjelasan tersebut dapat disimpulkan jika Arduino adalah sebuah platform mikrokontroler bersifat open-source yang terdiri dari rangkaian elektronika dan I/O sederhana yang mudah digunakan dan diprogram untuk berbagai keperluan. Arduino memiliki perangkat programmer atau downloader yang sudah terintegrasi pada board Arduino itu sendiri. Sehingga tidak lagi memerlukan BAB V. ARDUINO Pokok Bahasan Tujuan Pembelajaran 5.1 Pendahuluan
74 perangkat keras tambahan untuk memuat dan meng-upload program pada board Arduino. Selain itu Arduino juga memiliki perangkat lunak atau software buatannya sendiri yang dinamakan Arduino Integrated Development Environment (IDE). Arduino IDE merupakan software yang dikembangkan untuk menulis program, meng-compile program, meng-upload program hasil kompilasi dan menjalankan program secara terminal serial. Arduino IDE dapat dijalankan di komputer dengan berbagai macam platform karena software ini didukung atau berbasis Java. Bahasa pemrograman yang dipakai dalam Arduino bukan bahasa assembler yang relatif sulit, tetapi bahasa C/C++ yang telah disederhanakan dengan bantuan pustaka-pustaka (libraries) yang terdapat pada Arduino IDE. Meskipun begitu, source program Arduino masih dapat digabungkan dengan bahasa assembly. Terdapat satu program khusus yang berperan penting pada board Arduino, program ini dinamakan bootloader. Bootloader merupakan program berukuran kecil yang akan dijalankan pada saat board Arduino diberi catu daya, berfungsi untuk memonitor aktivitas yang dilakukan Arduino IDE. Jika dalam Arduino IDE terdapat file hasil kompilasi yang akan di-upload, bootloader secara otomatis menyambutnya untuk disimpan dalam memori program. Jika pada saat awal mikrokontroler bekerja, bootloader akan mengeksekusi program aplikasi yang telah di-upload sebelumnya. Jika Arduino IDE hendak meng-upload program baru, bootloader seketika menghentikan eksekusi program berganti menerima data program untuk selanjutnya diprogramkan dalam memori program mikrokontroler. Hubungan komunikasi yang digunakan antara Arduino IDE dengan board Arduino adalah komunikasi serial dengan protokol RS232 (USB to Serial) sehingga lebih praktis dalam penggunaannya. Hardware dan software Arduino dirancang bagi para seniman, desainer, pehobi, hacker, pemula dan siapa pun yang tertarik untuk menciptakan objek interaktif dan pengembangan lingkungan. Arduino mampu berinteraksi dengan tombol, LED, motor, speaker, GPS, kamera, internet, smart phone bahkan dengan televisi. Fleksibilitas ini dihasilkan dari kombinasi ketersediaan software Arduino yang gratis, harga board Arduino yang murah, dan keduanya yang mudah untuk dipelajari. Menggunakan Arduino sangat membantu dalam membuat prototype ataupun dalam pembuatan suatu proyek karena I/O pada Arduino dapat digabungkan dengan modul elektronik lain, sehingga proses perakitan bisa lebih efisien. Seperti hanya mikrokontroler yang banyak jenisnya, Arduino lahir dan terus berkembang lalu muncul dengan berbagai jenis, di antaranya adalah Arduino Uno, Arduino Nano, Arduino Mega, Arduino Fio, Arduino Lilypad, Arduino Leonardo, Arduino Due dan Arduino Mini.
75 Arduino Uno merupakan mikrokontroler dari keluarga Arduino yang menggunakan IC kontroler ATMEL Atmega328P. Terdiri dari 14 pin I/O digital di mana terdapat 6 pin yang dapat digunakan sebagai pin output analog atau Pulse Width Modulation (PWM), 6 pin input analog, clock speed 16 MHz, port USB (Universal Serial Bus) to Serial, jack power supply, header ICSP (In Circuit Serial Programmer) dan tombol reset. Tabel 5.1 Spesifikasi hardware Arduino Uno IC Mikrokontroler Atmega328P Tegangan Operasi 5 Volt Tegangan Input 7-12 Volt Pin PWM 6 pin (D3, D5, D6, D9, D10 dan D11) Pin I/O Digital 14 pin (D0 ... D13) Pin Input Analog 6 pin ( A0 ... A5) Clock Speed 16 MHz Batas Arus pin I/O 20 mA Batas Arus pin 3,3 V 50 mA Flash Memory 32 KB (0,5 KB digunakan untuk bootloader) EEPROM 1 KB SRAM 2 KB Terdapat tiga jenis memori yang digunakan pada Arduino Uno, yaitu flash memory, Electrically Erasable Programmable Read Only Memory (EEPROM) dan Static Random Access Memory (SRAM). 1. Flash memory merupakan memori untuk menyimpan program yang telah dibuat ke dalam board Arduino. 2. EEPROM merupakan memori untuk menyimpan data programmer Arduino. Data tidak akan hilang meskipun Arduino dimatikan. 3. SRAM merupakan memori yang digunakan untuk manipulasi data variabel-variabel yang dibuat pada program. Data yang tersimpan pada memori ini akan hilang ketika Arduino di-reset atau dimatikan. Pada sistem catu daya (power supply) Arduino Uno memiliki dua koneksi yang dapat digunakan, yaitu melalui USB komputer dan melalui jack power supply. Tegangan yang digunakan pada Arduino adalah tegangan searah atau DC yang berkisar dari 7 – 12 Volt. Apabila tegangan supply kurang dari 7 Volt, maka dapat membuat rangkaian dalam board Arduino menjadi kurang stabil. 5.2 Arduino Uno
76 Begitu juga apabila tegangan supply lebih dari 12 Volt, maka Arduino akan menjadi cepat panas dan dapat cepat merusak board Arduino. Bagian-bagian Arduino dapat dilihat pada gambar 5.1. Sumber: Novianto (2017: 153) Gambar 5.1 Bagian-bagian Arduino Uno Keterangan: 1. Tombol Reset, berfungsi untuk me-reset Arduino sehingga setiap data dan program yang pernah di-upload ke dalamnya akan dihapus dan dimuat ulang. 2. Pin ICSP, merupakan deretan pin yang dapat digunakan untuk memprogram Arduino tanpa melalui bootloader Arduino. 3. Pin AREF, merupakan pin yang digunakan sebagai referensi input tegangan analog. 4. Pin GND (Ground), merupakan pin yang terhubung dengan ground tegangan. 5. Pin I/O Digital, merupakan pin yang dapat digunakan sebagai port input atau port output sesuai dengan program yang dibuat. Arus yang mengalir pada setiap pin memiliki batas maksimal 40 mA dengan nilai hambatan resistor pull-up 20 ohm hingga 50 ohm. Selain sebagai port input atau port output terdapat beberapa pin yang memiliki fungsi lain, di antaranya. a. Pin D0 (RX) dapat digunakan untuk menerima serial data TTL (Transistor-Transistor Logic). Sedangkan pin D1 (TX) digunakan untuk mengirimkan serial data TTL. b. Pin D2 dan D3 dapat digunakan sebagai pin interupsi eksternal. c. Pin D3, D5, D6, D9, D10 dan D11 dapat digunakan sebagai output PWM 8 bit. d. Pin D10 (SS), D11 (MOSI), D12 (MISO) dan D13 (SCK) dapat digunakan untuk proses komunikasi berbasis SPI (Serial Peripheral Interface).
77 6. Port USB, digunakan sebagai sarana komunikasi serial untuk memasukkan program ke dalam board Arduino, sekaligus dapat digunakan juga sebagai catu daya Arduino. 7. Jack power supply, digunakan sebagai sumber tegangan DC untuk Arduino dengan rentang tegangan 7 – 12 Volt. 8. Pin power, berfungsi untuk menghasilkan tegangan keluaran yang dapat digunakan untuk menyuplai tegangan modul sensor, motor servo, LED, relay dan sebagainya. Adapun pin power yang terdapat pada Arduino adalah: a. Pin Vin, digunakan sebagai sumber tegangan eksternal Arduino untuk menyuplai tegangan pada peralatan yang akan dikontrol. b. Pin 5V, merupakan pin yang dapat menghasilkan tegangan sebesar 5 Volt. c. Pin 3V3, merupakan pin yang dapat menghasilkan tegangan sebesar 3,3 Volt. d. Pin GND, merupakan pin untuk jalur sambungan grounding Arduino. 9. Pin Analog, terdiri dari enam pin mulai dari A0 – A5 yang dapat digunakan untuk mendeteksi dan mengubah nilai masukan dari tegangan yang dihasilkan oleh sensor analog. Berbeda dengan Arduino lainnya, Arduino Due tidak menggunakan ATMEGA, melainkan dengan chip yang lebih tinggi ARM Cortex-M3. Dengan demikian, Arduino Due adalah Arduino Development Board pertama yang didasarkan pada mikrokontroler ARM 32-bit. Arduino Due memiliki 54 I/O pin digital dan 12 pin input analog (12 di antaranya dapat digunakan sebagai output PWM), 12 input analog, 4 UART (port serial perangkat keras), clock 84 MHz, koneksi USB OTG yang mampu, 2 DAC (digital to analog converter), 2 TWI, power input, header SPI, header JTAG, tombol reset dan tombol hapus. Untuk pemrograman menggunakan Micro USB. Tidak seperti kebanyakan board Arduino, board Arduino Due berjalan pada 3.3V. Tegangan maksimum yang dapat ditoleransi I/O pin adalah 3.3V. Menggunakan tegangan yang lebih tinggi dari 3.3V ke pin I/O dapat merusak board. 5.3 Arduino Due
78 Gambar 5.2 Arduino Due Board berisi segala sesuatu yang dibutuhkan untuk mendukung mikrokontroler, cukup hubungkan ke komputer dengan kabel micro-USB atau nyalakan dengan adaptor AC-ke-DC atau baterai untuk memulai. Due kompatibel dengan semua perisai Arduino yang bekerja di 3.3V dan sesuai dengan pinout Arduino 1.0. Due mengikuti 1.0 pinout: 1. TWI: pin SDA dan SCL yang berada di dekat pin AREF. 2. IOREF: memungkinkan perisai terlampir dengan konfigurasi yang tepat untuk menyesuaikan voltase yang disediakan oleh board. Hal ini memungkinkan kompatibilitas perisai dengan board 3.3V seperti board berbasis Due dan AVR yang beroperasi pada 5V. 3. Pin yang tidak terhubung, disediakan untuk penggunaan masa depan. Spesifikasi Arduino Due: ▪ Mikrokontroler AT91SAM3X8E ▪ Tegangan operasi 3.3V ▪ Tegangan input yang direkomendasikan 7-12V ▪ Batas tegangan output 6-16V ▪ Digital I/O Pin 54 (12 output PWM) ▪ Input Analog Pin 12 ▪ Output Analog Pin 2 (DAC) ▪ Total Arus Output DC pada semua jalur I/O 130 mA ▪ Arus DC untuk 3.3V Pin 800 mA ▪ Arus DC untuk 5V Pin 800 mA ▪ Flash Memory 512 KB ▪ SRAM 96 KB (64KB dan 32KB) ▪ Kecepatan Clock 84 MHz ▪ Panjang 101.52 mm ▪ Lebar 53.3 mm ▪ Berat 36 g
79 Arduino Leonardo sangat mirip dengan Arduino Uno. Dari mulai jumlah pin I/O digital dan pin input Analognya sama. Hanya pada Leonardo menggunakan Micro USB untuk pemogramannya. Meskipun secara fisik hampir mirip, Arduino Leonardo adalah papan mikrokontroler yang memakai IC ATmega32u4 sebagai kontrolernya berbeda dengan Arduino Uno yang memakai IC ATmega328p. Selain itu arduino Leonardo ini memiliki 20 pin input / output digital (dimana 7 dapat digunakan sebagai output PWM dan 12 sebagai input analog), osilator kristal 16 MHz, input koneksi micro USB tipe b, colokan DC 9V, header ICSP, dan tombol reset. Berbeda dengan tipe Arduino yang lainnya dengan tipe Arduino Leonardo yang memakai IC ATmega32u4 ini anda dapat menggunakannya sebagai koneksi Mouse ataupun Keyboard di komputer anda, tentu saja anda harus membuat kodenya dan hardware tombol tambahannya terlebih dahulu sebelum anda gunakan sebagai mouse ataupun keyboard external. Untuk lebih lanjut tentang Arduino Leonardo anda dapat mengunjungi ini Spesifikasi Arduino Leonardo. Gambar 5.3 Arduino Leonardo Spesifikasi Arduino Leonardo: ▪ Mikrokontroler ATmega32u4 ▪ Tegangan operasi 5V ▪ Tegangan Input (rekomendasi) 7-12V ▪ Tegangan Input (batas) 6-20V ▪ Digital I/O Pin 20 ▪ PWM Channel 7 ▪ Analog Input Channel 12 ▪ Arus DC Current I/O Pin 40 mA ▪ Arus DC untuk 3.3V Pin 50 mA ▪ Flash Memory 32 KB (ATmega32u4) dimana 4 KB digunakan bootloader ▪ SRAM 2.5 KB (ATmega32u4) 5.4 Arduino Leonardo
80 ▪ EEPROM 1 KB (ATmega32u4) ▪ Clock 16 MHz ▪ Panjang 68.6 mm ▪ Lebar 53.3 mm ▪ Berat 20 g Arduino 101 adalah salah satu jenis Arduino yang spesial. Dilihat dari segi fungsinya yang banyak dan komponen pendukungnya pun sudah terintegrasi pada papannya sendiri. Arduino 101 bukanlah mikrokontroler biasa, Arduino 101 ini merupakan gabungan antara Mikroprosessor dan Mikrokontroler, dengan menggunakan Chip Intel® Curie™ yang mempunyai dua inti (core) x86 (Quark) dan 32-bit ARC dengan clock 32MHz yang berfungsi sebagai mikroprosesor sekaligus mikrokontroler. Arduino 101 sangatlah lengkap dibandingkan dengan arduino jenis lainnya, disamping itu Arduino 101 memiliki Bluetooth LE yang dapat langsung digunakan untuk mengoneksikan Arduino 101 dengan komputer ataupun gadget. Arduino 101 juga dilengkapi akselerometer enam arah dan gyro yang sudah ada pada board-nya. selain itu Arduino 101 juga dilengkapi dengan 14 pin I/O digital (dimana 4 dapat digunakan sebagai output PWM), 6 input analog, konektor USB tipe b untuk komunikasi serial dan sketsa upload, colokan DC 9V, header ICSP dengan sinyal SPI dan pin khusus I2C. Board operasi tegangan dan I/O adalah 3.3V berbeda dengan tipe arduino pada umumnya yang menggunakan 5V sebagai operasi tegangannya dan semua pin Arduino 101 sudah dilindungi terhadap tegangan lebih 5V. Gambar 5.4 Arduino 101 Spesifikasi Arduino 101: a. Arduino Mikroprosesor ▪ Processor Atheros AR9331 ▪ Arsitektur MIPS 5.5 Arduino 101
81 ▪ Tegangan operasi 3.3V ▪ Flash Memory 16 MB ▪ RAM 64 MB DDR2 ▪ Clock 400 MHz ▪ WiFi 802.11 b/g/n 2.4 GHz ▪ Ethernet 802.3 10/100 Mbit/s ▪ USB 2.0 Host b. Arduino Microcontroller ▪ Microcontroller ATmega32u4 ▪ Arsitektur AVR ▪ Tegangan operasi 5V ▪ SRAM 2.5 KB ▪ Clock 16 MHz ▪ Analog I/O Pins 12 ▪ EEPROM 1 KB ▪ Arus DC per I/O Pin 40 mA c. Spesifikasi Umum ▪ Tegangan Input 5 V ▪ Digital I/O Pins 20 ▪ PWM Output 7 ▪ Konsumsi daya 130 mA ▪ Ukuran PCB 42 x 51 mm ▪ GPIO ▪ Berat 0.012 Kg Arduino Micro, seperti namanya micro yaitu arduino yang sangat kecil dengan ukuran panjang sekitar 4.5 cm dan lebar sekitar 2.1 cm. Arduino ini mengadopsi chip mikrokontroler ATmega32U4 yang sudah lengkap dengan fungsi USB komunikasi yang dapat dikenali sebagai keyboard ataupun mouse apabila dikoneksikan ke laptop, arduino micro ini hampir mirip dengan arduino leonardo hanya dari segi ukurannya saja yang berbeda. Arduino micro ini biasa digunakan untuk project dengan ukuran kecil, seperti mini robot line follower, track head mouse dan lainnya. 5.6 Arduino Pro Micro
82 Gambar 5.5 Arduino Pro Micro Leonardo/ATmega32u4 Spesifikasi Arduino Pro Micro: ▪ ATmega32U4 ▪ Tegangan 5V ▪ Clock 16MHz ▪ Didukung Arduino IDE v1.0.1 ▪ Konektor On-Board micro-USB untuk pemrograman ▪ 4 x 10-bit ADC pin ▪ 12 x Digital I/Os (5 sebagai PWM) ▪ Serial koneksi perangkat keras Rx dan Tx ▪ Ukuran: 3,3 x 1,8 sm Mirip dengan Arduino Uno, sama-sama menggunakan USB tipe A ke B untuk pemogramannya. Tetapi Arduino Mega, menggunakan chip yang lebih tinggi ATMEGA2560. Dan tentu saja untuk Pin I/O Digital dan pin input Analognya lebih banyak dari Uno. Arduino Mega 2560 Rev3, sesuai dengan namanya Mega yang berarti besar, arduino Mega 2560 ini memiliki ukuran yang paling besar dari jenis yang lainnya, Arduino Mega 2560 mengadopsi chip miktrokontroller ATmega2560 yang mempunyai 54 pin input/output (dimana 15 pin diantaranya dapat digunakan sebagai output PWM), 16 analog input, 4 UARTs (serial port), 16 MHz crystal, Koneksi USB, Colokan Power 9v, dan ICSP pin. Arduino Mega 2560 ini bisa sering digunakan pada project skala besar, seperti Print 3d dan project robot lainnya yang membutuhkan banyak serial pin input/output. Untuk lebih lanjut tentang Arduino Mega 2560 Rev3 anda dapat mengunjungi ini Spesifikasi Arduino Mega 2560 Rev3. 5.7 Arduino Mega 2560 Rev3
83 Gambar 5.6 Arduino Mega 2560 Rev3 Spesifikasi: Microcontroller ATmega2560 Tegangan 5V Tegangan Input (recommended) 7-12V Tegangan Input (limits) 6-20V Digital I/O Pins 54 (pin 15 digunakam output PWM) Analog Input Pins 16 Arus DC per I/O Pin 40 mA Arus DC bagi 3.3V Pin 50 mA Flash Memory 256 KB dimana 8 KB digunakan oleh bootloader SRAM 8 KB EEPROM 4 KB Kecepatan Clock 16 MHz Arduino Mega 2560 sebaiknya dipakai jika perlu mengendalikan banyak alat/sensor/aktuator. Atau apabila perlu menggunakan lebih dari 1 modul serial, seperti modul GSM atau GPS misalnya, secara bersamaan. Arduino Mega 2560 mempunyai 4 port serial, lebih banyak dari Arduino Uno yang hanya punya 1 port serial. Atau apabila memerlukan ukuran Flash Memory yang lebih besar karena program yang dibuat sudah cukup tidak cukup dengan 32KB flash memory yang ada di Arduino Uno. Flash Memory sebesar 256KB yang ada di Arduino Mega 2560 rasanya sudah cukup besar untuk kebanyakan program di microcontroller. Cara penggunaan Arduino Mega 2560 ini sama persis dengan penggunaan Arduino Uno. Software IDE yang digunakan juga sama, hanya tinggal memilih board Arduino Mega 2560 pada pilihan board-nya. Contoh aplikasi yang menggunakan Arduino Mega 2560 cukup banyak, antara lain Robot Hexapod yang menggunakan 18 buah servo (Arduino Mega 2560 bisa meng-handle sampai dengan 48 servo), aplikasi penggunaan LCD Touch Shield 3.2″, 3D Printer dan masih banyak yang lain.
84 Pada tanggal 10 Desember 2012, Team Arduino memperkenalkan Arduino Esplora. Arduino Esplora adalah Microcontroller Arduino yang sudah dilengkapi dengan sensor dan joystick. Berbeda dengan board Arduino sebelumnya yang hanya berisi dengan microcontroller, Arduino Esplora melangkah lebih jauh lagi. Arduino Esplora terdiri dari microcontroller dan banyak sensor, antara lain: sensor suhu, sensor accelerometer dan sensor cahaya. Selain itu Arduino Esplora juga dilengkapi dengan tombol joystick, linier potentiometer, 4 push button, microphone dan LED RGB. Gambar 5.7 Arduino Esplora Gambar 5.8 Pin Out Arduino Esplora Arduino Esplora merupakan turunan dari Arduino Leonardo, sehingga mewarisi kemampuan untuk berfungsi sebagai mouse atau keyboard (USB Client device) seperti hal-nya Arduino Leonardo. Dengan adanya sensor dan joystick yang menyatu, Arduino Esplora dapat membuat difungsikan menjadi mouse atau 5.8 Arduino Esplora
85 keyboard yang lebih kompleks lagi. Ardunio Esplora sendiri baru mulai tersedia di pasaran mulai sejak 30 April 2013. Spesifikasi Arduino Esplora: ▪ Microcontroller ATmega32u4 ▪ Tegangan 5V ▪ Flash Memory 32 KB dimana 4 KB digunakan oleh bootloader ▪ SRAM 2.5 KB ▪ EEPROM 1 KB ▪ Clock Speed 16 MHz ▪ Lenght 164.04 mm ▪ Width 60 mm ▪ Weight 53 gr Arduino Yún adalah board mikrokontroler yang didasarkan pada ATmega32u4 dan Atheros AR9331. Prosesor Atheros mendukung distribusi Linux berbasis OpenWrt bernama Linino OS. Board memiliki dukungan Ethernet dan WiFi built-in, port USB-A, slot kartu micro-SD, 20 pin input / output digital (7 di antaranya dapat digunakan sebagai output PWM dan 12 sebagai input analog), kristal 16 MHz osilator, koneksi micro USB, header ICSP, dan 3 tombol reset. Gambar 5.9 Arduino Yún 1. Arduino merupakan platform elektronik yang bersifat open-source (dapat diakses oleh siapa saja), terdiri dari hardware dan software yang mudah digunakan. 2. Arduino Uno merupakan mikrokontroler dari keluarga Arduino yang menggunakan IC kontroler ATMEL Atmega328P. 5.9 Arduino Yún Rangkuman
86 3. Arduino Due tidak menggunakan ATMEGA, melainkan dengan chip yang lebih tinggi ARM Cortex-M3. 4. Arduino Leonardo sangat mirip dengan Arduino Uno. Dari mulai jumlah pin I/O digital dan pin input Analognya sama. Hanya pada Leonardo menggunakan Micro USB untuk pemogramannya. 5. Arduino 101 bukanlah mikrokontroler biasa, Arduino 101 ini merupakan gabungan antara Mikroprosessor dan Mikrokontroler, dengan menggunakan Chip Intel® Curie™ yang mempunyai dua inti (core) x86 (Quark) dan 32-bit ARC dengan clock 32MHz yang berfungsi sebagai mikroprosesor sekaligus mikrokontroler. 6. Arduino micro hampir mirip dengan arduino leonardo hanya dari segi ukurannya saja yang berbeda. 7. Arduino Mega menggunakan chip yang lebih tinggi ATMEGA2560 dan Pin I/O Digital dan pin input Analognya lebih banyak dari Uno. 8. Arduino Esplora terdiri dari microcontroller dan banyak sensor, antara lain: sensor suhu, sensor accelerometer dan sensor cahaya. Selain itu Arduino Esplora juga dilengkapi dengan tombol joystick, linier potentiometer, 4 push button, microphone dan LED RGB. 9. Arduino Yún adalah board mikrokontroler yang didasarkan pada ATmega32u4 dan Atheros AR9331. 1. Apa yang anda pahami mengenai Arduino ? 2. Sebutkan jenis-jenis Arduino ! 3. Apa kelebihan dalam penggunaan Arduino ? 4. Berikan contoh-contoh penerapan dari beberapa jenis Arduino yang anda ketahui ! 5. Hal apa saja yang perlu diperhatikan dalam pemilihan Arduino ? Latihan
87 ▪ Pendahuluan ▪ Sejarah Raspberry Pi ▪ Sistem Operasi Raspberry Pi ▪ Penggunaan Raspberry Pi ▪ Model-model Raspberry Pi ▪ Komponen Penyusun Raspberry Pi ▪ Raspberry Pi 3 Model B+ ▪ Raspberry Pi 4 Model B Setelah mempelajari bab ini, mahasiswa diharapkan mampu: ▪ Menjelaskan mengenai sejarah, sistem operasi serta penggunaan Raspberry Pi ▪ Menyebutkan komponen penyusun Raspberry Pi dan jenis-jenis Raspberry Pi Raspberry Pi atau yang biasanya disebut Raspi adalah single-board circuit (SBC) yang dibuat oleh Raspberry Pi Foundation. Raspberry Pi Foundation merupakan sebuah badan amal yang dibentuk untuk tujuan mengenalkan kembali keterampilan komputer tingkat rendah pada anak-anak di Inggris. Gambar 6.1 Logo Rasberry Pi Raspberry Pi merupakan komputer dengan ukuran kecil, hampir seukuran sebuah kartu kredit. Raspberry Pi dilengkapi dengan prosesor, RAM dan port hardware yang khas yang bisa ditemukan pada banyak komputer. Dengan ukuran yang bisa dibilang mini dengan spesifikasi terbatas, Raspberry Pi tidak sebagus PC desktop. Tetapi karena harganya yang terjangkau, maka dapat BAB VI. RASPBERRY PI Pokok Bahasan Tujuan Pembelajaran 6.1 Pendahuluan
88 dimodifikasi dengan mudah. Perangkat ini dapat digunakan untuk proyek elektronik dan dapat melakukan banyak hal layaknya PC desktop, seperti menjalankan program perkantoran untuk membuat spreadsheet, memutar musik, membuat dan meng-edit dokumen, menyimpan file, browsing internet bahkan memainkan permainan. Selain itu alat ini juga dapat memutar video beresolusi tinggi. Seperti yang sudah disebutkan sebelumnya, Raspberry Pi dikembangkan oleh Rasberry Pi Foundation yang dipelopori oleh sejumlah pengembang dan ahli komputer dari Universitas Cambridge, Inggris. Hal ini didasari oleh keinginan untuk mencetak programmer generasi baru. Seperti disebutkan dalam situs resmi Raspberry Pi Foundation, saat itu Eben Upton, Rob Mullins, Jack Lang, dan Alan Mycroft, dari Laboratorium Komputer Universitas Cambridge memiliki kekhawatiran melihat kian turunnya keahlian dan jumlah siswa yang hendak belajar ilmu komputer. Mereka lalu mendirikan Raspberry Pi Foundation bersama dengan Pete Lomas dan David Braben pada 2009. Tiga tahun berikut, Raspberry Pi Model B diproduksi secara massal. Peluncuran perdananya pada akhir Febuari 2012 dalam beberapa jam saja sudah terjual 100.000 unit. Pada Februari 2016, Raspberry Pi Foundation mengumumkan bahwa perangkat RasPi mereka telah terjual sebanyak 8 juta, hal ini menjadikannya sebagai perangkat paling laris di Inggris. Gambar 6.2 Rasberry Pi Sistem operasi yang digunakan untuk Raspberry Pi adalah Raspbian OS yang didasarkan dari Debian. Meskipun sistem operasi yang didukung adalah Raspbian, namun dapat juga menginstal sistem operasi lain seperti Ubuntu Core, Ubuntu MATE, Pirate OS, OSMC, RISC OS, Windows, dan banyak lagi. 6.2 Sejarah Raspberry Pi 6.3 Sistem Operasi Raspberry Pi
89 Raspberry Pi yang menggunakan aneka sistem operasi, seperti Raspbian dan OSMC bisa menjadi perangkat yang dapat digunakan untuk banyak hal seperti antara lain dimanfaatkan sebagai: 1. Komputer Desktop Mini Perkembangan Raspberry Pi kini sudah semakin baik dan canggih. Fitur dan penggunaannya dapat dimanfaatkan layaknya komputer desktop walaupun belum bisa seperti komputer desktop berbasis CPU Intel. Kemampuan Raspberry Pi generasi awal masih belum begitu baik. Raspberry Pi generasi awal hanya dilengkapi dengan RAM 256 MB lalu menjadi 512 MB serta CPU berinti tunggal (single core). Namun, masuknya Rapsberry Pi generasi 2 ke pasaran telah mengubah semuanya. Raspberry Pi 2 dilengkapi dengan CPU empat inti, RAM 1 GB, serta clock speed 900 MHz. Juga tersedia empat buah port USB. Penjelajahan web atau menyunting naskah dapat dilakukan di Raspberry Pi 2. Kecilnya ukuran dan rendahnya daya yang dipakainya merupakan daya tarik tersendiri bagi pengguna yang mementingkan kepraktisan, kecilnya penggunaan daya, serta kesenyapan. Raspberry Pi memang lebih senyap dibandingkan komputer desktop, karena RPi tidak memiliki bagian yang bergerak seperti kipas atau motor penggerak hard disk. 2. File Server Berbasis Samba, pemanfaatan aneka hard disk eksternal yang dihubungkan ke Raspberry Pi via port USB) untuk menjadi media penyimpan data. Dengan Raspberry Pi memungkinkan untuk berbagi file, dokumen, music atau foto-foto lain dimana saja dan kapan saja. Hal ini membuat Raspberry Pi seolah-olah memiliki fungsi layaknya file server atau NAS (Network Attached Storage). 3. Download Server Download server ini merupakan mesin yang akan terhubung ke jaringan Torrent menggunakan aplikasi Transmission atau Deluge tanpa layar monitor dan keyboard (headless configuration). Karena hanya menggunakan daya yang kecil (di bawah sembilan watt dengan powered hard disk eksternal), bisa menghidupkan RPi selama 7 hari seminggu 24 jam sehari tanpa harus mematikannya. Untuk mencegah CPU, chip LAN, dan regulator daya kepanasan, bisa menambahkan pendingin di atas ketiga komponen tersebut. 6.4 Penggunaan Raspberry Pi
90 Pengontrolan dan pengelolaan file yang akan diunduh (download) pada RPi ini bisa dilakukan via web. Cukup mengakses alamat web transmission itu menggunakan browser, baik via komputer desktop maupun via smartphone atau komputer tablet. Dapat mengatur agar hasil unduhan itu diletakkan pada hard disk yang di-sharing pada file server (di poin kedua di atas) sehingga saat proses download selesai, bisa menikmati hasil unduhan ini secara langsung via jaringan. Raspberry Pi saat ini juga bisa digunakan sebagai download server. Dengan Raspberry Pi, pengguna bisa melakukan pengontrolan dan pengelolaan file yang di-download via web, baik web browser desktop, smartphone ataupun tablet. 4. Sebagai access point Dengan menancapkan sebuah adapter Wi-Fi yang kompatibel dengan Raspbian, bisa mengubah RPi menjadi sebuah access point. Untuk melakukan ini, diperlukan penambahan aplikasi seperti hostapd dan dhcp server. Hostapd merupakan aplikasi server untuk mengelola adapter Wi-Fi yang akan berfungsi sebagai access point dan sekaligus melakukan proses validasi terhadap permintaan koneksi dari klien yang akan terhubung kepadanya. Sementara dhcp server bertugas menyediakan alamat IP yang akan dipakai oleh klien setelah proses validasinya berhasil dilakukan oleh hostapd. Jika dikonfigurasi dengan baik, access point RPi ini akan berlaku layaknya access point buatan pabrik. Dapat mengatur apakah SSID access point ini akan ditampilkan atau akan disembunyikan (hidden). Selain juga bisa mengatur pada kanal berapa sinyal Wi-Fi ini akan dipancarkan. Tentunya, semua proses konfigurasi ini dilakukan dengan mengandalkan terminal yang berbasis teks. 5. Sebagai server DNS Jika menemukan kinerja server DNS ISP yang lambat, bisa memasang sendiri server DNS pada RPi. Tentunya, server DNS ini hanya berfungsi sebagai caching yang akan menampung semua informai DNS dari server DNS yang memiliki otoritas untuk menjawab semua pertanyaan (query) domain. Namun demikian, keberadaan server DNS ini dalam jaringan lokal bisa mengurangi permintaan ke luar jaringan. Dan juga bisa memasang sendiri file pemblokir domain iklan dalam jaringan agar aneka iklan yang mengganggu akan terblokir secara otomatis. Aplikasi yang bisa dipakai untuk keperluan ini misalnya BIND 9 atau djbdns. Bisa memilih aplikasi yang sesuai dengan kebutuhan dan kemampuan untuk mengelolanya.
91 6. Sebagai multimedia player Menggunakan OSMC (sebelumnya Raspmbc) atau OpenElec, bisa memanfaatkan Raspberry Pi generasi 1 atau 2 untuk memainkan aneka film, musik, melihat foto, bahkan menjelajahi Youtube dan Facebook via TV lama. Hal ini dimungkinkan karena RPi memiliki port RCA atau A/V yang biasanya tersedia di TV tabung. Dengan demikian, bisa menonton aneka film HD atau full-HD di TV lama atau sekadar menjelajahi Facebook dan Youtube tanpa perlu menggunakan komputer lagi. Tentunya, sepanjang koneksi internet tersedia. Saat ini ada beberapa model raspberry pi yang sudah diproduksi dan dijual di pasaran, beberapa model tersebut antara lain adalah Raspberry pi 3 model B, pi 2 model B, Pi Zero, Pi Zero W dan Pi 1 Model B+ dan Model A+. Tabel 6.1 Spesifikasi berbagai model Rasberry Pi Produk SoC Speed RAM Port USB Ethernet Wireless /Bluetooth Raspberry Pi Model A+ BCM2835 700Mhz 512MB 1 Tidak Tidak Raspberry Pi Model B+ BCM2835 700Mhz 512MB 4 Ya Tidak Raspberry Pi 2 Model B BCM2836 or BCM2837 900Mhz 1GB 4 Ya Tidak Raspberry Pi 3 Model B BCM2837 1200Mhz 1GB 4 Ya Ya Raspberry Pi Zero BCM2835 1000Mhz 512MB 1 Tidak Tidak Raspberry Pi Zero W BCM2835 1000Mhz 512MB 1 Tidak Ya Keterangan ▪ Raspberry Pi Model A+ adalah varian model termurah dari Raspberry Pi. Model ini memiliki RAM 512MB (per Agustus 2016: model sebelumnya memiliki 256MB), 1 port USB, 40 pin GPIO, dan tidak ada port Ethernet. Pi Model B+ adalah revisi akhir dari Raspberry Pi awal. Ini memiliki RAM 512MB, 4port USB, 40 pin GPIO dan port Ethernet. ▪ Raspberry Pi 2 Model B, generasi kedua dari Raspberry Pi. Model Pi 2 berbagi banyak spesifikasi dengan Pi 1 B +, dan awalnya menggunakan CPU quad-core ARM Cortex-A7 900MHz dan memiliki 6.5 Model-model Raspberry Pi
92 RAM 1GB. Beberapa versi terbaru dari Pi 2 (v1.2) sekarang menggunakan CPU ARM Cortex-A53 900Mhz. ▪ Raspberry Pi 3 Model B diluncurkan pada bulan Februari 2016. Menggunakan CPU Mid-core 64MHz quad-core ARM Cortex-A53, memiliki RAM 1GB, LAN nirkabel 802.11n terpadu, dan Bluetooth 4.1. Pi 3 Model B ini adalah model yang kami rekomendasikan untuk digunakan di sekolah atau mahasiswa karena fleksibilitasnya bagi pelajar. ▪ Pi Zero dan Pi Zero W berukuran setengah dari Model A +, dengan CPU single-core 1Ghz, RAM 512MB, port mini-HDMI, USB On-The-Go dan konektor kamera. Tipe ini juga telah mengintegrasikan LAN nirkabel 802.11n dan Bluetooth 4.1. Penyusun Raspberry Pi terdiri dari banyak bagian, namun berbeda-beda spesifikasi pada masing-masing tipe. Berikut ini adalah komponen penyusun Raspberry Pi secara umum: 1. SoC (System on Chip) Gambar 6.3 System on Chip System on Chip ini terdiri dari CPU (Central Processing Unit) dan GPU (Graphic Processing Unit). CPU ini sering dianggap sebagai “otak” nya komputer. Sementara GPU digunakan untuk memproses gambar/visual. 2. RAM (Random Access Memory) Gambar 6.4 Random Access Memory 6.6 Komponen Penyusun Raspberry Pi