Implementasi Embedded System Menggunakan Beagleboard
i
Implementasi Embedded System Menggunakan BeagleBoard: Prototipe Sistem Pengaturan Lampu Lalu Lintas
Perpustakaan Nasional: Katalog Dalam Terbitan ISBN: 978-979-1421-096 September 2011
Penulis Wisnu Jatmiko Petrus Mursanto Faris Al Afif Big Zaman M. Febrian Rachmadi M. Anwar Ma’sum Mohamad Sani Adi Wibowo Arief Ramadhan
Desain Sampul Muhamad Fajar
Hak Cipta Seluruh isi buku dan sampul merupakan hak cipta Fakultas Ilmu Komputer Universitas Indonesia.
Implementasi Embedded System Menggunakan Beagleboard
i
ii
Implementasi Embedded System Menggunakan Beagleboard
Kata Pengantar Puji syukur kami panjatkan ke hadirat Allah SWT, karena berkat rahmat, karunia, dan hidayah-Nya penulis dapat menyelesaikan buku “Implementasi Embedded System Menggunakan BeagleBoard: Prototipe Sistem Pengaturan Lampu Lalu Lintas”. Buku ini ditujukan untuk memberikan pengetahuan umum tentang sistem tertanam (embedded system) beserta panduan pembuatannya menggunakan BeagleBoard dengan kasus implementasi Sistem Pengaturan Lampu lalu Lintas, salah satu riset yang sedang dikembangkan di Laboratorium Penelitian Fakultas Ilmu Komputer Universitas Indonesia. Sistem Pengaturan Lampu Lintas ini adalah produk penelitian yang digagas untuk menjadi salah satu solusi permasalahan kemacetan di kota-kota besar di Indonesia. Sistem Pengaturan Lampu Lalu Lintas Terdisitribusi merupakan sebuah sistem lampu lalu lintas yang ditujukan untuk memenuhi kebutuhan akan kinerja pengaturan lampu lalu lintas yang cerdas dengan pengambilan data secara real-time. Penjadwalan dan pengaturan jaringan multi persimpangan berbasis data real-time tidak bisa dilakukan oleh sistem pengaturan lampu lalu lintas konvensional. Dalam buku ini akan banyak dibahas proses implementasinya menggunakan piranti keras BeagleBoard yang sedang booming saat ini sebagai salah satu piranti keras yang praktis dan fungsional. Penulis mengucapkan terima kasih yang sebesar-besarnya kepada semua pihak yang telah memberikan bantuan dan kerja sama selama pembuatan buku ini. Penulis mengucapkan terima kasih kepada Kementerian Riset dan Teknologi Republik Indonesia yang telah memfasilitasi dan memberikan bantuan dana untuk penelitian kami yang berjudul “Software Prototype for Distributive Traffic Control System in Urban Area in the Prevention from Heavy Urban Traffic Congestion by Implementing the Distributive Swarm Self-Organizing Map” dalam program insentif riset aplikasi terapan. Implementasi Embedded System Menggunakan Beagleboard
iii
Ucapan terima kasih juga penulis ucapkan kepada Direktorat Riset dan Pengabdian Masyarakat Universitas Indonesia yang telah memfasilitasi dan memberikan bantuan dana untuk penelitian kami yang berjudul “Prototipe Sistem Pengaturan Lalu Lintas Adaptif Memanfaatkan Masukan Dari CCTV Berbasiskan Kecerdasan Komputasional” dalam program Hibah Riset Unggulan Universitas Indonesia Tahun 2011. Terdapatnya hasil penelitian kami dan tersusunnya buku ini tidak akan terlaksana tanpa bantuan dana dan adanya program riset-riset tersebut. Selanjutnya penulis mengucapkan terima kasih kepada pihak Fakultas Ilmu Komputer UI yang telah memberikan dukungan sepenuhnya terhadap kegiatan riset ini. Tak lupa pula kepada seluruh mahasiswa di Laboratorium “1231” yang telah banyak membantu secara formal maupun informal sehingga riset ini dapat berjalan dengan segala kelebihan dan kekurangannya. Semoga bantuan dan kerja sama ini akan dapat memberi kontribusi perkembangan yang berarti bagi bidang keilmuan khususnya bidang ilmu komputer di Indonesia. Penulis menyadari kekurangan atas hasil riset Sistem Pengaturan Lampu Lalu Lintas ini dan produk dokumentasinya berupa buku ini. Oleh karena itu besar harapan penulis atas segala saran dan kritik yang membangun untuk penelitian maupun revisi buku selanjutnya.
Depok, Universitas Indonesia September 2011
Tim Penulis
iv
Implementasi Embedded System Menggunakan Beagleboard
Bagaimana buku ini disusun? Buku ini disusun dalam beberapa bab agar pembaca dapat memiliki gambaran singkat mengenai konsep sistem tertanam (embedded system), penerapannya menggunakan BeagleBoard, dan salah satu implementasi nyatanya yakni Sistem Pengaturan Lampu Lintas yang dibuat pula dengan komponen utama BeagleBoard. Berikut adalah penjelasan isi singkat bab dalam buku ini:
Bab 1 Pembaca akan dijelaskan segala sesuatu mengenai embedded system, definisi, ciri-ciri, contoh penerapannya, sejarah, serta tantangan pengembangannya.
Bab 2 Pembaca diperkenalkan dengan salah satu contoh piranti embedded system yakni BeagleBoard, mulai dari spesifikasi baik BeagleBoard C4 maupun xM, serta beberapa contoh penerapannya.
Bab 3 Setelah diperkenalkan dengan piranti BeagleBoard, pada Bab 3 pembaca akan dijelaskan cara pemasangan dan instalasi BeagleBoard menggunakan sistem operasi Linux Angstrom, Linux Ubuntu 11.04, dan Android.
Bab 4 Pada Bab ini pembaca akan diperkenalkan kepada berbagai hal yang terkait dengan lampu lalu lintas, misalnya jenisjenis lampu lalu lintas, perkembangan lampu lalu lintas, dan lain-lain.
Implementasi Embedded System Menggunakan Beagleboard
v
Bab 5 Pada Bab ini pembaca akan diberikan panduan step by step pembuatan embedded system menggunakan BeagleBoard dengan contoh kasus Sistem Pengaturan Lampu Lalu Lintas Terdistribusi. Pembaca akan dijelaskan dengan detail komponen-komponen yang dibutuhkan, cara pemasangan, hingga tataran implementasinya.
vi
Implementasi Embedded System Menggunakan Beagleboard
Tujuan Buku “Implementasi Embedded system Menggunakan BeagleBoard: Prototipe Sistem Pengaturan Lampu lalu Lintas” menjelaskan pengetahuan sepintas tentang embedded system, teori dan praktek umum piranti BeagleBoard, serta implementasinya pada Sistem Pengaturan Lampu lalu Lintas yang merupakan hasil riset Laboratorium Penelitian Fakultas Ilmu Komputer Universitas Indonesia. Penjelasan diberikan dengan mendetail, langkah demi langkah agar memudahkan para pembaca untuk tidak hanya memahami konsep pembuatannnya namun juga agar dapat mempraktekkannya. Diharapkan pula dengan dibuatnya buku ini dapat menginspirasi dan menumbuhkan minat pembaca untuk melakukan riset embedded system lebih lanjut terutama dengan komponen BeagleBoard.
Implementasi Embedded System Menggunakan Beagleboard
vii
viii
Implementasi Embedded System Menggunakan Beagleboard
Daftar Isi Kata Pengantar ................................................................................. iii Bagaimana buku ini disusun? ............................................................ v Tujuan.............................................................................................. vii Daftar Isi ........................................................................................... ix Daftar Gambar................................................................................. xv Daftar Tabel ...................................................................................xxiii Bab 1.
Embedded System .............................................................. 1
1.1 Definisi Embedded System ...................................................... 1 1.2 Karakteristik Embedded System .............................................. 1 1.3 Contoh Embedded System....................................................... 3 1.4 Perkembangan Embedded System .......................................... 4 1.5 Tantangan dalam Embedded System ...................................... 6 1.6 Perkembangan Penerapan Embedded System di Fakultas Ilmu Komputer Universitas Indonesia ................................................... 8 1.6.1.
Automatic Sleep Awakening Device ............................ 8
1.6.2.
Sistem Pendeteksian Dini Penyakit Jantung (Heart
Disease) 10 1.6.3.
Autonomous
Mobile
Robot
untuk
Pemulihan
Komunikasi di Daerah Bencana ............................................... 13
Implementasi Embedded System Menggunakan Beagleboard
ix
1.6.4.
Odor
Source
Localization
(Pencarian
Sumber
Kebocoran Gas) ........................................................................ 15 1.6.5. Bab 2.
Adaptive Traffic Signal Control System ..................... 17
Single-Board Computer .................................................... 19
2.1 Produk-produk Single-Board Computer ................................ 19 2.1.1 PandaBoard..................................................................... 19 2.1.2 HawkBoard...................................................................... 23 2.1.3 Gumstix ........................................................................... 25 2.1.4 Field Programmable Gate Array (FPGA) ......................... 29 2.2 BeagleBoard .......................................................................... 31 2.2.1 Kelebihan Meggunakan BeagleBoard............................. 34 2.2.2 BeagleBoard C4 dan Spesifikasinya ................................ 35 2.2.3 BeagleBoard-xM dan Spesifikasinya ............................... 43 2.2.4 Ringkasan Perbedaan BeagleBoard C4 dan xM .............. 54 2.3 Persiapan Menggunakan BeagleBoard ................................. 54 2.3.1 Memeriksa Kondisi BeagleBoard .................................... 56 2.3.2 Melakukan Pemasangan BeagleBoard dengan Peralatan ................................................................................................. 57 2.3.3 Menyiapkan Konsol ........................................................ 58 2.4 Alat-alat Tambahan untuk BeagleBoard ............................... 65 2.4.1 USB ke WiFi ..................................................................... 65 2.4.2 USB ke BlueTooth ........................................................... 66
x
Implementasi Embedded System Menggunakan Beagleboard
Bab 3.
Instalasi Sistem Operasi pada BeagleBoard ..................... 67
3.1 Instalasi dengan Linux Angstrom........................................... 67 3.2 Instalasi dengan Linux Ubuntu .............................................. 71 3.2.1 Ubuntu 11.04 versi Netbook ........................................... 72 3.2.2 Ubuntu 11.04 versi Headless .......................................... 73 3.3 Instalasi dengan Android ....................................................... 74 3.4 Beberapa Hal yang Perlu Diketahui dalam Instalasi .............. 77 3.5 Contoh Sederhana: Membuat Program Hello World di BeagleBoard ................................................................................ 82 Bab 4.
Lalu Lintas ......................................................................... 87
4.1 Sekilas Mengenai Kemacetan Lalu Lintas .............................. 87 4.2 Beberapa Penyebab Kemacetan Lalu Lintas ......................... 88 4.3 Lampu Lalu Lintas .................................................................. 90 4.3.1 Jenis-jenis Lampu Lalu Lintas .......................................... 90 4.3.2 Karakteristik Lampu Lalu Lintas ...................................... 92 4.3.3 Pengaturan sinyal lalu lintas ........................................... 93 4.3.3 Pengaturan Fase Lampu Lalu Lintas................................ 96 4.3.4 Perkembangan Lampu Lalu Lintas .................................. 98 4.3.5 Optimasi Lampu Lalu Lintas .......................................... 102 Bab 5.
Pengembangan Perangkat Lunak di BeagleBoard: Sistem
Pengaturan Lampu Lalu Lintas ...................................................... 105 5.1 Sistem Pengaturan Lampu Lalu Lintas Terdistribusi............ 105
Implementasi Embedded System Menggunakan Beagleboard
xi
5.2 Pemodelan dan Prilaku........................................................ 106 5.2.1 Batasan Prototipe ......................................................... 106 5.2.2 Arsitektur dan Komponen Prototipe ............................ 107 5.2.3 Data Input dan Output.................................................. 117 5.2.4 Pemodelan Persimpangan ............................................ 120 5.2.5 Pemodelan Kerja Prototipe .......................................... 122 5.2.6 Proses Penghitungan Mobil .......................................... 123 5.2.6 Interaksi Antar Komponen Prototipe ........................... 132 5.2.7 Kondisi-Kondisi Khusus ................................................. 134 5.2.8 Modifikasi dan Pengembangan .................................... 136 Bab 6.
Pembuatan
Sistem
Pengaturan
Lampu
lalu
Lintas
Terdistribusi .................................................................................. 139 6.1 Arsitektur Sistem Pengaturan Lampu Lalu Lintas................ 139 6.1.1. Arsitektur BeagleBoard ............................................... 139 6.1.2. Arsitektur Board Pengendali........................................ 142 6.2 Perancangan ........................................................................ 160 6.3 Implementasi ....................................................................... 162 6.3.1. Membuat Perangkat Keras (Hardware) Prototipe ...... 162 6.3.2. Membuat Perangkat Lunak (Software) Prototipe ....... 168 6.4 Menyambungkan Perangkat ............................................... 181 6.5 Memasang Program ............................................................ 183 6.6 Hasil Uji Coba ....................................................................... 190 xii
Implementasi Embedded System Menggunakan Beagleboard
6.7 Hasil Penghitungan dan Ketepatan Program ...................... 190 Daftar Pustaka ............................................................................... 197 Profil Singkat Penulis ..................................................................... 201 Glosarium ...................................................................................... 207 Daftar Indeks ................................................................................. 211
Implementasi Embedded System Menggunakan Beagleboard
xiii
xiv
Implementasi Embedded System Menggunakan Beagleboard
Daftar Gambar Gambar 1.1. Apollo Guidance Computer. ......................................... 4 Gambar 1.2. Interaksi fisik pada sistem. ........................................... 7 Gambar 1.3. Framework Automatic Sleep Awakening Device. ........ 9 Gambar 1.4. Prototipe Automatic Sleep Awakening Device............. 9 Gambar 1.5. Arsitektur diagram prototipe pendeteksi dini penyakit jantung. ........................................................................................... 11 Gambar 1.6. Mikrokontroller AVR ATmega8 (a) dan FPGA Basys 2 (b). ................................................................................................... 12 Gambar 1.7. Perangkat terintegrasi elektrokardiogram (EKG) dengan telepon pintar android. ...................................................... 12 Gambar 1.8. Perangkat terintegrasi elektrokardiogram (EKG) dengan PC desktop. ........................................................................ 13 Gambar
1.9.
Ilustrasi
Autonomous
Mobile
Robot
yang
menghubungkan dua menara yang masih berfungsi...................... 14 Gambar 1.10. Robot Al-Fath dan Komponen Wireless I2C. ............ 14 Gambar 1.11. Koneksi mikrokontroler utama ke sekunder............ 15 Gambar 1.12. Autonomous Mobile Robot dalam pencarian sumber kebocoran gas. ................................................................................ 16 Gambar 1.13. Prototipe Sistem Pengaturan Lampu Lalu Lintas Adaptif. ............................................................................................ 17
Implementasi Embedded System Menggunakan Beagleboard
xv
Gambar 1.14. Traffic Simulator dan Traffic Signal Control System (TSCS)
yang
berjalan
secara
bersama-sama
dan
saling
berkomunikasi. ................................................................................ 18 Gambar
2.1.
Tampilan
PandaBoard.
[
http://papermint-
designs.com ] .................................................................................. 20 Gambar
2.2.
Komponen-komponen
pada
PandaBoard.
[
http://en.wikipedia.org ] ................................................................ 22 Gambar
2.3.
Tampilan
HawkBoard.
[
http://www.flickr.com/photos/koenkooi/ ] ................................... 24 Gambar 2.4. Komponen-komponen pada HawkBoard................... 25 Gambar 2.5. Tampilan Gumstix Overo Earth dan Gumstix Verdex Pro.
[
http://pixhawk.ethz.ch
dan
http://www.assembla.com/spaces/gccrobotics/wiki/Gumstix ] ... 26 Gambar 2.6. Tampilan PIXHAWK camera board untuk Gumstix Overo. [ http://pixhawk.ethz.ch ] ................................................... 28 Gambar 2.7. Menghubungkan kamera PIXHAWK ke Gumstix Overo. [ http://pixhawk.ethz.ch ] ............................................................... 28 Gambar 2.8. Tampilan a) FPGA Basys 2 dan b) FPGA Xilinx Spartan [ http://www.fpga.synth.net/pmwiki/ ]............................................ 29 Gambar 2.9. Logic Cell..................................................................... 30 Gambar 2.10. Tampilan BeagleBoard C4. [ http://en.wikipedia.org ] ......................................................................................................... 33 Gambar 2.11. Tampilan BeagleBoard-xM. [ http://en.wikipedia.org ] ....................................................................................................... 33 xvi
Implementasi Embedded System Menggunakan Beagleboard
Gambar
2.12.
Komponen-komponen
BeagleBoard
C4.
[
http://beagleboard.org ] ................................................................. 36 Gambar
2.13.
Komponen-komponen
BeagleBoard-xM.
[
http://www.flickr.com/photos/jadon/4644432552/ ] ................... 43 Gambar 2.14. Berbagai chip pada BeagleBoard-xM. ...................... 45 Gambar 2.15. Posisi berbagai macam antarmuka BeagleBoard-xM. ......................................................................................................... 47 Gambar 2.16. Kabel HDMI ke DVI-D. .............................................. 48 Gambar 2.17. Tombol Reset dan Tombol Boot. ............................. 50 Gambar 2.18. Berbagai LED Indikator pada BeagleBoard. ............. 51 Gambar 2.19. Kabel Serial (RS232) ke USB. .................................... 53 Gambar 2.20. Kabel USB Y ke mini USB. ......................................... 55 Gambar 2.21. Barrel Adapter 5 mm. ............................................... 56 Gambar 2.22. BeagleBoard dengan peralatan yang sudah terpasang.
[
http://www.flickr.com/photos/johnlsloan/5064993265/ ] ........... 57 Gambar 2.23. Konfigurasi BeagleBoard-xM yang sudah terpasang. ......................................................................................................... 58 Gambar 2.24. Tampilan terminal saat BeagleBoard-xM pertama kali dinyalakan. ...................................................................................... 61 Gambar 2.25. Contoh hasil perintah ls /dev/, alamat BeagleBoard adalah ttyUSB0. ............................................................................... 62 Gambar 2.26. Tampilan awal minicom. .......................................... 63
Implementasi Embedded System Menggunakan Beagleboard
xvii
Gambar 2.27. Tampilan minocom setelah memilih Serial Port. ..... 63 Gambar 2.28. Pengaturan alamat BeagleBoard. ............................ 64 Gambar 2.29. Setelah keluar dari menu Serial Port. ...................... 64 Gambar 3.1. Label penunjuk class suatu microSD. ......................... 76 Gambar 3.2. Kabel penghubung dari port USB ke port Serial. ....... 76 Gambar 3.3. Tampilan monitor saat booting BeagleBoard-xM...... 77 Gambar 4.1. Kemacetan yang Biasa Terjadi di Jakarta. [ http://en.wikipedia.org ] ................................................................ 88 Gambar
4.2.
Gambar
Persimpangan
Lalu
Lintas.
[
http://id.wikipedia.org ].................................................................. 89 Gambar 4.3. Konflik Primer dan Sekunder Lampu Lalu Lintas........ 93 Gambar 4.4. Contoh Kasus Persimpangan Jalan............................. 97 Gambar 5.1. Prototipe Sistem Pengaturan Lampu Lalu Lintas Terdistribusi ketika Berjalan. ........................................................ 105 Gambar 5.2. Arsitektur prototipe dari Sistem Pengaturan Lampu Lalu Lintas Terdistribusi. ............................................................... 107 Gambar 5.3. Logitech QuickCamTM Connect. ................................ 108 Gambar 5.4. DELL XPS M1330 dan BeagleBoard. ......................... 109 Gambar 5.5. Board Pengendali menggunakan ATmega32 dan ATmega8. ...................................................................................... 110 Gambar 5.6. Board Lampu Lalu Lintas. ......................................... 111 Gambar 5.7. Konektor USB to mini USB........................................ 112 Gambar 5.8. Konektor USB to USB................................................ 112 xviii
Implementasi Embedded System Menggunakan Beagleboard
Gambar 5.9. Connector SERIAL to USB.......................................... 113 Gambar 5.10. Kabel Pelangi. ......................................................... 113 Gambar 5.11. Black Housing. ........................................................ 114 Gambar 5.12. Prototipe Sistem Pengaturan Lampu Lalu Lintas Terdistribusi ketika semua komponen telah terpasang. .............. 114 Gambar 5.13. Potongan video masukan pada siang hari dengan kondisi kendaraan yang padat. ..................................................... 117 Gambar 5.14. Potongan video masukan pada siang hari dengan kondisi yang ramai. ....................................................................... 118 Gambar 5.15. Potongan video masukan pada siang hari dengan kondisi yang cukup ramai.............................................................. 118 Gambar 5.16. Potongan video masukan pada malam hari dengan kondisi yang cukup ramai.............................................................. 118 Gambar 5.17. Potongan video masukan pada malam hari dengan kondisi yang cukup sepi. ............................................................... 119 Gambar 5.18. Potongan video masukan pada siang hari dengan kondisi yang ramai dengan sudut pengambilan video dari arah atas samping. ........................................................................................ 119 Gambar 5.19. Potongan video masukan pada siang hari dengan kondisi yang ramai dengan sudut pengambilan video dari arah atas dan secara wide range. ................................................................. 119 Gambar 5.20. Potongan video masukan pada siang hari dengan kondisi yang cukup ramai dengan sudut pengambilan video dari arah atas dan secara zoom in. ....................................................... 120
Implementasi Embedded System Menggunakan Beagleboard
xix
Gambar 5.21. Pemodelan Persimpangan pada Prototipe. ........... 121 Gambar 5.22. Alur kerja Prototipe Sistem Pengaturan Lampu Lalu Lintas Terdistribusi. ....................................................................... 122 Gambar 5.23. Diagram Alur Utama dari Sistem Pengaturan Lampu Lalu Lintas Terdistribusi. ............................................................... 122 Gambar 5.24. Diagram Proses Penghitungan Mobil. .................... 123 Gambar 5.25. Diagram Rincian Tahap Masukan. .......................... 124 Gambar 5.26. Diagran Rincian Tahap Pemrosesan Data. ............. 124 Gambar 5.27. Contoh penggunaan PCA untuk pendeteksian wajah. ....................................................................................................... 125 Gambar 5.28. Hasil haar training dan penggunaannya pada sistem pendeteksi wajah. ......................................................................... 130 Gambar 5.29. Contoh gambar positif untuk sistem pendeteksian mobil. ............................................................................................ 130 Gambar 5.30. Sudoku, permasalahan yang merupakan CSP. ....... 131 Gambar 5.31. Rincian Tahap Keluaran. ......................................... 132 Gambar 5.32. Diagram Interaksi Antar Komponen Prototipe. ..... 133 Gambar 6.1. Blok diagram BeagleBoard-xM. ............................... 140 Gambar 6.2. Konfigurasi pin ATmega32. ...................................... 143 Gambar 6.3. Diagram Blok AVR ATmega32. ................................. 145 Gambar 6.4. Diagram Utilitas USART pada Mikrokontroler AVR.. 151 Gambar 6.5. Skema pembuatan modul perangkat keras. ............ 161 Gambar 6.6. Skema pembuatan modul perangkat lunak. ............ 161 xx
Implementasi Embedded System Menggunakan Beagleboard
Gambar 6.7. Skematik sistem minimum mikrokontroler ATmega32. ....................................................................................................... 163 Gambar 6.8. Rangkaian Sistem Minimum ATmega32 siap cetak. 164 Gambar 6.9. Skema rangkaian IC 7447 dan seven-segment. ........ 166 Gambar 6.10. Skema rangkaian IC shift register 74HC595. .......... 167 Gambar 6.11. Skema rangkaian board seven-segment siap cetak . ....................................................................................................... 168 Gambar 6.12. Instalasi OpenCV menggunakan synaptic package manager. ....................................................................................... 170 Gambar 6.13. Mengakses dokumentasi OpenCV pada web browser. ....................................................................................................... 171 Gambar 6.14. Installer OpenCV untuk sistem operasi Windows.. 172 Gambar 6.15. Mengakses user manual OpenCV pada Windows. 172 Gambar 6.16. Konfigurasi linker settings pada Codeblocks.......... 175 Gambar 6.17. Konfigurasi search directories pada Codeblocks. ... 176 Gambar 6.18. Tampilan sypnatic package manager setelah instalasi tools untuk AVR. ............................................................................ 179 Gambar 6.19. Installer opencv untuk sistem operasi Windows. .. 179 Gambar 6.20. Mengakses fitur-fitur WinAVR melalui start menu Windows........................................................................................ 180 Gambar 6.21. Prototipe Sistem Pengaturan Lampu Lalu Lintas. .. 181 Gambar 6.22. BeagleBoard beserta empat kamera webcam....... 182 Gambar 6.23. Board Pengendali dan lampu lalu lintas. ................ 182 Implementasi Embedded System Menggunakan Beagleboard
xxi
Gambar 6.24. Diagram Keterhubungan Subsistem Pengendali. .. 183 Gambar 6.25. Hirarki direktori Traffic. .......................................... 186 Gambar 6.26. Tampilan program ketika sedang berjalan. ........... 186 Gambar 6.27. Empat jendela yang merepresentasikan empat jalur pada suatu persimpangan............................................................. 187 Gambar 6.28. Salah satu jendela ketika menampilkan proses penghitungan mobil yang sedang berjalan. .................................. 187 Gambar 6.29. Hasil penghitungan jumlah mobil pada terminal... 188 Gambar 6.30. Prototipe Sistem Pengaturan Lalu Lintas dan bagianbagiannya. ..................................................................................... 189 Gambar 6.31. Prototipe Sistem Pengaturan Lalu Lintas
ketika
sedang berjalan. ............................................................................ 189 Gambar 6.32. Snapshot videosumber0.avi dan videosumber1.avi. ....................................................................................................... 190 Gambar 6.33. Grafik ketepatan sistem penghitung kendaraan dengan masukan videosumber0 dan videosumber1. ................... 192 Gambar 6.34. Contoh perbedaan Kondisi Cuaca dan Lalu Lintas: cuaca cerah kondisi ramai dan cuaca cerah kondisi macet. ......... 193 Gambar 6.35. Hasil pendeteksian dan penjejakan kendaraan menggunakan PCA dan Euclidean Distance. ................................. 194
xxii
Implementasi Embedded System Menggunakan Beagleboard
Daftar Tabel Tabel 2.1. Ringkasan perbedaan BeagleBoard-xM dan BeagleBoard C4. .................................................................................................... 54 Tabel 6.1. Bagan Register UBRR. ................................................... 152 Tabel 6.2. Bagan Register UCSRA. ................................................. 153 Tabel 6.3. Bagan Register UCSRB. ................................................. 154 Tabel 6.4. Bagan Register UCSRC. ................................................. 155 Tabel 6.5. Bagan Register UDR. ..................................................... 156 Tabel 6.6. Tabel Ketepatan Sistem untuk video sumber videosumber0.avi. ......................................................................... 191 Tabel 6.7. Tabel Ketepatan Sistem untuk video sumber videosumber1.avi. ......................................................................... 191 Tabel 6.8. Tabel hasil penghitungan kendaraan pada berbagai kondisi cuaca dan lalu lintas.......................................................... 193
Implementasi Embedded System Menggunakan Beagleboard
xxiii
xxiv
Implementasi Embedded System Menggunakan Beagleboard
Bab 1. Embedded System 1.1 Definisi Embedded System Menurut Heath (2003), embedded system atau sistem tertanam adalah suatu sistem berbasis mikroprosesor yang dibuat untuk mengontrol fungsi-fungsi dan tidak dapat diprogram oleh end-user (pengguna). Jadi, sekali sistem tersebut dibuat, maka pengguna tidak dapat menambah atau mengubah fungsi yang ada. Hal ini tentu saja berbeda dengan sebuah Personal Computer (PC). Pada PC, pengguna masih bisa mengubah atau menambah fungsi-fungsi baru dengan cara memasang (install) perangkat lunak yang diinginkan. Definisi lain yang lebih sederhana dikemukakan oleh Noergaard (2005), bahwa embedded system adalah suatu sistem komputer terapan (applied computer system) yang berbeda dengan PC. Salah satu perbedaan yang mendasar adalah bahwa perangkat keras (hardware) yang digunakan atau fungsi perangkat lunak (software) yang tersedia dalam embedded system jauh lebih sedikit dibandingkan PC (Noergaard 2005).
1.2 Karakteristik Embedded System Embedded System umumnya terdiri atas CPU/mikroprosesor dan antarmuka ke alat input/output (Axelson 2007). Fungsi dalam embedded system tidak dapat diubah atau ditambah lagi, maka umumnya embedded system hanya dibuat untuk tujuan khusus, dan hanya dapat mengerjakan satu pekerjaan dalam satu waktu (Heath 2003). Hal ini menjadi karakteristik utama dari suatu embedded system. Beberapa contoh embedded system yang memiliki tujuan khusus dan spesifik adalah jam tangan digital, lift, dan lampu lalu lintas.
Implementasi Embedded System Menggunakan Beagleboard
1
Pada jam tangan digital, mikroprosesor yang ada di dalamnya hanya bertugas menghitung perubahan waktu secara berkala dan menampilkannya pada layar. Pada lift, mikroprosesor di dalamnya bertugas untuk menerima dan memproses masukan perintah dari pengguna sehingga dapat mengendalikan lift menuju lantai yang diinginkan. Sebuah lampu lalu lintas juga memiliki sebuah mikroprosesor di dalamnya untuk menghitung lama waktu menyala dan mengendalikan masing-masing lampu lalu lintas secara teratur. Embedded system hanya membutuhkan sumber daya yang minimal untuk dapat melakukan tugasnya. Dengan demikian, embedded system sering kali dibuat dalam ukuran yang kecil dan minimalis disesuaikan dengan fungsinya. Karakteristik lain dari embedded system adalah embedded system biasanya dipasang tertanam secara langsung di dalam alat atau benda yang dikontrol olehnya (Axelson 2007). Oleh karena itu, muncul istilah 'tertanam' atau embedded yang artinya sebuah sistem yang tertanam atau tersembunyi di dalam sebuah piranti atau produk tertentu. Embedded system sering kali membutuhkan sebuah perangkat lunak untuk mengoperasikannya. Perangkat lunak ini harus dapat disinkronisasi dengan komputer untuk memudahkan penggunaannya. Misalnya, perangkat BeagleBoard yang membutuhkan sistem operasi Linux, dan sebagainya. Beberapa karakteristik lain dari embedded system adalah sebagai berikut (Bailey 2005). 1. Aplikasi yang ada di dalam embedded system akan langsung berjalan (running) secara otomatis ketika sumber listrik mengalir ke prosesor. 2. Embedded system umumnya tidak menggunakan keyboard atau mouse sebagai input device. 3. Embedded system umumnya tidak menggunakan monitor sebagai output device.
2
Implementasi Embedded System Menggunakan Beagleboard
1.3 Contoh Embedded System Sebenarnya, embedded system berkembang lebih dulu dibandingkan komputer. Beberapa peralatan yang dibuat sekitar 40 tahun yang lalu sudah dilengkapi semacam mikroprosesor yang ditanam di dalamnya. Saat ini, embedded system semakin berkembang terutama ketika semakin banyak alat-alat analog yang dibuat dalam bentuk digital (Heath 2003). Beberapa contoh embedded system yang dapat dijumpai dalam kehidupan seharihari adalah: 1. Microwave Oven 2. Konsol Game 3. Global Positioning System (GPS) 4. Lemari Es 5. Mesin Fotokopi 6. Mesin Fax 7. Televisi Digital Beberapa contoh penerapan embedded system secara spesifik pada dunia ilmu komputer diantaranya adalah pada kategorikategori berikut. 1. Signal Processing System Beberapa penerapan embedded system dalam pengolahan sinyal adalah real-time video, set-top boxes, DVD players, residential gateways, peralatan kedokteran seperti pemeriksa sinyal jantung elektrokardiogram (EKG), dan sebagainya. 2. Distributed Control Embedded system juga banyak digunakan dalam sistem yang berfungsi untuk distribusi data. Contohnya adalah
Implementasi Embedded System Menggunakan Beagleboard
3
network routers, switches, firewalls, mass transit system, elevator (lift), dan sebagainya. 3. “Small” System Embedded system yang paling sering dijumpai saat ini adalah yang bergerak di piranti mobil yang bersifat kecil dan praktis. Contohnya adalah PDAs, mobile phones, pagers, MP3 players, kamera digital, smart cards, smart badges, sensors, mainan anak-anak, dan sebagainya.
1.4 Perkembangan Embedded System Sistem tertanam pertama kali dipopulerkan oleh Charles Stark Draper dari Laboratorium Instrumentasi MIT dengan temuannya yang terkenal pada saat itu, Apollo Guidance Computer. Apollo Guidance Computer, yang diperkenalkan pada Agustus 1966, merupakan salah satu bagian dari Apollo Project, proyek yang berisiko tinggi karena berusaha mengembangkan monolithic integrated circuits pertama yang digunakan untuk mengurangi berat dan ukuran sirkuit. Tampilan Apollo Guidance Computer dapat dilihat pada Gambar 1.1. berikut.
Gambar 1.1. Apollo Guidance Computer.
4
Implementasi Embedded System Menggunakan Beagleboard
Selanjutnya sistem tertanam semakin berkembang pesat. Sistem tertanam pertama yang diproduksi secara masal adalah Autonetics D-17, yaitu sebuah guidance computer untuk Minuteman missile (sebuah proyek pembuatan roket Amerika Serikat). Autonetics D17 dirilis sekitar tahun 1962. Sistem ini terbuat dari transistor logika and sebuah harddisk sebagai memori utamanya. Pada tahun 1966, D-17 disaingi oleh komputer-komputer yang dilengkapi teknologi integrated circuit. Penggunaan integrated circuit membuat harga komputer jauh lebih murah karena adanya pengurangan gerbang (gate) NAND yang digunakan. Pada era tahun 60-an, sistem tertanam berkembang dengan pesat hingga memunculkan mikroprosesor dengan teknologi yang semakin canggih. Mikroprosesor yang pertama adalah Intel 4004. Mikroprosesor ini didesain khusus untuk kalkulator dan beberapa sistem kecil lainnya, namun masih membutuhkan banyak memori eksternal dan chip-chip pendukung lainnya. Pada tahun 1978, National Engineering Manufactures Association (NEMA) merilis sebuah programmable microcontroller standar. Perkembangan sistem tertanam semakin pesat di pertengahan tahun 80-an. Semua sistem yang semula bersifat eksternal telah diintegrasikan pada chip layaknya sebuah prosesor. Bentuk mikrokontroler telah menjadi modern dan berkembang ke hampir semua peralatan elektronik mulai dari televisi, komputer, mobil, mesin fotokopi, dan sebagainya.
Implementasi Embedded System Menggunakan Beagleboard
5
1.5 Tantangan dalam Embedded System Dengan segala kepraktisan dan kehematannya, sistem tertanam memiliki beberapa tantangan dari karakteristiknya tersebut. 1. Menjadi bagian dari sistem yang lebih besar Sistem tertanam yang kecil dan merupakan bagian dari sistem yang lebih besar membuat pengembangannya dibatasi peripheral tertentu. Sistem tertanam harus banyak menyesuaikan kondisi dengan environment sistem yang lebih besar. Oleh karena itu, sistem tertanam harus menyesuaikan kondisi dari segi ukuran, spesifikasi sistem, arus dan konsumsi power, dan sebagainya. Hal ini akan cukup menyulitkan dalam proses pengembangan sistem tertanam untuk piranti tersebut. 2. Application-specific Karakteristik application-specific memang menjadi keunggulan tersendiri dari sistem tertanam namun memiliki kelemahan yaitu sistem tersebut sulit untuk diprogram ulang (reprogrammability). Sifat reprogrammability merupakan karakteristik yang memudahkan pengembang karena bila terjadi kesalahan, sistem dapat dengan mudah diprogram kembali dan setelah selesai diperbarui sistem dapat di-deploy kembali. Jika sistem tertanam yang sudah di-deploy dinyatakan rusak (defect), maka sistem tertanam harus dibuat kembali dari awal dengan piranti yang baru. 3. Interaksi dengan dunia fisik Sistem tertanam dirancang untuk dapat berinteraksi dengan dunia fisik, dalam arti dapat merespon masukan dari luar sistem untuk kemudian memprosesnya sesuai dengan tujuan sistem tersebut. Interaksi dengan kontak fisik pada sebuah sistem tidak semudah yang dibayangkan karena terkait dengan berbagai isu dan banyaknya kemungkinan masukan yang mungkin diterima oleh sistem. 6
Implementasi Embedded System Menggunakan Beagleboard
Gambar 1.2. Interaksi fisik pada sistem.
Sistem harus segera merespon masukan yang diberikan. Sistem juga harus memberikan respon terhadap kondisi atau masukan yang tidak wajar yang bisa dilakukan oleh pengguna. Penanganan-penanganan tersebut harus dilakukan oleh sistem secara otomatis. Beberapa kendala lain yang sering terjadi dari segi perangkat keras adalah pembagian resource pada CPU maupun memori, konsumsi power, ukuran dan berat, peripheral yang terbatas dan buses yang lambat, dan keadaan environment. Sedangkan beberapa tantangan pada perangkat lunak sistem tertanam adalah isu tentang ketahanan (reliability), waktu pemrosesan (latency), kemampuan bekerja dengan sistem lainnya (interoperability), dan keterbatasan resource pada perangkat keras.
Implementasi Embedded System Menggunakan Beagleboard
7
1.6 Perkembangan Penerapan Embedded System di Fakultas Ilmu Komputer Universitas Indonesia Fakultas Ilmu Komputer Universitas Indonesia (Fasilkom UI) memiliki laboratorium khusus untuk mengembangkan penelitian mengenai embedded system dibawah naungan Laboratorium Computer Networks, Architecture & High Performance Computing Fasilkom UI. Hingga saat ini, laboratorium ini telah menghasilkan produk-produk riset yang unggul dan inovatif. Beberapa riset laboratorium ini kami paparkan sebagai berikut.
1.6.1. Automatic Sleep Awakening Device Automatic Sleep Awakening Device merupakan sebuah alat yang dikembangkan untuk mendeteksi penyakit sleep apnea. Sleep apnea merupakan penyakit gangguan tidur (sleep disorder) yang dapat menyebabkan kematian. Salah satu ciri sleep apnea adalah adanya gangguan pernapasan ketika tidur. Sejauh ini belum ada cara sederhana untuk mendeteksi penyakit ini selain uji polysomnography yang membutuhkan sensor yang tidak sedikit dan biaya yang tidak murah. Automatic Sleep Awakening Device dibuat menggunakan board Field Programmable Gate Array (FPGA) yang merupakan salah satu bentuk embedded system. Alat ini diimplementasikan menggunakan algoritma jaringan saraf tiruan Backpropagation untuk mengklasifikasikan data hasil ekstraksi data electrocardiography (ECG) yang menggambarkan sleep stage pasien. Implementasi algoritma Backpropagation pada board FPGA akan mengklasifikasikan data ekstraksi ECG dan mendeteksi ada tidaknya sleep apnea pada setiap menit data ekstraksi ECG.
8
Implementasi Embedded System Menggunakan Beagleboard
Gambar 1.3. Framework Automatic Sleep Awakening Device.
Gambar 1.4. Prototipe Automatic Sleep Awakening Device.
Sejauh ini telah dikembangkan prototipe dari hasil perpaduan dengan sebuah ECG Reader, yakni sebuah komponen yang berfungsi untuk menentukan nilai ECG yang dibaca dari pasien. Implementasi Embedded System Menggunakan Beagleboard
9
Board FPGA yang digunakan adalah FPGA Basys 2 dengan chip XCS250AN dari Xilinx yang diprogram menggunakan bahasa pemrograman VHDL. FPGA juga disambungkan ke LCD sebagai display dan pasien simulator sebagai pengirim sleep stage.
1.6.2. Sistem Pendeteksian Dini Penyakit Jantung (Heart Disease) Penyakit jantung koroner saat ini tercatat sebagai penyebab kematian dan kecacatan nomor satu di dunia. Persentase kematian akibat penyakit jantung dan pembuluh darah di Indonesia meningkat dari 9,1% di tahun 1986 menjadi 26,3% di tahun 2001. Sejak tahun 1990 sampai dengan 2020, tingkat kematian akibat penyakit jantung koroner untuk negara-negara berkembang diperkirakan naik sebesar 137% untuk pria dan 120% untuk wanita. Minimnya alat pendeteksi sinyal jantung seperti elektrokardiograf dan sumber daya manusia dalam pelaksanaan fungsi preventif menyebabkan penyakit jantung menjadi salah satu penyakit yang paling ditakuti. Sebagai gambaran, perbandingan antara jumlah dokter spesialis penyakit jantung dengan total populasi di Indonesia mencapai angka perbandingan 1:665.730, yaitu 1 orang dokter untuk 600.000 lebih penduduk. Selain itu, alat-alat medis penyakit jantung seperti elektrokardiograf masih didatangkan dari negara lain yang mengakibatkan tingginya biaya pelayanan kesehatan. Sistem Pendeteksian Dini Penyakit Jantung (Heart Disease) dibuat untuk menjadi solusi permasalahan ini dengan memanfaatkan sinyal elektrokardiogram (EKG). Sistem yang dikembangkan berupa portable intelligent device seperti smartphone (telepon pintar) atau pc tablet sehingga memudahkan pengguna untuk memonitor kondisi jantung kapan saja. Penelitian ini menggunakan metode jaringan saraf tiruan Fuzzy Learning Vector Quantization (FLVQ) untuk mengklasifikasi apakah detak jantung pengguna perangkat cerdas memiliki gejala penyakit jantung atau tidak. Dengan adanya 10
Implementasi Embedded System Menggunakan Beagleboard
perangkat cerdas ini, diharapkan dapat membantu masyarakat untuk mengetahui dan menjaga kondisi kesehatan jantung.
Gambar 1.5. Arsitektur diagram prototipe pendeteksi dini penyakit jantung.
Prototipe ini menggunakan mikrokontroler AVR ATmega8. Alasan memilih ATmega8 adalah karena ATmega8 memiliki dua modul yang dibutuhkan, yaitu ADC dan USART. Modul ADC dari perangkat ini memiliki akurasi yang hampir sama dibandingkan dengan model mikrokontroler AVR lain yang lebih canggih, misalnya ATmega32. Alasan lain memilih ATmega8 adalah karena ATmega8 memiliki ukuran yang cukup kecil dibandingkan mikrokontroler lain seperti ATmega16, ATmega32, dan mikrokontroler jenis lainnya. Selain itu, ATmega8 juga banyak dijual di pasaran. Board lain yang bisa menjadi pilihan untuk keperluan ini adalah FPGA Basys 2. Selain memiliki modul ADC dan USART, board ini memiliki keunggulan dalam hal frekuensi clock. Dengan demikian, dalam interval waktu yang sama, FPGA Basys 2 dapat melakukan lebih banyak konversi dibandingkan ATmega8. Mikrokontroller AVR ATmega8 dan FPGA Basys 2 dapat dilihat pada Gambar 1.6. Implementasi Embedded System Menggunakan Beagleboard
11
(a)
(b)
Gambar 1.6. Mikrokontroller AVR ATmega8 (a) dan FPGA Basys 2 (b).
Hasil klasifikasi pada prototipe ini kemudian dikombinasikan dengan piranti yang dapat menampilkan visualisasi detak jantung dan melakukan klasifikasi penyakit jantung. Modul terintegrasi yang pertama adalah kombinasi antara modul perangkat keras elektrokardiograf dan telepon pintar. Modul EKG dengan telepon pintar android ditujukan bagi masyarakat yang sering menggunakan telepon pintar baik telepon genggam (handphone) maupun tablet khususnya yang berbasis sistem operasi android. Modul terintegrasi antara EKG dengan telepon pintar dapat dilihat pada Gambar 1.7.
Gambar 1.7. Perangkat terintegrasi elektrokardiogram (EKG) dengan telepon pintar android.
Modul terintegrasi yang kedua adalah modul terintegrasi perangkat keras elektrokardiogram (EKG) dengan PC desktop. Modul ini ditujukan untuk masyarakat yang sangat sering
12
Implementasi Embedded System Menggunakan Beagleboard
mengunakan PC desktop ataupun mobile PC (notebook dan netbook) untuk melakukan monitoring terhadap kondisi jantung mereka. Modul terintegrasi antara EKG dengan PC desktop dapat dilihat pada Gambar 1.8.
Gambar 1.8. Perangkat terintegrasi elektrokardiogram (EKG) dengan PC desktop.
1.6.3. Autonomous Mobile Robot untuk Pemulihan Komunikasi di Daerah Bencana Terputusnya arus informasi dan komunikasi akibat rusaknya infrastruktur telekomunikasi merupakan isu penting yang harus segera diselesaikan pada suatu daerah yang terkena bencana. Perbaikan secara manual membutuhkan waktu yang tidak sebentar serta berisiko bagi tenaga ahli yang dikirim ke daerah bencana karena masih adanya kemungkinan terjadi bencana susulan atau hal yang membahayakan lainnya. Inovasi teknologi berupa autonomous mobile robot dapat menjadi solusi. Autonomous mobile robot yang tersebar di lokasi bencana akan menghubungkan dua menara komunikasi yang masih berfungsi dengan baik sehingga daerah yang terisolasi dapat kembali terhubung. Ilustrasi mengenai konsep kerja autonomous mobile robot dapat dilihat pada Gambar 1.9.
Implementasi Embedded System Menggunakan Beagleboard
13
Gambar 1.9. Ilustrasi Autonomous Mobile Robot yang menghubungkan dua menara yang masih berfungsi.
Fasilkom UI memiliki beberapa robot bernama Al-Fath. Pada robotrobot ini dikembangkan sistem komunikasi antar robot agar setiap robot dapat berkomunikasi satu sama lain. Sistem komunikasi ini dibangun dengan wireless communication.
Gambar 1.10. Robot Al-Fath dan Komponen Wireless I2C.
Robot Al-Fath memiliki tiga mikrokontroler. Satu mikrokontroler bertindak sebagai pengedali utama yaitu ATmega2560 dan dua lainnya menjadi pengendali sekunder yaitu ATmega8s. Mikrokontroler sekunder digunakan untuk mengontrol motor secara independen yaitu satu mikrokontroler untuk setiap motor. Selain itu, pembacaan encoder pertama kali diproses oleh 14
Implementasi Embedded System Menggunakan Beagleboard
mikrokontroler sekunder. Komunikasi antara mikrokontroler utama dan mikrokontroler sekunder dilakukan dengan menggunakan USART.
Gambar 1.11. Koneksi mikrokontroler utama ke sekunder.
1.6.4. Odor Source Localization (Pencarian Sumber Kebocoran Gas) Kemajuan teknologi membuat kita dapat membuat sebuah sistem pendeteksi bahaya dini akibat terjadinya kebocoran gas. Sistem pendeteksi dengan melakukan pemasangan sensor di setiap ruangan pada suatu gedung memang dapat dilakukan namun memiliki beberapa kekurangan, diantaranya kesulitan dalam pemasangan dan perawatan, kurangnya kemampuan dalam menentukan lokasi sumber kebocoran gas, dan kurangnya fleksibilitas sistem. Usaha lain yang mungkin dilakukan adalah dengan menugaskan tim khusus untuk mencari dan menutup kebocoran gas. Tim khusus ini biasanya terdiri atas manusia dan anjing yang telah dilatih untuk melakukan pelacakan dengan indra penciuman mereka. Gas yang mereka hirup sangat mungkin membahayakan nyawa para pencari. Selain itu ada kemungkinan hanya dengan terpapar gas tersebut saja dapat melukai atau membahayakan bagian tubuh para Implementasi Embedded System Menggunakan Beagleboard
15
pencari. Salah satu cara yang dapat digunakan sebagai solusi dalam pencarian sumber asap adalah dengan menggunakan agen artifisial, yaitu menggunakan autonomous mobile robot. Pencarian sumber kebocoran tersebut dapat dilakukan dengan berbagai pendekatan, diantaranya dengan pendekatan anemotaksis, kemotaksis, odor-gated rheotaxis, zig-zag, dan surge spiral. Agar memperoleh hasil yang diinginkan, pencarian tersebut sebaiknya dilakukan dengan menggunakan banyak agen, dengan kata lain menggunakan beberapa robot sekaligus dalam suatu pencarian (pencarian berbasis swarm). Teknik yang digunakan dalam pencarian adalah Particle Swarm Optimization (PSO) dan Modified Particle Swarm Optimization. Implementasi Autonomous Mobile Robot dalam pencarian sumber kebocoran gas dapat dilihat pada Gambar 1.12.
Gambar 1.12. Autonomous Mobile Robot dalam pencarian sumber kebocoran gas.
16
Implementasi Embedded System Menggunakan Beagleboard
1.6.5. Adaptive Traffic Signal Control System Lalu lintas adalah sumber kehidupan masyarakat karena merupakan tulang punggung arus modal, logistik, informasi, dan berbagai kegiatan masyarakat. Namun sampai sekarang ini, permasalahan utama lalu lintas yaitu kemacetan masih terjadi di berbagai tempat di Indonesia. Sistem Pengaturan Lampu Lalu Lintas Adaptif (Adaptive Traffic Signal Control System) merupakan sistem lampu lalu lintas yang memiliki fungsionalitas dapat memahami kondisi jalan sehingga lama waktu lampu merah dan lampu hijau untuk suatu ruas jalan dapat disesuaikan dengan kondisi jalan pada saat itu.
Gambar 1.13. Prototipe Sistem Pengaturan Lampu Lalu Lintas Adaptif.
Sistem ini mengenali kendaraan menggunakan metode Principal Component Analysis (PCA), sebuah metode yang dapat mengenali kendaraan dari gambar yang ditangkap oleh kamera video yang diarahkan ke jalan raya untuk memantau keadaan jalan secara real-time. Sistem ini menggunakan dua platform embedded system yaitu BeagleBoard dan mikrokontroler AVR. Sistem ini juga akan Implementasi Embedded System Menggunakan Beagleboard
17
mampu menghubungkan dan menghitung data dari beberapa persimpangan menggunakan metode Distributed Constraint Satisfaction Problem (DCSP). Dalam penelitian ini juga dilakukan pengembangan dan optimasi sistem pengaturan lalu lintas terkoordinasi yang didasarkan pada self-organizing control. Telah diusulkan model general sehingga dapat mengakomodasi pengaturan persimpangan yang memperbolehkan kendaraan berbelok kiri-kanan dan persimpangan multiway. Konsep isolated traffic signal diadposi oleh model kami dengan menerapkan logika fuzzy untuk menangani perubahan kepadatan arus lalu lintas pada persimpangan. Pengujian dilakukan dengan menggunakan traffic simulator pada beberapa sekenario simulasi sebagai sarana pengujian optimasi yang dilakukan.
Gambar 1.14. Traffic Simulator dan Traffic Signal Control System (TSCS) yang berjalan secara bersama-sama dan saling berkomunikasi.
18
Implementasi Embedded System Menggunakan Beagleboard
Bab 2. Single-Board Computer
2.1 Produk-produk Single-Board Computer Terdapat beberapa platform board yang mampu mengimplementasikan konsep embedded system. Board ini memiliki karakteristik seperti komputer namun mempunyai bentuk yang lebih kecil dan bersifat praktis. Masing-masing memiliki prosesor dan dapat di-install sistem operasi tertentu. Definisi Single-Board Computer (SBC) adalah sebuah komputer lengkap yang dibangun pada papan sirkuit tunggal. SBC memiliki mikroprosesor, memori, input/output (I/O), dan fitur lain yang dibutuhkan dari sebuah komputer fungsional. Tidak seperti komputer, suatu SBC mungkin tidak menyediakan slot-slot kartu aksesori tambahan (daughterboards). Sebuah SBC dapat menggunakan mikroprosesor dari hampir semua jenis mikroprosesor yang tersedia, dan dapat dibangun dari logika diskrit atau programmable logic. Jika menginginkan desain yang sederhana, SBC dapat dibangun dengan menggunakan RAM statis dan 16 bit prosesor berbiaya rendah. Dalam buku ini akan dijelaskan empat produk Single-Board Computer yang umum digunakan untuk membuat sebuah embedded system yakni PandaBoard, HawkBoard, Gumstix, dan tentunya Beagleboard.
2.1.1 PandaBoard PandaBoard adalah board berbasis prosesor OMAP4430 Multimedia Processor yang didesain agar dapat menyediakan akses ke sejumlah fitur yang dibutuhkan oleh prosesor tersebut namun tetap memiliki harga yang rendah. Kelebihan ini memudahkan pengguna untuk mengembangkan perangkat lunak yang mampu Implementasi Embedded System Menggunakan Beagleboard
19
menggunakan fitur-fitur powerfull yang dimiliki prosesor OMAP4430. Sehingga, dengan menyediakan kemampuan sebesar ini menggunakan konektor onboard, PandaBoard dapat mendukung sejumlah pengembangan fungsionalitas yang lainnya.
Gambar 2.1. Tampilan PandaBoard. [ http://papermint-designs.com ]
Berikut adalah fitur-fitur yang dimiliki PandaBoard. Prosesor Memori POP PMIC
Debug Support PCB
Indikator HS USB 2.0 OTG Port
HS USB Host Port Konektor Audio
20
Fitur OMAP4430 Micron 8GB LPDDR2 (EDB8064B1PB-8D-F) TI (TWL6030 Power Management Companion IC) 14-pin JTAG GPIO Pins UART via LEDs DB-9 connector 4.5” x 4.0” 8 layers (114.3 x 101.6 mm) 3 LEDs (Dua dikontrol oleh pengguna, satu indikator overvoltage) Konektor Mini-AB USB, dengan sumber dari OMAP USB Transceiver Empat USB HS Ports, dengan arus keluar masing-masing sampai dengan 500mA, Dua konektor ke onboard,
Implementasi Embedded System Menggunakan Beagleboard
Konektor SD/MMC User Interface
Video
Konektor Power Kamera
Dua konektor ke ekspansi 3.5mm, L+R out 3.5mm, Stereo In 6 in 1 SD/MMC/SDIO 4/8 bit support, Dual voltage 1 Tombol yang Tombol Reset ditetapkan oleh pengguna DVI-D atau HDMI, Optional user provided plug-in Video display Optional Composite Video out ke dua pin header USB Power DC Power Tidak termasuk, tetapi didukung melalui konektor ekspansi kamera
PandaBoard biasa dijalankan dengan bantuan host sebuah PC yang telah ter-install sistem operasi Linux. Distro sistem operasi yang direkomendasikan untuk PC yang menjadi host adalah Ubuntu namun bisa juga menggunakan produk Linux lainnya. Kemudian untuk menjalankan PandaBoard perlu di-install sebuah package tambahan yaitu minicom. PandaBoard dioptimasi untuk menjalankan sejumlah mobile software yang bersifat open source seperti Android, Ubuntu, MeeGo, dan sebagainya. Komunitas PandaBoard.org telah memberikan tutorial lengkap untuk masing-masing distro sistem operasi sehingga pengguna dapat mulai mencoba-coba PandaBoard sesuai dengan pilihannya sendiri. Gambar 2.2. menunjukkan tampilan komponen-komponen pada PandaBoard.
Implementasi Embedded System Menggunakan Beagleboard
21
Gambar 2.2. Komponen-komponen pada PandaBoard. [ http://en.wikipedia.org ]
Berikut adalah komponen-komponen utama yang digunakan pada PandaBoard. Prosesor OMAP4430 TWL6030 (Phoenix) Power Management Companion Device TWL6040 (Phoenix) Audio Companion Device Memori SDRAM POP Mobile LPDDR2 Konektor HDMI tipe A untuk OMAP4430 HDMI Transmitter output Konektor HDMI tipe A untuk DVI-D output bersumber dari OMAP4 parallel display output Konektor Audio Input & Output (3.5mm) SD/SDIO/MMC Media Card Cage UART via RS-232 interface via 9-pin konektor D-Sub LS Research Module – 802.11b/g/n, Bluetooth, FM
22
Implementasi Embedded System Menggunakan Beagleboard
PandaBoard juga menyediakan konektor yang dapat difungsikan untuk ekspansi fungsionalitas tambahan atau pengembangan lainnya. Konektor memang tidak tersedia pada board namun dapat di-install oleh pengguna. Konektor-konektor PandaBoard diantaranya sebagai berikut. Konektor Kamera (J17) Konektor-konektor ekspansi LCD (J1 dan J4) Konektor-konektor ekspansi generic (J3 dan J6) Composite Video Header (J12)
2.1.2 HawkBoard HawkBoard adalah salah satu open community board berbasis prosesor Ti’s OMAP L138 yang juga memiliki banyak fitur namun tetap ekonomis. HawkBoard mampu mendukung banyak perangkat tambahan, sehingga board ini cukup powerfull untuk media digital dan aplikasi penyimpanan (storage applications). Prosesor OMAP L138 sendiri dipilih karena prosesor ini merupakan integrasi prosesor ARM9 dan Ti DSP sehingga kinerja prosesor ini menyerap konsumsi power yang kecil. Hal ini membuat HawkBoard sangat cocok untuk skala embedded system dan aplikasi industri yang lebih luas. Selain itu HawkBoard juga dilengkapi berbagai controller yang membuat fungsionalitasnya dapat bervariasi. Seperti internal memory controller yang mendukung berbagai media penyimpanan seperti DDR2/MDDR/SDRAM/NOR & NAND FLASH, inbuilt SATA controller yang dapat mendukung SATA I dan SATA II, dan inbuilt MMC/SD controller yang mampu menyediakan sebuah media penyimpanan tambahan yang praktis untuk koleksi pribadi. Selain itu HawkBoard juga menyediakan interface ekspansi UPP yang mampu mendukung interfacing ke FPGA dan pengubah data lainnya secara paralel dengan kecepatan tinggi. Dua port USB yang tersedia mampu mendukung koneksi dengan perangkat tambahan
Implementasi Embedded System Menggunakan Beagleboard
23
lain. USB OTG memberikan pilihan untuk menyalakan HawkBoard ketika terhubung dengan PC atau laptop.
Gambar 2.3. Tampilan HawkBoard. [ http://www.flickr.com/photos/koenkooi/ ]
Berikut ini adalah komponen-komponen utama dari HawkBoard. Prosesor
Memori
Interfaces
24
Fitur Ti OMAP-L138 Low Power Application Processor 300-MHz ARM926EJ-STM RISC CPU 300-MHz C674x VLIW DSP On-Chip RTC 128 MByte DDR2 SDRAM pada kecepatan 150MHz 128 MByte NAND FLASH 1 slot SD/MMC Satu port serial RS232 Satu port Fast Ethernet (10/100 Mbps) Satu port USB Host (USB 1.1) Satu port USB OTG (USB 2.0) Satu port SATA (3Gbps) Satu port VGA (15 pin D-SUB) Dua port AUDIO (1 LINE IN & 1 LINE OUT) Satu IN Composite (Jack RCA)
Implementasi Embedded System Menggunakan Beagleboard
Ekspansi Interface Dukungan Software
VPIF, UPP, PRU, LCDC, UART(x2), SPI (x2), I2C (x1), eCAP, eHRPWM, GPIO U-Boot Linux BSP
Gambar 2.4. Komponen-komponen pada HawkBoard.
2.1.3 Gumstix Perusahaan Gumstix yang didirikan tahun 2003 oleh Gordon Kruberg juga memproduksi single-board computer. Saat ini Gumstix memiliki 2 jalur produk dalam kategori computer-onmodule, yaitu seri Overo yang menggunakan prosesor Texas Instruments OMAP-based dan seri Verdex Pro yang menggunakan prosesor Marvell XScale-based. Gumstix Overo memiliki ukuran 17 mm x 58 mm x 4.2 mm dan Gumstix Verdex Pro yang lebih besar memiliki ukuran sebesar permen karet, yaitu 80 mm x 20 mm x 5.3 mm.
Implementasi Embedded System Menggunakan Beagleboard
25
Gambar 2.5. Tampilan Gumstix Overo Earth dan Gumstix Verdex Pro. [ http://pixhawk.ethz.ch dan http://www.assembla.com/spaces/gccrobotics/wiki/Gumstix ]
Berikut adalah fitur-fitur yang dimiliki Gumstix Overo. Fitur Prosesor
Texas Instruments OMAP3530 atau OMAP3503 dengan Cortex™-A8 CPU
Kecepatan
600MHz dan 720MHz
Memori
512MB / 256MB low-power DDR RAM 256MB NAND Flash (Overo® Tide tidak memiliki NAND Flash)
Komunikasi Wireless
Bluetooth® (v2.0 + EDR) dan 802.11g (hanya Overo® Air dan Fire)
Pada board
microSD slot
Koneksi Pin
Konektor-konektor AVX 2 x 70-pin Konektor flex ribbon 27-pin
Dimensi
58 mm x 17 mm x 4.2 mm
Lubang pemasangan
Empat lubang yang terletak simetris
26
Implementasi Embedded System Menggunakan Beagleboard
Selanjutnya berikut adalah fitur-fitur yang dimiliki Gumstix Verdex Pro. Fitur Prosesor
Marvell® PXA270 with XScale™
Kecepatan
600MHz atau 400MHz
Memori
Sampai dengan 128MB RAM Sampai dengan 32MB Flash
Komunikasi Wireless
Bluetooth® (hanya verdex pro™ XM4-BT)
Pada board
microSD slot
Koneksi Pin
60-pin Hirose I/O connector
802.11g – optional untuk produk netpro
80-pin Hirose I/O connector 24-pin flex ribbon connector Dimensi
80 mm x 20 mm x 5.3 mm
Lubang pemasangan
Tiga lubang yang terletak asimetris
Saat ini terdapat 12 jenis seri Gumstix Overo yang dijual melalui situs resminya, yaitu Overo® Air, Overo® Earth, Overo® FE, Overo® Fire, Overo® Sand, Overo® Tide, Overo® Water, Overo® AirSTORM, Overo® EarthSTROM, Overo® FireSTORM, Overo® IronSTORM, dan Overo® WaterSTORM. Perbedaan dari jenis-jenis Overo tersebut diantaranya adalah perbedaan ukuran memori dan tersedia atau tidaknya fungsi komunikasi wireless. Harga dari kedua belas jenis Overo tersebut bervariasi dari 115 USD sampai dengan 229 USD. Seri Gumstix Verdex Pro memiliki 3 jenis produk, yaitu Gumstix® verdex pro™ XL6P, Gumstix® verdex pro™ XM4, dan Gumstix® verdex pro™ XM4-BT. Verdex Pro XL6P memiliki kecepatan 600MHz dan Verdex Pro XM4 memiliki kecepatan 400MHz. Dibandingkan Verdex Pro XM4, Verdex Pro XM-BT memiliki kemampuan tambahan komunikasi wireless dengan bluetooth. Implementasi Embedded System Menggunakan Beagleboard
27
Harga ketiga jenis Verdex Pro tersebut bervariasi dari 129 USD sampai dengan 169 USD. Gumstix Overo maupun Verdex Pro dapat dihubungkan dengan board ekspansi lain sehingga dapat memiliki fungsi tambahan. Board ekspansi untuk seri Overo diantaranya adalah board kamera Caspa FS (Full Spectrum) atau VL (Visible Light) untuk keperluan robotika atau computer vision dan Gallop43 yang memiliki fungsi tambahan GPS, accelerometer, dan LCD-ready. Kemudian untuk Verdex Pro, board ekspansi yang tersedia diantaranya GPSstix yang dilengkapi dengan fungsi GPS, audiostix 2 untuk keperluan audio, dan robotstix untuk keperluan robotika.
Gambar 2.6. Tampilan PIXHAWK camera board untuk Gumstix Overo. [ http://pixhawk.ethz.ch ]
Gambar 2.7. Menghubungkan kamera PIXHAWK ke Gumstix Overo. [ http://pixhawk.ethz.ch ]
28
Implementasi Embedded System Menggunakan Beagleboard
2.1.4 Field Programmable Gate Array (FPGA) Field Programmable Gate Array (FPGA) adalah device yang terdiri dari jutaan transistor yang berhubungan untuk melakukan logic function. Fungsi-fungsi yang dapat dilakukan oleh FPGA mulai dari yang paling sederhana seperti penjumlahan dan pengurangan sampai fungsi yang kompleks seperti pendeteksian error dan penyaringan digital. Beberapa sistem yang menggunakan FPGA diantaranya adalah radar, pesawat udara, peluru kendali, dan komputer. Perangkat semikonduktor FPGA dapat diprogram/dikonfigurasi ulang setelah proses manufaktur. FPGA memungkinkan customer/programmer untuk dapat membuat fitur atau fungsi program, beradaptasi dengan standar baru, dan mengkonfigurasi ulang hardware untuk aplikasi tertentu bahkan setelah program telah ter-install. FPGA juga bisa digunakan untuk mengimplementasikan berbagai logic function. Gambar FPGA dapat dilihat pada Gambar 2.8.
a)
b)
Gambar 2.8. Tampilan a) FPGA Basys 2 dan b) FPGA Xilinx Spartan [ http://www.fpga.synth.net/pmwiki/ ].
Setiap tipe, FPGA memiliki spesifikasi hardware tersendiri. FPGA Basys 2 memiliki antarmuka USB, satu serial port, satu USB mini, dan pin untuk masukan dan keluaran sederhana. Sedangkan FPGA Xilinx Spartan menyediakan antarmuka port ethernet, tiga port Implementasi Embedded System Menggunakan Beagleboard
29
serial dan VGA, dan pin masukan dan keluaran biasa. Oleh sebab itu, pengguna sebaiknya memilih dengan cermat tipe FPGA yang akan digunakan, dan tentunya disesuaikan dengan kebutuhan perancangan sistem. FPGA mengandung komponen yang disebut logic cell dan programmable switch. Logic cell dapat di konfigurasi/diprogram untuk menjalankan gerbang logika sederhana (seperti AND dan OR) atau fungsi yang kompleks. Setiap logic cell terdiri atas satu look up table dan satu D-flip flop. Gambar 2.9 memperlihatkan isi dari logic cell. Setiap logic cell juga saling terkait satu sama lain dan dihubungkan dengan programmable switch. Programmable switch dapat dikonfigurasi untuk menentukan keterkaitan antar setiap logic cell.
Gambar 2.9. Logic Cell.
Konfigurasi FPGA biasanya ditentukan dengan menggunakan Hardware Description Language (HDL). Terdapat dua HDL yang umum digunakan, yaitu Verilog dan Very High-Speed Integrated Circuit (VHSIC) HDL. Pada pertengahan tahun 1980-an, Departemen Pertahanan AS dan IEEE mensponsori perkembangan hardware description language dengan tujuan untuk mengembangkan high-speed integrated circuit. Sekarang, bahasa VHDL ini telah menjadi salah satu bahasa standar industri yang digunakan untuk merancang dan menjelaskan sistem digital.
30
Implementasi Embedded System Menggunakan Beagleboard
2.2 BeagleBoard BeagleBoard adalah board yang cukup murah tapi memiliki kinerja tinggi. BeagleBoard didesain oleh komunitas yang tergabung dalam Beagleboard.org. Komunitas ini adalah komunitas sukarela yang sangat tertarik dalam pengembangan embedded system. Komunitas ini banyak diisi oleh para insinyur dari Texas Intrument yang merupakan salah satu perusahaan ternama di bidang semikonduktor. Komunitas Beagleboard.org telah mengembangkan berbagai macam project yang berbasis BeagleBoard. Informasi mengenai perkembangan project-project tersebut dapat ditemukan di dalam situs resmi mereka dengan mudah. Selain itu, di dalam situs resminya, mereka juga menyediakan berbagai macam dukungan baik berupa referensi atau Frequently Asked Question (FAQ) mengenai BeagleBoard. Para pengembang sistem berbasis BeagleBoard dapat bergabung ke dalam komunitas tersebut dan aktif berdiskusi dengan para anggotanya. BeagleBoard menggunakan prosesor dengan arsitektur superscalar bernama ARM Cortex A8. Arsitektur prosesor yang digunakan tersebut sangat berbeda dengan arsitektor prosesor Intel yang umum digunakan dalam sistem komputer pada umumnya. Karena perbedaan tersebut, maka program atau aplikasi yang dikompilasi untuk prosesor Intel tidak bisa langsung dijalankan pada BeagleBoard. Jika suatu program yang diperuntukkan bagi sistem berbasis prosesor Intel ingin dijalankan dalam BeagleBoard, maka source code dari program tersebut harus dikompilasi ulang ke dalam perintah yang dapat dipahami arsitektur prosesor ARM. BeagleBoard adalah bersifat multipurpose, artinya BeagleBoard bisa digunakan untuk aplikasi apa saja yang memerlukan komputasi. Pada BeagleBoard, kita dapat memasang sistem operasi yang biasa terpasang pada PC atau notebook, seperti Linux, Android, dan sebagainya. Selain itu, BeagleBoard juga mendukung
Implementasi Embedded System Menggunakan Beagleboard
31
pengembangan berbagai aplikasi, misalnya aplikasi robotika, home media center, dan lain-lain. Saat buku ini dibuat, terdapat dua tipe utama BeagleBoard yang beredar, yaitu (1) BeagleBoard desain asli, yang biasa disebut Original BeagleBoard dan (2) BeagleBoard desain baru dengan spesifikasi yang lebih tinggi, yaitu BeagleBoard-xM. Beberapa perbedaan di antara keduanya adalah sebagai berikut. 1. Keduanya memiliki koneksi input yang berbeda, sehingga perangkat tambahan (peripheral) yang bisa dilekatkan pun berbeda. Misalnya, dalam Original BeagleBoard terdapat slot SD, sedangkan dalam BeagleBoard-xM digunakan slot Micro SD. 2. Original BeagleBoard memiliki NAND Flash Memory, sedangkan BeagleBoard-xM tidak. 3. Original BeagleBoard mampu menangani hingga 10 juta poligons per sec graphics, sedangkan BeagleBoard-xM mampu menangani hingga dua kali lipatnya. Secara fisik, perbedaan antara Original BeagleBoard dengan BeagleBoard-xM dapat dilihat pada Gambar 2.10 dan Gambar 2.11. Pada buku ini, kedua versi BeagleBoard tersebut akan dibahas secara detil dan dicoba untuk membuat Sistem Pengaturan Lampu Lalu Lintas.
32
Implementasi Embedded System Menggunakan Beagleboard
Gambar 2.10. Tampilan BeagleBoard C4. [ http://en.wikipedia.org ]
Gambar 2.11. Tampilan BeagleBoard-xM. [ http://en.wikipedia.org ]
BeagleBoard hingga saat ini masih sangat sulit dijumpai di Indonesia. Bagi mereka yang ingin mendapatkan BeagleBoard harus mengimpornya dari negara terdekat, misalnya dari Singapura, atau didatangkan langsung dari distributor resminya, DigiKey Corporation, yang berada di Amerika Serikat. Silakan merujuk situs resmi BeagleBoard, www.beagleboard.org untuk mengetahui cara pemesanan dan melakukan pemesanan.
Implementasi Embedded System Menggunakan Beagleboard
33
2.2.1 Kelebihan Meggunakan BeagleBoard Beberapa kelebihan dari penggunaan BeagleBoard adalah sebagai berikut. 1. Dapat secara langsung menambahkan modul kamera kecil untuk keperluan pemrosesan gambar dan konversi audio eksternal. 2. Dapat dengan mudah melakukan boot sistem operasi baru dari media eksternal tanpa ketergantungan terhadap memori non-volatile seperti flash NAND. 3. Dapat menjalankan sistem operasi Linux penuh dengan desktop windows managers dan office applications. 4. Dapat mencapai foto-realistis, real-time pixel-shaded graphics untuk gaming dan 3D user interface acceleration. 5. Dapat menggunakan USB peripheral seperti keyboard, mouse, WiFi, Bluetooth, web camera atau USB hub tambahan. 6. Dapat menambahkan monitor komputer digital. 7. Dapat menambahkan televisi NTSC atau PAL. 8. Dapat bertindak sebagai PC peripheral, seperti adaptor USB-to-serial virtual atau perangkat penyimpanan atau digunakan untuk menghubungkan peripheral USB tambahan.
Penerapan BeagleBoard dapat dilakukan pada banyak bidang, diantaranya adalah pada bidang-bidang berikut (Kridner, 2008). 1. Web services. 2. 3-D gaming. 3. 3-D UI. 4. Pengembangan kernel dan driver Linux. 5. Boot loaders dan firmware. 6. UI framework. 7. ARM® NEON codecs. 8. Codec plug-ins for GStreamers.
34
Implementasi Embedded System Menggunakan Beagleboard
9. OpenGL® applications. 10. OpenMAX™ IL applications. 11. Ubuntu, Android, MeeGo, WinCE, QNX, Angstrom, Symbian, Debian, Gentoo. 12. Home media centers. 13. Google Talk video phone. 14. Mobile digital television. 15. Thin client terminal. 16. In-vehicle entertainment. 17. Robotics. 18. Web kiosks. 19. Security camera analyzer, streamer, recorder, monitor. 20. Vehicle telematics and automation. 21. Network sniffer. 22. Digital signage. 23. Dan masih banyak lagi yang lainnya.
2.2.2 BeagleBoard C4 dan Spesifikasinya BeagleBoard C4 merupakan BeagleBoard keluaran pertama yang muncul di pasaran. BeagleBoard C4 termasuk ke dalam tipe Original BeagleBoard.
Implementasi Embedded System Menggunakan Beagleboard
35
Gambar 2.12. Komponen-komponen BeagleBoard C4. [ http://beagleboard.org ]
Spesifikasi teknis dari BeagleBoard C4 adalah sebagai berikut. : 600 MHz Super-scalar ARM Cortex TM -A8
Prosesor
HD video Capable C64x+™ Digital Signal Processor Memori
: 128 MB LPDDR RAM 256 MB NAND Flash
USB
: 2 On-board high-speed USB 2.0 High-speed USB 2.0 OTG. port yang dapat pula digunakan sebagai tenaga listrik
Port untuk Monitor
: DVI-D (monitor digital & HDTV)
Port untuk TV
: S-Video
Audio
: Stereo out dan stereo in
Penyimpanan Eksternal
: High-capacity SD Card slot
Port lain
: RS-232 Serial
36
Dilengkapi 4 GB SD Card
Implementasi Embedded System Menggunakan Beagleboard
LCD Expansion JTAG Port kamera
1. Prosesor BeagleBoard C4 menggunakan prosesor OMAP3530DCBB72 versi 720MHz dan dipaket dalam paket 0.4 mm pitch POP. Prosesor ini termasuk ke dalam keluarga arsitektur prosesor ARM.
2. Memori Memori Package On Package (POP) Micron digunakan dalam BeagleBoard C4 dan dipasang di atas prosesor. Memori ini terdiri atas: 2Gb NAND x16 (256MB) 2Gb MDDR SDRAM x32 (256MB @ 166MHz) Selain itu, pada BeagleBoard C4 dimungkinkan menambah memori lain dengan cara: memasang SD atau MMC pada slot SD/MMC, menggunakan port USB OTG dan Hub USB yang terpasang listrik untuk memasang thumbdrive atau hard drive, atau memasang thumbdrive pada port USB EHCI. Namun, driver untuk alat-alat tersebut harus terpasang dan didukung oleh sistem operasi yang dipasang di BeagleBoard.
3. Power Management BeagleBoard C4 menggunakan TPS65950 untuk menyediakan tenaga ke BeagleBoard dengan pengecualian regulator 3.3 V yang digunakan untuk menyalakan encoder DVI-D dan driver RS232. TPS65950 juga menyediakan tenaga untuk komponen-komponen berikut. Stereo Audio Out Implementasi Embedded System Menggunakan Beagleboard
37
Stereo Audio In Power on reset USB OTG PHY LED Status
4. Port HS USB 2.0 OTG Port USB OTG dapat digunakan sebagai sumber tenaga utama dan untuk komunikasi data antara BeagleBoard dan komputer host. Biasanya, port klien dibatasi pada 500 mA oleh komputer. Sebuah port USB komputer sudah cukup untuk memberi tenaga bagi sebuah BeagleBoard. Jika ada alat tambahan dihubungkan ke bus ekspansi dan diperlukan tegangan 5 V untuk memberinya tenaga atau jika ada alat USB yang memerlukan banyak tenaga listrik dihubungkan ke port EHCI, maka tenaga yang dibutuhkan bisa jadi melebihi tenaga yang disediakan sebuah port USB OTG ini. Apabila hal itu terjadi, penambahan tegangan dapat dilakukan dengan menggunakan kabel USB Y. Tersedia pula alternatif menyediakan tenaga eksternal ke BeagleBoard dengan 5 V DC melalui barrel adapter 5 mm.
5. Port HS USB 2.0 Host Pada BeagleBoard C4, HS USB hanya menyediakan port Host via USB tipe konektor A. Dari sini juga dapat diperoleh tenaga kontrol on/off sampai dengan 500 mA dengan tegangan 5 V. Port HS USB hanya mendukung host saja. Untuk menggunakan alat-alat Fs/LS, diperlukan hub USB perantara.
6. Konektor Stereo Audio BeagleBoard C4 juga telah dilengkapi sebuah jack audio 3.5 mm in dan sebuah 3.5 mm out untuk audio CODEC yang sudah onboard,
38
Implementasi Embedded System Menggunakan Beagleboard
dan berfungsi untuk mengakses stereo output. CODEC audio disediakan oleh TPS65950.
7. Konektor S-Video BeagleBoard C4 telah dilengkapi dengan konektor 4 pin DIN untuk mengakses keluaran (output) S-Video. Keluaran S-Video terpisah dari prosesor dan dapat mengandung keluaran video yang berbeda dari yang diperoleh melalui DVI-D jika perangkat lunaknya diatur demikian. Konektor S-Video mendukung format NTSC atau PAL pada TV analog standar. Format default yang digunakan adalah NTSC, namun dapat diubah melalui perangkat lunak sesuai dengan kebutuhan.
8. Konektor DVI-D BeagleBoard dapat mengendalikan LCD yang dilengkapi masukan digital DVI-D, seperti monitor LCD. Konektor DVI-D ini mendukung 24b warna. Display Data Channel (DDC2B) atau Enhanced Display ID (EDID) yang mendukung I2C juga disediakan untuk mengenali tipe monitor LCD dan pengaturan-pengaturan yang dibutuhkan. BeagleBoard dilengkapi antarmuka DVI-D yang menggunakan konektor HDMI. Namun, konektor ini tidak mendukung antarmuka HDMI sepenuhnya, hanya bagian antarmuka DVI-D saja yang didukung. Untuk menghubungkan ke monitor LCD, diperlukan kabel HDMI ke DVI-D. Kabel HDMI standar dapat digunakan untuk menghubungkan BeagleBoard ke monitor yang memiliki koneksi HDMI. Salah satu yang harus diperhatikan adalah bahwa konektor DVI-D tidak boleh dipasangkan ke monitor ketika BeagleBoard sedang menyala. Pastikan telah memasang kabel terlebih dahulu baru menyalakan BeagleBoard.
Implementasi Embedded System Menggunakan Beagleboard
39
9. Header LCD Untuk memperoleh akses ke sinyal LCD, BeagleBoard pun telah dilengkapi dengan sepasang pin 2x10 1.27 mm. Hal ini memungkinkan pembuatan LCD board yang akan mengizinkan adapter dibuat untuk menyediakan level translation yang mendukung panel LCD yang berbeda-beda.
10. Konektor SD/MMC 6 in 1 Pada BeagleBoard C4, juga telah disediakan konektor SD/MMC 6 in 1 yang berfungsi untuk dukungan ekspansi ke beberapa piranti lain seperti kartu WiFi, kamera, kartu bluetooth, modul GPS, kartu SD, kartu MMC, kartu SDIO, kartu MMCMobile, kartu RS-MMC, kartu miniSD, dan sebagainya. BeagleBoard C4 juga mendukung standar MMC4.0 (MMC+). Dengan adanya dukungan ini, BeagleBoard dapat di-boot dari MMC atau SD Card jenis 4 bit maupun 8 bit.
11. Tombol Reset BeagleBoard juga dilengkapi dengan tombol reset seperti piranti lainnya. Tombol ini berbentuk bulatan kecil berwarna hitam. Apabila tombol ini ditekan maka BeagleBoard akan berjalan ulang dari proses booting.
12. Tombol Boot/Pengguna Di sebelah tombol reset, juga terdapat sebuah tombol lain, yakni tombol Boot. Tombol ini mempunyai dua fungsi, yaitu: Sebagai tombol untuk mengubah paksa urutan boot, dan sebagai tombol untuk aplikasi yang bisa difungsikan oleh perangkat lunak. 40
Implementasi Embedded System Menggunakan Beagleboard
Jika tombol ditekan bersamaan dengan tombol reset, maka akan mengubah paksa urutan boot. Jika tombol ditekan saat tombol reset dilepaskan, urutan boot akan menjadi seperti berikut. 1. USB 2. UART 3. MMC1 4. NAND Meskipun sedang terdapat program di dalam NAND, jika MMC terpasang, maka BeagleBoard akan mencoba melakukan boot dari MMC terlebih dahulu.
13. LED Indikator Sebagai indikator, BeagleBoard memberikan tiga buah lampu LED untuk menjelaskan kepada kita kondisinya saat itu. Tiga buah LED hijau pada BeagleBoard yang dapat dikendalikan oleh pengguna adalah sebagai berikut. Satu terhubung pada TPS65950 yang diprogram melalui antarmuka I2C. Dua terhubung pada prosesor OMAP3530 yang dikendalikan melalui pin GPIO. LED keempat menginformasikan apakah pada BeagleBoard ada tenaga listrik atau tidak.
14. Konektor Tenaga Tenaga disalurkan melalui konektor USB OTG dan jika ada kebutuhan tenaga tambahan, misalnya ketika sebuah board ditambahkan ke slot ekspansi, tenaga 5 V yang lebih besar dapat disalurkan melalui jack power. Jika ada tenaga dari jack power, tenaga dari konektor USB akan diputus sehingga tenaga dari jack power akan dipakai untuk semua kebutuhan. Ketika menggunakan port USB OTG pada mode host, supply DC dari port USB hanya menyediakan tenaga maksimum 100 mA, sehingga hub harus Implementasi Embedded System Menggunakan Beagleboard
41
terhubung ke tenaga listrik. Satu hal penting yang harus diperhatikan adalah bahwa agar tidak menghubungkan konektor DC selain dengan tegangan 5 V karena dalam skenario terburuk tindakan ini dapat langsung merusak BeagleBoard.
15. Konektor JTAG Konektor JTAG pada BeagleBoard memiliki 14 pin yang berfungsi untuk pengembangan dan debugging perangkat lunak menggunakan berbagai emulator JTAG. Konektor ini hanya mendukung besar tegangan sebesar 1.8 V. Perlu diperhatikan bahwa sebaiknya tidak menghubungkan pin JTAG dengan tegangan lebih dari 3.3 V karena dapat merusak BeagleBoard.
16. Pin Serial RS232 Dukungan RS232 via UART3 tersedia melalui header 10 pin pada BeagleBoard untuk mengakses RS232 transceiver. Untuk mengakses port ini diperlukan kabel IDC to DB9. Kabel ini tidak disediakan di dalam paket BeagleBoard, sehinggga harus dibeli secara terpisah. Berdasarkan pengalaman penulis, BeagleBoard cukup sensitif terhadap kabel serial. Jadi, meskipun terdapat dua buah kabel serial yang memiliki spesifikasi yang sama, belum tentu menjamin keduanya dapat terhubung ke BeagleBoard dengan baik.
17. Header Ekspansi BeagleBoard pun menyediakan header 28 pin pada board untuk berbagai koneksi kartu ekspansi yang dikembangkan sendiri oleh pengguna maupun oleh pihak pengembang lainnya. Sinyal yang berbeda dapat diberikan pada tiap-tiap pin untuk multiplexing untuk berbagai konfigurasi lainnya.
42
Implementasi Embedded System Menggunakan Beagleboard
2.2.3 BeagleBoard-xM dan Spesifikasinya BeagleBoard-xM merupakan tipe terbaru BeagleBoard yang merupakan revisi dari BeagleBoard C4. Terdapat beberapa perbedaan spesifikasi antara BeagleBoard C4 dan BeagleBoard-xM.
Gambar 2.13. Komponen-komponen BeagleBoard-xM. [ http://www.flickr.com/photos/jadon/4644432552/ ]
Berikut ini adalah spesifikasi teknis BeagleBoard-xM. Spesifikasispesifikasi yang ada pada umumnya lebih tinggi daripada BeagleBoard C4. Selain itu, terdapat beberapa perbedaan antarmuka (interface) yang didukung oleh keduanya. Prosesor
: 1 GHz Super-scalar ARM Cortex TM -A8 800 MHz Processor
C64x+™
Digital
Signal
3D Graphics Accelerator Memori
: 512-MB LPDDR RAM
USB
: 4 On-board high-speed USB 2.0 High-speed USB 2.0 OTG port yang dapat pula digunakan sebagai tenaga
Implementasi Embedded System Menggunakan Beagleboard
43
listrik Port untuk Monitor
: DVI-D (monitor komputer digital dan HDTV)
Port untuk TV
: S-video
Audio
: Stereo out dan stereo in
Penyimpanan Eksternal
: High-capacity SD Card slot
Port lain
: Ethernet 10/100
dilengkapi 4-GB SD Card card RS-232 Serial LCD Expansion JTAG Port kamera
1. Prosesor BeagleBoard-xM menggunakan prosesor DM3730CBP 1GHz dan prosesor ini dipaket dalam paket 0.4mm pitch POP. Prosesor ini termasuk ke dalam arsitektur prosesor ARM. Posisi prosesor dan berbagai chip lainnya di dalam BeagleBoard-xM dapat dilihat pada Gambar 2.14.
44
Implementasi Embedded System Menggunakan Beagleboard
Gambar 2.14. Berbagai chip pada BeagleBoard-xM.
2. Memori Ada dua tipe memori yang digunakan oleh BeagleBoard-xM. Dalam BeagleBoard-xM versi-00, digunakan memori Micron POP seperti pada BeagleBoard C4, sedangkan dalam BeagleBoard-xM versi-01, digunakan memori Numonyx POP. Fungsi utama memori POP adalah untuk menyediakan memori berkapasitas 4GB MDDR SDRAM x32 (512MB @ 166MHz). Selain itu, pada BeagleBoard-xM, dimungkinkan pula menambah memori lain dengan cara: mengakses memori pada µSD Card, menggunakan port USB OTG dan Hub USB yang terhubung ke sumber listrik untuk memasang thumbdrive/harddrive, memasang thumbdrive pada port USB, atau menambah adapter hard disk USB pada salah satu port USB. Namun, harus dipastikan bahwa driver untuk alat-alat tersebut terpasang dan didukung oleh sistem operasi yang dipasang di BeagleBoard. Implementasi Embedded System Menggunakan Beagleboard
45
3. Power Management BeagleBoard-xM juga menggunakan TPS65950 untuk penyediaan tenaga ke BeagleBoard dengan pengecualian regulator 3.3 Volt yang digunakan untuk menyalakan encoder DVI-D dan driver RS232. TPS65950 juga menyediakan tenaga untuk komponenkomponen berikut. Stereo Audio Out Stereo Audio In Power on reset USB OTG PHY Status LED
4. Port HS USB 2.0 OTG Port USB OTG dapat digunakan sebagai sumber tenaga listrik utama dan untuk komunikasi data antara BeagleBoard dan komputer host. Biasanya, port klien dibatasi pada 500 mA oleh komputer. Sebuah USB port komputer sudah cukup untuk memberi tenaga bagi BeagleBoard. Jika ada alat tambahan dihubungkan ke bus ekspansi dan diperlukan daya sebesar 5 volt untuk memberi tenaga padanya, atau jika ada alat USB yang memerlukan banyak tenaga listrik dihubungkan ke port EHCI, maka tenaga yang dibutuhkan bisa jadi melebihi tenaga yang disediakan sebuah port USB OTG ini. Jika demikian, dimungkinkan untuk menambah tenaga dengan menggunakan kabel USB Y. Tersedia juga alternatif untuk menyediakan tenaga eksternal ke BeagleBoard, yaitu dengan menggunakan 5 V DC melalui barrel adapter 5mm. Berbagai port yang terdapat di BeagleBoard-xM dapat dilihat pada Gambar 2.15.
46
Implementasi Embedded System Menggunakan Beagleboard
Gambar 2.15. Posisi berbagai macam antarmuka BeagleBoard-xM.
5. Port HS USB 2.0 Host Berbeda dengan BeagleBoard C4, pada BeagleBoard-xM tersedia 4 buah port USB dengan dukungan penuh LS/FS/HS. Masing-masing port dapat dijadikan sumber tenaga untuk mengontrol on/off dan memberi tegangan sebesar 5 V (dapat sampai 500 mA) sepanjang masukkan DC yang diberikan minimal 3 A.
6. Konektor Stereo Audio Untuk mengakses stereo output, BeagleBoard-xM juga menyediakan sebuah audio jack 3.5 mm in dan sebuah 3.5 mm out untuk audio CODEC onboard. CODEC audio disediakan oleh TPS65950.
7. Konektor S-Video BeagleBoard-xM menyediakan konektor DIN 4 pin untuk mengakses keluaran S-Video. Keluaran S-Video terpisah dari prosesor dan dapat mengandung keluaran video yang berbeda dari Implementasi Embedded System Menggunakan Beagleboard
47
yang diperoleh melalui DVI-D, jika memang perangkat lunaknya dikonfigurasi demikian. Konektor S-Video mendukung format NTSC atau PAL pada TV analog standar. Format default yang digunakan adalah NTSC, namun dapat diubah melalui perangkat lunak sesuai dengan yang dibutuhkan.
8. Konektor DVI-D BeagleBoard dapat mengendalikan LCD yang dilengkapi masukan digital DVI-D, seperti monitor LCD. Konektor DVI-D ini mendukung 24b warna. Display Data Channel (DDC2B) atau Enhanced Display ID (EDID) yang mendukung I2C juga disediakan untuk mengenali tipe monitor LCD dan pengaturan-pengaturan yang dibutuhkan. BeagleBoard dilengkapi antarmuka DVI-D yang menggunakan konektor HDMI. Namun, konektor ini tidak mendukung antarmuka HDMI sepenuhnya, hanya bagian antarmuka DVI-D saja yang didukung. Untuk menghubungkan ke monitor LCD diperlukan kabel HDMI ke DVI-D. Kabel HDMI standar dapat digunakan untuk menghubungkan BeagleBoard dengan monitor yang memiliki koneksi HDMI.
Gambar 2.16. Kabel HDMI ke DVI-D.
48
Implementasi Embedded System Menggunakan Beagleboard
Seperti halnya pada BeagleBoard C4, sebaiknya tidak memasang konektor DVI-D ke monitor ketika BeagleBoard sedang menyala. Pastikan semuanya telah terpasang dengan baik, barulah kemudian menyalakan BeagleBoard.
9. Header LCD BeagleBoard-xM juga menyediakan sepasang pin 1.27 mm 2x10 untuk memperoleh akses ke sinyal LCD. Dengan ini, terbuka kemungkinan untuk membuat LCD board yang mengizinkan adapter dibuat menyediakan level translation untuk mendukung panel LCD yang berbeda-beda.
10. Konektor microSD Pada BeagleBoard-xM terdapat sebuah konektor microSD yang disediakan untuk memori sekunder non-volatile (storage). Konektor ini menggantikan konektor 6 in 2 SD/MMC pada BeagleBoard C4.
11. Tombol Reset Sama seperti BeagleBoard C4, BeagleBoard-xM juga dilengkapi tombol Reset yang apabila ditekan tombol ini me-reset tenaga dan BeagleBoard akan berjalan ulang (restart) dari proses booting. Lokasi tombol reset dalam Beagleboard-xM dapat dilihat pada Gambar 2.17.
12. Tombol Boot/Pengguna BeagleBoard-xM memiliki tombol di sebelah tombol reset yang dapat digunakan sebagai tombol aplikasi, juga dapat digunakan oleh perangkat lunak sesuai kebutuhan. Karena tidak ada pilihan boot NAND pada BeagleBoard-xM, tombol ini tidak lagi dibutuhkan
Implementasi Embedded System Menggunakan Beagleboard
49
untuk memaksa boot SD Card. Tombol ini dapat digunakan oleh UBoot untuk berpindah-pindah antar skrip sehingga bisa memilih konfigurasi boot yang berbeda selama fitur tersebut dimasukkan di UBoot.
Gambar 2.17. Tombol Reset dan Tombol Boot.
13. LED Indikator Berbeda dengan versi C4, BeagleBoard-xM menyediakan 5 LED hijau yang dapat dikendalikan penuh oleh pengguna. Kelima LED tersebut adalah sebagai berikut. PMU: satu terhubung pada TPS65950 yang diprogram via antarmuka I2C. USR: dua terhubung pada prosesor yang dikendalikan via pin GPIO. Power: satu LED tenaga yang mengindikasikan bahwa ada tenaga pada BeagleBoard. LED ini dapat dimatikan via perangkat lunak. HUB: satu LED yang mengindikasikan bahwa tenaga didapat dari hub USB onboard. LED ini dapat dikendalikan via perangkat lunak.
50
Implementasi Embedded System Menggunakan Beagleboard
Terdapat pula sebuah LED merah Volt yang menyala jika tenaga yang dihubungkan ke board melebihi batas voltase. Jika LED ini menyala, segera langsung lepaskan/matikan sumber tenaga dan cari sumber tenaga lain yang sesuai dengan spesifikasi BeagleBoard. Berbagai macm LED di dalam BeagleBoard-xM dapat dilihat pada Gambar 2.18.
Gambar 2.18. Berbagai LED Indikator pada BeagleBoard.
14. Konektor Tenaga Tenaga disalurkan melalui konektor USB OTG dan jika ada kebutuhan tenaga tambahan, misalnya ketika sebuah board ditambahkan ke slot ekspansi, tenaga 5 V yang lebih besar dapat disalurkan melalui jack power. Jika ada tenaga dari jack power, tenaga dari konektor USB akan diputus sehingga tenaga dari jack power akan dipakai untuk semua kebutuhan. Power supply tidak disediakan dalam paket BeagleBoard. Ketika menggunakan port USB OTG pada mode host, supply DC dari port USB hanya menyediakan tenaga maksimum 100 mA, sehingga hub harus terhubung dengan tenaga listrik. Jika tegangan melebihi spesifikasi yang diizinkan, LED merah akan menyala. Hal ini Implementasi Embedded System Menggunakan Beagleboard
51
menandakan tegangan tersebut ditahan untuk tidak memasuki board sehingga board terhindar dari kerusakan. Fitur keamanan ini tidak ada pada BeagleBoard C4.
15. Konektor JTAG BeagleBoard-xM juga menyediakan 14 pin JTAG yang dapat digunakan untuk pengembangan dan debugging perangkat lunak menggunakan berbagai emulator JTAG. Konektor ini pun hanya mendukung tegangan sebesar 1.8 V. Perlu diperhatikan bahwa sebaiknya tidak menghubungkan pin JTAG dengan tegangan lebih dari 3.3 V karena dapat merusak BeagleBoard.
16. Header Ekspansi BeagleBoard pun menyediakan header 28 pin pada board untuk berbagai koneksi kartu ekspansi yang dikembangkan sendiri oleh pengguna maupun oleh pihak pengembang lainnya. Sinyal yang berbeda dapat diberikan pada tiap-tiap pin untuk multiplexing untuk berbagai konfigurasi lainnya.
17. Konektor RS232 DB9 Dukungan RS232 via UART3 tersedia melalui konektor DB9 pada BeagleBoard untuk mengakses RS232 transceiver. Kabel serial-USB dapat dipasang langsung sehingga tidak memerlukan kabel Null Modem. Kabel DB9 standar male to female juga dapat digunakan. Diingatkan kembali bahwa kabel-kabel ini tidak disediakan di paket BeagleBoard, sehinggga harus dibeli secara terpisah. Bentuk konektor RS232 dapat dilihat dalam Gambar 2.19. Seperti halnya pada BeagleBoard C4, berdasarkan pengalaman penulis, BeagleBoard-xM juga cukup sensitif terhadap kabel serial. Jadi, walaupun terdapat dua buah kabel serial yang memiliki
52
Implementasi Embedded System Menggunakan Beagleboard
spesifikasi yang sama belum tentu menjamin keduanya dapat terhubung ke BeagleBoard-xM dengan baik.
Gambar 2.19. Kabel Serial (RS232) ke USB.
18. Konektor Kamera Khusus pada BeagleBoard-xM, sudah tersedia konektor untuk mendukung modul kamera. Resolusi yang didukung diantaranya adalah VGA, 2MP, 3MP, dan 5MP. Pastikan bahwa driver yang bersesuaian dengan dengan perangkat keras kamera harus dipasang terlebih dahulu agar dapat berfungsi.
19. Header Ekspansi MMC3 Fitur baru lainnya di BeagleBoard-xM adalah konektor 20 pin yang dapat digunakan untuk mengakses sinyal tambahan seperti GPIO dan port MMC3.
20. Header Ekspansi McBSP BeagleBoard-xM juga menyediakan konektor 4 pin yang dapat digunakan untuk mengakses sinyal McBSP2 untuk aplikasi audio. Untuk dapat menggunakan sinyal ini, antarmuka audio di TPS65950 harus dimatikan terlebih dahulu.
Implementasi Embedded System Menggunakan Beagleboard
53
2.2.4 Ringkasan Perbedaan BeagleBoard C4 dan xM Ringkasan perbedaan spesifikasi antara BeagleBoard C4 dan xM dapat dilihat pada Tabel 2.1.
Tabel 2.1. Ringkasan perbedaan BeagleBoard-xM dan BeagleBoard C4.
Perbedaan Prosesor Kecepatan Prosesor Frekuensi DSP Frekuensi SGX Kapasitas Memori NAND Koneksi Kartu Memori Jumlah port USB Kecepatan port USB Koneksi Serial Koneksi Kamera Sepaket dengan SDCard 4GB Proteksi Kelebihan Voltase Tenaga port serial bisa dimatikan Ekspansi untuk MMC3 Ekspansi untuk McBSP2
xM DM3730 1 GHz 800MHz 200MHz 512MB 0 uSD 4 FS/LS/HS DB9 Ya Ya
C4 OMAP3530 720MHz 520MHz 110MHz 256MB 256MB MMC/SD 1 HS Header Tidak Tidak
Ya
Tidak
Ya
Tidak
Ya Ya
Tidak Tidak
2.3 Persiapan Menggunakan BeagleBoard BeagleBoard membutuhkan beberapa peralatan tambahan untuk menjalankannya. BeagleBoard C4 membutuhkan lebih banyak peralatan dibandingkan BeagleBoard-xM. Hal ini karena antarmuka
54
Implementasi Embedded System Menggunakan Beagleboard
keduanya berbeda, misalnya BeagleBoard C4 hanya memiliki 2 port USB dan tidak memiliki port Ethernet, sedangkan BeagleBoard-xM memiliki 4 port USB dan sudah memiliki port Ethernet. BeagleBoard C4 memerlukan peralatan tambahan sebagai berikut. 1. Komputer yang memiliki port serial. 2. SD Card dengan kapasitas minimal 1GB. 3. Kabel USB Y ke USB mini. Contoh bentuk kabel USB Y dapat dilihat pada Gambar 2.20. 4. Kabel IDC10. 5. Kabel DB9F Null Modem. 6. Kabel Serial (DB9M RS232) ke USB. Sedangkan untuk BeagleBoard-xM, diperlukan peralatan-peralatan berikut. 1. Sebuah komputer yang memiliki port USB sebagai host. 2. Sebuah Micro SD berkapasitas minimal 1 GB. 3. Sebuah kabel Serial ke USB. 4. Sebuah barrel adapter 5 mm dengan keluaran (output) 5 V 2 A. Contoh barrel adapter dapat dilihat pada Gambar 2.21.
Gambar 2.20. Kabel USB Y ke mini USB.
Implementasi Embedded System Menggunakan Beagleboard
55
Gambar 2.21. Barrel Adapter 5 mm.
Secara umum, peralatan yang diperlukan juga tergantung dari untuk apa BeagleBoard akan digunakan. Semua peralatan di atas merupakan perlengkapan standar yang diperlukan. Semua peralatan di atas juga diperlukan dalam pembuatan implementasi prototipe sistem yang dijelaskan di buku ini. Berikut adalah langkah-langkah awal dalam menggunakan BeagleBoard.
2.3.1 Memeriksa Kondisi BeagleBoard Lakukan langkah-langkah berikut untuk memeriksa kondisi BeagleBoard secara cepat. 1. Hubungkan kabel mini USB ke board dan ujung lainnya ke komputer. Jika board dalam keadaan baik, anda akan melihat sebuah LED menyala dan tak lama kemudian dua buah LED lain juga ikut menyala. 2. Pada board yang berfungsi baik, jika anda menghubungkan speaker atau headphone pada audio jack out maka anda akan mendengar semacam suara noise ketika menyalakan board.
56
Implementasi Embedded System Menggunakan Beagleboard
2.3.2 Melakukan Pemasangan BeagleBoard dengan Peralatan Untuk BeagleBoard C4, pemasangan yang dilakukan sedikit lebih banyak. Perhatikan bab sebelumnya yang menjelaskan peralatan yang dibutuhkan dan ikuti langkah-langkah berikut untuk merakit BeagleBoard C4. 1. 2. 3. 4. 5.
Sambungkan kabel IDC10 ke BeagleBoard. Sambungkan kabel DB9F Null Modem ke IDC10. Sambungkan kabel USB-Serial ke kabel DB9F Null Modem. Sambungkan kabel USB DB9M ke port USB komputer host. Sambungkan kabel USB Y-USB mini ke BeagleBoard dan komputer host.
PERHATIAN:
Sampai
di
sini,
jangan
menyambungkan
BeagleBoard ke sumber listrik terlebih dahulu!
Setelah pemasangan, tampilannya kurang lebih akan terlihat seperti pada Gambar 2.22.
Gambar 2.22. BeagleBoard dengan peralatan yang sudah terpasang. [ http://www.flickr.com/photos/johnlsloan/5064993265/ ]
Implementasi Embedded System Menggunakan Beagleboard
57
Pada BeagleBoard-xM, proses pemasangannya lebih sederhana. Pasanglah peralatan-peralatan yang telah disediakan ke BeagleBoard-xM hingga terlihat seperti pada Gambar 2.23. berikut.
Gambar 2.23. Konfigurasi BeagleBoard-xM yang sudah terpasang.
2.3.3 Menyiapkan Konsol Bagian ini menjelaskan langkah-langkah membuat sambungan terminal dari komputer host ke BeagleBoard. Sebelum menjalankan langkah-langkah yang dijelaskan, pastikan BeagleBoard dan komputer host sudah terhubung dengan benar sebagaimana yang dipaparkan di bagian sebelumnya. Langkahlangkah di bagian ini berlaku untuk BeagleBoard C4 maupun BeagleBoard-xM.
58
Implementasi Embedded System Menggunakan Beagleboard
PERHATIAN: BeagleBoard tidak mendukung mekanisme plug and play, maka hubungkan semua perangkat yang ingin digunakan pada port BeagleBoard terlebih dahulu sebelum menghidupkan BeagleBoard (kecuali untuk port serial yang dapat dihubungkan setelah BeagleBoard menyala). Hal yang sama juga berlaku untuk port HDMI (DVI-D), hubungkan port dengan kabel monitor terlebih dahulu sebelum menyalakan BeagleBoard. Untuk memasang sistem operasi, BeagleBoard dapat dijalankan sebagai client, sedangkan PC atau Laptop sebagai host. Keduanya dijalankan sebagai client dan host menggunakan port Serial yang terdapat pada BeagleBoard-xM dan port USB pada host. Untuk itu diperlukan sebuah kabel penghubung dari port USB ke port Serial. PERHATIAN: Gunakan adapter yang sesuai adapter BeagleBoard. Adapter harus memiliki output 5 V dan 2 A. Penggunaan adapter yang tidak sesuai dapat merusak BeagleBoard. Ciri-ciri kerusakan adalah apabila ketika disambungkan, LED yang menyala adalah berwarna merah atau bahkan tidak menyala sama sekali. Hal ini juga berarti adapter yang digunakan tidak sesuai. Dengan mengasumsikan komputer host sudah menyala, pertamatama sambungkanlah kabel Serial-USB ke BeagleBoard dan komputer host. Kemudian sambungkanlah barrel adapter 5 mm ke BeagleBoard dan ke sumber tenaga listrik. BeagleBoard akan menyala ditandai dengan menyalanya lampu LED berwarna hijau. Pada komputer host diperlukan sebuah perangkat lunak agar dapat membaca perangkat yang terhubung dengan port USB-Serial dan semua aktivitas perangkat tersebut (dalam hal ini BeagleBoard). Semua aktivitas perangkat akan ditampilkan dan dikendalikan melalui terminal atau konsol. Untuk sistem operasi Microsoft® Windows®, dapat digunakan program Hyperterminal atau PuTTy. Untuk sistem operasi Linux, dapat digunakan program minicom. Implementasi Embedded System Menggunakan Beagleboard
59
Sedangkan untuk sistem operasi Mac, dapat digunakan program screen, ZTerm, atau MacWise.
1. Menggunakan Komputer Host bersistem operasi Windows Buka program PuTTy. Kemudian masukkan konfigurasi berikut. 1. Pilih Serial di Session Window 2. Pilih Serial di bawah Category Panel 3. Set Speed = 115200 4. Set Data bits = 8 5. Set Parity = none 6. Set Stop bits = 1 7. Set Flow control = none
Setelah mengatur semua konfigurasi di atas, jalankan koneksi terminal. Kemudian nyalakan BeagleBoard. Apabila semua sudah benar, maka akan muncul tampilan seperti terlihat pada Gambar 2.24.
60
Implementasi Embedded System Menggunakan Beagleboard
Gambar 2.24. Tampilan terminal saat BeagleBoard-xM pertama kali dinyalakan.
Apabila tampilan sudah seperti di atas, maka host dan BeagleBoard sudah siap digunakan.
2. Menggunakan Komputer Host bersistem operasi Linux Bagi pengguna Linux yang belum memiliki minicom, jalankan perintah di bawah ini dan masukkan kata sandi (password) jika diminta. Pastikan PC/Laptop telah tersambung dengan internet. sudo apt-get install minicom Setelah minicom terpasang, hubungkan kabel penghubung USBSerial ke komputer host melalui port USB pada host dan ke Implementasi Embedded System Menggunakan Beagleboard
61
BeagleBoard melalui port Serial. Setelah itu jalankan perintah berikut. ls /dev/ Untuk mengetahui nama perangkat yang akan dihubungkan melalui port Serial, catatlah nomor ttyUSBn, dimana n adalah sebuah bilangan bulat yang ditampilkan pada konsol. Perhatikan contoh pada Gambar 2.25.
Gambar 2.25. Contoh hasil perintah ls /dev/, alamat BeagleBoard adalah ttyUSB0.
Setelah mengetahui alamat BeagleBoard, jalankan minicom menggunakan perintah di bawah ini. sudo minicom -s Contoh tampilan konfigurasi minicom dapat dilihat pada Gambar 2.26.
62
Implementasi Embedded System Menggunakan Beagleboard
Gambar 2.26. Tampilan awal minicom.
Pilih Serial port setup, kemudian akan muncul sub-menu seperti pada Gambar 2.27. Konfigurasi sub-menu dapat berbeda tergantung komputer masing-masing.
Gambar 2.27. Tampilan minocom setelah memilih Serial Port.
Ubah bagian-bagian pada submenu tersebut sehingga memiliki konfigurasi seperti yang terlihat pada Gambar 2.28. Khusus untuk nomor pada ttyUSB adalah tergantung pada nomor yang didapat dari tahap yang sebelumnya telah dilakukan. Implementasi Embedded System Menggunakan Beagleboard
63
Gambar 2.28. Pengaturan alamat BeagleBoard.
Setelah semua konfigurasi sudah benar, maka simpan konfigurasi ini sebagai default dengan cara memilih Save setup as dfl lalu keluar program dengan memilih Exit. Maka pada konsol akan muncul tampilan minicom seperti terlihat pada Gambar 2.29.
Gambar 2.29. Setelah keluar dari menu Serial Port.
Untuk memastikan hasilnya, nyalakan BeagleBoard. Pastikan pula bahwa sampai saat ini, kabel yang terhubung dengan BeagleBoard hanyalah kabel power dan kabel serial saja, jangan ada yang lain. Kemudian tekan sembarang tombol pada papan ketik (keyboard) untuk menghentikan hitungan mundur autoboot. Pesan bootloader akan menampilkan versi X-Loader dan U-boot, tanggal pembuatan, dan lain-lain. 64
Implementasi Embedded System Menggunakan Beagleboard
2.4 Alat-alat Tambahan untuk BeagleBoard Kita dapat menambah fungsionalitas BeagleBoard dengan beberapa alat tambahan. Pada dasarnya semua alat yang dapat dihubungkan dengan antarmuka, pin, dan port pada BeagleBoard dapat ditamhahkan ke BeagleBoard apabila ada driver-nya. Beberapa peralatan yang biasa ditambahkan ke BeagleBoard antara lain sebagai berikut. Power supply DC Kabel serial pelangi Hub USB USB thumb drives Kabel DVI-D Monitor DVI-D Kartu SD/MMC USB ke Ethernet USB ke WiFi USB ke Bluetooth Kartu Ekspansi Daftar peralatan yang direkomendasikan dapat dilihat pada situs resmi BeagleBoard di halaman http://beagleboard.org/hardware. Daftar lain yang lebih detail dan komprehensif dapat dilihat pada code.google.com/p/Beagleboard/wiki/BeagleboardShoppingList. Bagian selanjutnya akan menjelaskan beberapa contoh penerapan peralatan tambahan tersebut pada BeagleBoard.
2.4.1 USB ke WiFi Banyak USB-WiFi dongle yang dapat dibeli di pasaran. USB dongle ini dapat menambahkan konektivitas WiFi bagi BeagleBoard dengan menghubungkannya pada port USB OTG pada mode host. Oleh karena itu, dibutuhkan kabel mini USB untuk menghubungkan USB dongle dan USB OTG. Dalam hal ini, Hub juga dapat digunakan. Implementasi Embedded System Menggunakan Beagleboard
65
PERHATIAN: Tidak semua USB-WiFi dongle dijamin bisa untuk digunakan.
2.4.2 USB ke BlueTooth Banyak USB-bluetooth dongle yang dapat dibeli di pasaran. USB dongle ini dapat menambahkan konektivitas bluetooth bagi BeagleBoard dengan menghubungkannya pada port USB OTG pada mode host. Oleh karena itu, dibutuhkan kabel mini USB untuk menghubungkan USB dongle dan USB OTG. Dalam hal ini, Hub juga dapat digunakan. PERHATIAN: Tidak semua USB-bluetooth dongle dijamin bisa untuk digunakan.
66
Implementasi Embedded System Menggunakan Beagleboard
Bab 3. Instalasi Sistem Operasi pada BeagleBoard Seperti sebuah Personal Computer (PC), pada BeagleBoard harus di-install sistem operasi terlebih dahulu agar BeagleBoard dapat digunakan. Proses instalasi yang dimaksud adalah proses menyiapkan Bootable MMC/SD Card dengan sistem operasi yang diinginkan. MMC inilah yang akan di-boot oleh BeagleBoard ketika BeagleBoard dinyalakan. Khusus untuk BeagleBoard, sistem operasi yang umum digunakan adalah Linux Angstrom, Linux Ubuntu, dan Android. Pada bab ini, akan dipaparkan cara instalasi masing-masing sistem operasi tersebut.
3.1 Instalasi dengan Linux Angstrom Linux Angstrom sangat umum dipakai sebagai sistem operasi BeagleBoard. Linux Angstrom adalah sebuah distro Linux yang berisi kernel, bootloader dan application stack yang dioptimasi untuk sistem komputer kecil terutama System on A Chip (SoC). Sebenarnya Linux Angstrom tidak benar-benar sistem operasi untuk perangkat sistem terbenam (embedded system) karena di dalamnya juga disertakan fungsi-fungsi yang umum (general purpose). Namun Linux Angstrom banyak dipakai sebagai basis sistem operasi perangkat sistem tertanam. Pada paket pembelian BeagleBoard-xM, umumnya tersedia MicroSD yang berisi perangkat lunak untuk booting. Linux Angstrom yang berada dalam MicroSD ini hanyalah versi verifikasi. Dengan kata lain, Linux Angstrom versi ini hanya dapat digunakan untuk melakukan verifikasi terhadap seluruh sistem BeagleBoardxM. Linux versi ini tidak mempunyai Graphical User Interface (GUI) dan tidak melakukan seluruh pekerjaan seperti sebuah RAM, Implementasi Embedded System Menggunakan Beagleboard
67
sehingga semua perubahan yang dilakukan terhadap Linux Angstrom akan hilang. MicroSD yang disertakan terdiri atas sebuah partisi File Allocation Table (FAT) yang memiliki kapasitas 117 MB, sedangkan sisanya tidak terformat (kapasitas microSD yang disertakan adalah 4 GB). Partisi yang sudah diformat berisi beberapa file sebagai berikut. a. b. c. d. e.
Boot loaders X-loader (MLO) dan U-boot (u-boot.bin). Kernel Linux (uImage). Boot script (user.scr). RAM disk root file system (ramdisk.gz). md5sum file, untuk pengecekan file.
Agar kita dapat menggunakan semua fitur yang dimiliki Linux Angstrom, kita harus membuat sebuah file system Linux Angstrom baru agar mendapatkan akses root dan juga kernel. Berikut ini adalah tahapan-tahapan membuat microSD bootable Linux Angstrom. 1. Mengunduh file-file berikut dari http://www.angstromdistribution.org/demo/Beagleboard/ a. mkcard.txt b. MLO c. u-boot.bin d. Angstrom-Beagleboard-demo-image-glibc-ipk-2010.3Beagleboard.rootfs.tar.bz2 2. Masukkan microSD dengan kapasitas minimal 4 GB (disarankan), dan tentukan nama dari microSD tersebut. Sebagai contoh, jika Anda menggunakan memory card reader, gunakan perintah fdisk dan carilah perangkat yang memiliki karakteristik yang sama dengen microSD yang digunakan. Contohnya adalah /dev/sdb:
68
Implementasi Embedded System Menggunakan Beagleboard
faris@ubuntu:~# fdisk –l ... Disk /dev/sdb: 1977 MB, 1977614336 bytes 255 heads, 63 sectors/track, 240 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start /dev/sdb1 * 1 /dev/sdb2 10
End Blocks 9 72261 240 1855507+
Id c 83
System W95 FAT32 (LBA) Linux
3. Unmount semua partisi yang dimiliki microSD. Gunakan nama perangkat dari microSD dan perintah di bawah ini: sudo umount /dev/sdb?
4. Format microSD card menggunakan mkcard.txt yang telah diunduh. Gunakan nama perangkat dari microSD dan perintah di bawah ini: chmod +x mkcard.txt sudo ./mkcard.txt /dev/sdb
Perhatian: Jangan sampai salah dalam melakukan format. Jangan sampai yang diformat adalah file system.
Apabila proses format telah selesai, maka Anda akan mendapatkan sebuah microSD yang memiliki dua buah partisi: a. Sebuah partisi FAT berkapasitas 70 MB yang diberi label boot. b. Sebuah partisi ext3 berlabel Angstrom yang berkapasitas seluruh sisa dari microSD. Seluruh sisa tutorial ini mengasumsikan bahwa partisi yang dimiliki oleh microSD adalah /media/boot dan /media/Angstrom. Implementasi Embedded System Menggunakan Beagleboard
69
5. Unpack file Angstrom-Beagleboard.....tar.bz2 ke dalam partisi /media/Angstrom (perintah ini memakan cukup banyak waktu). sudo tar -C /media/Angstrom –xjvf Angstrom-Beagleboard-demo-imageglibc-ipk-2010.3-Beagleboard.rootfs.tar.bz2
6. Pindahkan file-file berikut ke partisi /media/boot secara berurutan (folder kernel dari partisi /media/Angstrom adalah kosong). cp MLO /media/boot cp u-boot.bin /media/boot cp /media/Angstrom/boot/uImage /media/boot
7. Setelah semua operasi selesai dilakukan, sinkronisasi file system dan unmount microSD. sync sudo umount /dev/sdb?
8. Masukkan microSD ke dalam BeagleBoard dan nyalakan BeagleBoard. Catatan: Apabila saat melakukan boot pertama kali terjadi error seperti ini: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block...
Restart BeagleBoard beserta sistem, hentikan hitungan mundur auto boot, dan ketikkan perintah berikut. setenv mmcroot /dev/mmcblk0p2 rw boot
70
Implementasi Embedded System Menggunakan Beagleboard
Ketika melakukan boot pertama kali, sistem membutuhkan waktu beberapa saat untuk melakukan konfigurasi terhadap sistem secara otomatis. Apabila BeagleBoard-xM terhubung dengan sebuah monitor menggunakan port video output (baik itu DVI-D Connector atau S-Video Connector), maka proses ini akan menampilkan logo Linux Angstrom, sedangkan pada konsol akan menampilkan setiap komponen yang dikonfigurasi. Setelah sekitar 10 menit, maka akan muncul layar login Linux Angstrom pada monitor dan sebuah prompt boot pada konsol. Gunakan layar login untuk membuat sebuah pengguna baru dan log-in, atau dapat pula log-in pada konsol sebagai root (tanpa password). Tampilan konsol (gunakan minicom dan port Serial pada BeagleBoard-xM) pada saat melakukan login diperlihatkan di bawah ini. .-------. | | .-. | | |-----.-----.-----.| | .----..-----.-----. | | | __ | ---'| '--.| .-'| | | | | | | | |--- || --'| | | ' | | | | '---'---'--'--'--. |-----''----''--' '-----'-'-'-' -' | '---' The Angstrom Distribution Beagleboard ttyS2 Angstrom 2010.7-test-20110104 Beagleboard ttyS2 Beagleboard login: root root@Beagleboard:~#
3.2 Instalasi dengan Linux Ubuntu Salah satu distro Linux yang paling terkenal adalah Ubuntu dengan update versi terbarunya adalah versi 11.04. Terdapat dua buah jenis Ubuntu 11.04 yang dapat di-install pada BeagleBoard-xM, yaitu versi netbook yang dilengkapi dengan GUI dan versi headless yang tidak dilengkapi dengan GUI. Perbedaan antara kedua versi tersebut adalah pada cara kita mengoperasikan BeagleBoard. Jika kita menggunakan versi netbook yang dilengkapi dengan GUI, maka kita cukup menyambungkan BeagleBoard dengan monitor, keyboard, dan mouse sehingga BeagleBoard dapat dioperasikan Implementasi Embedded System Menggunakan Beagleboard
71
layaknya seperti PC biasa. Sedangkan apabila kita menggunakan versi headless, maka kita harus menggunakan konsol serial yang disambungkan dengan BeagleBoard untuk melakukan operasional pada BeagleBoard. Berikut akan dipaparkan mengenai instalasi untuk versi netbook dan headless.
3.2.1 Ubuntu 11.04 versi Netbook Lakukan langkah-langkah sebagai berikut. 1. Sediakan microSD kosong dengan kapasitas minimal 4 GB. 2. Download image bernama ubuntu-11.04-preinstallednetbook-armel +omap.img.gz yang terdapat pada daftar ISO Ubuntu 11.04 release di http://www.kambing.ui.ac.id. 3. Simpan image yang baru saja di-download pada home folder. 4. Sambungkan microSD yang akan digunakan pada PC. 5. Unmount microSD (gunakan perintah umount jika diperlukan). 6. Identifikasi nama perangkat microSD (contoh: /dev/sdb bukan /dev/sdb1). 7. Jalankan perintah dibawah ini. sudo sh -c 'zcat ubuntu-11.04-preinstalled-netbookarmel+omap.img.gz > /dev/<device name>' sync
8. Download update kernel http://people.canonical.com/~tobin/natty/beagleXM-natty.tgz (Petunjuk: Update kernel hanya diperlukan jika menggunakan BeagleBoard-xM rev. B dan rev. C). 9. Untar dengan tar -zxf beagleXM-natty.tgz (Petunjuk: jika file berekstensi *.gz maka untar dengan tar -xf beagleXM-natty.gz). 10. Mount partisi pertama microSD pada PC dan timpa file uImage dengan file bernama sama yang didapatkan dari proses untar sebelumnya. 11. Mount partisi pertama microSD pada PC lalu masuk ke folder boot. Timpa file vmlinuz-2.6.38-8-omap dengan file bernama
72
Implementasi Embedded System Menggunakan Beagleboard
sama yang didapatkan dari proses untar sebelumnya (Petunjuk: Gunakan perintah sudo cp
). 12. Unmount microSD.
13. Pasang microSD pada BeagleBoard-xM rev. B. 14. Sambungkan monitor, mouse, dan keyboard pada BeagleBoardxM rev. B. 15. Nyalakan BeagleBoard-xM rev. B. 16. Monitor akan menampilkan booting Ubuntu. 17. Masukkan data-data yang diperlukan pada proses konfigurasi Ubuntu 11.04. 18. Tunggu sampai Ubuntu 11.04 selesai melakukan konfigurasi secara otomatis dan masuk ke pemilihan pengguna. 3.2.2 Ubuntu 11.04 versi Headless Lakukan langkah-langkah sebagai berikut. 1. Sediakan microSD kosong dengan kapasitas minimal 2 GB. 2. Download image bernama ubuntu-11.04-preinstalledheadless-armel+omap.img.gz yang terdapat pada daftar ISO Ubuntu 11.04 release di http://www.kambing.ui.ac.id. 3. Simpan image yang baru saja di-download pada home folder. 4. Sambungkan microSD yang akan digunakan pada PC. 5. Unmount microSD (gunakan perintah umount jika diperlukan). 6. Identifikasi nama perangkat microSD (contoh: /dev/sdb bukan /dev/sdb1). 7. Jalankan perintah di bawah ini. sudo sh -c 'zcat ubuntu-11.04-preinstalled-netbookarmel+omap.img.gz > /dev/<device name>' sync
8. Download update kernel http://people.canonical.com/~tobin/natty/beagleXM-
Implementasi Embedded System Menggunakan Beagleboard
73
natty.tgz (Petunjuk: Update kernel hanya diperlukan jika menggunakan BeagleBoard-xM rev. B dan rev. C). 9. Untar dengan tar -zxf beagleXM-natty.tgz (Petunjuk: jika file berekstensi *.gz maka untar dengan tar -xf beagleXM-natty.gz). 10. Mount partisi pertama microSD pada PC dan timpa file uImage dengan file bernama sama yang didapatkan dari proses untar sebelumnya. 11. Mount partisi pertama microSD pada PC lalu masuk ke folder boot. Timpa file vmlinuz-2.6.38-8-omap dengan file bernama sama yang didapatkan dari proses untar sebelumnya (Petunjuk: Gunakan perintah sudo cp ). 12. Unmount microSD. 13. Pasang microSD pada BeagleBoard-xM rev. B. 14. Sambungkan kabel serial-to-USB pada BeagleBoard-xM rev. B dan PC (Petunjuk: serial disambungkan pada port serial di BeagleBoard, sedangkan USB disambungkan pada port USB di PC). 15. Buka terminal pada PC dan jalankan aplikasi konsol serial seperti minicom atau screen seperti yang dicontohkan pada sub bab sebelumnya. 16. Nyalakan BeagleBoard-xM rev. B. 17. Masukkan data-data yang diperlukan pada proses konfigurasi Ubuntu 11.04 melalui minicom. 18. Tunggu sampai Ubuntu 11.04 selesai melakukan konfigurasi secara otomatis dan masuk ke pemilihan pengguna.
3.3 Instalasi dengan Android Android adalah sebuah sistem operasi yang dikembangkan oleh Google Inc. dan ditujukan untuk menjadi sistem operasi perangkat mobile yang kecil dan hemat daya. BeagleBoard-xM yang dikembangkan berbasis arsitektur ARM sangat mungkin untuk dijalankan menggunakan sistem operasi Android.
74
Implementasi Embedded System Menggunakan Beagleboard
Texas Instrument yang bergerak dalam bidang pengembangan embedded system telah berhasil mengembangkan agar Android dapat berjalan di BeagleBoard, termasuk BeagleBoard-xM. Pada sistem operasi Android, BeagleBoard-xM yang berjalan harus terhubung dengan monitor sebagai output untuk menampilkan user interface dan keyboard serta mouse sebagai input untuk berinteraksi dengan sistem operasi Android yang sedang berjalan. Hal ini berbeda dengan Linux Angstrom dan Linux Ubuntu yang dapat berjalan tanpa output dan input langsung seperti monitor dan keyboard. Saat ini, versi sistem operasi Android yang dapat berjalan pada BeagleBoard-xM adalah 2.1 (Eclair), 2.2 (FroYo), dan 2.3 (Gingerbread). Kita dapat memilih versi sistem operasi yang cocok untuk pengembangan perangkan system embedded menggunakan BeagleBoard-xM, akan tetapi disarankan menggunakan versi terbaru yaitu Gingerbread karena memiliki Software Development Kit (SDK) yang lebih lengkap. Berikut ini adalah hal-hal yang perlu dipersiapkan untuk melakukan proses instalasi Android pada BeagleBoard-xM. 1. Download pre-built image Android 2.3 untuk BeagleboardxM di http://software-dl.ti.com/dsps/dsps_public_sw/ sdo_tii/TI_Android_DevKit/TI_Android_GingerBread_2_3_D evKit_1_0/exports/Beagleboard-xm.tar.gz. 2. MicroSD kosong dengan kapasitas minimum 2 GB (minimum Class4 microSD Card). MicroSD yang banyak tersedia di pasaran adalah Class2 microSD Card. Untuk mengetahui class sebuah microSD dengan mudah, Anda dapat melihat ke label yang terdapat di badan microSD seperti yang terlihat pada Gambar 3.1.
Implementasi Embedded System Menggunakan Beagleboard
75
Gambar 3.1. Label penunjuk class suatu microSD.
3. USB Card reader. 4. DVI monitor dengan port input DVI atau HDMI sebagai output BeagleBoard. Perhatikan bahwa monitor dengan port input D-Sub tidak dapat disambungkan dengan BeagleBoard walaupun telah menggunakan kabel konverter HDMI to D-Sub. 5. Keyboard dan mouse sebagai input BeagleBoard. 6. Kabel konverter USB to Serial RS232, seperti yang terlihat pada Gambar 3.2.
Gambar 3.2. Kabel penghubung dari port USB ke port Serial.
Berikut ini adalah langkah-langkah instalasi Android. 1. Sambungkan microSD dengan host PC menggunakan USB Card reader. 2. Install image Android yang telah dipersiapkan menggunakan perintah-perintah di bawah ini. tar –xzvf .tzr.gz
76
Implementasi Embedded System Menggunakan Beagleboard
cd sudo ./mkmmc-android /dev/sd<device>
3. Masukkan microSD BeagleBoard-xM.
yang baru
di-install
ke
dalam
4. Sambungkan DVI monitor, keyboard, dan mouse dengan BeagleBoard-xM. 5. Sambungkan kabel Ethernet dengan BeagleBoard-xM agar dapat mengakses internet secara langsung (opsional). 6. Sambungkan PC host dengan BeagleBoard-xM menggunakan kabel USB to Serial dan jalankan aplikasi konsol serial (contoh: minicom). 7. Nyalakan BeagleBoard-xM. Perhatikan bahwa BeagleBoard membutuhkan waktu yang lebih lama pada saat melakukan booting pertama kali. 8. Selama proses booting, logo Android akan muncul pada DVI monitor, seperti yang terlihat pada Gambar 3.3.
Gambar 3.3. Tampilan monitor saat booting BeagleBoard-xM.
3.4 Beberapa Hal yang Perlu Diketahui dalam Instalasi Selain pengetahuan tentang sistem operasi dari BeagleBoard, dibutuhkan pula pengetahuan dasar dalam melakukan teknik instalasi dan ketika berhasil melakukan boot terhadap sistem operasi terutama Linux Angstrom dan Linux Ubuntu. Hampir semua perintah adalah perintah dasar di Linux, namun dalam
Implementasi Embedded System Menggunakan Beagleboard
77
bagian berikut akan diberikan penjelasan yang rinci untuk memudahkan pengguna terutama yang belum terbiasa dengan sistem operasi Linux. 1. Menambahkan Password pada Pengguna Untuk menambahkan kata sandi pada sebuah pengguna, dapat menggunakan perintah di bawah ini. passwd password
2. Menambahkan Pengguna Baru Untuk menambahkan pengguna baru, dapat menggunakan perintah di bawah ini. useradd userBaru
3. Melakukan Baris Perintah dengan Akses Root (saat menggunakan pengguna selain root) Bagi yang sudah pernah berinteraksi dengan Ubuntu, pasti sedikit kebingungan saat akan melakukan baris perintah dengan akses root. Biasanya pada Ubuntu hal ini dapat dilakukan dengan menggunakan perintah sudo, namun perintah ini secara default tidak tersedia pada Angstrom. Sayangnya, mengkonfigurasi perintah sudo pada Angstrom cukup sulit, sehingga trik yang biasa dilakukan adalah tetap bekerja pada pengguna root (yang otomatis mendapatkan akses root), atau berpindah dari pengguna biasa ke pengguna root dengan memasukkan perintah dibawah ini (masukkan kata sandi root saat diperintahkan, bukan kata sandi pengguna seperti Ubuntu). su –
4. Instalasi Software dan Manajemen Package Seperti pada distribusi Linux lainnya, Angstrom menyediakan sebuah cara standar untuk mengatur perangkat lunak pada sistem, yaitu menggunakan Package 78
Implementasi Embedded System Menggunakan Beagleboard
Manager yang memungkinkan pengguna untuk melakukan instalasi perangkat lunak yang khusus telah disediakan untuk Angstrom dari local storage dan network repositories. Selain itu pengguna juga dapat menghapusnya sesuai kebutuhan, mencari yang dibutuhkan, dan lain sebagainya. Angstrom adalah distribusi Linux yang mirip dengan Debian. Akan tetapi, bukannya menggunakan apt untuk melakukan manajemen package, Angstrom menggunakan opkg. Perlu diingat bahwa yang terbaik saat melakukan manajemen package adalah menggunakan perintah opkg dan tidak mengutak-atik berkas perintah tersebut. Berikut ini adalah beberapa trik yang penting untuk diketahui. a. Memperbarui Sistem atau Package (via Network) opkg update opkg upgrade
Perintah update akan mengunduh seluruh daftar package yang disediakan oleh jaringan resmi Angstrom. Sedangkan perintah upgrade akan memperbarui seluruh sistem dan software yang telah di-install ke dalam Angstrom. Catatan: Kedua perintah di atas sangat direkomendasikan saat baru pertama kali melakukan boot Linux Angstrom. b. Mencari Package (via Network) opkg search kataKunci
atau gunakan perintah sebagai berikut opkg list | grep kataKunci
c. Mendapatkan Deskripsi Package opkg info packagename
d. Menginstal Package (via Network) opkg install namaPackage
Implementasi Embedded System Menggunakan Beagleboard
79
Catatan: Seluruh package lain yang diperlukan oleh package XYZ secara otomatis akan ter-install pula. e. Memasang Package (via Local Filesystem) opkg install /dir/dir/namaPackage.ipk
Catatan: Package lain yang diperlukan oleh package XYZ tidak secara otomatis ter-install. f. Memasang Package yang Mengalami Konflik Tidak seperti Ubuntu, Angstrom tidak secara otomatis menghapus package-package yang mengalami konflik. Apabila instalasi mengalami error akibat konflik, maka yang dapat dilakukan adalah menghapus terlebih dahulu package atau (cara terakhir) memakai baris perintah di bawah ini. opkg install namaPackage --force-overwrite
g. Menghapus Package opkg remove namaPackage
Petunjuk: Tambahkan perintah --recursive untuk menghapus seluruh package yang saling berhubungan/bergantungan. Harap berhati-hati dalam menggunakan perintah tersebut. Catatan: Apabila penghapusan package gagal karena daftar package yang saling berhubungan/bergantungan terlalu banyak, dan yakin semuanya tidak akan dipakai lagi, maka bisa menggunakan perintah berikut. opkg remove namaPackage --force-removal-of-dependentpackages
h. Mendapatkan Daftar Seluruh Package yang Telah Dipasang pada Sistem opkg list_installed
80
Implementasi Embedded System Menggunakan Beagleboard
5. Koneksi ke Jaringan Melalui Proxy Koneksi ke jaringan seperti di kampus yang memiliki proxy tertentu harus ada pengaturan khusus yang harus dilakukan. Langkah-langkah yang harus dilakukan adalah sebagai berikut. 1) Sambungkan kabel ethernet ke PC. 2) Lakukan perintah berikut. ifconfig eth0
Catat alamat 152.118.27.126) 255.255.255.128)
yang dan
ditunjukkan netmask
(misalnya: (misalnya:
3) Lakukan perintah berikut. route –n
Catat gateway (misalnya: 152.118.27.1) 4) Buka browser, lalu login ke proxy. 5) Lepaskan kabel lalu sambungkan ke port RJ45 BeagleBoard. 6) Pada BeagleBoard berikut.
lakukan
serangkaian
perintah
ifconfig usb0 ALAMAT ifconfig usb0 netmask NETMASK route add default gw GATEWAY
Salin isi dari /etc/resolv.conf dari PC ke BeagleBoard (nameserver 152.118.24.2) 7) Jalankan perintah pengaturan proxy. http_proxy=http://152.118.24.10:8080 opkg update
8) Cek dengan menggunakan perintah telnet. telnet 152.118.24.10 GET / HTTP
Implementasi Embedded System Menggunakan Beagleboard
81
Untuk menyambungkan BeagleBoard ke PC local, langkahlangkah pengaturannya pada BeagleBoard adalah sebagai berikut. 1) Setting berkas di /etc/network/interfaces. auto usb0 iface usb0 inet static address 192.168.1.2 #pointopoint 192.168.1.1 netmask 255.255.255.0 #gateway 192.168.1.1
2) Lakukan restart. /etc/init.d/networking restart
Pada PC, lakukan pula pengaturan sebagai berikut. 1. Setting berkas /etc/network/interfaces auto lo allow-hotplug eth0 auto eth0 iface lo inet loopback address 192.168.1.1 netmask 255.255.255.0
2. Ketik di terminal sebagai root. ifconfig eth0 192.168.1.1/24 ssh -X [email protected] gstreamer-properties
3.5 Contoh Sederhana: Membuat Program Hello World di BeagleBoard Beberapa orang yang membaca tulisan ini mungkin mengalami ‘ketakutan’ karena melihat banyaknya rangkaian instruksi yang harus dilakukan. Apalagi menggunakan sistem operasi Linux / Android yang masih belum terlalu populer untuk kebanyakan orang. Sub bab ini akan memudahkan pembaca untuk mempraktikkan secara sederhana bagaimana cara menjalankan sebuah program di BeagleBoard setelah melakukan instalasi, 82
Implementasi Embedded System Menggunakan Beagleboard
dalam hal ini adalah program sederhana Hello World yang dijalankan di perangkat BeagleBoard. Sebelum kita mulai, penulis ingin kembali menekankan poin yang penting, bahwa BeagleBoard sudah memiliki karakteristik yang mirip dengan personal computer (PC) atau laptop kita. BeagleBoard dapat disebut seperti sebuah motherboard dalam PC, yang tinggal di-install sistem operasi di dalamnya, dihubungkan dengan adaptor sebagai sumber tenaganya, dan BeagleBoard akan menyala seperti komputer biasa. BeagleBoard bisa dikendalikan secara standalone maupun melalui bantuan host atau komputer lain. Untuk tutorial Hello World ini, penulis menggunakan bantuan komputer lain sebagai host. Langkah-langkahnya adalah sebagai berikut. (tutorial diadaptasi dari http://elinux.org/ECE597_ Lab_1_Wiring_and_Running_the_Beagle) 1. Pasangkan semua komponen BeagleBoard dengan segala perangkat yang dibutuhkan. 2. Pastikan BeagleBoard telah dipasang sistem operasi tertentu. Sistem operasi yang direkomendasikan seperti yang telah disebutkan sebelumnya yakni Linux Angstrom, Ubuntu, dan Android. 3. Setelah itu jalankan BeagleBoard yang sudah terkoneksi dengan komputer, hingga muncul tampilan sebagai berikut. .-------. | | .-. | | |-----.-----.-----.| | .----..-----.-----. | | | __ | ---'| '--.| .-'| | | | | | | | |--- || --'| | | ' | | | | '---'---'--'--'--. |-----''----''--' '-----'-'-'-' -' | '---' The Angstrom Distribution Beagleboard ttyS2 Angstrom 2010.7-test-20110104 Beagleboard ttyS2 Beagleboard login: root root@Beagleboard:~#
Implementasi Embedded System Menggunakan Beagleboard
83
4. Sebenarnya banyak program yang menarik yang telah dicompile untuk BeagleBoard tapi tidak diberikan dalam micro SD card yang berada sepaket dengan perangkat BeagleBoard. Aplikasi-aplikasi baru tersebut dapat dengan mudah di-install menggunakan opkg package manager. Bila sudah terhubung dengan internet, lakukan perintah berikut. opkg list | less opkg install gcc
Perintah pertama adalah untuk melakukan mendaftar sejumlah package yang dapat di-install. Perintah kedua adalah untuk melakukan instalasi package gcc yang berfungsi sebagai compiler program-program bahasa C. 5. Selanjutnya buat program Hello World sederhana. Berikut contoh embedded version dari Hello World yang ada di buku Embedded Linux Primer. #include <stdio.h> int bss_var; int data_var = 1;
/* Uninitialized global variable */ /* Initialized global variable */
int main(int argc, char **argv) { void *stack_var; /* Local variable on the stack */ stack_var = (void *)main; /* Don't let the compiler */ /* optimize it out */ printf("Hello, World! Main is executing at %p\n", stack_var); printf("This address (%p) is in our stack frame\n", &stack_var); /* bss section contains uninitialized data */ printf("This address (%p) is in our bss section\n", &bss_var); /* data section contains initializated data */ printf("This address (%p) is in our data section\n", &data_var); return 0;
84
Implementasi Embedded System Menggunakan Beagleboard
6. Coba jalankan keluaran program untuk host computer. Hasilnya akan menjadi sebagai berikut. Hello, World! Main is executing at 0x80483c4 This address (0xbfc4b7e0) is in our stack frame This address (0x804a020) is in our bss section This address (0x804a014) is in our data section
Keluaran bila di jalankan di BeagleBoard adalah sebagai berikut. root@Beagleboard:~# ./a.out Hello, World! Main is executing at 0x8380 This address (0xbe876cd4) is in our stack frame This address (0x10670) is in our bss section This address (0x10668) is in our data section
Implementasi Embedded System Menggunakan Beagleboard
85
86
Implementasi Embedded System Menggunakan Beagleboard
Bab 4. Lalu Lintas 4.1 Sekilas Mengenai Kemacetan Lalu Lintas Lalu lintas merupakan salah satu elemen penting dalam kehidupan masyarakat. Lalu lintas berkaitan erat dengan transportasi. Aktivitas-aktivitas yang kita lakukan setiap hari tentunya akan terkait dengan transportasi, seperti ketika berangkat dan pulang bekerja, pergi berbelanja, mengunjungi rumah teman, dan lainlain. Dengan demikian tidak berlebihan jika lalu lintas merupakan jantung stabilitas kegiatan masyarakat. Kita sudah akrab dengan sebuah permasalahan yang menghantui lalu lintas, yaitu kemacetan. Hal ini dapat diukur berdasarkan data dari Direktorat Samapta Polri dan Biro Pusat Statistik (2004), bahwa pada tahun 2003 populasi kendaraan di Jakarta mencapai 4.159 juta. Sebagian besar populasi kendaraan merupakan sepeda motor (66,15%), diikuti mobil pribadi (22,01%), bis (3,57%) dan kendaran barang/truk (8,25%). Berdasarkan data dari Komisi Kepolisian Indonesia, jumlah kendaraan bermotor yang terdaftar di DKI Jakarta (kecuali milik TNI/Polri) pada bulan Juni 2009 adalah sebanyak 9.993.867 kendaraan (9.739.633 kendaraan pribadi dan 254.234 kendaraan umum), sedangkan jumlah penduduk Jakarta pada bulan Maret 2009 sebanyak 8.513.385 jiwa. Dengan perbandingan tersebut dapat disimpulkan bahwa setiap keluarga yang ada di Jakarta dianggap memiliki kendaraan. Jumlah ini belum ditambah dengan jumlah kendaraan yang hanya masuk kota Jakarta dari daerah sekitar Jakarta pada siang hari dan kembali ke daerah asalnya pada sore hari (kendaraan berada di Jakarta selama jam kerja kantor). Prediksi akhir-akhir ini mengatakan bahwa pada tahun 2014, Jakarta dapat mengalami macet total karena pertumbuhan jumlah kendaraan tidak diimbangi dengan pertumbuhan pelebaran atau
Implementasi Embedded System Menggunakan Beagleboard
87
pembuatan jalan. Contoh kemacetan yang sedang terjadi dapat dilihat pada Gambar 4.1.
Gambar 4.1. Kemacetan yang Biasa Terjadi di Jakarta. [ http://en.wikipedia.org ]
Kemacetan membawa beberapa dampak negatif, yaitu mengurangi kecepatan perjalanan dan merugikan waktu, meningkatkan stres pengguna jalan, meningkatkan polusi udara karena pada kecepatan rendah konsumsi energi lebih tinggi, membuat mesin tidak beroperasi pada kondisi yang optimal, dan yang paling penting yaitu menyebabkan terganggunya kegiatan ekonomi, logistik, dan berbagai kegiatan lainnya. Kemacetan di Jakarta dan beberapa kota besar di Indonesia sudah mencapai level yang parah dan harus segera diselesaikan.
4.2 Beberapa Penyebab Kemacetan Lalu Lintas Seperti yang kita ketahui sebelumnya, jumlah kendaraan yang bertambah setiap tahun dan tidak diimbangi dengan jumlah pelebaran jalan merupakan salah satu penyebab utama kemacetan. Selanjutnya akan dianalisis elemen-elemen dari sebuah persimpangan lalu lintas. Dalam sebuah sistem lalu lintas, sebuah persimpangan setidaknya terdiri atas tiga elemen yang terlibat, yaitu: (1) pengguna jalan, misalnya mobil, motor, atau
88
Implementasi Embedded System Menggunakan Beagleboard
pejalan kaki, (2) jalan sebagai tempat kendaraan-kendaraan melintas, dan (3) lampu lalu lintas.
Gambar 4.2. Persimpangan Lalu Lintas. [ http://id.wikipedia.org ]
Pengguna jalan menjadi elemen yang paling dominan dalam sebuah sistem lalu lintas dan memiliki pengaruh yang besar. Jumlah pengguna jalan cenderung meningkat dan sulit untuk dikendalikan karena terkait dengan kultur masyarakat. Elemen yang kedua adalah jalan sebagai tempat kendaraan-kendaraan melintas. Pembangunan jalan atau pelebaran jalan jarang sekali dilakukan. Bahkan terkadang hanya jika kondisi jalan sudah rusak parah baru dilakukan perbaikan jalan. Elemen yang terakhir adalah lampu lalu lintas. Banyak orang beranggapan lampu lalu lintas hanya ‘begitu-begitu saja’, hanya dapat berfungsi sebagai indikator lampu yang konstan, dan tidak memiliki fungsi yang dapat ditingkatkan. Padahal dengan mempelajari karakteristiknya lebih lanjut, kita dapat mengoptimalkan fungsi sebuah lampu lalu lintas.
Implementasi Embedded System Menggunakan Beagleboard
89
4.3 Lampu Lalu Lintas Lampu lalu lintas adalah sebuah lampu yang terpasang di persimpangan jalan yang mengendalikan arus lalu lintas. Lampu ini menjadi indikator kapan kendaraan yang melintas harus berhenti dan kapan harus jalan. Secara umum lampu lalu lintas terdiri dari tiga buah lampu indikator yakni lampu merah yang merupakan tanda untuk berhenti, lampu kuning yang merupakan tanda untuk bersiap-siap, dan lampu hijau yang merupakan tanda untuk jalan. Lampu lalu lintas digunakan dalam sebuah persimpangan dengan tujuan sebagai berikut. 1) Menghindari terjadinya penumpukan kendaraan akibat adanya konflik arus lalu lintas dari berbagai arah yang berbeda dalam sebuah persimpangan. 2) Memfasilitasi persilangan antara jalan utama untuk pengendara dan pejalan kaki dengan jalan-jalan sekunder sehingga jalan utama dapat dihindarkan dari kemacetan. 3) Menghindari risiko kecelakaan yang disebabkan adanya berbagai kendaraan yang datang dengan kecepatan tinggi dalam sebuah persimpangan. Perlu diketahui bahwa pemasangan lampu lalu lintas tidak dapat dilakukan secara sembarangan, tidak berarti semakin banyak lampu lalu lintas, maka semakin dapat mengoptimalkan sebuah lalu lintas. Perancangan lampu lalu lintas yang tidak terencana malah dapat meningkatkan potensi kecelakaan.
4.3.1 Jenis-jenis Lampu Lalu Lintas Berdasarkan jenis-jenisnya, bentuk pengaturan kendali lampu lalu lintas dalam sebuah persimpangan dibagi-bagi menjadi sebagai berikut. 90
Implementasi Embedded System Menggunakan Beagleboard
1)
Lampu Lalu Lintas Terpisah (isolated traffic signals) Lampu Lalu Lintas Terpisah didesain hanya mempertimbangkan satu buah persimpangan saja tanpa mempertimbangkan lampu lalu lintas yang lain. Jenis pengaturan ini adalah pengaturan lampu lintas yang paling sederhana karena tidak perlu mempertimbangkan faktor arus jalan secara kompleks dan hanya memperhatikan persimpangan tempat lampu lalu lintas tersebut berada saja.
2)
Lampu Lalu Lintas Terkoordinasi (coordinated traffic signals) Lampu Lalu Lintas Terkoordinasi didesain dengan mempertimbangkan beberapa persimpangan dalam sebuah jalur atau arah tertentu. Jenis ini sedikit lebih kompleks dibandingkan Lampu Lalu Lintas Terpisah, karena memperhatikan beberapa persimpangan jalan lainnya, namun masih dalam satu jalur saja.
3)
Lampu Lalu Lintas Jaringan (networking traffic signals) Lampu Lalu Lintas Jaringan didesain dengan mempertimbangkan beberapa persimpangan pada sebuah jaringan jalan dalam suatu kawasan. Ini adalah model lampu lalu lintas yang paling kompleks karena mempertimbangkan semua faktor, yaitu setiap persimpangan dari berbagai jalur atau dalam sebuah area tertentu.
Berdasarkan cara pengoperasiannya sendiri, lampu lalu lintas pada sebuah persimpangan dikategorikan sebagai berikut. 1) Fixed Time Traffic Signals, dimana sistem pengaturan waktu (setting time) pada sistem lampu lalu lintas ini bersifat tidak berubah atau konstan.
Implementasi Embedded System Menggunakan Beagleboard
91
2) Actuated Time Traffic Signals, dimana sistem pengaturan waktu (setting time) pada sistem lampu lalu lintas ini bersifat adaptif atau mengalami perubahan dari waktu ke waktu sesuai dengan kondisi jalan berdasarkan parameter kedatangan jumlah kendaraan (demand) dalam sebuah persimpangan tersebut.
4.3.2 Karakteristik Lampu Lalu Lintas Dalam merancang pemasangan sebuah lampu lalu lintas, harus dipertimbangkan kondisi geometrik dan kondisi lalu lintas yang ada, yaitu jumlah rata-rata kendaraan yang melintas, jumlah jalur yang ada, dan faktor-faktor lain yang disebabkan oleh kondisi lalu lintas. Desain yang ada harus mampu mendistribusikan alokasi waktu kepada masing-masing kelompok pergerakan kendaraan secara proporsional sehingga dapat mengoptimalkan sirkulasi lalu lintas. Menurut Webster dan Cobbe, proses optimasi lampu didasarkan pada tundaan minimum. Di Indonesia, lampu lalu lintas disepakati dengan warna-warna sebagai berikut. 1) Lampu Hijau (green), indikator yang digunakan untuk memberikan isyarat bahwa kendaraan harus bergerak maju. 2) Lampu kuning (amber), indikator yang digunakan untuk memberikan isyarat kepada kendaraan untuk bersiap-siap. Bila dalam kondisi diam maka indikator kuning memberikan isyarat agar kendaraan bersiap-siap untuk jalan, sedangkan bila kendaraan dalam kondisi jalan maka memberikan isyarat agar kendaraan bersiap-siap untuk berhenti. 3) Lampu Merah (red), indikator yang digunakan untuk memberikan isyarat bahwa kendaraan harus berhenti. Perlu diketahui, bahwa dengan adanya peraturan lalu lintas yang baru (PP 42 dan 43), untuk kendaraan yang akan berbelok ke kiri, 92
Implementasi Embedded System Menggunakan Beagleboard
selama tidak diatur secara khusus, maka kendaraan diperbolehkan untuk langsung berbelok ke kiri. Banyak pula peraturan lalu lintas yang lain yang dapat membuat konflik dalam sebuah sistem lalu lintas. Konflik tersebut dapat diklasifikasikan menjadi dua, yaitu konflik primer dan konflik sekunder. Konflik primer adalah pertemuan aliran kelompok pergerakan kendaraan dari dua atau lebih jalur yang berbeda yang saling bersilangan (crossing). Konflik primer menjadi permasalahan paling utama yang harus diselesaikan oleh sistem lalu lintas. Sedangkan konflik sekunder adalah pertemuan yang disebabkan bukan dari jalur yang bersilangan, namun lebih ke pertemuan antara jalan lurus dengan jalan berbelok (opposing straight-through traffic) dan pertemuan dengan arus pejalan kaki (crossing predestrians). Visualisasi konflik primer dan konflik sekunder dapat dilihat pada Gambar 4.3.
Gambar 4.3. Konflik Primer dan Sekunder Lampu Lalu Lintas.
4.3.3 Pengaturan sinyal lalu lintas Salah satu cara yang paling efektif untuk pengendalian lalu lintas di sebuah persimpangan adalah dengan penggunaan sinyal lalu lintas. Pengaturan sinyal lalu lintas (traffic signal control) dapat digunakan untuk menghilangkan banyak konflik karena arah lalu lintas yang Implementasi Embedded System Menggunakan Beagleboard
93
berbeda-beda dapat diberikan waktu penggunaan persimpangan yang berbeda pula. Faktor utama yang menentukan kebutuhan pengaturan sinyal lalu lintas pada persimpangan tertentu adalah pendekatan volume lalu lintas atau densitas kendaraan pada persimpangan tersebut, walaupun faktor lainnya seperti volume pejalan kaki dan kejadian kecelakaan juga mungkin dapat menjadi faktor yang penting [Garber dan Hoel, 2008]. Parameter dalam pengaturan sinyal lalu lintas secara umum terbagi sebagai berikut [Garber dan Hoel, 2008]. 1. Cycle Time Cycle time atau Cycle Length adalah waktu dalam hitungan detik yang diperlukan untuk seluruh urutan pengendalian lampu dalam suatu persimpangan. Sehingga cycle time bisa diartikan lama waktu lampu hijau dan lama waktu lampu merah menyala di suatu jalan dalam persimpangan. 2. Split Setting Split setting atau signal phase adalah bagian dari cycle time yang dialokasikan untuk jalan atau lajur tertentu pada persimpangan dapat bergerak atau berjalan. 3. Offset Offset adalah selang waktu dalam detik atau persentase dari cycle time antara awal dari sebuah fase lampu hijau di sebuah persimpangan dan awal dari sebuah fase lampu hijau yang sesuai di persimpangan berikutnya. The Manual on Uniform Traffic Control Devices (MUTCD) yang diterbitkan oleh U.S Department on Transportation Federal Highway Administration (FHWA) secara lengkap memberikan konsep dasar dan teknis standar yang digunakan dalam desain sinyal lalu lintas [http://mutcd.fhwa.dot.gov/]. Dalam MUTCD terdapat Traffic Signal Timing Manual (TSTM) yang ditujukan untuk menjadi panduan komprehensif untuk para pengembang dan teknisi sinyal lalu lintas pada prinsip-prinsip logika, praktik, dan 94
Implementasi Embedded System Menggunakan Beagleboard
prosedur kontrol sinyal lalu lintas. Terdapat delapan pertimbangan pengaturan sinyal dalam TSTM yaitu sebagai berikut [http://ops.fhwa.dot.gov/arterial_mgmt/ tstmanual.htm]. 1. Eight-Hour Vehicular Volume Pertimbangan pengaturan lalu lintas terdiri dari dua bagian kondisi berdasarkan volume kendaraan, yaitu volume kendaraan minimum dan gangguan lalu lintas, yang salah satu atau kedua harus dipenuhi selama periode delapan jam. 2. Four-Hour Vehicular Volume Pertimbangan pengaturan lalu lintas ini mirip dengan EightHour Vehicular Volume tetapi bergantung pada kondisi volume kendaraan selama periode empat jam. 3. Peak Hour Pertimbangan pengaturan ini didasarkan pada penundaan kendaran disaat kondisi waktu padat. 4. Pedestrian Volume Pertimbangan ini ditujukan untuk memberikan kesempatan pejalan kaki menyeberang jalan yang cukup padat. 5. School Crossing Pertimbangan ini ditujukan secara khusus untuk lokasi sekolah dimana banyak dilakukan aktivitas menyeberang jalan. 6. Coordinated Signal System Pertimbangan ini dimaksudkan untuk memungkinkan pengaturan sinyal lalu lintas yang dapat meningkatkan laju dari lalu lintas. Pertimbangan ini hanya ditujukan untuk digunakan untuk kondisi jarak antar persimpangan yang tidak kurang dari 1.000 kaki (300 m).
Implementasi Embedded System Menggunakan Beagleboard
95
7. Crash Experience Pertimbangan ini terkait dengan keselamatan dalam periode waktu tertentu karena frekuensi kecelakaan yang tinggi dalam periode tersebut. 8. Roadway Network Pertimbangan ini dapat digunakan untuk mendukung penggunaan pengaturan sinyal lalu lintas untuk berkonsentrasi di lokasi tertentu. Dalam perkembangannya alat pengatur sinyal lalu lintas pada persimpangan (traffic signal controller) telah menggunakan mikroprosesor sehingga memungkinkan untuk dapat diprogram dan menangani berbagai jenis pertimbangan fase dan berbagai fitur-fitur tersebut.
4.3.3 Pengaturan Fase Lampu Lalu Lintas Pengaturan fase dilakukan untuk mengatur pergerakan kendaraan dalam sebuah persimpangan untuk menyelesaikan permasalahan konflik primer dan konflik sekunder. Pengaturan fase termasuk dalam proses perencanaan pemasangan lampu lalu lintas di persimpangan.
Bentuk pengaturan fase yang dilakukan adalah sebagai berikut.
Pengurangan konflik baik primer maupun sekunder.
Mengatur urutan yang optimum dalam pergantian fase.
Mempertimbangkan waktu pengosongan (clearance time) pada daerah persimpangan.
Beberapa tindakan nyata yang dilakukan dalam pengurangan konflik primer misalnya adalah pengaturan fase yang dilakukan dengan membagi fase menjadi dua. Hal ini dilakukan dengan masing-masing fase untuk masing-masing jalur jalan yang saling 96
Implementasi Embedded System Menggunakan Beagleboard
bersilangan, masing-masing jalur diberikan waktu tertentu untuk mempersilahkan kendaraan yang melaluinya melintas. Mempertimbangkan urutan dalam pergantian fase juga merupakan hal penting dalam pengaturan fase sebuah persimpangan.
Gambar 4.4. Contoh Kasus Persimpangan Jalan.
Perhatikan ilustrasi pada Gambar 4.4. Pada gambar tersebut, di jalur A terdapat tiga alternatif tujuan ketika melewati persimpangan, yaitu lurus, berbelok ke kanan, serta berbelok ke kiri. Sedangkan B memiliki dua alternatif tujuan yakni lurus dan berbelok ke kiri. Bila menggunakan konsep pengurangan konflik primer biasa, persimpangan ini masih belum bisa dikatakan optimal dalam pengoperasiannya. Namun, seandainya sekarang ketika tiba saatnya fase A, seluruh kendaraan di A dapat berjalan lurus, berbelok ke kanan, dan berbelok ke kiri. Lalu ketika fase B tiba, urutan lampu hijau tidak hanya diberikan untuk jalur B yang berjalan lurus dan berbelok ke kiri saja, namun juga A yang ingin berbelok ke kiri. Pengaturan fase semacam ini lebih efektif dibandingkan membuat mereka menunggu hingga fase selanjutnya, dan seterusnya. Salah satu teknik pengaturan fase yang lain adalah memberikan waktu tertentu untuk memberikan jeda pada saat pergantian fase. Hal ini ditujukan untuk memberikan waktu kondisi persimpangan kembali normal dan siap berlanjut ke fase selanjutnya. Teknik ini dinamakan clearance time. Faktor-faktor yang dipertimbangkan dalam clearance time biasanya diambil dari percobaan jarak Implementasi Embedded System Menggunakan Beagleboard
97
memandang dari pengemudi, berapa waktu untuk melihat lampu, bahkan memperhatikan waktu untuk kedipan mata sekalipun. Rata-rata clearance time memakan waktu tiga detik.
4.3.4 Perkembangan Lampu Lalu Lintas Ide lampu lalu lintas mulai diinisiasi pada tanggal 10 Desember 1868. Lampu lalu lintas pertama kali diterapkan di sekitar British Houses of Parliament di London oleh J. P. Knight, seorang teknisi jalur kereta api. Proses implementasinya mirip dengan prinsip sinyal kereta api saat itu, menggunakan lengan semaphore dan lampu gas merah dan hijau untuk penggunaan di malam hari. Perpindahan lampu masih diatur secara manual, lentera gas diputar dengan sebuah tuas dasar sesuai dengan kondisi yang diinginkan. Baru satu tahun digunakan, lampu lalu lintas pertama ini meledak pada tanggal 2 Januari 1869 yang menewaskan seorang polisi yang bertugas menjadi operator dari lampu lalu lintas tersebut. Lampu lalu lintas elektrik pertama diterapkan di Amerika. Di awal tahun 1912 di Salt Lake City, Utah, seorang polisi, Lester Wire menemukan lampu lalu lintas elektrik pertama dengan warna merah dan hijau. Pada tanggal 5 Agustus 1914, American Traffic Light Company mengujicobakan sebuah sistem lampu lalu lintas di persimpangan jalan East 10th Street dan Euclid Avenue, sebuah jalan di kawasan Cleveland, Ohio. Saat itu, komposisi lampu lalu lintas masih terdiri dari dua warna, yaitu merah dan hijau, serta sebuah bel yang mengacu dari desain yang dibuat oleh James Hoge, untuk memberikan peringatan ketika akan terjadi perubahan warna. Lampu lalu lintas dengan tiga warna serta digunakan untuk empat jalur (sebuah persimpangan) dibuat oleh seorang polisi, William Potts, di Detroit, Michigan pada tahun 1920. Pada tahun 1922, terdapat sebuah modifikasi baru lampu lalu lintas dengan combination traffic guide dan traffic regulating signal yang dibuat 98
Implementasi Embedded System Menggunakan Beagleboard
oleh T. E. Hayes dan telah dipatenkan. Persimpangan Ashville, Ohio diklaim sebagai tempat pertama kalinya lampu lalu lintas ini diterapkan, hingga pada tahun 1982 lampu lalu lintas ini dipindahkan ke museum lokal. Lampu lalu lintas yang saling terhubung atau interconnected traffic signal system pertama kali diujicobakan di Salt Lake City pada tahun 1917 dengan enam buah persimpangan yang saling terhubung dan dikontrol secara simultan dari sebuah manual switch. Kontrol otomatis dari interconnected traffic light baru diperkenalkan pada Maret 1922 di Houston, Texas dan lampu lalu lintas otomatis ini diujicobakan di Inggris, tepatnya di kota Wolverhampton pada tahun 1927, yang menjadi cikal bakal lampu lalu lintas yang digunakan hingga saat ini. Perkembangan selanjutnya tidak terlalu signifikan secara fungsional, pada tahun 1999 mulai diperkenalkan konsep timer pada sebuah lampu lalu lintas di Taipei, Taiwan. Konsep timer ini sangat berguna bagi para pengendara untuk memperkirakan kemungkinan kendaraan dapat melewati sebuah persimpangan sebelum lampunya berubah warna menjadi merah atau sebaliknya dan untuk bersiap-siap menjalankan kendaraan sebelum lampu berwarna hijau. Di beberapa kota besar di Indonesia, misalnya di Jakarta, Bandung, dan Surabaya sudah mulai menerapkan konsep timer pada lampu lalu lintas-lampu lalu lintas yang ada. Sejauh ini, perkembangan lampu lalu lintas masih berorientasi penuh pada waktu, dengan lama waktu menyala berdasarkan durasi waktu yang telah ditentukan saja namun belum bisa mengidentifikasi atau menyesuaikan dengan keadaan jalan yang normal, padat, hingga lengang. Sistem pengaturan lampu lalu lintas yang digunakan saat ini sebagian besar masih menggunakan sistem stand-alone, dimana lama waktu untuk lampu merah dan lampu hijau diatur secara manual oleh petugas. Dalam sistem pengaturan lampu lalu lintas tersebut, lama waktu lampu merah dan lampu hijau untuk suatu
Implementasi Embedded System Menggunakan Beagleboard
99
ruas jalan diatur secara tetap, sehingga sistem tidak dapat menyesuaikan diri dengan kondisi lingkungan (tidak adaptif). Selain itu, dalam sistem tersebut tidak ada komunikasi antar lampu lalu lintas pada suatu persimpangan dengan lampu lalu lintas di persimpangan terdekatnya sehingga kemacetan lalu lintas mungkin sekali terjadi di suatu persimpangan akibat terjadinya kemacetan di persimpangan terdekatnya. Oleh sebab itu, sistem pengaturan lampu lalu lintas yang digunakan sekarang ini perlu dikembangkan lagi agar dapat membantu mengurangi kemacetan. Sudah ada beberapa gagasan untuk membuat lampu lalu lintas cerdas. Beberapa penelitian yang ada antara lain sebagai berikut. 1. Simulator Pengatur Lampu Lalu Lintas Berdasarkan Waktu dan Kepadatan Kendaraan Berbasis Mikrokontroler AT89S52 Simulator yang dikembangkan oleh salah satu staf pengajar Teknik Elektro Universitas Udayana ini menggunakan mikrokontroler untuk mengatur waktu dan lama nyala lampu lalu lintas yang disesuaikan. Pengaturan tersebut berdasarkan hasil perhitungan yang dilakukan oleh mikrokontroler AT89S52. Mikrokontroler ini dilengkapi dengan Real Time Clock (RTC) DS1307, dimana RTC ini akan digunakan sebagai acuan waktu yang akan disesuaikan dengan kondisi di lapangan. Data waktu yang diperoleh dimasukkan ke EEPROM eksternal AT24C04 dan ditampilkan pada display LCD 16x2. Namun, simulator ini belum bisa sepenuhnya “cerdas”, karena pengaturan waktu diasumsikan sesuai dengan perhitungan yang dilakukan sebelumnya lalu dicocokkan dengan kondisi waktu saat itu oleh RTC. Dalam arti lain, tidak diambil langsung atau disesusaikan berdasarkan kondisi jalan saat itu.
100
Implementasi Embedded System Menggunakan Beagleboard
2. Penerapan Logika Fuzzy pada Lampu Lalu Lintas Implementasi penghitungan lampu lalu lintas cerdas menggunakan logika fuzzy sebagai sebuah perangkat untuk mempelajari tingkat kebenaran suatu objek juga sudah banyak dilakukan. Penelitian dan penggunaan logika fuzzy dalam pengaturan sinyal lalu lintas dilakukan pertama kali oleh Pappis dan Mamdani tahun 1977 yang membuat studi simulasi teoritis pengontrol logika fuzzy dalam suatu persimpangan bersinyal yang terisolasi/independen (2+2 lajur, satu arah persimpangan) [Pappis dan Mamdani, 1977]. Dalam penelitian mereka, Pappis dan Mamdani membandingan metode fuzzy dengan pengatur sinyal lalu lintas adaptif yang berusaha mengurangi penundaan kendaraan dengan perhitungan cycle time yang optimal. Dari hasil yang diperoleh, kontroler fuzzy memberikan hasil yang hampir sama atau sedikit lebih baik dari metode adaptif tersebut. Di Indonesia sendiri, sekelompok mahasiswa Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Negeri Makasar pernah menggagas penelitian ini dengan sistem pengendalian fuzzy yang memiliki masukan berupa jumlah kendaraan pada suatu jalur yang sedang diatur dan jumlah kendaraan pada jalur lain. Sedangkan keluarannya berupa lama menyala lampu hijau pada jalur yang sedang diatur dan jangka waktu lampu merah menyala pada jalur yang sedang menunggu. Seorang mahasiswa Universitas Budi Luhur jurusan Teknik Elektro juga pernah membuat hal yang serupa, yaitu penerapan lampu lalu lintas menggunakan logika fuzzy dan implementasinya pada komputer IBM PC-XT 8088. Di luar negeri pun sedang dikembangkan riset-riset serupa tentang lampu lalu lintas. Tidak begitu lama ini diberitakan dua orang peneliti asal Eropa, Dirk Helbing dari Swiss Federal Institute of Technology Zurich dan Stefan Lammer dari Dresden University of Technology di Jerman, telah mengujicobakan prototipenya di Implementasi Embedded System Menggunakan Beagleboard
101
sebuah jalan di Dresden, Jerman. Hasilnya, waktu tunggu di lampu merah bisa berkurang sekitar 10-30%. Isu lampu lalu lintas ini pun sebenarnya tidak hanya memicu risetriset mengenai lampu lalu lintas saja, namun perangkat-perangkat sejenis yang mampu menjadi solusi kemacetan. IBM, sebuah perusahaan pengembang teknologi pun melihat potensi bisnis ini. Sekarang mereka sedang mengembangkan urban traffic prediction system yang mereka sebut Traffic Prediction Tool (TPT). Alat ini dapat mengambil masukan (input) dari berbagai macam sensor jalan serta telah menggunakan pola arus lalu lintas pada kota tersebut sehingga alat itu tidak hanya dapat menunjukkan lokasi kemacetan yang sedang terjadi namun juga memprediksi kemungkinan lokasi kemacetan yang akan terjadi. Alat ini pun direncanakan untuk dibekali dengan kecerdasan yang dapat memberikan alternatif jalan lain bila terjadi kemacetan.
4.3.5 Optimasi Lampu Lalu Lintas Seperti yang telah disampaikan sebelumnya, sistem lalu lintas sekarang yang hanya berorientasi pada waktu saja. Oleh karena itu dapat ditingkatkan jauh lebih optimal bila lampu tersebut mampu memahami kondisi jalan yang normal, padat, dan lengang, sehingga dapat menyesuaikan durasi waktunya sesuai dengan keadaan jalan saat itu dan tidak hanya konstan sesuai dengan pengaturan waktu manual. Apalagi bila lampu lalu lintas tersebut dapat dibuat saling berhubungan dengan lampu lalu lintas yang lain di persimpangan yang sama hingga beberapa persimpangan. Konsep lampu lalu lintas cerdas dengan karakteristik adaptif seperti di atas sebenarnya sudah digagas oleh banyak peneliti dengan berbagai algoritma dan berbagai macam sensor. Contoh algoritma yang digunakan adalah logika fuzzy, PCA, haar like training, dan jaringan syaraf tiruan (neural network). Diperkenalkannya prosessor dan mikroprosesor juga memperbesar
102
Implementasi Embedded System Menggunakan Beagleboard
peluang untuk mengimplementasikan algoritma yang lebih optimal didasarkan pada model matematika dan optimasi. Fungsi optimasi sendiri dapat dipilih untuk mencapai tujuan yang telah ditetapkan, seperti meminimalkan penundaan kendaraan di persimpangan tersebut. Sistem lampu lalu lintas adaptif menggunakan data arus lalu lintas untuk menghitung pengaturan sinyal optimal secara terus menerus dan menyesuaikan pengaturan sinyal secara terkendali. Salah satu sistem pengaturan lampu lalu lintas adaptif yang telah digunakan adalah SCOOT di Inggris. SCOOT menggunakan fuzzy logic sebagai algoritma utama dalam sistemnya [Myers, http://tandh.dnsdojo.com/its/]. Sistem adaptif ini setidaknya membutuhkan komponen detektor kendaraan dan komponen Central Controlling Computer dalam pengaturan sinyal lalu lintas. Tipe-tipe sensor masukan yang dapat digunakan dalam penelitian lampu lalu lintas ada bermacam-macam, ada yang menggunakan sensor inframerah, sensor dengan konsep wifi, dan sebagainya. Pada buku ini, akan digunakan sensor kamera CCTV untuk mendapatkan masukan kondisi jalan. Penggunaan CCTV ini dipilih karena dianggap sesuai dengan kondisi saat ini dimana di beberapa perempatan jalan telah di tempatkan CCTV untuk memonitor kondisi jalan atau untuk keperluan keamanan.
Implementasi Embedded System Menggunakan Beagleboard
103
104
Implementasi Embedded System Menggunakan Beagleboard
Bab 5. Pengembangan Perangkat Lunak di BeagleBoard: Sistem Pengaturan Lampu Lalu Lintas 5.1 Sistem Pengaturan Lampu Lalu Lintas Terdistribusi Sistem pengaturan lampu lalu lintas yang akan dijelaskan di dalam buku ini adalah Sistem Pengaturan Lampu Lalu Lintas Terdistribusi, yaitu sebuah sistem lampu lalu lintas yang ditujukan untuk memenuhi kebutuhan akan kinerja pengaturan lampu lalu lintas yang cerdas dengan pengambilan data secara real-time yang disertai penjadwalan dan pengaturan jaringan multi persimpangan. Sistem ini tentu saja memiiki banyak kelebihan dibandingkan sistem pengaturan lampu lalu lintas konvensional.
Gambar 5.1. Prototipe Sistem Pengaturan Lampu Lalu Lintas Terdistribusi ketika Berjalan.
Sistem Pengaturan Lampu Lalu Lintas Terdistribusi memiliki fungsionalitas untuk dapat memahami kondisi jalan dengan menggunakan metode Principal Component Analysis (PCA). Implementasi Embedded System Menggunakan Beagleboard
105
Metode ini mampu mengenali kendaraan dari gambar yang ditangkap oleh kamera video yang diarahkan ke jalan raya untuk memantau keadaan jalan secara real-time. Sistem ini juga akan mampu mengatur hubungan antar lampu-lampu di masing-masing persimpangan menggunakan metode Distributed Constraint Satisfaction Problem (DCSP). Metode DCSP ini digunakan untuk pengaturan lampu lalu lintas multi persimpangan, dimana persimpangan-persimpangan dapat berkomunikasi untuk berbagi data dan bekerja sama.
5.2 Pemodelan dan Prilaku 5.2.1 Batasan Prototipe Diasumsikan bahwa setiap persimpangan jalan terdiri dari empat jalur. Setiap jalur pada persimpangan tersebut memiliki batas yang jelas antara jalur kanan dan jalur kiri. Dengan demikian diasumsikan penempatan satu kamera dapat dilakukan dengan tepat di salah satu jalur saja, yaitu jalur yang digunakan kendaraan menuju ke persimpangan, atau jalur yang digunakan kendaraan meninggalkan persimpangan. Berikutnya diasumsikan bahwa lama waktu lampu hijau untuk kendaraan yang akan mengambil jalur lurus atau berbelok dianggap sama (disamakan). Selain itu juga diasumsikan bahwa dalam satu waktu, lampu hijau hanya menyala pada salah satu jalur saja. Asumsi lain dalam prototipe ini adalah bahwa perbedaan sudut pandang pengambilan video ketika menggunakan kamera yang kecil dapat diabaikan. Selanjutnya, juga diasumsikan bahwa pada siklus pertama, prototipe Sistem Pengaturan Lampu Lalu Lintas Terdistribusi ini belum bekerja. Hal itu dikarenakan sistem perlu mengambil data jumlah kendaraan terlebih dahulu, yang akan digunakan pada siklus selanjutnya. Dalam prototipe ini juga diasumsikan bahwa yang dimaksud kendaaraan adalah kendaraan roda empat yaitu mobil termasuk bus, truk, dan sebagainya.
106
Implementasi Embedded System Menggunakan Beagleboard
5.2.2 Arsitektur dan Komponen Prototipe Secara garis besar, arsitektur prototipe sistem pengaturan lampu lalu lintas terdistribusi dapat dibagi menjadi tiga komponen besar seperti yang terlihat pada Gambar 5.2.
Gambar 5.2. Arsitektur prototipe dari Sistem Pengaturan Lampu Lalu Lintas Terdistribusi. Implementasi Embedded System Menggunakan Beagleboard
107
Komponen – komponen prototipe sistem pengaturan lampu lalu lintas terdistribusi terdiri dari modul perangkat keras dan modul perangkat lunak.
1. Modul Perangkat Keras Modul perangkat keras adalah alat-alat yang dibuat dengan cara merakit komponen-komponen yang lebih kecil ataupun alat jadi yang sudah siap digunakan. Modul perangkat keras dari prototipe ini meliputi kamera, engine, dan pengendali lampu lalu lintas.
a. Kamera Komponen ini bertugas untuk mengambil gambar keadaan lalu lintas pada setiap jalur di suatu persimpangan. Komponen ini sangat penting, karena setiap pengambilan keputusan yang dilakukan oleh engine lalu lintas (bagian engine lalu lintas akan dijelaskan pada bagian berikutnya) tergantung dari kepadatan lalu lintas yang keadaannya diketahui dari hasil pengambilan gambar melalui komponen ini. Kamera yang digunakan pada prototipe ini adalah webcam Logitech QuickCamTM Connect 1,3 MegaPixel.
Gambar 5.3. Logitech QuickCamTM Connect.
b. Engine Komponen ini adalah otak dari segala keputusan yang akan diambil. Komponen ini bertugas menerima gambar yang diberikan 108
Implementasi Embedded System Menggunakan Beagleboard
oleh kamera, lalu mengolah data tersebut sehingga dapat memperoleh jumlah kendaraan. Selain itu, komponen engine juga bertugas menghitung lamanya waktu lalu lintas di setiap jalur dengan metode Distributed Constraint Statisfication Problem (DCSP). Engine yang digunakan dalam prototipe ini adalah laptop DELL XPS M1330 dengan spesifikasi prosesor Core 2 Duo 2,5 GHz, memori RAM 3 Gb, kartu grafis nVidia GeForce Go 8400M GS, dan sistem operasi Linux Ubuntu 9.10 Karmic Koala. Engine lain yang digunakan adalah BeagleBoard C4 dengan spesifikasi prosesor ARM Cortex-A8 core 720 MHz, memori RAM 256MB, dan sistem operasi Linux Armstrong. Pembuatan prototipe menggunakan BeagleBoard memang sengaja dilakukan untuk membuat kondisi yang mendekati kondisi lalu lintas pada dunia nyata.
Gambar 5.4. DELL XPS M1330 dan BeagleBoard.
c. Sistem Pengendali Lampu Lalu Lintas Komponen ini merupakan komponen yang bertugas mengatur penyalaan lampu lalu lintas beserta counter-nya di setiap jalur pada suatu persimpangan berdasarkan informasi yang dikirim oleh engine. Prototipe memang sengaja didesain dengan arsitektur yang demikian dengan pertimbangan untuk mengurangi beban komputasi yang dilakukan oleh engine. Selain itu engine hanya memiliki alat komunikasi berupa soket USB, sehingga untuk
Implementasi Embedded System Menggunakan Beagleboard
109
menyalakan lampu lalu lintas membutuhkan pengendali lain. Sistem pengendali lampu lalu lintas ini memiliki dua subbagian yaitu sebagai berikut. 1) Board Pengendali Board ini berisi rangkaian sistem minimum mikrokontroler AVR ATmega32. Sistem minimum merupakan rangkaian elektronika yang dibuat agar mikrokontroler dapat bekerja dengan baik. Selain IC mikrokontroler AVR ATmega32, dalam sistem minimum ini juga terdapat berbagai komponen elektronika, diantaranya adalah resistor, kapasitor (elco), led (indikator), transistor crystal, dan sebagainya. Dalam menyusun sistem minimum ini penulis juga menggunakan IC tambahan AVR ATmega8 yang berperan sebagai protocol untuk berkomunikasi dengan device lain. Pada prototipe ini IC AVR Atmega8 berperan sebagai protocol dalam komunikasi antara mikrokontroler AVR ATmega32 dengan engine. Alternatif lain yang dapat digunakan sebagai protocol adalah IC Max 232. Akan tetapi jika sistem minimum menggunakan IC ini, maka soket yang digunakan bukan soket USB, melainkan soket serial. Dengan demikian untuk melakukan komunikasi antara board pengendali dengan engine dibutuhkan kabel (connector) SERIAL to USB cable. Bentuk board pengendali dapat dilihat pada Gambar 5.5.
Gambar 5.5. Board Pengendali menggunakan ATmega32 dan ATmega8.
110
Implementasi Embedded System Menggunakan Beagleboard
2) Board Lampu Lalu Lintas Board ini berisi lampu lalu lintas dengan tiga seven segment. Board ini berfungsi sebagai miniatur lampu lalu lintas. Bagian atas merupakan lampu lalu lintas yang digunakan sebagai petunjuk kendaraan yang akan mengambil jalur lurus. Pada bagian atas ini terdapat tiga lampu yaitu lampu merah, kuning, dan hijau. Bagian samping kanan dan samping kiri merupakan lampu lalu lintas yang digunakan sebagai petunjuk kendaraan yang akan mengambil jalur berbelok. Pada bagian ini hanya terdapat dua macam lampu, yaitu lampu merah dan lampu hijau. Bentuk board lampu lalu lintas dapat dilihat pada Gambar 5.6.
Gambar 5.6. Board Lampu Lalu Lintas.
d. Konektor Dengan arsitektur prototipe yang terdiri dari beberapa komponen, tentunya diperlukan konektor yang menghubungkan satu komponen dengan komponen lain. Hal itu sangat diperlukan agar masing-masing komponen dapat saling mengirimkan dan menerima sinyal atau data. Selanjutnya akan dibahas connectorconnector yang digunakan dalam prototipe ini. Implementasi Embedded System Menggunakan Beagleboard
111
1) Konektor USB to mini USB Konektor ini digunakan untuk menghubungkan engine (BeagleBoard) dengan PC. Konektor ini dibutuhkan karena perlu dilakukan penanaman program pada BeagleBoard. Bentuk konektor ini dapat dilihat pada Gambar 5.7.
Gambar 5.7. Konektor USB to mini USB.
2) Konektor USB to USB Konektor ini digunakan untuk menghubungkan engine dengan board pengendali lampu lalu lintas jika board pengendali menggunakan IC AVR ATmega8 sebagai protokol komunikasi. Bentuk konektor ini dapat dilihat pada Gambar 5.8.
Gambar 5.8. Konektor USB to USB.
112
Implementasi Embedded System Menggunakan Beagleboard
3) Konektor SERIAL to USB Konektor ini digunakan untuk menghubungkan engine dengan board pengendali lampu lalu lintas jika board pengendali menggunakan IC Max232 sebagai protokol komunikasi. Bentuk konektor ini dapat dilihat dalam Gambar 5.9.
Gambar 5.9. Connector SERIAL to USB.
4) Kabel Pelangi Kabel pelangi merupakan kabel yang digunakan untuk menghubungkan setiap pin pada board pengendali dan pin pada board lampu lalu lintas. Kabel ini memiliki ukuran diameter yang cukup kecil sehingga efektif untuk digunakan. Bentuk kabel ini dapat dilihat pada Gambar 5.10.
Gambar 5.10. Kabel Pelangi.
Implementasi Embedded System Menggunakan Beagleboard
113
5) Black Housing Black Housing merupakan suatu wadah yang digunakan pada ujung kabel pelangi agar mempermudah pemasangannya pada suatu pin. Bentuk alat ini dapat dilihat pada Gambar 5.11.
Gambar 5.11. Black Housing. [ http://code.google.com/p/arducoptermega ]
Setelah semua komponen terpasang, maka bentuk prototipe sistem ini akan menyerupai apa yang terlihat pada Gambar 5.12.
Gambar 5.12. Prototipe Sistem Pengaturan Lampu Lalu Lintas Terdistribusi ketika semua komponen telah terpasang.
114
Implementasi Embedded System Menggunakan Beagleboard
2. Modul Perangkat Lunak Modul perangkat lunak dari prototipe merupakan modul yang berupa berkas berisi program, baik sebatas sebagai protokol ataupun aplikasi untuk mengendalikan modul perangkat keras sehingga dapat bekerja sesuai yang diharapkan. Modul perangkat lunak dari prototipe ini meliputi program dan komponen berikut. a. Program Penghitung Kendaraan dan Penentuan Sinyal Lampu Lalu Lintas Program ini merupakan program yang mengendalikan engine untuk melakukan penghitungan kendaraan dan menentukan sinyal lampu lalu lintas untuk setiap jalur pada persimpangan. Dalam melakukan penghitungan kendaraan, program melakukan pengenalan terlebih dahulu terhadap objek-objek yang dianggap kendaraan dengan menggunakan metode Principal Component Analysis (PCA). Dalam melakukan pengenalan objek kendaraan, program menggunakan cascading file, sedangkan dalam melakukan penentuan sinyal lampu lalu lintas di setiap jalur, program menggunakan metode Distributed Constraint Satisfaction Problem (DCSP). Metode DCSP menentukan lama menyalanya lampu lalu lintas di setiap jalur. Program ini ditulis dengan menggunakan bahasa C, berjalan pada sistem operasi ubuntu 9.10, serta menggunakan pustaka (library) OpenCV. b. Cascading File Cascading file merupakan berkas berekstensi .xml yang diperoleh dari hasil haar training. Agar program dapat melakukan pengenalan objek kendaraan dengan baik, maka program harus dilatih terlebih dahulu untuk mengenali objek kendaraan. Pelatihan tersebut disebut dengan haar training. Secara umum, pengertian haar training adalah proses pelatihan yang digunakan untuk mendeteksi objek kompleks dalam gambar atau video stream. Haar training adalah salah satu pendekatan Implementasi Embedded System Menggunakan Beagleboard
115
pelatihan dengan model statistik dengan menggunakan serangkaian gambar negatif, yaitu gambar yang tidak mengandung objek yang akan dikenali (misalnya latar belakang atau objek lain yang tidak relevan) dan serangkaian gambar positif, yaitu gambar yang mengandung objek yang akan dikenali (dalam penelitian ini adalah mobil). Hal ini bertujuan untuk mengekstrak ciri khas dan karakteristik suatu benda. Haar training akan menghasilkan sebuah file berisi fitur-fitur khas suatu objek gambar yang disebut classifier atau pengklasifikasi. Jadi, dalam haar training dibutuhkan gambargambar kendaraan dalam berbagai variasi bentuk, posisi, warna, ukuran, sudut pandang, dan sebagainya. Selain itu juga dibutuhkan gambar-gambar latar belakang kendaraan. c. Program Pengendali Sinyal Lampu Lalu Lintas beserta Counter Program ini merupakan program yang digunakan oleh IC ATmega32 pada board pengendali lampu lalu lintas untuk menyalakan lampu lalu lintas pada setiap jalur secara langsung sekaligus melakukan down counting. Program ini ditulis dengan menggunakan bahasa C pada sistem operasi ubuntu 9.10 dengan kompiler dari aplikasi gcc-avr yang menggunakan pustaka avrlibs. Aplikasi avr-gcc juga sudah tersedia dalam versi Windows dengan nama WinAVR. d. Protokol Komunikasi Via USB Protokol komunikasi via USB dibutuhkan baik oleh engine maupun oleh IC AVR Atmega32 pada board pengendali untuk melakukan pengiriman (transmit) dan penerimaan (receive) data. Pada prototipe ini protokol untuk engine dijadikan satu berkas dengan program penghitungan kendaraan dan penentuan sinyal lampu lalu lintas dan ditulis dengan bahasa yang sama. Sedangkan protokol untuk IC AVR ATmega32 dijadikan satu berkas dengan program pengendali sinyal lampu lalu lintas beserta counter dan ditulis dengan menggunakan bahasa yang sama.
116
Implementasi Embedded System Menggunakan Beagleboard
5.2.3 Data Input dan Output Dalam menampilkan simulasi pengaturan lampu lalu lintas terdistribusi, prototipe ini menggunakan data masukan (input) berupa video arus kendaraan pada suatu jalan. Hal ini disebabkan bahwa pengujian prototipe dalam keadaaan yang nyata kurang memungkinkan karena keterbatasan komponen prototipe yang ada. Dengan demikian dibutuhkan video arus kendaraan sebagai wakil dari keadaan yang sebenarnya. Pengujian performa/kinerja prototipe dalam pengambilan video secara langsung dapat didekati dengan cara mengambil video dengan kamera terhadap video yang ditampilkan pada layar suatu komputer. Dalam menggunakan prototipe, video yang dijadikan sebagai masukan dapat berupa video arus kendaraan pada berbagai kondisi, misalnya kondisi siang, kondisi malam (gelap), kondisi macet, kondisi tidak macet dan sebagainya. Gambar 5.13. sampai Gambar 5.20. menunjukkan contoh gambar-gambar potongan video yang dijadikan video masukan untuk sistem.
Gambar 5.13. Potongan video masukan pada siang hari dengan kondisi kendaraan yang padat.
Implementasi Embedded System Menggunakan Beagleboard
117
Gambar 5.14. Potongan video masukan pada siang hari dengan kondisi yang ramai.
Gambar 5.15. Potongan video masukan pada siang hari dengan kondisi yang cukup ramai.
Gambar 5.16. Potongan video masukan pada malam hari dengan kondisi yang cukup ramai.
118
Implementasi Embedded System Menggunakan Beagleboard
Gambar 5.17. Potongan video masukan pada malam hari dengan kondisi yang cukup sepi.
Gambar 5.18. Potongan video masukan pada siang hari dengan kondisi yang ramai dengan sudut pengambilan video dari arah atas samping.
Gambar 5.19. Potongan video masukan pada siang hari dengan kondisi yang ramai dengan sudut pengambilan video dari arah atas dan secara wide range.
Implementasi Embedded System Menggunakan Beagleboard
119
Gambar 5.20. Potongan video masukan pada siang hari dengan kondisi yang cukup ramai dengan sudut pengambilan video dari arah atas dan secara zoom in.
Prototipe ini menghasilkan sebuah berkas video yang diberi nama hasil.avi. Video ini merupakan modifikasi video yang dijadikan sebagai masukan. Video tersebut berbeda dengan video yang asli karena saat melakukan pengolahan data video, engine memisahkan setiap frame gambar dari video yang dijadikan masukan lalu menatanya kembali untuk dijadikan keluaran (output).
5.2.4 Pemodelan Persimpangan Dalam batasan prototipe dijelaskan bahwa persimpangan yang digunakan terdiri dari empat jalur. Pada masing-masing jalur terdapat batas yang jelas antara ruas yang digunakan kendaraan menuju persimpangan dan ruas yang digunakan kendaraan meninggalkan persimpangan. Visualisasi model persimpangan pada prototipe ditampilkan pada Gambar 5.21.
120
Implementasi Embedded System Menggunakan Beagleboard
Gambar 5.21. Pemodelan Persimpangan pada Prototipe.
Keterangan: : Merupakan pembatas ruas jalan yang digunakan kendaraan menuju persimpangan dan ruas jalan yang digunakan kendaraan meninggalkan persimpangan. : Merupakan tempat dimana kamera dan lampu lalu lintas diletakkan. Ruas jalan yang diberi tanda tersebut merupakan ruas jalan yang digunakan kendaraan menuju ke persimpangan. Kamera diletakkan pada ruas jalan ini karena yang dihitung adalah jumlah kendaraan yang menuju ke persimpangan.
Secara default persimpangan memiliki empat jalur seperti model yang dijelaskan dengan berbagai batasannya. Akan tetapi prototipe ini juga dapat digunakan untuk persimpangan yang memiliki tiga jalur atau persimpangan yang memiliki lebih dari empat jalur.
Implementasi Embedded System Menggunakan Beagleboard
121
5.2.5 Pemodelan Kerja Prototipe Agar prototipe dapat bekerja dengan baik, setidaknya ada dua aspek yang harus terpenuhi. Pertama, setiap komponen dari prototipe ini bekerja dengan baik. Kedua, setiap komponen dari prototipe dapat berkomunikasi dengan baik, sehingga tahap demi tahap dapat dilakukan dengan lancar dan berkesinambungan. Secara umum alur kerja prototipe adalah seperti yang terlihat pada Gambar 5.22. dan Gambar 5.23.
Gambar 5.22. Alur kerja Prototipe Sistem Pengaturan Lampu Lalu Lintas Terdistribusi.
Gambar 5.23. Diagram Alur Utama dari Sistem Pengaturan Lampu Lalu Lintas Terdistribusi.
122
Implementasi Embedded System Menggunakan Beagleboard
5.2.6 Proses Penghitungan Mobil Proses penghitungan mobil pada prototipe sistem pengaturan lampu lalu lintas terdistribusi secara garis besar terdiri dari tiga tahapan, yaitu pemasukan data, pemrosesan data, dan penampilan hasil. Masukan adalah tahap awal dimana data akan diolah sebelum diproses ke dalam sistem. Tahap masukan terdiri dari dua subproses yaitu pengumpulan data mentah dan praproses. Setelah itu, data tersebut diproses pada tahap kedua, yaitu pemrosesan data. Pemrosesan data terdiri dari dua subproses, yaitu pengenalan mobil dan penghitungan mobil. Setelah itu data kemudian memasuki tahap keluaran, yaitu hasil dari pemrosesan data tersebut ditampilkan pada sebuah visualisasi pengaturan lampu lalu lintas. Gambar 5.24. berikut menunjukkan proses dan subproses penghitungan mobil.
Gambar 5.24. Diagram Proses Penghitungan Mobil.
1. Tahap Masukan Tahap masukan terdiri dari subproses yang memuat dua tahapan, yaitu pengumpulan data mentah dan praproses. Pengumpulan data mentah adalah tahap pemasukan video real-time dari kamera. Kemudian, data tersebut dimanipulasi agar sesuai dengan format kebutuhan sistem. Tahap manipulasi ini termasuk ke dalam tahap praproses. Manipulasi yang dilakukan antara lain adalah perubahan pada resolusi dan threshold video tersebut. Video yang dimasukkan akan Implementasi Embedded System Menggunakan Beagleboard
123
dinormalisasi, yaitu pengaturan resolusi dan frame rate. Hal ini dilakukan untuk mengoptimalkan kinerja engine dalam melakukan penghitungan. Selain itu beberapa optimasi juga dilakukan pada threshold parameter latar depan yang berguna dalam proses pengenalan mobil. Visualisasi alur dari tahap masukan dapat dilihat pada Gambar 5.25.
Masukan • Pengumpulan Data Mentah Video dari Kamera • Praproses: Threshold, Resolusi/Warna, Normalisasi
Proses
Keluaran
Gambar 5.25. Diagram Rincian Tahap Masukan.
2. Tahap Proses Seperti yang sudah dijelaskan pada bagian sebelumnya, tahap pemrosesan data terdiri dari dua subproses, yaitu pengenalan mobil dan penghitungan mobil. Pada tahap pengenalan mobil, sistem dapat membedakan mobil dengan lingkungan sekitarnya. Jika objek yang dikenali adalah sebuah mobil, maka sistem akan melanjutkan proses selanjutnya yaitu penghitungan mobil. Visualisasi alur dari tahap pemrosesan data dapat dilihat pada Gambar 5.26.
Gambar 5.26. Diagran Rincian Tahap Pemrosesan Data.
124
Implementasi Embedded System Menggunakan Beagleboard
a. Pengenalan Mobil Tahap pengenalan mobil adalah tahap dimana sistem mencoba mengenali apakah objek dalam video merupakan mobil atau bukan. Untuk itu, sistem akan menggunakan metode yang disebut Principal Component Analysis (PCA). Metode PCA ini memerlukan sebuah training yang dikenal dengan Haar Training agar dapat membedakan suatu objek. Apabila training telah memberikan hasil yang memuaskan dalam membedakan objek mobil dan bukan mobil, sistem dapat diuji dan dianalisis untuk masuk ke proses selanjutnya. Pada tahap pengenalan mobil, objek yang dideteksi sebagai mobil akan diberi lingkaran berwarna merah, akan tetapi segera setelah beberapa saat lingkaran tersebut akan hilang. 1) Principal Component Analysis (PCA) Principal Component Analysis (PCA) atau analisis komponen utama adalah suatu prosedur matematika yang mengubah beberapa variabel yang mungkin berkorelasi ke dalam sejumlah kecil variabel tidak berkorelasi yang disebut principal component (komponen utama). Komponen utama pertama menghitung sebanyak apa variabilitas dalam data yang mungkin dan setiap komponen yang meneruskannya juga menghitung sebanyak apa variabilitas yang tersisa dan memungkinkan. Gambar 5.27. menunjukkan contoh penggunaan PCA untuk pendeteksian wajah.
[image] Gambar 5.27. Contoh penggunaan PCA untuk pendeteksian wajah. [ sal2009.com ]
PCA mencari suatu model komputasi yang paling tepat menggambarkan suatu objek dengan mengekstrak informasi yang paling relevan yang terkandung dalam objek tersebut. Pendekatan eigenvektor pada metode PCA, dimana sekelompok kecil dari karakteristik gambar digunakan untuk menggambarkan variasi
Implementasi Embedded System Menggunakan Beagleboard
125
antara gambar objek tertentu. Beberapa kelemahan PCA antara lain sebagai berikut. 1. Translation variant, yaitu jika gambar berpindah atau bergeser maka PCA akan lebih sulit mengenali objek. 2. Scale variant, yaitu jika gambar diubah skala atau ukurannya, gambar akan lebih sulit untuk dikenali. 3. Background variant, yaitu jika latar belakang berubah maka sistem akan sulit untuk mengenali objek. 4. Lighting variant, yaitu jika intensitas cahaya berubah maka akurasi pengenalan objek akan berkurang. Namun selain memiliki kelemahan tersebut, PCA memiliki beberapa keunggulan yang dapat dipertimbangkan agar metode ini digunakan dalam mengenali objek. PCA memiliki kecepatan yang tinggi dan hanya memerlukan memori yang kecil. Secara mendasar PCA menjalankan reduksi dimensi. Untuk mengatasi kelemahankelemahan tersebut, kita harus melakukan beberapa langkah pra proses untuk memanfaatkan metode PCA untuk mengenali objek yang dalam studi ini adalah kendaraan. 2) Algoritma Principal Component Analysis (PCA) Sebuah gambar suatu objek dapat dilihat sebagai sebuah vektor. Jika panjang dan lebar dari gambar objek tersebut adalah w dan h piksel, maka jumlah komponen dari vektor ini adalah w * h. Setiap piksel dikodekan oleh satu komponen vektor. Vektor gambar objek tersebut berada dalam suatu ruang, yaitu ruang objek yang merupakan ruang dari semua gambar yang memiliki dimensi w * h piksel. Setiap gambar objek yang sama terlihat mirip satu dengan yang lain karena memiliki karakteristik yang unik, contohnya mobil memiliki dua lampu depan, dua lampu belakang, kaca depan, dan lain-lain yang tergantung dari sudut pandang gambar. PCA digunakan untuk mereduksi dimensi dari sekumpulan atau ruang gambar sehingga basis atau sistem koordinat yang baru dapat 126
Implementasi Embedded System Menggunakan Beagleboard
menggambarkan model yang khas dari kumpulan tersebut dengan lebih baik. Dalam hal ini model yang diinginkan merupakan sekumpulan mobil-mobil yang dilatihkan (training faces). Basis yang baru tersebut akan dibentuk melalui kombinasi linear. Komponen dari basis ruang objek ini tidak akan saling berkorelasi dan akan memaksimalkan perbedaan yang ada di dalam variabel aslinya. Target dari PCA adalah untuk menangkap variasi total di dalam kumpulan objek yang telah dilatih dan menjelaskan variasi ini dengan variabel yang sedikit. Suatu observasi yang dijabarkan dengan variabel yang sedikit akan lebih mudah untuk ditangani dan dimengerti dibandingkan jika dijabarkan dengan variabel yang banyak. Hal ini tidak hanya mengurangi kompleksitas dan waktu komputasi, tetapi juga mengatur skala setiap variabel sesuai dengan kedudukan dan kepentingan relatifnya didalam menjabarkan observasi tersebut. Sebelum PCA dapat diproses, dilakukan lexicographical ordering untuk setiap gambar objek yang akan dilatih, dimana baris yang satu diletakkan di samping baris yang lain untuk membentuk vektor objek yang merupakan vektor kolom. Vektor-vektor objek tersebut disusun sedemikian rupa sehingga membentuk suatu matriks X dengan orde n x m, dimana n adalah jumlah pixel (w * h) dan m adalah banyaknya gambar objek yang dilatih. Matriks inilah yang akan digunakan sebagai masukan bagi PCA. Penjelasan algoritma PCA yang akan dilakukan adalah sebagai berikut. 1. Normalisasi. Xk = Xk / Length(Xk) Dimana Xk adalah vektor kolom ke-k dari matriks X. 2. Bangun matriks kovarian. W = XT * X
Implementasi Embedded System Menggunakan Beagleboard
127
3. Hitung nilai eigen (E) dan vektor eigen (Q) dari matriks kovarian W. 4. Urutkan nilai eigen (E) dan vektor eigen (Q) dari besar ke kecil berdasarkan urutan nilai eigen. 5. Hitung principal component. P = X * Q * E-1/2 6. Transformasikan vektor ke ruang gambar. Y = PT * Xk 3) Haar Training Secara umum, pengertian haar training adalah proses pelatihan yang digunakan untuk mendeteksi objek kompleks dalam gambar atau video stream. Haar training adalah salah satu pendekatan pelatihan dengan model statistik dengan menggunakan serangkaian gambar negatif, yaitu gambar yang tidak mengandung objek yang akan dikenali (misalnya latar belakang atau objek lain yang tidak relevan) dan serangkaian gambar positif, yaitu gambar yang mengandung objek yang akan dikenali (dalam penelitian ini adalah mobil). Hal ini bertujuan untuk mengekstrak ciri khas dan karakteristik suatu benda. Haar training akan menghasilkan sebuah file berisi fitur-fitur khas suatu objek gambar yang disebut classifier atau pengklasifikasi. Haar training biasa dilakukan untuk mendeteksi objek-objek spesifik, contohnya yang paling umum adalah pendeteksian wajah manusia. 4) Haar Training pada OpenCV OpenCV (Open Source Computer Vision Library) adalah sebuah library cross-platform dari fungsi-fungsi pemrograman yang ditujukan untuk real-time computer vision. OpenCV dapat digunakan secara gratis dengan lisensi BSD open source. Awalnya OpenCV dikembangkan oleh Intel dan sekarang didukung oleh Willow Garage.
128
Implementasi Embedded System Menggunakan Beagleboard
OpenCV menyertakan demonstrasi program pendeteksian wajah manusia di dalam paket instalasinya. Selain itu, OpenCV juga menyediakan program-program dan fungsi-fungsi lainnya yang digunakan oleh pihak pengembang untuk melatih classifier atau pengklasifikasi untuk sistem pendeteksian wajah, yang bernama Haar training. Hal ini memberikan keleluasaan bagi pengguna OpenCV untuk membuat sendiri pengklasifikasian objek yang diinginkan. Sayangnya OpenCV tidak menjelaskan secara spesifik tentang parameter apa saja yang dibutuhkan untuk melakukan haar training. Namun, secara garis besar setidaknya ada empat jenis gambar yang diperlukan untuk melakukan proses pelatihan haar training ini. Keempat jenis gambar yang diperlukan adalah sebagai berikut. 1. Gambar positif, yaitu gambar yang hanya berisikan objek yang ingin dilatih. 2. Gambar negatif, yaitu gambar latar belakang yang sama sekali tidak ada objek positif di dalamnya. 3. Contoh gambar positif, yaitu gambar latar belakang yang juga memuat objek positif di dalamnya. 4. Contoh gambar negatif, yaitu gambar latar belakang yang sama sekali tidak ada objek positif di dalamnya. Contoh gambar negatif boleh sama dengan gambar negatif, namun disarankan untuk menggunakan contoh gambar negatif yang berbeda dengan gambar negatif. Dalam melakukan haar training, disarankan menggunakan komputer yang dapat beroperasi 24 jam non-stop, karena untuk melakukan haar training memerlukan waktu yang relatif cukup lama. Dalam beberapa artikel di internet, disebutkan bahwa proses haar training bisa berlangsung sampai beberapa hari atau minggu. Hasil haar training dan penggunaannya pada sistem pendeteksi wajah dapat dilihat pada gambar berikut.
Implementasi Embedded System Menggunakan Beagleboard
129
[image] Gambar 5.28. Hasil haar training dan penggunaannya pada sistem pendeteksi wajah.
Gambar 5.29. Contoh gambar positif untuk sistem pendeteksian mobil.
b. Penghitungan Mobil Seperti yang sudah dijelaskan pada paparan sebelumnya bahwa objek yang dideteksi sebagai mobil akan diberi lingkaran berwarna merah. Seiring dengan terjadinya proses tersebut, sistem akan segera menambah penghitungan jumlah mobil. 1) Distributed Constraint Satisfaction Problem (DCSP) Distributed Constraint Satisfaction Problem (DCSP) adalah pencarian nilai variabel-variabel yang terdistribusi dari suatu masalah yang hasilnya didapatkan dari kombinasi yang bersesuaian. Permasalahan pencarian kombinasi tersebut banyak ditemukan pada bidang kecerdasan buatan dan analisis pola, termasuk pada masalah penjadwalan dan perencanaan. Constraint Satisfaction Problem (CSP) didefinisikan sebagai V, D, dan C, dimana V merupakan himpunan variabel, D merupakan himpunan nilai yang akan dimasukkan ke variabel, dan C adalah himpunan batasan yang diperlukan oleh variabel. DCSP, suatu CSP yang terdistribusi, adalah CSP yang variabel-variabel dan batasanbatasannya terdistribusi diantara banyak agen. DCSP terdiri dari: 1. Suatu himpunan agen, 1,2,…, k,
130
Implementasi Embedded System Menggunakan Beagleboard
2. Suatu himpunan CSP, P1, P2, …, Pk, dimana Pi merupakan milik dari agen i dan terdiri dari: -
Himpunan variabel lokal yang nilainya dikendalikan oleh agen i.
-
Himpunan batasan intra-agen, masingmasing didefinisikan melalui variabel lokal agen i.
Himpunan batasan inter-agen, yang masing-masing didefinisikan melalui variabel lokal agen i dan variabel lokal agen lainnya. Gambar 5.30. menunjukkan tampilan permainan sudoku, salah satu permasalahan yang merupakan CSP. Berbagai macam aplikasi permasalahan pada sistem multi-agen, misalnya masalah alokasi sumber yang terdistribusi, masalah penjadwalan yang terdistribusi, tugas interpretasi yang terdistribusi, dan tugas pemeliharaan kebenaran multi-agen dapat direpresentasikan dengan menggunakan DCSP.
[image] Gambar 5.30. Sudoku, permasalahan yang merupakan CSP.
3. Tahap Keluaran Hasil dari keseluruhan proses yang ada adalah berupa data jumlah mobil pada suatu jalur pada rentang waktu tertentu. Perhatikan ilustrasinya pada Gambar 5.31.
Implementasi Embedded System Menggunakan Beagleboard
131
Gambar 5.31. Rincian Tahap Keluaran.
5.2.6 Interaksi Antar Komponen Prototipe Seperti yang sudah dijelaskan pada paparan sebelumnya bahwa salah satu aspek yang harus dipenuhi agar prototipe dapat bekerja dengan baik adalah adanya interaksi yang baik antara satu komponen prototipe dengan komponen yang lain. Setiap komponen harus dapat mengakses data yang dibutuhkan dari komponen lain. Begitu juga suatu komponen harus dapat mengirimkan data yang dibutuhkan oleh komponen lain. Dalam paparan sebelumnya memang dijelaskan bahwa komponen dari prototipe adalah kamera, engine, dan pengendali lalu lintas beserta subbagiannya. Akan tetapi sesuai dengan pemodelan, satu persimpangan didefinisikan sebagai satu unit yang memiliki kamera, lampu lalu lintas, dan perhitungan (counter) penyalaan lampu lalu lintas. Diagram Interaksi antar komponen-komponen prototipe dapat dilihat pada Gambar 5.32.
132
Implementasi Embedded System Menggunakan Beagleboard
Gambar 5.32. Diagram Interaksi Antar Komponen Prototipe.
Keterangan diagram: 1. Interaksi pertama (nomor 1) merupakan interaksi yang terjadi antara kamera pada setiap jalur dengan engine. Setiap kamera Implementasi Embedded System Menggunakan Beagleboard
133
pada masing-masing jalur mengirimkan data video arus kendaraan di persimpangan yang terkait. Pengiriman data tersebut dilakukan secara serial dengan menggunakan USB. Hal ini dikarenakan kamera yang digunakan sudah dilengkapi kabel beserta soket USB sebagai keluarannya. 2. Interaksi kedua (nomor 2) merupakan interaksi yang terjadi antara engine dan pengendali lampu lalu lintas. Dalam interaksi ini engine mengirimkan data berupa lama waktu menyala lampu hijau yang diberikan pada setiap jalur pada persimpangan untuk suatu siklus. Pengiriman data tersebut dilakukan secara serial dengan menggunakan konektor USB to serial atau USB to USB, tergantung sistem minimum (board pengendali lampu lalu lintas) yang digunakan. 3. Interaksi ketiga adalah interaksi yang terjadi antar subbagian pengendali lampu lalu lintas, yaitu antara board pengendali dan board lampu lalu lintas. Dalam interaksi ini board pengendali menyalakan lampu lalu lintas yang berada dalam board lampu lalu lintas. Selain itu board pengendali juga melakukan perhitungan (counting) yang ditampilkan pada seven-segment pada board lampu lalu lintas. Pada interaksi ini konektor yang digunakan adalah kabel pelangi dimana ujung-ujungnya ditempatkan pada black-housing.
5.2.7 Kondisi-Kondisi Khusus Ada beberapa kondisi-kondisi khusus dimana prototipe akan menunjukkan perilaku yang berbeda dengan kondisi normal, yaitu pada kondisi-kondisi berikut. 1. Kondisi prototipe baru dinyalakan Dalam kondisi ini dimungkinkan seven-segment pada board lampu lalu lintas tidak menyala dengan baik/sempurna. Hal ini dapat diatasi dengan menekan tombol reset pada board pengendali.
134
Implementasi Embedded System Menggunakan Beagleboard
2. Kondisi seven-segment atau LED menyala redup Kondisi seven-segment atau LED menyala redup dapat terjadi baik ketika prototipe sudah dijalankan atau sebelum dijalankan. Jika hal ini terjadi, kemungkinan besar penyebabnya adalah konektor untuk sumber tegangan pada board lampu lalu lintas tidak terpasang dengan baik. Untuk mengatasi hal ini, langkah pertama yang dilakukan adalah memastikan pin untuk sumber tegangan pada board lampu lalu lintas beserta sumbernya (board pengendali lampu lalu lintas) terpasang dengan baik. Jika langkah pertama sudah dilakukan namun masih terjadi kondisi tersebut, maka dimungkinkan tegangan yang masuk ke board pengendali lampu lalu lintas kurang dari atau sama dengan 5 V atau arusnya kurang dari atau sama dengan 1 A. Dengan demikian perlu dipastikan bahwa tegangan yang masuk ke board pengendali lampu lalu lintas lebih dari 5 Volt dengan arus lebih dari 1 A. 3. Program berhenti dengan sendirinya Kondisi dimana program berhenti dengan sendirinya saat berjalan sangat mungkin terjadi. Berhentinya program dapat disebabkan oleh banyak faktor. Salah satu faktornya adalah karena berkas yang digunakan sebagai masukan tidak ditemukan. Jika hal ini terjadi, lazimnya program akan berhenti beberapa saat setelah dijalankan. Adakalanya program berhenti tidak pada saat baru dijalankan. Jika hal itu terjadi dimungkinkan beban pekerjaan yang harus dilakukan sudah melebihi kemampuan maksimal prosesor atau memori dari engine. Jika hal ini terjadi lebih baik program segera ditutup dan lakukan penyegaran (refresh) pada engine. 4. Kondisi khusus lainnya Ada kondisi-kondisi tidak lazim lain yang mungkin ditunjukkan oleh prototipe sistem pengaturan lampu lalu lintas terdistribusi ini. Untuk mencegah terjadinya kondisi-kondisi yang tidak lazim, pastikan semua petunjuk teknis pemakaian dan kebutuhan pemakaian telah terpenuhi. Dengan demikian, kemungkinan terjadinya error dapat diminimalisasi. Implementasi Embedded System Menggunakan Beagleboard
135
5.2.8 Modifikasi dan Pengembangan Pada paparan sebelumnya sudah dijelaskan bahwa secara default persimpangan yang disimulasikan oleh prototipe ini adalah persimpangan yang memiliki empat jalur. Meskipun demikian prototipe ini dapat digunakan untuk menampilkan simulasi pengaturan lampu lalu lintas terdistribusi untuk persimpangan dengan jumlah jalur selain empat. Modifikasi yang dapat dilakukan adalah sebagai berikut. 1. Persimpangan dengan tiga jalur Untuk memodifikasi prototipe ini sehingga dapat digunakan untuk persimpangan yang terdiri dari tiga jalur, perlu dilakukan berbagai penyesuaian antara lain sebagai berikut.
Kode sumber termasuk algoritma pada program penghitungan kendaraan dan penentuan sinyal lampu lalu lintas harus dimodifikasi sehingga data yang diproses berasal dari tiga jalur saja.
Input yang digunakan tidak lagi empat video arus kendaraan, melainkan tiga saja.
Board lampu lalu lintas yang digunakan cukup tiga board saja.
2. Persimpangan dengan lebih dari empat jalur Untuk memodifikasi prototipe ini sehingga dapat digunakan untuk persimpangan yang lebih dari empat jalur perlu dilakukan berbagai penyesuaian antara lain sebagai berikut.
136
Kode sumber termasuk algoritma pada program penghitungan kendaraan dan penentuan sinyal lampu lalu lintas harus dimodifikasi sehingga data yang diproses berasal dari sejumlah jalur yang digunakan.
Implementasi Embedded System Menggunakan Beagleboard
Input yang digunakan tidak lagi empat video arus kendaraan, melainkan sejumlah jalur yang digunakan.
Board lampu lalu lintas yang digunakan juga harus sejumlah jalur yang digunakan.
Perlu dilakukan penambahan board pengendali lampu lalu lintas, karena satu board pengendali hanya dapat mengendalikan maksimal empat board lampu lalu lintas. Hal ini disebabkan karena adanya keterbatasan jumlah pin pada jenis mikrokontroler yang digunakan.
Implementasi Embedded System Menggunakan Beagleboard
137
138
Implementasi Embedded System Menggunakan Beagleboard
Bab 6. Pembuatan Sistem Pengaturan Lampu lalu Lintas Terdistribusi Bab ini menjelaskan implementasi embedded system yaitu Sistem Pengaturan Lampu Lalu Lintas Terdistribusi menggunakan BeagleBoard.
6.1 Arsitektur Sistem Pengaturan Lampu Lalu Lintas Diagram arsitektur Sistem Pengaturan Lampu lalu Lintas yang kami susun adalah seperti yang telah dijelaskan pada subbab sebelumnya. Prototipe Sistem Pengaturan Lampu lalu Lintas ini terdiri dari kamera untuk setiap sisi jalan pada persimpangan, pengendali utama (engine), dalam hal ini adalah BeagleBoard, board pengendali (sistem minimum mikrokontroller ATmega32 beserta ekspanner pin), dan board lalu lintas yang terdiri dari seven segment dan LED (berwarna merah, kuning, hijau) yang mewakili lampu lalu lintas. Diagram sinyal antar komponen prototipe juga sudah dijelaskan pada subbab sebelumnya. Pada paparan ini akan dijelaskan arsitektur board-board yang digunakan dalam prototipe.
6.1.1. Arsitektur BeagleBoard Seperti yang dijelaskan pada bab sebelumnya bahwa BeagleBoard memiliki kinerja perangkat keras yang hampir sama dengan komputer biasa, meskipun dimensi fisiknya relatif kecil. Sama halnya dengan komputer yang sehari-hari kita gunakan, BeagleBoard memiliki CPU, memori (Flash dan RAM), USB port, port untuk layar monitor, dan sebagainya. Dari sekian banyak utilitas yang dimiliki BeagleBoard, tidak semuanya digunakan dalam membuat prototipe ini. Fokus utama perangkat keras yang digunakan dalam prototipe ini adalah CPU, memori (Flash, RAM, dan microSD) yang digunakan dalam melakukan komputasi (menjalankan program), serta perangkat input-output yang Implementasi Embedded System Menggunakan Beagleboard
139
memanfaatkan USB. Dalam hal tertentu kami juga menggunakan port ethernet untuk keperluan-keperluan yang berhubungan dengan jaringan, misalnya untuk update modul sistem operasi. Perlu diketahui bahwa device file dercriptor yang disediakan linux angstrom untuk BeagleBoard adalah “usb0” bukan “eth0” seperti PC pada umumnya, sedangkan device file descriptor untuk port USB 0-3 yang disediakan angstrom adalah ttyUSB0, ttyUSB1, ttyUSB2, ttyUSB3. Gambar 6.1. menunjukkan blok diagram BeagleBoard-xM.
Gambar 6.1. Blok diagram BeagleBoard-xM.
Port yang akan digunakan adalah sebagai berikut. 1. Power Supply (DC 5 V) Port ini mutlak digunakan karena port ini adalah satusatunya penghubung untuk memberikan sumber tegangan kepada BeagleBoard. Diperlukan daya listrik sebesar 5 V dan arus minimal 2 A agar BeagleBoard dapat bekerja dengan baik. Kita bisa menggunakan adaptor atau regulator listrik untuk menghasilkan daya tersebut.
140
Implementasi Embedded System Menggunakan Beagleboard
2. Port USB Port ini digunakan sebagai port masukan (input) data menuju BeagleBoard dan keluaran (output) data dari BeagleBoard. Perlu kita ketahui bahwa port ini hanya bisa mentransmisikan data digital dan tidak bisa mentransmisikan data analog pada pengaturan standarnya. Data digital merupakan data yang direpresentasikan dengan bilangan biner. Data ini dikirim secara serial (bukan paralel) secara berurutan menurut frekuensi clock tertentu yang lebih lazim disebut baudrate. Dalam prototipe ini port USB digunakan untuk mengambil data dari kamera dan berkomunikasi dengan mikrokontroler pengendali lampu lalu lintas. 3. Port Serial Port ini merupakan port yang digunakan untuk menampilkan konsol sistem operasi yang nantinya akan dipakai pada BeagleBoard ke komputer. Konsol sistem operasi yang berjalan pada BeagleBoard perlu ditampilkan pada komputer agar kita bisa memberikan perintah pada BeagleBoard melalui konsol tersebut. Dengan demikian kita bisa melakukan penyalinan (copy) atau editing data kode sumber (source code) dan melakukan kompilasi di BeagleBoard melalui konsol tersebut, termasuk kita bisa melakukan update modul-modul kernel sistem operasi yang kita pakai nantinya. Meskipun demikian hal ini bisa dilakukan jika sistem operasi yang dipakai pada BeagleBoard memiliki fitur tampilan melalui serial. 4. Port Ethernet Port ini merupakan penghubung untuk menghubungkan BeagleBoard dengan jaringan lokal dan juga internet. Jika BeagleBoard memakai linux Angstrom, maka device file descriptor untuk port Ethernet bukan eth0, melainkan usb0. Konfigurasi IP address netmask dan gateway untuk linux Implementasi Embedded System Menggunakan Beagleboard
141
angstrom sama seperti distro linux yang lain, yaitu dengan perintah ifconfig pada terminal linux. Selain itu dengan menggunakan jaringan lokal antara PC dengan BeagleBoard kita bisa login ke BeagleBoard melalui IP address. Perintah yang digunakan untuk login ke PC lain adalah ssh (linux). Jika kita menyalakan X server pada PC kita, kita bisa menampilkan tampilan grafis dari BeagleBoard ke monitor PC kita. 5. PORT USB OTG Port USB OTG merupakan port cadangan jika kita gagal atau mengalami kesulitan login ke BeagleBoard menggunakan serial. Melalui USB ini kita juga dapat login ke BeagleBoard dari PC melalui IP address seperti halnya menggunakan Ethernet.
6.1.2. Arsitektur Board Pengendali Seperti yang telah dijelaskan pada sub-bab lainnya, bahwa board pengendali merupakan rangkaian sistem minimum (sysmin) dari mikrokontroler ATmega32. Sistem minimum merupakan rangkaian elektronika terpadu agar mikrokontroler dapat bekerja sesuai dengan tujuan tertentu yang diinginkan pengguna. Artinya, dalam penerapannya, mikrokontroler tidak bisa bekerja dengan hanya diberikan sumber daya listrik, akan tetapi membutuhkan beberapa komponen elektronika pembantu agar dia dapat memenuhi tujuan yang diinginkan. 1. Bentuk Fisik dan Pin Konfigurasi ATmega32 Sebelum kita mengetahui lebih dalam tentang ATmega32, alangkah baiknya kita melihat desain fisiknya terlebih dahulu. Secara fisik ATmega32 merupakan Integrated Circuit (IC) yang memiliki 40 kaki (20 kaki di sisi kiri dan 20 kaki di sisi kanan). Setiap kaki tersebut memiliki fungsi sebagai pin (satuan terkecil penyusun port) input-
142
Implementasi Embedded System Menggunakan Beagleboard
output (I/O) data dari dan ke dalam IC tersebut. Konfigurasi pin dari ATmega32 dapat dilihat pada Gambar 6.2.
Gambar 6.2. Konfigurasi pin ATmega32.
Seperti yang terlihat dalam gambar di atas, ada beberapa keterangan terkait dengan pin ATmega32. Seperti pada IC AVR yang lain, pin-pin ATmega32 memiliki fungsi ganda. Pertama, pinpin tersebut memiliki fungsi sebagai input output biasa. Setiap pin dapat kita gunakan sebagai input atau output data ke dalam atau keluar mikrokontroler sesuai desain yang kita inginkan. Sebagai input output biasa, pin-pin IC ini dibagi menjadi beberapa bagian. Pembagian tersebut adalah PORTA (0-7), PORTB (0-7), PORTC (0-7), PORTD (0-7). Kedua, pin-pin tersebut memiliki fungsi khusus, terkait dengan utilitas AVR yang dapat kita gunakan. Yang dimaksud utilitas di sini adalah fasilitas atau modul yang disediakan AVR untuk pengguna sehingga memudahkan pengguna dalam menggunakan IC tersebut untuk tugas-tugas tertentu. Misalnya pin yang memiliki label ADC merupakan pin yang dapat digunakan untuk keperluan Analog to Digital Converter. Keterangan lebih lanjut mengenai utilitas IC ATmega32 termasuk ADC akan
Implementasi Embedded System Menggunakan Beagleboard
143
dijelaskan pada subbab berikutnya. Selain itu ada pin-pin yang khusus disediakan untuk keperluan sumber tegangan dan pengaturan frekuensi clock. Misalnya saja pin 10 yang digunakan khusus untuk beda potensial masukan (VCC) dan pin 11 yang digunakan khusus untuk keperluan grounding (GND), atau juga pin 12 dan 13 yang disambungkan dengan komponen elektronika kristal. Kristal merupakan komponen elektronika yang bertugas mengatur frekuensi clock IC dalam bekerja. 2. Arsitektur Internal dan Utilitas ATmega32 Dilihat dari dalam atau sisi penggunaan, AVR ATmega32 merupakan mikrokontroler 8 bit. Artinya data yang diolah oleh prosesor dalam IC tersebut merupakan data berukuran 8 bit (1 byte). Untuk memudahkan pengguna, perancang dari ATmega32 telah menyediakan utilitas-utilitas atau modul-modul seperti yang sudah dijelaskan pada subbab sebelumnya. Sebelum kita mendalami lebih jauh tentang utilitas–utilitas ATmega32, kita lihat terlebih dahulu arsitektur internal dari ATmega32. Yang dimaksud arstektur internal dalam hal ini adalah bagian-bagian IC ATmega32 yang menyusun sistem IC tersebut dalam menjalankan tugas, misalnya CPU, memori, dan sebagainya. Arsitektur internal dari IC mikrokontroler AVR dapat direpresentasikan dalam diagram blok AVR pada Gambar 6.3. Dari diagram blok tersebut terlihat bahwa AVR memiliki banyak sekali bagian-bagian dari IC mikrokontroler. Berikut adalah beberapa keterangan mengenai bagian-bagian dari blok diagram tersebut. a. Central Processing Unit (CPU) Bagian ini merupakan bagian yang digunakan dalam melakukan komputasi atau perhitungan data seperti halnya CPU pada komputer-komputer. CPU pada IC mikrokontroler terdiri dari beberapa bagian-bagian penyusun CPU itu sendiri.
144
Implementasi Embedded System Menggunakan Beagleboard
1) Arithmetic Logic Unit (ALU) ALU merupakan bagian yang digunakan untuk mengoperasikan data, baik operasi aritmatika maupun operasi logika pada data.
Gambar 6.3. Diagram Blok AVR ATmega32. [ http://www.circuitstoday.com ]
Implementasi Embedded System Menggunakan Beagleboard
145
2) General Purpose Register General Purpose Register merupakan register-register yang digunakan untuk menyimpan sementara data– data yang diproses dalam CPU. 3) Status Register Bagian ini merupakan bagian yang berisi registerregister yang digunakan untuk menyimpan data yang berupa status (biasanya dalam bentuk flag) dari CPU. 4) Instruction Register Bagian ini merupakan bagian yang digunakan untuk menampung data instruksi–instruksi. Misalnya instruksi add (penjumlahan) disimpan pada register nomor tertentu. Terdapat banyak instruksi dalam IC AVR sehingga setiap instruksi mempunyai kode tersendiri dan kode instruksi tersebut disimpan dalam register. 5) Instruction Decoder Bagian ini berisi decoder atau kombinasi dari beberapa decoder yang akan menerjemahkan nomor instruksi yang disimpan oleh instruction register. Melalui bagian ini, nomor instruksi yang disimpan dalam register dapat diterjemahkan sehingga ALU dapat menjalankan instruksi tertentu yang harus dijalankan pada suatu waktu tertentu. 6) Program Flash Program flash merupakan memori (tempat penyimpanan) kode program. Kode sumber baik dalam assembly (.asm) ataupun dalam c (.c). Nantinya kode program akan dikompilasi dan dijadikan kode dalam heksadesimal (.hex). Selanjutnya kode yang sudah
146
Implementasi Embedded System Menggunakan Beagleboard
dalam heksadesimal ini akan disalin (copy) ke program flash IC tersebut untuk kemudian dijalankan. 7) Program Counter Program counter merupakan komponen dalam CPU yang bertugas sebagai pointer yang menunjuk instruksi yang akan dijalankan berikutnya. Setiap instruksi (satu instruksi) diletakkan dalam satu alamat pada flash program. Program counter menunjuk alamat tersebut untuk kode program (dalam heksadesimal) yang akan dieksekusi dalam state berikutnya. 8) Stack Pointer Stack pointer merupakan struktur data stack yang digunakan untuk menampung alamat instruksi. Alamat instruksi yang disimpan merupakan alamat instruksi yang belum dieksekusi karena dilompati sementara akibat adanya subroutine atau macro. 9) Static Random Access Memory (SRAM) SRAM merupakan memori yang digunakan untuk menyimpan data-data yang didefinisikan untuk suatu kumpulan program. Perbedaannya dengan register adalah data-data yang disimpan dalam register memiliki batas usia yang singkat sedangkan yang disimpan di SRAM berlaku seterusnya. Karena SRAM bersifat statis, maka setelah IC ini tidak bekerja (dimatikan) data yang ada pada SRAM akan tetap ada.
b. Timer/Counter Timer/Counter merupakan utilitas yang disediakan oleh mikrokontroler ATmega32 yang dapat digunakan sebagai pengatur frekuensi clock serta penghitung otomatis. Counter dapat dipakai dalam program untuk melakukan
Implementasi Embedded System Menggunakan Beagleboard
147
pengaturan-pengaturan pada selang waktu tertentu. Utilitas ini juga digunakan sebagai Digital to Analog Converter (DAC) atau Pulse width Modulation (PWM). Dalam kaitannya dengan pin-pin IC ini, pin yang dapat digunakan sebagai counter memiliki label OC. ATmega32 setidaknya memiliki 3 pin timer/counter, yaitu OC1A, OC1B, dan OC2.
c. Interrupt Unit Interrupt unit merupakan bagian yang digunakan untuk menangani kasus-kasus yang menginterupsi (harus segera dilaksanakan saat kondisi yang menjadi syarat terpenuhi). Misalnya, jika pengguna menekan tombol yang menjadi indikator interupsi untuk sistem, maka sistem harus segera menangani isyarat dari pengguna ini. Untuk mengetahui interupsi yang diberikan kepada sistem, saat sistem sedang asyik berjalan dibutuhkan modul interupsi ini (interrupt unit). Dalam kaitannya dengan fungsi khusus pin, pin-pin yang dapat digunakan untuk memberikan masukan interupsi kepada sistem memiliki label INT. ATMega32 memiliki 3 pin untuk menangani interupsi, yaitu pin yang berlabel INT0, INT1, dan INT2.
d. EEPROM EEPROM merupakan salah satu jenis memori. EEPROM, yang merupakan singkatan dari Electrically Erased Programmable Memory, merupakan tempat penyimpanan data yang dianggap vital. Misalnya, jika pengguna ingin menyimpan hak cipta dari firmware untuk versi tertentu yang dia buat, maka pengguna dapat menggunakan EEPROM dalam menyimpan data tersebut.
148
Implementasi Embedded System Menggunakan Beagleboard
e. USART Universal Synchronous and Asynchronous serial Receiver and Transmitter (USART) merupakan modul yang disediakan khusus oleh perancang mikrokontroler untuk keperluan komunikasi antara mikrokontroler dengan perangkat lain secara serial. Komunikasi secara serial artinya data dikirim satu persatu seperti antrian kendaraan yang memanjang dari depan ke belakang. Sedangkan komunikasi secara paralel artinya data dikirimkan secara berjajar dan bersamaan satu sama lain. Pengiriman data secara paralel dapat dianalogikan seperti suatu baris kendaraan yang berjalan bersamaan. Pin-pin yang dapat digunakan untuk keperluan ini hanya ada dua pin pada ATmega32 yaitu pin yang berlabel Rx dan pin yang berlabel Tx. Rx merupakan pin yang digunakan untuk menerima data (R: receive), sedangkan Tx merupakan pin yang digunakan untuk mengirim data (T: Transmit).
f. Port Driver/Buffer dan Port Digital Interface Port Driver merupakan modul yang dibuat untuk menangani urusan input-output data digital melalui pin-pin pada mikrokontroler. Pada subbab sebelumnya sudah dijelaskan bahwa pin-pin mikrokontroler secara default dapat digunakan sebagai jalur masuk atau keluar data digital. Untuk menangani hal tersebut dibuatlah suatu driver untuk port yang tersusun atas pin-pin. Driver merupakan suatu protokol yang sengaja dibuat, agar suatu device dapat membaca suatu masukan sertentu dan atau dapat mengirim data sesuai dengan format tertentu. Port driver juga disebut sebagai buffer karena dalam menerima dan mengirimkan data, driver mengumpulkan terlebih dulu data untuk atau dari semua pin pada suatu port, baru
Implementasi Embedded System Menggunakan Beagleboard
149
setelah itu diberikan ke mikrokontroler atau ditransmisikan keluar mikrokontroler. Interface, yang secara layer posisinya berada di atas driver, merupakan kumpulan fungsi yang dapat digunakan oleh pengguna sehingga memberikan kemudahan bagi pengguna dalam mengakses atau mentransmisikan data dalam program yang dia buat. Untuk IC Mikrokontroler buatan AVR, kita dapat mengakses seluruh pin pada suatu port secara langsung atau mengakses pin secara satu per satu pada port yang bersangkutan. Hal ini disesuaikan dengan kemudahan efisiensi dan kenyamanan pengguna dalam membuat suatu program.
3. Penggunaan Utilitas Mikrokontroler ATmega32 Dalam paparan ini akan dijelaskan lebih jauh tentang utilitas mikrokontroler dan bagaimana cara untuk melakukan konfigurasi pada utilitas-utilitas tersebut. Meskipun demikian, penjelasan pada bagian ini hanya akan dibatasi pada utilitas-utilitas yang akan digunakan saja. Berikut adalah penjelasan lebih jauh tentang utilitas mikrokontroler ATmega32 beserta konfigurasinya yang digunakan dalam menyusun prototipe lampu lalu lintas terdistribusi. a. USART dan konfigurasinya USART merupakan salah satu utilitas mikrokontroler keluarga AVR yang digunakan untuk komunikasi data secara serial. USART memiliki interface sendiri pada mikrokontroler AVR. Karena memiliki interface sendiri, maka utilitas ini juga memiliki beberapa register khusus yang digunakan dalam menyimpan data mengenai konfigurasi yang digunakan. USART dan Central Processing Unit (CPU) langsung dihubungkan oleh bus, sehingga cukup efisien untuk mengirim dan menerima data dari dan ke CPU. Selain itu USART langsung berhubungan dengan interface
150
Implementasi Embedded System Menggunakan Beagleboard
PORTD (PORT yang mengandung pin RX dan TX). Sehingga pengiriman dan penerimaan data keluar dan ke dalam mikrokontroler tidak melalui lintasan yang panjang. Diagram utilitas USART pada mikrokontroler AVR dapat dilihat pada gambar 6.4.
Gambar 6.4. Diagram Utilitas USART pada Mikrokontroler AVR.
Implementasi Embedded System Menggunakan Beagleboard
151
USART dapat digunakan untuk berkomunikasi antara mikrokontroler dengan mikrokontroler atau antara mikrokontroler dengan perangkat lainnya seperti komputer. Untuk berkomunikasi antar mikrokontroler cukup dilakukan penyambungan pin RX1 dengan TX2 dan penyambungan pin TX1 dengan RX2 (angka 1 dan 2 menyatakan index mikrokontroler yang disambungkan).
4. Konfigurasi USART Seperti yang sudah dijelaskan pada paparan sebelumnya bahwa USART memiliki interface yang harus dikonfigurasi agar dapat digunakan dalam pengiriman dan penerimaan data. Konfigurasikonfigurasi USART disimpan dalam register-register khusus. Register-register tersebut adalah register UBRR, register UCSRA, register UCSRB, register UCSRC, dan register UDR. Berikut adalah pilihan-pilihan konfigurasi pada register-register tersebut. a. Register UBRR Register UBRR merupakan register 16 bit yang digunakan untuk menyimpan konfigurasi kecepatan transmisi data. Karena kapasitasnya 16 bit, maka register ini memiliki dua nilai low dan high (UBRRL dan UBRRH). UBRRL merupakan bit ke-0 sampai bit ke-7 dari UBRR. Sedangkan UBRRH merupakan bit ke-8 sampai bit ke-15 dari UBRR. Bagan register UBRR dapat dilihat pada Tabel 6.1. Tabel 6.1. Bagan Register UBRR. URSEL
-
-
-
UBRTH[11 - 8]
UBRR[7 - 0]
Berikut adalah pilihan konfigurasi untuk register UBRR.
152
Bit 15 (URSEL) merupakan bit yang digunakan untuk memilih akses UBRRH atau UCSRC. Jika URSEL bernilai 0 Implementasi Embedded System Menggunakan Beagleboard
maka yang diakses adalah register UBRRH. URSEL harus dikonfigurasi karena UBRR dan UCSRC menggunakan jalur I/O yang sama.
Bit 0 sampai bit 11 merupakan bit yang menampung nilai kecepatan komunikasi serial.
b. Register UCSRA Register UCSRA merupakan register 8 bit yang digunakan untuk mengatur (management) penyimpanan data yang diterima atau dikirim secara serial. Bagan register UCSRA dapat dilihat pada Tabel 6.2. Tabel 6.2. Bagan Register UCSRA. RXC
TXC
UDRE
FE
DOR
PE
U2X
MPCM
Berikut adalah pilihan konfigurasi untuk register UCSRA.
RXC bernilai 1 jika ada data yang belum terbaca atau ada data yang masuk dan akan bernilai 0 jika tidak ada data.
TXC bernilai 1 jika keseluruhan data sudah terkirim dan bernilai 0 jika ada data yang belum terkirim.
UDRE adalah interrupt yang akan aktif jika UDRIE pada UCSRB bernilai 1. UDRIE bernilai 1 jika buffer tidak menampung data.
FE bernilai 1 jika ada error yang terjadi saat proses penerimaan data.
DOR bernilai 1 jika ada data yang menuggu untuk masuk sementara register penerimaan masih penuh.
PE bernilai 1 jika ada error pada parity.
U2X merupakan nilai yang berhubungan dengan mode komunikasi Asyschronous.
Implementasi Embedded System Menggunakan Beagleboard
153
MPCM merupakan nilai penyimpan konfigurasi komunikasi yang melibatkan proses multiprosesor.
c. Register UCSRB Register UCSRB merupakan register yang digunakan untuk mengatur aktivasi penerima dan pengirim data mengunakan USART. Bagan register UCSRB dapat dilihat pada Tabel 6.3. Tabel 6.3. Bagan Register UCSRB. RXCIE
TXCIE
UDRIE
RXEN
TXEN
UCSZ2
RXB8
TXB8
Berikut adalah pilihan konfigurasi untuk register UCSRB.
RXCIE mengatur aktivasi interrupt penerimaan data secara serial. Jika RXCIE bernilai 1 dan RXC pada UCSRA bernilai 1 maka penerimaan data secara serial akan segera dilakukan.
TXCIE mengatur aktivasi interrupt pengiriman data secara serial. Jika TXCIE bernilai 1 dan TCX pada UCSRA bernilai 1 maka pengiriman data secara serial akan segera dilakukan.
UDRIE mengatur aktivasi interrupt yang berhubungan dengan UDRE pada UCSRA. Jika UDRIE bernilai 1 maka interrupt UDRE diaktifkan.
RXEN akan mengaktifkan RX dan jika diberi nilai 1 maka akan melakukan penerimaan data.
TXEN akan mengaktifkan TX dan jika diberi nilai 1 maka akan melakukan pengiriman data.
UCSZ2 bersama dengan UCSZ1 dan UCSZ0 mengatur karakter yang dikirim.
RXB8 merupakan bit ke-9 jika karakter yang dibaca diatur berukuran 9.
TXB8 merupakan bit ke-9 jika karakter yang dikirim diatur berukuran 9.
154
Implementasi Embedded System Menggunakan Beagleboard
d. Register UCSRC Register UCSRC merupakan register yang digunakan untuk mengecek ada tidaknya error. Register ini juga mengatur konfigurasi parity. Bagan Register UCSRC dapat dilihat pada Tabel 6.4. Tabel 6.4. Bagan Register UCSRC. URSEL
UMSEL
UPM1
UPM0
USBS
UCSZ1
UCSZ0
UCPOL
Berikut adalah pilihan konfigurasi untuk register UCSRC.
URSEL merupakan bit untuk memilih akses UBRR atau UCSRC. Jika diberi nilai 1 maka yang akan diakses adalah UCSRC.
UMSEl merupakan bit untuk memilih mode komunikasi. Jika bernilai 1 maka mode yang dipilih adalah mode synchronous. Jika bernilai 0 maka mode yang dipilih adalah asysnchronous.
UPM0 dan UPM1 merupakan bit yang mengatur parity.
USBS merupakan bit yang digunakan untuk memilih stopbits. Jika bernilai 0 maka digunakan 1 stop-bits dan jika bernilai 1 maka digunakan 2 stop-bits.
UCSZ1 dan UCSZ0 bersama UCSZ2 pada UCSRB digunakan untuk mengatur karakter yang dikirim.
UCPOL adalah bit yang mengatur hubungan perubahan antara data masukan dan data keluaran saat mode synchronous digunakan.
Implementasi Embedded System Menggunakan Beagleboard
155
e. Register UDR Register UDR merupakan register yang digunakan untuk menampung data yang diterima atau yang dikirim. Register UDR juga bisa disebut sebagai buffer dalam komunikasi device via USART. Bagan register UDR dapat dilihat pada Tabel 6.5. Tabel 6.5. Bagan Register UDR. RXB[0…7] TXB[0…7]
Berikut kami berikan contoh konfigurasi USART. Dalam contoh yang kami berikan ini disajikan dalam bentuk fungsi atau subroutine. Kami memberikan contoh dalam bahasa assembly dan bahasa C.
Fungsi Inisialisasi Dalam fungsi berikut, setting yang digunakan adalah menggunakan mode asynchronous dimana baudrate dijadikan sebagai argumen dari fungsi. Untuk kode sumber dalam bahasa assembly diasumsikan baudrate disimpan dalam register 16 dan register 17. Selain itu pengaturan yang digunakan adalah dengan menonaktifkan interrupt USART dan memakai format fixed frame. Fungsi Inisialisasi USART dalam bahasa Assembly. USART_Init: ; Set baudrate out UBRRH, r17 out UBRRL, r16 ; Enable receiver and transmitter ldi r16, (1<
156
Implementasi Embedded System Menggunakan Beagleboard
Fungsi Inisialisasi USART dalam bahasa C. void USART_Init ( unsigned int baud ) { /* Set baudrate */ UBRRH = (unsigned char) (baud>>8); UBRRL = (unsigned char) baud; /* Enable receiver and transmitter */ UCSRB = (1<
Fungsi Transmisi Berikut adalah contoh fungsi transmisi pada USART yang sederhana. Dalam mengirimkan data menggunakan USART, kunci utamanya adalah dengan memanfaatkan Data Register Empty Flag (UDRE). Jika UDRE bernilai 1 maka register UDR kosong dan data siap dikirim. Untuk fungsi yang ditulis dengan bahasa C data yang akan dikirim dijadikan argumen sedangkan pada fungsi yang ditulis dengan bahasa assembly diasumsikan data disimpan pada register 16. Fungsi transmisi USART dalam bahasa Assembly. USART_Transmit: ; Wait for empty transmit buffer sbis UCSRA, UDRE rjmp USART_Transmit ; Put data (r16) into buffer, sends the data out UDR, r16 ret
Fungsi transmisi USART dalam bahasa C. void USART_Transmit ( unsigned char data ) { /* Wait for empty transmit buffer */ while ( !( UCSRA & (1<
Implementasi Embedded System Menggunakan Beagleboard
157
Fungsi Receive Berikut adalah contoh fungsi receive pada USART yang sederhana. Dalam menerima data yang dikirim menggunakan USART, kunci utamanya adalah dengan memanfaatkan Receive Complete Flag (RXC). Jika RXC bernilai 1 maka register UDR sudah penuh dan data siap dibaca. Fungsi receive USART dalam bahasa Assembly. USART_Receive: ; Wait for data to be received sbis UCSRA, RXC rjmp USART_Receive ; Get and return received data from buffer in r16, UDR ret
Fungsi receive USART dalam bahasa C. unsigned char USART_Receive ( void ) { /* Wait for data to be received */ while ( !( UCSRA & (1<
158
Selain ketiga fungsi pada contoh di atas masih banyak lagi kombinasi USART yang dapat dilakukan. Selain itu masih banyak lagi fungsi-fungsi yang bisa digunakan dalam mengakses register-register yang berkaitan dengan USART. Misalnya saja fungsi yang digunakan untuk mengakses register UCSRA, register UCSRB, maupun register UCSRC. Selain itu, kita perlu membuat fungsi flush, yaitu fungsi yang ditujukan untuk mengosongkan register UDR saat register tersebut sedang tidak dipakai, atau dengan kata lain saat transmisi atau receive data sedang tidak berlangsung.
Implementasi Embedded System Menggunakan Beagleboard
Peran USART dalam prototipe Sistem Pengaturan Lampu lalu Lintas yang kami susun ini sangat penting. USART digunakan untuk berkomunikasi (mengirim dan menerima data) antara BeagleBoard dengan mikrokontroler. BeagleBoard perlu mengirimkan data ke mikrokontroler karena mikrokontroler yang melakukan counting down pada seven-segment dan menyalakan lampu lalu lintas di setiap sisi persimpangan jalan.
5. PORT/PIN IO dan Manipulasinya Selain menggunakan utilitas USART untuk transfer data, diperlukan pin sebagai jalan untuk keperluan lalu lintas data. Untuk keperluan seperti ini, kita dapat menggunakan pin I/O untuk fungsi standar tanpa memakai fungsi khusus dari pin tersebut. Meskipun demikian, untuk memberikan sinyal kepada suatu perangkat keras (komponen elektronika tertentu) kita bisa memanipulasi sinyal yang kita berikan melalui mikrokontroler. Misalnya, seperti yang kami gunakan untuk menyusun prototipe Sistem Pengaturan Lampu lalu Lintas ini, kami menggunakan IC shift register dan IC tambahan lainnya untuk menghemat pemakaian pin. Telah dijelaskan pada paparan bab sebelumnya bahwa mikrokontroler ATmega32 memiliki 40 pin. Dari 40 pin tersebut 32 diantaranya dapat kita gunakan sebagai pin IO, yakni PORTA(0-7), PORTB(0-7), dan PORTD(0-7). Kita ketahui bahwa LED sevensegment memiliki 10 kaki, sehingga membutuhkan 10 pin untuk menyalakan suatu angka tertentu. Padahal untuk satu persimpangan saja, dalam prototipe ini dibutuhkan 3 buah sevensegment. Jika kita langsung menyambungkan satu pin dari mikrokontroler untuk satu kaki seven-segment maka pin dari mikrokontroler akan habis hanya untuk 4 seven-segment, belum termasuk untuk keperluan LED yang digunakan sebagai lampu lalu lintas. Oleh karena itu, kita membutuhkan manajemen pin yang tepat sehingga kita dapat menggunakan 40 pin IO yang disediakan
Implementasi Embedded System Menggunakan Beagleboard
159
mikrokontroler digunakan.
untuk
semua
komponen
elektronika
yang
6.2 Perancangan Seperti yang telah dijelaskan dalam subbab sebelumnya bahwa komponen utama dalam prototipe ini adalah kamera, engine (BeagleBoard), dan board lalu lintas (mikrokontroler dan sevensegment). Sebelum membuat prototipe Sistem Pengaturan Lampu Lalu Lintas, kami melakukan perancangan skema atau alur pembuatan perangkat-perangkat penyusunnya. Untuk kamera yang akan digunakan merupakan kamera yang sudah menggunakan USB sebagai data keluaran, dengan demikian engine (BeagleBoard) sudah langsung bisa membaca data masukan yang diberikan oleh kamera. BeagleBoard merupakan board yang sudah lengkap dan siap pakai. Dengan demikian kita bisa langsung memakainya dengan memberikan tegangan masukan. Selain itu BeagleBoard juga mempunyai port USB untuk keperluan komunikasi. Dengan demikian yang masih perlu dirakit adalah sistem minimum mikrokontroler dan board seven-segment. Untuk kamera dan BeagleBoard kita cukup melakukan pengecekan saja dan memastikan bahwa perangkat keras yang akan digunakan dapat berfungsi dengan normal. Setelah membuat modul perangkat keras, kami membuat modul perangkat lunak untuk prototipe ini. Gambar 6.5. memperlihatkan skema pembuatan modul perangkat keras.
160
Implementasi Embedded System Menggunakan Beagleboard
Kamera
BeagleBoard
Board SevenSegment
Board Mikrokontroler
Perancangan Sirkuit Pembuatan PCB
Hanya Pengecekan Pemasangan Komponen
Pengaturan Kabel
Gambar 6.5. Skema pembuatan modul perangkat keras.
Setelah selesai menyiapkan perangkat keras (hardware), kita bisa melakukan testing dengan menyalakan hardware yang sudah kita buat. Kita bisa memberikan tegangan masukan untuk perangkat tersebut dan mengecek apakah tegangan dan arus masukan sudah sesuai dengan yang diharapkan. Kita juga sebaiknya mengecek tegangan dan arus mikrokontroler. Setelah memastikan perangkat keras yang kita siapkan dapat bekerja dengan baik, selanjutnya kita dapat membuat program yang kita gunakan yaitu mikrokontroler dan BeagleBoard. Tahapan perancangan pembuatan modul perangkat lunak diilustrasikan pada Gambar 6.6. Personal Computer (PC)
BeagleBoard
Image Processing
Board Mikrokontroler
Seven-Segment Counting
DCSP Algorithm USART Communication Modul
USART Communication Modul
Gambar 6.6. Skema pembuatan modul perangkat lunak.
Pertama kali yang perlu disiapkan adalah PC. PC merupakan sarana untuk login ke BeagleBoard serta menjalankan program dan Implementasi Embedded System Menggunakan Beagleboard
161
perintah-perintah untuk BeagleBoard. PC juga berfungsi untuk menuliskan kode program bagi mikrokontroler yang nantinya dijalankan. Selain itu kita juga harus melakukan kompilasi di komputer kita, sebelum melakukan burn kode yang excecutable untuk mikrokontroler ke flash memory. Selain memberi kemudahan dalam membuat program untuk mikrokontroler, membuat program di komputer juga memberi kita kemudahan untuk membuat program yang akan kita jalankan di BeagleBoard. Setelah membuat program di komputer yang sudah kita rasa benar, baru kita salin program tersebut ke BeagleBoard. Kita bisa saja menyunting kode sumber program pada BeagleBoard, namun editor yang digunakan cukup terbatas dan mungkin belum terbiasa dalam menggunakannya (misalnya adalah vi editor). Selain itu, kompilasi kode sumber program pada BeagleBoard membutuhkan aplikasi kompiler atau aplikasi tambahan tertentu atau pengaturan tertentu yang lebih rumit dibandingkan kompilasi pada komputer biasa.
6.3 Implementasi Pada subbab sebelumnya sudah dijelaskan bahwa perangkat yang digunakan terdiri dari perangkat keras (hardware) dan perangkat lunak (software). Subbab ini menjelaskan tahapan-tahapan dalam membuat perangkat keras dan perangkat lunak penyusun prototipe Sistem Pengaturan Lampu lalu Lintas terdistribusi.
6.3.1. Membuat Perangkat Keras (Hardware) Prototipe Penjelasan dalam bagian ini berisi langkah-langkah yang digunakan untuk membuat hardware sistem minimum mikrokontroler (board pengendali) dan board seven-segment.
162
Implementasi Embedded System Menggunakan Beagleboard
1. Membuat sistem minimum mikrokontroler ATmega32 Berikut adalah tahapan-tahapan dalam membuat sistem minimum mikrokontroler ATmega32. a. Membuat skema rangkaian Langkah pertama yang dilakukan dalam membuat rangkaian elektronika adalah dengan membuat skema rangkaian. Ada berbagai aplikasi yang dapat digunakan untuk membuat skema rangkaian elektronik, diantaranya adalah Altium Protel99, Altium Protel DXP 2004, Eagle, dan sebagainya. Gambar 6.7. memperlihatkan contoh skema rangkaian sistem minimum mikrokontroler ATmega32 yang dibuat dengan Altium Protel DXP 2004.
Gambar 6.7. Skematik sistem minimum mikrokontroler ATmega32.
Dari skematik pada Gambar 6.7. terlihat dengan jelas komponenkomponen elektronika yang dibutuhkan dalam sistem minimum Implementasi Embedded System Menggunakan Beagleboard
163
mikrokontroler ATmega32. Dari gambar tersebut, mikrokontroler membutuhkan beberapa resistor, transistor, kapasitor, dan komponen-komponen elektronika yang lainnya. Namun kami tidak akan menjelaskan dan menyebutkan secara detail setiap unit komponen elektronika yang dibutuhkan. b. Membuat PCB Aplikasi yang digunakan untuk membuat skema rangkaian (misalnya Altium Protel DXP 2004) biasanya juga dilengkapi dengan fitur mengubah skema rangkaian elektronik tersebut menjadi rangkaian yang sudah di-routing dan siap cetak pada PCB. Gambar 6.8. memperlihatkan tampilan rangkaian yang siap cetak di PCB.
Gambar 6.8. Rangkaian Sistem Minimum ATmega32 siap cetak.
Setelah mendapatkan gambar untuk dicetak pada PCB, kita bisa mencetak gambar tersebut pada kertas artpaper atau pada mika. Dalam mencetak, tentunya kita harus melakukan pengukuran yang akurat. Setelah mencetak gambar tersebut, langkah selanjutnya adalah menyablon gambar pada PCB kosong. Menyablon dapat dilakukan dengan seterika, dimana kita harus menyeterika gambar tersebut sampai semua tintanya menempel pada PCB. 164
Implementasi Embedded System Menggunakan Beagleboard
c. Memasang dan Menyolder Komponen Tahap selanjutnya yang dilakukan dalam membuat board mikrokontroler adalah memasang dan menyolder komponen. Komponen harus dipasang sesuai pada tempatnya dan tidak boleh ada komponen yang tertukar tempatnya atau tertukar pemasangan kakinya. Perlu diperhatikan bahwa kita harus mengikuti aturan dalam urutan penyolderan komponen. Pemasangan dan penyolderan komponen dimulai dari yang tahan panas sampai yang sentitif terhadap panas atau tidak tahan panas, yakni mulai dari resistor, kapasitor, diode, transistor, dan yang paling akhir adalah IC.
2. Membuat Board Seven-Segment Berikut adalah tahapan-tahapan dalam membuat board sevensegment. a. Membuat skema rangkaian Seperti halnya dalam proses pembuatan sistem minimum mikrokontroler ATmega32, membuat board seven-segment juga diawali dengan membuat skema rangkaian. Telah dijelaskan pada subbab sebelumnya bahwa kita tidak bisa begitu saja memasangkan satu pin mikrokontroler untuk setiap kaki seven-segment karena adanya keterbatasan jumlah pin mikrokontroler. Oleh karena itu, perlu dilakukan manipulasi dalam pemakaian pin seven-segment. Salah satu manipulasi yang bisa dilakukan adalah dengan memanfaatkan IC 7747 yang digunakan sebagai penerjemah data BCD menjadi data untuk setiap segmen LED dari seven-segment. Dengan demikian, penggunaan pin yang sebelumnya 10 pin untuk satu sevensegment akan dapat dihemat menjadi hanya 4 pin saja. Kemudian, total jumlah pin yang dibutuhkan oleh semua sevensegment sampai saat ini adalah sebanyak 12 pin (3 sevenImplementasi Embedded System Menggunakan Beagleboard
165
segment yang masing-masing membutuhkan 4 pin). Jika kita menggunakan 4 pin untuk setiap seven-segment, maka ada seven-segment yang tidak mendapatkan pin. Untuk mengatasi hal ini dibutuhkan IC shift register 74HC595. Dengan memanfaatkan IC shift register 74HC595 kita dapat menghemat pemakaian pin untuk semua seven-segment (yang semula membutuhkan 12 pin) menjadi hanya 4 pin saja. Hal ini karena skema transmisi data yang sekarang adalah dengan menggunakan metode shifting. Jadi untuk menampilkan angka pada 3 seven-segment dilakukan dalam 3 kali proses. Pertama ditampilkan angka pertama, lalu digeser, selanjutnya ditampilkan angka kedua, lalu digeser lagi, dan terakhir ditampilkan angka ketiga. Gambar 6.9. menunjukkan diagram skematik dari sub rangkaian board seven-segment. Bagian yang berlabel 8951 merupakan contoh mikrokontroler yang memberikan masukan (input) 4 bit (4 pin) untuk menampilkan suatu nilai pada seven-segment.
Gambar 6.9. Skema rangkaian IC 7447 dan seven-segment.
Skema rangkaian IC 74HC595 dapat dilihat pada Gambar 6.9. IC 74HC595 merupakan IC 8 bit yang menerima input 4 bit dan mengeluarkan output 8 bit. Karena IC 7447 (BCD converter dari 166
Implementasi Embedded System Menggunakan Beagleboard
seven-segment) memerlukan 4 input saja, maka ada kaki IC yang tidak digunakan. Pembuatan skematik rangkaian bisa dimodifikasi sesuai dengan kebutuhan dan preferensi pribadi, serta sesuai dengan dimensi yang dibutuhkan.
Gambar 6.10. Skema rangkaian IC shift register 74HC595.
b. Membuat PCB Seperti halnya dengan sistem minimum mikrokontroler, setelah membuat desain skematik langkah selanjutnya yang harus dilakukan adalah membuat PCB. Gambar 6.11. menunjukkan skema rangkaian board seven-segment yang siap cetak di PCB.
Implementasi Embedded System Menggunakan Beagleboard
167
Gambar 6.11. Skema rangkaian board seven-segment siap cetak .
c. Memasang dan Menyolder Komponen Tahap selanjutnya yang dilakukan dalam membuat board seven-segment adalah memasang dan menyolder komponen. Proses memasang dan menyolder board seven-segment sama seperti proses memasang dan menyolder komponen sistem minimum mikrokontroler ATmega32 yang telah dijelaskan pada bagian sebelumnya.
6.3.2. Membuat Perangkat Lunak (Software) Prototipe Aplikasi dalam bentuk program yang akan kita gunakan pada prototipe pengaturan lalu lintas melibatkan beberapa aspek. Aspek pertama dan yang paling penting adalah image processing, yaitu teknik untuk mengolah gambar yang diperoleh oleh kamera. Aspek kedua yaitu pembuatan modul komunikasi serial antara BeagleBoard dengan mikrokontroler. Aspek terakhir yaitu pembuatan program untuk mikrokontroler. Berkaitan dengan image processing, kita dapat menggunakan pustaka (library) tambahan untuk image processing yaitu Open Computer Vision (OpenCV). Untuk membuat program yang akan 168
Implementasi Embedded System Menggunakan Beagleboard
kita burn ke mikrokontroler, kita bisa menggunakan pustaka avrlibc beserta cross compiler untuk IC AVR (AVR-GCC) atau winAVR untuk Windows. Oleh karena itu, sebelum membuat program kita harus menyiapkan pustaka atau aplikasi-aplikasi tersebut terlebih dahulu.
1. Instalasi perangkat untuk Image Processing Tahap ini menjelaskan langkah-langkah untuk menyiapkan pustaka OpenCV dan aplikasi pendukungnya mulai dari instalasi sampai menambahkan linker pada editor. Selain itu juga terdapat penjelasan tambahan bagi pengguna sistem operasi Windows. a. Instalasi library OpenCV 1) PC host bersistem operasi Linux Pada sistem operasi linux, untuk bisa menggunakan library OpenCV kita perlu melakukan instalasi library libcv, libcvaux, dan libhighgui. Selain itu, untuk pengembangan program lebih lanjut, kita perlu memasang libcv-dev, libcaux-dev dan libhighgui-dev. Kita juga dapat memasang dokumentasi OpenCV pada package opencv-doc. Berikut adalah langkahlangkah instalasi tersebut melalui command line pada terminal. Sebelumnya, komputer harus terhubung ke jaringan internet terlebih dahulu.
Memasang libcv, libcvaux, dan libhighgui dapat dilakukan dengan perintah-perintah berikut. Angka 2.1 yang berada pada ujung perintah menunjukkan versi OpenCV yang digunakan, yaitu OpenCV versi 2.1. ~$ sudo apt-get install libcv2.1 ~$ sudo apt-get install libcvaux2.1 ~$ sudo apt-get install libhighgui2.1
Memasang libcv-dev, libcvaux-dev, dan libhighgui-dev dapat dilakukan dengan perintah-perintah berikut.
Implementasi Embedded System Menggunakan Beagleboard
169
~$ sudo apt-get install libcv-dev ~$ sudo apt-get install libcvaux-dev ~$ sudo apt-get install libhighgui-dev
Memasang opencv-doc (dokumentasi OpenCV) dapat dilakukan dengan perintah berikut. ~$ sudo apt-get install opencv-doc
Selain cara di atas, instalasi juga dapat dilakukan melalui aplikasi synaptic package manager yang sudah disediakan oleh linux. Caranya sangat mudah, setelah menjalankan synaptic masukkan kata kunci (keyword) sesuai nama package, atau gunakan kata kunci parsial seperti ‘opencv’. Hasil pencarian akan menampilkan daftar package dari tools di atas, lalu tandai package yang ingin diinstal dan klik apply. Pada synaptic package manager, package-package yang tertandai atau berwarna hijau merupakan package yang sudah terpasang dan dapat digunakan. Sehingga, synaptic juga dapat digunakan untuk mengecek apakah aplikasi sudah benar-benar terpasang. Tampilan synaptic package manager dapat dilihat pada Gambar 6.12.
Gambar 6.12. Instalasi OpenCV menggunakan synaptic package manager.
170
Implementasi Embedded System Menggunakan Beagleboard
Dokumentasi termasuk user manual OpenCV yang telah ada pada file system dapat kita akses menggunakan web browser seperti terlihat pada Gambar 6.13.
Gambar 6.13. Mengakses dokumentasi OpenCV pada web browser.
2) PC host bersistem operasi Windows Instalasi pada sistem operasi Windows dapat dilakukan dengan lebih mudah. Langkah pertama yang dilakukan adalah dengan mengunduh installer OpenCV dari sourceforge.net (http://sourceforge.net/projects/opencvlibrary/files/opencvwin/). File installer OpenCV terlihat pada Gambar 6.14.
Implementasi Embedded System Menggunakan Beagleboard
171
Gambar 6.14. Installer OpenCV untuk sistem operasi Windows.
Untuk melakukan instalasi OpenCV, kita cukup menjalankan file installer tersebut. Saat instalasi, pastikan pilihan automatically set environment variable dipilih. Jika OpenCV sudah terpasang maka shortcut aplikasi dan folder terkait akan terdapat pada start menu. Selain itu user manual OpenCV juga dapat diakses melalui start menu seperti yang terlihat pada Gambar 6.15. Selain user manual, terdapat juga contoh-contoh program (sample) baik dalam bahasa C maupun python.
Gambar 6.15. Mengakses user manual OpenCV pada Windows.
172
Implementasi Embedded System Menggunakan Beagleboard
3) BeagleBoard bersistem operasi Linux Angstrom Seperti yang telah dijelaskan pada bagian sebelumnya, engine yang digunakan pada prototipe adalah BeagleBoard. Oleh karena itu, pada BeagleBoard harus dipasang OpenCV. Pada Bab 3 telah dijelaskan bagaimana menyiapkan BeagleBoard serta menjalankan linux angstrom dan login sebagai root pada angstrom. Dalam penjelasan selanjutnya, diasumsikan bahwa kita sudah login sebagai root pada angstrom. Berikut adalah tahap melakukan instalasi OpenCV pada angstrom.
Pertama, sambungkan BeagleBoard ke jaringan internet. Untuk memastikan BeagleBoard telah terhubung ke internet, lakukan perintah pengiriman paket misalnya seperti berikut. #~ ping 152.118.27.1
Jika perintah di atas mencetak paket-paket data yang dicetak baris demi baris seperti tampilan berikut, maka BeagleBoard telah terhubung ke internet. Pinging 152.118.27.1 with 32 bytes of data: Reply from 152.118.27.1: bytes=32 time<1ms TTL=64 Reply from 152.118.27.1: bytes=32 time<1ms TTL=64 Reply from 152.118.27.1: bytes=32 time<1ms TTL=64 Reply from 152.118.27.1: bytes=32 time<1ms TTL=64 Ping statistics for 152.118.27.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
Jika hanya muncul tampilan baris pertama dan tidak muncul baris selanjutnya (tidak ada reply), maka BeagleBoard belum terhubung ke internet. Lakukan pengaturan jaringan dan cek kembali sampai BeagleBoard telah terhubung ke internet.
Implementasi Embedded System Menggunakan Beagleboard
173
Jika diperlukan Lakukan update dengan perintah berikut. #~ opkg update
Lakukan instalasi OpenCV dengan perintah berikut. #~ opkg install opencv
b. Menyambungkan engine OpenCV dengan compiler Dalam pembahasan sebelumnya telah dijelaskan bahwa walaupun kita menggunakan engine berupa BeagleBoard dan menggunakan board pengontrol lalu lintas menggunakan mikrokontroler, tetapi menggunakan PC untuk mengembangkan program adalah pilihan yang tepat. Dengan kata lain kita akan menulis program pada editor yang kita gunakan pada PC, serta melakukan kompilasi program pada compiler yang sudah disediakan di editor tersebut. Setelah berhasil menjalankan program di PC, salin program ke BeagleBoard dan lakukan kompilasi ulang di BeagleBoard. Oleh karena itu, kami menyarankan untuk memakai editor yang telah biasa digunakan dengan menambah linker agar bisa melakukan kompilasi kode sumber program yang menggunakan fungsi-fungsi dari pustaka OpenCV.
1) PC bersistem Operasi Linux Salah satu editor yang bisa digunakan adalah Codeblocks. Jika Codeblocks belum terpasang pada PC, pasang Codeblocks terlebih dahulu. Instalasi dapat dilakukan melalui command line di terminal atau menggunakan synaptic package manager dengan kata kunci Codeblocks. Codeblocks yang kami gunakan dalam pembuatan program untuk prototipe ini adalah versi 10.05. Selanjutnya yang perlu dilakukan adalah mengatur linker setting dan search directories pada Codeblocks. Setelah
174
Implementasi Embedded System Menggunakan Beagleboard
menjalankan Codeblocks, pilih menu Setting -> Compiler and Debugger, lalu pilih menu Linker Setting. Selanjutnya pada kolom Other linker options tambahkan “-lm”, “-lcv”, “-lhighgui”, dan ”-lcvaux” sehingga tampilannya akan terlihat seperti pada Gambar 6.16.
Gambar 6.16. Konfigurasi linker settings pada Codeblocks.
Sesudah menambahkan linker option, selanjutnya pilih menu search directories. Kita perlu melakukan konfigurasi sehingga compiler dapat membaca referensi yang kita berikan pada program (included file). Oleh karena itu, kita perlu menambahkan path pada editor, sehingga dalam melakukan kompilasi compiler mengetahui lokasi pustaka tempat fungsifungsi dari OpenCV didefinisikan. Dengan demikian, kita perlu menambahkan path “/usr/local/include/opencv” pada bagian compiler pada tab search directories seperti terlihat pada Gambar 6.17. Implementasi Embedded System Menggunakan Beagleboard
175
Gambar 6.17. Konfigurasi search directories pada Codeblocks.
2) PC bersistem operasi Windows Untuk komputer bersistem operasi Windows, langkah yang dilakukan hampir sama dengan yang dilakukan untuk sistem operasi linux, yaitu mengatur konfigurasi pada linker setting dan search directories. Perlu diingat bahwa pada sistem operasi Windows, biasanya aplikasi dipasang pada direktori Program Files. Misalnya pustaka opencv pada komputer pada umumnya dipasang pada direktori C://Program Files/OpenCV2.0, maka untuk konfigurasi search directory tambahkan PATH C://Program Files/OpenCV2.0/include/opencv.
3) BeagleBoard Telah kita ketahui bahwa untuk prototipe sistem pengaturan lalu lintas ini, sistem operasi yang digunakan
176
Implementasi Embedded System Menggunakan Beagleboard
pada BeagleBoard adalah linux angstrom yang konsolnya ditampilkan pada komputer kita. Kita perlu membuat tautan (link) yang menunjuk ke berkas dari OpenCV. Berikut adalah perintah yang harus kita jalankan pada angstrom. ln libopencv_calib3d.so -> /usr/lib/libopencv_calib3d.so.2.1.1 ln libopencv_contrib.so /usr/lib/libopencv_contrib.so.2.1.1 ln libopencv_core.so
/usr/lib/libopencv_core.so.2.1.1
ln libopencv_features2d.so
/usr/lib/libopencv_features2d.so.2.1.1
ln libopencv_highgui.so
/usr/lib/libopencv_highgui.so.2.1.1
ln libopencv_imgproc.so
/usr/lib/libopencv_imgproc.so.2.1.1
ln libopencv_legacy.so ln libopencv_ml.so
/usr/lib/libopencv_legacy.so.2.1.1
/usr/lib/libopencv_ml.so.2.1.1
ln libopencv_objdetect.so ln libopencv_video.so
/usr/lib/libopencv_objdetect.so.2.1.1
/usr/lib/libopencv_video.so.2.1.1
Selain itu, kita bisa membuat berkas executable untuk memudahkan kompilasi yang akan kita lakukan di BeagleBoard. Perlu kita ketahui juga bahwa compiler C di BeagleBoard tidak bernama gcc melainkan arm-angstromgnuabi-gcc. Oleh karena itu, kita bisa membuat berkas untuk merepresentasikan perintah kompilasi file. Misalnya dengan membuat file bernama “compile” yang berisi perintah berikut. #!/bin/sh arm-angstrom-linux-gnueabi-gcc /usr/include/opencv/ $@ /usr/lib/libopencv*.so.2.1
–I /usr/lib/libcv.so.2.1
2. Memasang tools untuk Memprogram Mikrokontroler a. PC bersistem operasi Linux Untuk komputer yang menggunakan sistem operasi Linux, tools utama yang diperlukan untuk keperluan memprogram mikrokontroler adalah avr-libc, binutils-avr, gcc-avr, dan avrdude. Sebagai tambahan, kita bisa memasang dokumentasi avrdude, Implementasi Embedded System Menggunakan Beagleboard
177
yaitu avrdude-doc. Berikut adalah penjelasan tentang tools tersebut.
Avr-gcc merupakan croos compiler untuk bahasa C , dimana menggunakan pustaka avr-libc sebagai rujukannya. Compiler mengkompilasi program (berekstensi .c) yang akan dijalankan pada mikrokontroler.
Avr-libc merupakan pustaka untuk bahasa C yang dikhususkan untuk membuat program yang akan di-burn ke mikrokontroler. Pustaka ini merupakan pustaka yang digunakan sebagai referensi utama oleh gcc-avr. Kaitan antara avr-gcc dan avr-libc mirip dengan hubungan antara gcc dan glibc.
Binutils-avr merupakan tool yang dapat kita gunakan untuk mengubah hasil kompilasi program (berekstensi .c) oleh avr-gcc menjadi file berekstensi .hex yang dapat dijalankan di mikrokontroler.
Avr-dude merupakan aplikasi pada linux yang dapat kita gunakan untuk mengunggah file berekstensi .hex yang sudah kita hasilkan dengan avr-gcc dan bantuan binutils dari komputer, ke mikrokontroler sehingga siap dijalankan di mikrokontroler. Dengan kata lain, aplikasi ini berguna untuk melakukan burn file berekstensi .hex ke flash mikrokontroler.
Avrdude-doc merupakan dokumentasi dari avrdude.
Untuk memasang tools tersebut, gunakan perintah berikut. #~ sudo apt-get install tools_yang_ingin_diinstall
Pilihan lain yang tersedia adalah dengan memanfaatkan synaptic package manager dengan kata kunci avr. Seperti biasa, kita tandai package yang ingin dipasang dan jika sudah selesai pilih apply.
178
Implementasi Embedded System Menggunakan Beagleboard
Setelah selesai proses instalasi, tampilan jendela sypnatic package manager akan terlihat seperti pada Gambar 6.18.
Gambar 6.18. Tampilan sypnatic package manager setelah instalasi tools untuk AVR.
b. PC bersistem operasi Windows Seperti biasa, untuk memasang aplikasi pada sistem operasi Windows, kita perlu mengunduh installer aplikasi tersebut. Tools yang dapat digunakan adalah WinAVR. WinAVR merupakan varian avr-gcc yang dibuat untuk sistem operasi Windows. Sebelum melakukan instalasi, kita perlu mengunduh installer winAVR dari situs sourceforge.net (http://sourceforge.net/projects/winavr/ files/). File Installer WinAVR terlihat pada Gambar 6.19.
Gambar 6.19. Installer opencv untuk sistem operasi Windows. Implementasi Embedded System Menggunakan Beagleboard
179
Setelah melakukan instalasi winAVR, kita dapat mengakses fiturfitur WinAVR dari start menu Windows seperti halnya pada aplikasi OpenCV untuk Windows. Perlu kita ketahui bahwa aplikasi winAVR sudah memuat compiler avr-gcc, binutils-avr, dan avrdude beserta dokumentasi-dokumentasi dan user manual. WinAVR juga menyediakan editor serta program untuk makefile. Dengan demikian, pengguna windows tidak perlu khawatir dalam mengembangkan program untuk prototipe Sistem Pengaturan Lampu Lalu Lintas ini. Fitur-fitur WinAVR yang dapat diakses melalui start menu Windows terlihat seperti pada Gambar 6.20.
Gambar 6.20. Mengakses fitur-fitur WinAVR melalui start menu Windows.
c. Membuat program Setelah kita melakukan konfigurasi compiler dan tautan referensi (path/link) yang dibutuhkan, kita bisa mulai membuat program. Kita dapat membagi keseluruhan program menjadi beberapa modul atau bagian program yang akan berada pada berkas yang terpisah. Modul-modul tersebut adalah sebagai berikut. 180
Implementasi Embedded System Menggunakan Beagleboard
1) Image Processing Membuat program yang menangani image processing. 2) Komunikasi dari PC atau BeagleBoard ke Mikrokontroler Membuat program yang berkaitan dengan komunikasi dari PC ke mikrokontroler. 3) Program untuk mikrokontroler Membuat program yang akan dijalankan di mikrokontroler.
6.4 Menyambungkan Perangkat Setelah semua perangkat dihubungkan, tampilan prototipe Sistem Pengaturan Lampu Lalu Lintas dapat dilihat pada Gambar 6.21., 6.22., dan 6.23.
Gambar 6.21. Prototipe Sistem Pengaturan Lampu Lalu Lintas.
Implementasi Embedded System Menggunakan Beagleboard
181
Gambar 6.22. BeagleBoard beserta empat kamera webcam.
Gambar 6.23. Board Pengendali dan lampu lalu lintas.
Sistem pengendali lampu lalu lintas merupakan subsistem dari keseluruhan sistem yang dibuat. Pengendali yang digunakan dalam sistem ini adalah mikrokontroler AVR ATmega32. Fungsi sistem ini adalah menerima data dari pusat pengendali utama. Setelah menerima data dari pusat pengendali utama, subsistem akan memberi sinyal lampu merah atau hijau disetiap jalur sekaligus memberikan lama waktu penyalaan lampu tersebut. 182
Implementasi Embedded System Menggunakan Beagleboard
Gambar 6.24. memperlihatkan diagram sinyal antara subsistem pengendali lampu lalu lintas dengan pengendali utama.
Gambar 6.24. Diagram Keterhubungan Subsistem Pengendali.
6.5 Memasang Program Biarkan BeagleBoard dalam keadaan mati (tidak terhubung dengan komputer), kemudian lakukan langkah-langkah berikut.
Sambungkan USB HUB dengan BeagleBoard menggunakan USB Host yang terdapat pada BeagleBoard. Sambungkan kamera pada USB HUB. Hubungkan BeagleBoard dengan sirkuit pengendali lampu lalu lintas menggunakan kabel konektor USB to Serial. Konektor USB dihubungkan ke USB HUB, sedangkan konektor Serial dihubungkan ke port Serial pada sirkuit pengendali lampu lalu lintas. Hubungkan BeagleBoard dengan komputer/laptop menggunakan kabel konektor USB to USB mini, BeagleBoard akan menyala. Pada komputer/laptop jalankan terminal, lalu ketik perintah berikut untuk mengakses BeagleBoard. $ ssh -X USER@IP_BEAGLEBOARD
Implementasi Embedded System Menggunakan Beagleboard
183
User Linux Angstorm dan IP BeagleBoard User yang digunakan adalah root. IP yang digunakan adalah 192.168.1.2. CATATAN: Nama user tergantung pada pengaturan ketika proses instalasi Linux Angstorm. Nama user dan IP dapat diubah dengan melakukan pengaturan pada sistem. dilakukan. Sehingga, berikut adalah contoh perintah untuk mengakses BeagleBoard. $ ssh -X [email protected]
Apabila pada seven-segment lampu lalu lintas tidak tampil angka apapun, lakukan langkah-langkah berikut. $ ifdown usb0
Tunggu sampai sistem selesai memproses perintah (sampai baris bertuliskan user muncul kembali), kemudian masukkan perintah berikut. $ ifup usb0
Apabila perintah-perintah tersebut tidak memunculkan baris user kembali dalam waktu yang lama, berarti koneksi komputer/laptop dengan BeagleBoard belum berjalan dengan baik. Untuk mengatasinya, lakukan restart pada BeagleBoard lalu coba kembali.
Apabila pengguna pada terminal telah berubah menjadi USER@IP_BEAGLEBOARD, masukkan perintah berikut. $ stty -F /dev/ttyUSB0 9600 raw
Selanjutnya masukkan perintah-perintah berikut. $ echo 00 00 00 01 7c fc | xxd -p -r | ./writeserial /dev/ttyUSB0 $ echo 00 00 00 01 7c fd | xxd -p -r | ./writeserial /dev/ttyUSB0 $ echo 00 00 00 01 7c fe | xxd -p -r | ./writeserial /dev/ttyUSB0 $ echo 00 00 00 01 7c ff | xxd -p -r | ./writeserial /dev/ttyUSB0
184
Implementasi Embedded System Menggunakan Beagleboard
Apabila pada setiap seven-segment lampu lalu lintas muncul angka 255 lalu angka tersebut terhitung mundur sampai angka 0 (counting down), maka komputer/laptop, BeagleBoard, dan Sirkuit Pengendali Lalu Lintas telah terkoneksi dengan baik. Apabila salah satu seven-segment lampu lalu lintas tidak menampilkan angka apapun, tekan tombol reset yang terdapat pada sirkuit pengendali kemudian ulangi langkahlangkah di atas.
Pindahkan archive file “Traffic.tar.gz” ke dalam BeagleBoard menggunakan terminal lain. Pemindahkan data yang diperlukan dari komputer/laptop ke BeagleBoard dapat dilakukan dengan perintah berikut. $ scp NAMA_FILE/FOLDER_PC USER@IP_BEAGLEBOARD
Contoh: $ scp Traffic.tar.gz [email protected]
Ekstrak archive file “Traffic.tar.gz” menggunakan perintah berikut. $ tar –xzf Traffic.tar.gz
Jika ekstraksi berhasil, akan muncul folder bernama Traffic yang berisi berkas-berkas beserta beberapa folder yang diperlukan. Hirarki direktori yang penting adalah seperti yang terlihat pada Gambar 6.25.
Masuk ke dalam folder ‘multithread2’ yang terdapat di dalam direktori “Traffic”. $ cd /Traffic/multithread2/
Jalankan program dengan mengakses berkas “Single.out” yang terdapat pada direktori “multithread2” menggunakan perintah berikut. $ ./Single.out /dev/ttyUSB0
Implementasi Embedded System Menggunakan Beagleboard
185
Gambar 6.25. Hirarki direktori Traffic.
Setelah program dijalankan, akan muncul empat jendela yang merepresentasikan empat jalur pada suatu persimpangan. Sedangkan terminal akan menampilkan hasil penghitungan mobil. Tampilan program ketika sedang berjalan dapat dilihat pada Gambar 6.26., 6.27., dan 6.28.
Gambar 6.26. Tampilan program ketika sedang berjalan.
186
Implementasi Embedded System Menggunakan Beagleboard
Gambar 6.27. Empat jendela yang merepresentasikan empat jalur pada suatu persimpangan.
Gambar 6.28. Salah satu jendela ketika menampilkan proses penghitungan mobil yang sedang berjalan.
Seperti yang terlihat pada Gambar 6.26., program yang sedang berjalan akan menampilkan empat jendela yang masing-masing merepresentasikan satu jalur dari suatu persimpangan. Ketika program mendeteksi sebuah mobil pada gambar, maka program Implementasi Embedded System Menggunakan Beagleboard
187
akan menandai mobil tersebut dengan sebuah lingkaran. Akan tetapi program lebih sering tidak menampilkan lingkaran tersebut karena frame per second (fps) video yang sangat cepat. Walaupun demikian, program tetap mendeteksi dan menghitung jumlah mobil. Hasil penghitungan ditampilkan di terminal seperti yang terlihat pada Gambar 6.29. berikut.
Gambar 6.29. Hasil penghitungan jumlah mobil pada terminal.
Selain ditampilkan pada terminal, hasil penghitungan juga ditampilkan pada prototipe lampu lalu lintas. Lama waktu lampu lalu lintas pada setiap seven-segment ditentukan oleh engine lalu lintas yang dibuat oleh peneliti di Lab. Penelitian Fakultas Ilmu Komputer Universitas Indonesia dan sebelumnya telah ditanamkan pada program. Tampilan keseluruhan sistem ketika sedang berjalan dapat dilihat pada Gambar 6.30.
188
Implementasi Embedded System Menggunakan Beagleboard
Gambar 6.30. Prototipe Sistem Pengaturan Lalu Lintas dan bagian-bagiannya.
Gambar 6.31. Prototipe Sistem Pengaturan Lalu Lintas ketika sedang berjalan.
Implementasi Embedded System Menggunakan Beagleboard
189
6.6 Hasil Uji Coba Prototipe yang ada secara garis besar telah berhasil melakukan halhal berikut. 1. Menjalankan program pengenalan dan penghitungan mobil dengan menggunakan metode PCA pada BeagleBoard atau komputer dengan input dari video AVI atau dari webcam. 2. BeagleBoard atau komputer dapat berkomunikasi dengan mikrokontroler untuk menampilkan hasil penghitungan. 3. Mikrokontroler dapat berkomunikasi dengan board lalu lintas untuk menampilkan hasil penghitungan ke sevensegment lalu lintas dan melakukan penghitungan mundur seperti tampilan lampu lalu lintas pada umumnya.
6.7 Hasil Penghitungan dan Ketepatan Program 1. Ketepatan Sistem Penghitung Kendaraan berdasarkan variasi pengaturan Interval Pendeteksian FPS (Frame per Second) Pada bagian ini akan dibahas tingkat kebenaran dari program yang telah dibuat. Gambar 6.32. menunjukkan snapshot dari videosumber0 dan videosumber1 yang merupakan video masukan program.
Gambar 6.32. Snapshot videosumber0.avi dan videosumber1.avi.
Tabel 6.6. dan 6.7. menunjukkan hasil penghitungan dari sistem penghitung kendaraan. Nilai dari Penghitungan Manual (PM), yang 190
Implementasi Embedded System Menggunakan Beagleboard
digunakan dalam rumus penghitungan ketepatan, adalah 87 untuk videosumber0.avi dan 58 untuk videosumber1.avi. Seperti yang terlihat pada Tabel 6.6. dan 6.7., Ketepatan Sistem Penghitung Kendaraan mencapai nilai terbaik (mendekati 1.00) yaitu 0.943 pada FPS 210 untuk videosumber0.avi dan 0.966 pada FPS 120 dan 150 untuk videosumber1.avi.
Tabel 6.6. Tabel Ketepatan Sistem untuk video sumber videosumber0.avi. Pengaturan FPS
Penghitungan Metode PCA (PP)
Perbedaan (D) = | PP - PM |
Rasio (R) = D/PM
Ketepatan (C) = 1–R
30
625
538
6.184
-5.184
60
234
147
1.690
-0.690
90
211
124
1.425
-0.425
120
154
67
0.770
0.230
150
115
28
0.322
0.678
180
105
18
0.207
0.793
210
82
5
0.057
0.943
240
75
12
0.138
0.862
Tabel 6.7. Tabel Ketepatan Sistem untuk video sumber videosumber1.avi. Pengaturan FPS
Penghitungan Metode PCA (PP)
Perbedaan (D) = | PP - PM |
Rasio (R) = D/PM
Ketepatan (C) = 1–R
30
313
255
4.397
-3.397
60
123
65
1.121
-0.121
90
74
16
0.276
0.724
120
60
2
0.034
0.966
150
56
2
0.034
0.966
180
39
19
0.328
0.672
Implementasi Embedded System Menggunakan Beagleboard
191
210
39
19
0.328
0.672
240
29
29
0.500
0.500
Ketepatan ( 1 = Tepat)
Ketepatan Sistem Penghitung Kendaraan 1.000 -1.000 -3.000 -5.000 -7.000
1
2
3
4
5
6
7
8 videosumber0.avi videosumber1.avi
Interval Pendeteksian (per n detik)
Gambar 6.33. Grafik ketepatan sistem penghitung kendaraan dengan masukan videosumber0 dan videosumber1.
Dari hasil percobaan, terlihat bahwa hasil pendeteksian mobil relatif tidak stabil pada setiap pengambilan frame per seconds (fps). Untuk keadaan lalu lintas padat (contoh kasus videosumber0), pengambilan fps yang tinggi (210 fps) menghasilkan pendeteksian yang maksimal (nilai ketepatan 0.943). Sedangkan untuk keadaan lalu lintas tidak terlalu padat (contoh kasus videosumber1), pengambilan fps yang rendah (120 dan 150 fps) menghasilkan pendeteksian yang maksimal (nilai ketepatan 0.966). Dengan demikian, ada kecenderungan bahwa pengaturan fps untuk pengambilan video harus disesuaikan dengan kondisi kepadatan, dengan hubungan bahwa semakin padatnya lalu lintas, maka sebaiknya pengaturan fps sistem adalah semakin tinggi.
192
Implementasi Embedded System Menggunakan Beagleboard
2. Hasil Penghitungan Kendaraan pada berbagai Kondisi Cuaca dan Keadaan Lalu Lintas Tabel 6.8. menunjukkan hasil penghitungan kendaraan pada berbagai kondisi cuaca dan keadaan lalu lintas. Grafik hasil penghitungan kendaran dapat dilihat pada Gambar 6.35.
Gambar 6.34. Contoh perbedaan Kondisi Cuaca dan Lalu Lintas: cuaca cerah kondisi ramai dan cuaca cerah kondisi macet.
Tabel 6.8. Tabel hasil penghitungan kendaraan pada berbagai kondisi cuaca dan lalu lintas. Penghitungan Manual (PM)
Penghitungan PCA + Euclidean Distance (PPT)
Perbedaan (D) = | PP - PM |
Rasio (R) = D/PM
Ketepatan (C) = 1 - R
Cuaca Cerah dan Kondisi Macet
87
84
3
0.0345
0.966
Cuaca Cerah dan Kondisi Ramai
102
109
7
0.0686
0.931
Cuaca Cerah dan Kondisi Ramai
128
120
8
0.0625
0.938
Cuaca Mendung dan Kondisi Ramai
58
42
16
0.2759
0.724
Kondisi Cuaca dan Lalu Lintas
Implementasi Embedded System Menggunakan Beagleboard
193
Gambar 6.35. Hasil pendeteksian dan penjejakan kendaraan menggunakan PCA dan Euclidean Distance.
Dari Tabel 6.8. dapat dilihat hasil pendeteksian dan penjejakan kendaraan menggunakan PCA dan Euclidean Distance pada cuaca cerah kondisi macet memiliki ketepatan 0.966, cuaca cerah kondisi ramai memiliki ketepatan 0.931, cuaca cerah kondisi ramai memiliki ketepatan 0.938, dan cuaca mendung kondisi lancar memiliki ketepatan 0.724. Seperti yang terlihat pada Gambar 6.35., semua video yang memiliki kondisi cuaca cerah memiliki ketepatan yang sangat baik, yaitu dengan ketepatan di atas 0.900 sedangkan khusus untuk video dengan cuaca mendung berada pada ketepatan di atas 0.700.
194
Implementasi Embedded System Menggunakan Beagleboard
Implementasi Embedded System Menggunakan Beagleboard
195
196
Implementasi Embedded System Menggunakan Beagleboard
Daftar Pustaka Adolf, F. (2003). How-to build a cascade of boosted classifiers based on Haar-like features. Adideswar, Manggala Eka. “Implementasi Pendeteksian dan Penghitungan Mobil dengan Pemrosesan Video untuk Sistem Pengendalian Lampu Lalu Lintas Terdistribusi”. Skripsi Sarjana. Fakultas Ilmu Komputer Universitas Indonesia, 2010. Afif, Faris Al, Muhammad Anwar Ma'sum, dan Muhammad Febrian Rachmadi. “Copyright Document - Manual Prototype SPLLLT ver20110117”. Technical Report. Fakultas Ilmu Komputer Universitas Indonesia, 2010. Afif, Faris Al. “Implementasi Prototipe Sistem Pengaturan Lampu Lalu Lintas Terdistribusi dengan Optimasi Pengenalan dan Penjejakan Kendaraan Berbasis Pemrosesan Video”. Skripsi Sarjana. Fakultas Ilmu Komputer Universitas Indonesia, 2011. Agung, I. R. (2009). Simulator Pengatur Lampu Lalu Lintas Berdasarkan Waktu dan Kepadatan Kendaraan Berbasis Mikrokontroller AT89S52. Teknologi Elektro Vol 8 No 2. Computer Vision Test Image. (n.d.). Retrieved May 04, 2011, from Computer Vision Homepage: http://www.cs.cmu.edu/~cil/v-images.html Hayden Myers. Intelligent http://tandh.dnsdojo.com/its/
Traffic
System.
Imageclipper - A tool to crop images manually fast. (n.d.). Retrieved May 04, 2011, from Imageclipper: http://code.google.com/p/imageclipper/ Implementasi Embedded System Menggunakan Beagleboard
197
Kridner, J. (2008, July 29). What is Beagle?. Retrieved May 5, 2011, from BeagleBoard.org: http://beagleboard.org/brief Kuranov, A., Lienhart, R., & Pisarevsky, V. (2002). An Empirical Analysis of Boosting Algorithms for Rapid Objects With an Extended Set of Haar-like Features. Intel Technical Report MRL. N. J. Garber and L. A. Hoel, Traffic and Highway Engineering, 4th ed.Canada,Cengage Learning, 2008, pp. 213–380. OpenCV Haartraining: Detect objects using Haar-like features. (2009, June 02). Retrieved May 04, 2011, from Computer Vision Software: http://www.computer-visionsoftware.com/blog/2009/06/opencv-haartraining-detectobjects-using-haar-like-features/ Pappis C., Mamdani E. A fuzzy logic controller for a traffic junction. IEEE transactions on systems, man and cybernetics. Vol. SMC-7, No. 10, pp. 707-717.1977. The Manual on Uniform Traffic Control Devices (MUTCD). U.S. Department of Transportation Federal Highway Administration. http://mutcd.fhwa.dot.gov/. Traffic Signal Timing Manual (TSTM) U.S. Department of Transportation Federal Highway Administration. http://ops.fhwa.dot.gov/arterial_mgmt/ tstmanual.htm Tutorial: OpenCV haartraining (Rapid Object Detection With A Cascade of Boosted Classifiers Based on Haar-like Features). (n.d.). Retrieved May 04, 2011, from Naotoshi Seo: http://note.sonots.com/SciSoftware/haartraining.html Wahyudi, M. (2001). Pengaturan Lampu Lalu Lintas Berbasis Fuzzy Logic Menggunakan Komputer IBM PC-XT 8088. Yokoo, M., Durfee, E. H., Ishida, T., & Kuwabara, K. (1998). The Distributed Constraint Satisfaction Problem: Formalization
198
Implementasi Embedded System Menggunakan Beagleboard
and Algorithms. IEEE Transactions On Knowledge And Data Engineering.
Implementasi Embedded System Menggunakan Beagleboard
199
200
Implementasi Embedded System Menggunakan Beagleboard
Profil Singkat Penulis Dr. Eng. Wisnu Jatmiko, S.T., M.Kom. Surabaya, 16 Desember 1973 Pengajar / Staf Akademis Fakultas Ilmu Komputer Universitas Indonesia [email protected] Ketertarikan: Robotika, Swarm, Odor Source Localization, Electronic Nose Quote: “Tidak ada tanggal merah di kalender saya, 247 merupakan angka terbaik setiap minggunya”
Dr. Petrus Mursanto, M.Sc. Surakarta, 25 Juni 1967 Pengajar / Staf Akademis Fakultas Ilmu Komputer Universitas Indonesia [email protected] Ketertarikan: Hardware, Arsitektur Komputer, Enterprise Computing
Implementasi Embedded System Menggunakan Beagleboard
201
Faris Al Afif, S.Kom. Semarang, 16 Maret 1989 Asisten Peneliti & Asisten Dosen Fakultas Ilmu Komputer Universitas Indonesia [email protected], [email protected] Ketertarikan: Computer Networks, Databases, Robotics Quote: “A calm sea doesn’t make a skilled sailor.”
Big Zaman, S. Kom. Surabaya, 18 Oktober 1989 Asisten Peneliti & Asisten Dosen Fakultas Ilmu Komputer Universitas Indonesia [email protected] Ketertarikan: Embedded System, Software Engineering Quote: “There may be people that have more talent than you, but there’s no excuse for anyone to work harder than you do.” (Derek Jeter)
202
Implementasi Embedded System Menggunakan Beagleboard
Muhammad Febrian Rachmadi Bogor, 28 Februari 1991 Mahasiswa Fakultas Ilmu Komputer Universitas Indonesia [email protected] Ketertarikan: Computer Architecture, Processing
Robotics,
Video
Muhammad Anwar Ma'sum Nganjuk, 21 November 1990 Mahasiswa Fakultas Ilmu Komputer Universitas Indonesia [email protected] Ketertarikan: Robotics, Learning
Embedded
System,
Machine
Quote: "Nothing's impossible."
Implementasi Embedded System Menggunakan Beagleboard
203
Mohamad Sani, S.Kom. Purwakarta, 20 September 1989 Technopreneur [email protected] Ketertarikan: Mobile Technology dan sekitarnya Quote: "Di dunia ini tempat beramal untuk selamat di akhirat." (Raihan)
Adi Wibowo, S.Si, M.Kom. Purbalingga, 9 Maret 1982 Dosen Teknik Informatika Universitas Diponegoro [email protected] Ketertarikan: Computational Intelligence dan Networking Quote: “Berusaha, kerja keras, ikhlas, dan berdoa.”
204
Implementasi Embedded System Menggunakan Beagleboard
Arief Ramadhan, S.Komp., M.Si. Karawang, 28 Juni 1982 Asisten Peneliti Fakultas Ilmu Komputer Universitas Indonesia [email protected] Ketertarikan: e-Government Quote: “Sebaik-baiknya manusia adalah manusia yang berguna bagi orang lain.”
Implementasi Embedded System Menggunakan Beagleboard
205
206
Implementasi Embedded System Menggunakan Beagleboard
Glosarium Android
Angstrom AVR Beagleboard
Closed-circuit television (CCTV)
Embedded system
FPGA
Jaringan Saraf Tiruan
Sistem Operasi open source untuk telepon selular dan gadget milik Google Sistem Operasi open source untuk berbagai perangkat sistem tertanam Mikrokontroler berarsitektur RISC 8bit dari keluarga Atmel AVR Single board computer berprosesor ARM, berukuran kecil, dan membutuhkan daya yang rendah namun berkemampuan untuk melakukan komputasi layaknya komputer biasa Kamera video yang pada umumnya dipasang pada tempat-tempat tertentu untuk keperluan pengawasan dan keamanan Sistem berbasis mikroprosesor yang dibuat untuk mengontrol fungsi-fungsi dan tidak dapat diprogram oleh enduser (pengguna) Board pengembangan untuk sirkuit digital yang bisa diprogram berkalikali, memungkinkan kita untuk membangun desain sirkuit dengan cepat Model kecerdasan buatan yang meniru cara kerja sistem saraf manusia bekerja
Implementasi Embedded System Menggunakan Beagleboard
207
Matriks
Mikrokontroler
Mikroprosesor
Open Source Computer Vision Library (OpenCV) Pandaboard
Pasien Simulator
Principal Component Analysis (PCA)
Printed Circuit Board (PCB) Prototipe
208
Representasi data dalam bentuk grid angka, bisa dalam bentuk 2 dimensi maupun 3 dimensi Sirkuit tunggal terintegrasi yang terdiri dari inti prosesor, memori, dan masukan/keluaran yang dapat deprogram Perangkat yang berperan sebagai Central Processing Unit (CPU) yang terdiri dari satu atau beberapa sirkuit terintegrasi Pustaka fungsi pemrograman yang digunakan untuk berbagai keperluan terkait computer vision Single Board Computer berprosesor ARM yang berdaya rendah dan berukuran kecil Alat yang bisa membangkitkan atau mensimulasikan sinyal elektrik dari jantung, baik keadaan sehat maupun sakit Prosedur matematika yang mengubah beberapa variabel yang mungkin berkorelasi ke dalam sejumlah kecil variabel tidak berkorelasi yang disebut principal component (komponen utama) Papan sirkuit yang menghubungkan komponen-komponen elektronik pada suatu jalur konduktif Model atau contoh awal dari suatu konsep atau proses yang mewakili benda atau solusi dari suatu produk atau sistem tertentu
Implementasi Embedded System Menggunakan Beagleboard
Robot
Single Board Computer
Sistem Operasi
Sleep Apnea
Traffic Signal Control
Vektor VHDL
Agen berbentuk mekanik atau virtual yang dapat menyelesaikan berbagai tujuan, biasanya memiliki komponen elektrik dan komputer untuk keperluan komputasi Komputer lengkap yang dibangun pada papan sirkuit tunggal, memiliki mikroprosesor, memori, masukan/keluaran, dan berbagai fitur lain yang dibutuhkan layaknya sebuah komputer Sekelompok perangkat lunak yang mengontrol sumber daya perangkat keras komputer dan melayani kebutuhan program-program yang berjalan pada suatu komputer Penyakit gangguan tidur yang dapat menyebabkan kematian dengan salah satu cirinya adalah adanya gangguan pernapasan ketika tidur Perangkat pemberi sinyal yang ditempatkan pada suatu persimpangan untuk membantu pengaturan arus lalu lintas Elemen ruang vektor Bahasa pemrograman yang digunakan untuk mendesain rancangan sirkuit digital yang nantinya bisa dicoba pada board FPGA
Implementasi Embedded System Menggunakan Beagleboard
209
210
Implementasi Embedded System Menggunakan Beagleboard
Daftar Indeks A
C
Actuated Time Traffic Signals ..... 92
CCTV........................................103
Adaptif........................................ 17 Androidv, 21, 31, 35, 67, 74, 75, 76, 77, 82, 83
D DB9F Null Modem................ 55, 57
Angstrom... v, 35, 67, 68, 69, 70, 71,
DB9M ................................... 55, 57
75, 77, 78, 79, 80, 83, 141, 173,
DCSP .. 18, 106, 109, 115, 130, 131,
177 ARM 31, 34, 36, 37, 43, 44, 74, 109
190 DVI-D21, 22, 36, 37, 39, 44, 46, 48,
AT89S52 .................................. 100 ATMega32 110, 139, 142, 143, 144,
49, 65, 71 E
145, 147, 148, 149, 150, 159, 163, 164, 165 ATMega8 ................................. 110
EKG .................... 3, 8, 9, 10, 12, 13 Embedded System i, iii, 1, 3, 4, 6, 8, 202, 203
AVR ...... 11, 18, 110, 112, 116, 143, 144, 145, 150, 151, 169, 179, 182
F Fasilkom ................................. 8, 14
B
Fixed Time Traffic Signals...........91
BeagleBoard .... i, iii, v, vi, vii, 2, 17,
FPGA ......... 8, 10, 11, 12, 23, 29, 30
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
G Gumstix............... 19, 25, 26, 27, 28
49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 67,
H
70, 71, 72, 73, 74, 75, 76, 77, 81,
Hardware........................... 108, 162
82, 83, 84, 85, 105, 109, 112,
HawkBoard ............... 19, 23, 24, 25
139, 140, 141, 142, 159, 160, 161, 162, 168, 173, 174, 176, 177, 181, 182, 183, 185, 190
I IDC10 ................................... 55, 57 Image Processing............... 169, 181
Implementasi Embedded System Menggunakan Beagleboard
211
Prototipe. i, iii, vii, 9, 105, 106, 107,
J
109, 114, 121, 122, 132, 133,
JTAG .................. 20, 36, 42, 44, 52
139, 162, 168, 181, 189, 190 K
PuTTy ................................... 59, 60
Kamera ....... 21, 23, 53, 54, 108, 121
R
Kemacetan ............................ 87, 88 Robot .............................. 13, 14, 16 L
RS232 24, 37, 42, 46, 52, 53, 55, 76
Lampu Lalu Lintas .. i, iii, iv, 17, 90,
S
91, 92, 93, 96, 98, 100, 101, 102, 105, 106, 107, 109, 111, 115, 116, 122, 139, 183, 189
Single Board Computer (SBC) .... 19 Software .. 25, 75, 78, 105, 115, 168, 202
M T MicroSD ......................... 67, 68, 75 Mikrokontroller ................... 12, 177 MMC 21, 22, 23, 24, 37, 40, 41, 49, 54, 65, 67
Traffic Signal Control ................. 17 U UBoot ......................................... 50 Ubuntu v, 21, 35, 67, 71, 72, 73, 74,
O
75, 77, 78, 80, 83, 109
OpenCV .................... 115, 128, 129 OTG .. 20, 24, 36, 37, 38, 41, 43, 45, 46, 51, 65, 66, 142
Uji Coba..................................... 190 USART . 11, 15, 149, 150, 151, 152, 154, 156, 157, 158, 159
P
USB .. 20, 21, 23, 24, 29, 34, 36, 37,
Package..................... 37, 78, 79, 80
38, 41, 43, 45, 46, 47, 50, 51, 52,
PandaBoard ......... 19, 20, 21, 22, 23
53, 54, 55, 56, 57, 59, 61, 65, 66,
PCA .... 17, 102, 105, 115, 125, 126,
74, 76, 77, 109, 110, 112, 113,
127, 190
116, 134, 139, 141, 142, 160,
PCB .................... 20, 164, 167, 168 Program....... 82, 115, 116, 135, 146,
183 V
147, 176, 181, 183, 190 Protel................................. 163, 164
Video .... 21, 23, 39, 47, 48, 71, 120, 123
212
Implementasi Embedded System Menggunakan Beagleboard
W
WinAVR ................... 116, 179, 180
Implementasi Embedded System Menggunakan Beagleboard
213
214
Implementasi Embedded System Menggunakan Beagleboard
Implementasi Embedded System Menggunakan Beagleboard
215