Jumat, 07 Oktober 2011

Pengendali Lampu Melalui Antarmuka USB Berbasis Mikrokontroler AVR AT90S2313

 
lampuPemanfaatan port USB (Universal Serial Bus) pada komputer saat ini telah berkembang luas seiring perkembangan teknologi perangkat keras I/O computer seperti printer, scanner dan memory disk. Selain itu peralatan elektronika seperti telepon genggam, kamera digital, proyektor digital dan perangkat keras berbasis mikrokontroler juga telah memanfaatkan port USB untuk berkomunikasi data secara serial dengan komputer. Saat ini, USB telah menjadi salah satu standar interkoneksi antara komputer dengan peralatan eksternal.
Begitu populernya USB saat ini hingga mendorong untuk menciptakan suatu alat yang menggunakan antarmuka USB. Alat itu adalah pengendali lampu melalui antarmuka USB berbasis Mikrokontroler AVR AT90S2313. Seperti apa alat tersebut? Pada kasus ini telah dicoba untuk merancang dan membuat antarmuka USB dengan memanfaatkan firmware yang diimplementasikan kedalam mikrokontroler AVR AT90S2313. Keuntungan dari cara ini adalah selain harganya yang lebih murah, alat-alat yang dibutuhkan mudah didapat di Indonesia. Alasan memilih mikrokontroler tipe AT90S2313 ini adalah karena pada kecepatanya, AT90S2313-10PI mempunyai kecepatan 10 MHz, tetapi dalam alat ini dapat dilakukan overclocking dengan menggunakan kristal pembangkit clock sebesar 12MHz, kecepatan ini memenuhi kriteria dari antarmuka USB dengan mode low-speed (1,5 Mbps).
image0041
Diagram pengendali lampu melalui antarmuka USB
Pada gambar di atas terdapat beberapa device (perangkat) yang bekerja sehingga lampu akhirnya dapat dikendalikan sesuai keinginan. Adapun fungsi dari masing-masing alat perangkat tersebut, Mikrokontroler berfungsi untuk men-dekode data yang diterima dari USB dan mengirimkan data dari mikrokontroler melalui USB. Komputer digunakan untuk menampilkan program pengendali lampu yang bertujuan untuk mempermudah pengguna dalam mengontrol lampu baik mematikan lampu atau menyalakannya sesuai dengan perintah. Remote televise digunakan untuk mengendalikan lampu secara remote. Driver berfungsi untuk mengenali peralatan USB yang telah terpasang terhadap lingkungan system operasi Windows.
Pengguna atau user memasukan parameter input ke komputer berupa suatu perintah. Perintah tersebut diubah kebentuk tertentu yang dapat dilewatkan melalui antarmuka USB ke mikrokontroler. Data tersebut dibaca oleh mikrokontroler berupa IC AT90S2313 yang sebelumnya telah terprogram sebuah firmwire yang sesuai dengan karakteristik USB. Program firmware ini mengubah karakteristik dari parameter input (dari komputer) menjadi bentuk tertentu yang diteruskan ke port 8 bit I/O dari mikrokontroler yang telah ditentukan, dan selanjutnya akan menentukan tindakan atau pengendalian apa yang akan dilakukan terhadap lampu.
Selain pengendalian melalui komputer, pengguna juga dapat mengendalikan nyala lampu melalui fasilitas remote. Remote yang digunakan berupa remote televisi yang dapat dibeli di toko-toko elektronik. Pengguna menekan tombol tertentu dari remote, kemudian sinyal diterima oleh receiver yang kemudian diteruskan ke mikrokontroler dan diterjemahkan kedalam suatu bilangan biner yang unik. Setelah mikrokontroler menerjemahkan sinyal dari tombol remote, kemudian diteruskan ke komputer yang tentunya sinyal tersebut sudah diterjemahkan kedalam bentuk tertentu agar dapat dibaca melalui antarmuka USB. Host (komputer) membaca kode tersebut dan kemudian menentukan jenis tindakan atau pengendalian apa yang akan dilakukan, dan kemudian dikembalikan ke mikrokontroler untuk melakukan tindakan atau pengendalian yang telah ditentukan.
Rangkaian yang dibutuhkan dalam membuat pengendali lampu melalui antarmuka USB sangat sederhana. Adapun bagian utamanya adalah antarmuka USB, mikrokontroler dan sensor infra merah (sensor infra merah TSOP1738 yang berfungsi untuk menerima infra merah dari remote TV). Dapat digambarkan sebagai berikut:
image006
Catu daya yang digunakan sebagai sumber tegangan pada rangkaian USB diperoleh dari host (komputer), karena pada antarmuka USB setiap host mampu menyediakan tegangan sebesar 5 volt dengan arus maksimum 500mA. Arus sebesar itu sudah lebih dari cukup untuk mencatu alat ini, sehingga catu daya dibutuhkan hanya untuk mendrive relay pengendali lampu. Bagian kabel D- pada antarmuka USB dihubungkan ke pin PB0 mikrokontroler dan PB1 pada kabel D+. Alat ini hanya mendukung mode kecepatan rendah (low speed) yaitu pada kabel D- di terminalkan sebuah resistor pull-up 1,5 k? (untuk full Speed, resistor pull-up terhubung ke D+) yang terdapat pada setiap peralatan USB. Pada mikrokontroler dipasang kristal pembangkit frekuensi sebesar 12MHz, hal ini dilakukan untuk mengimbangi kecepatan dari USB mode kecepatan rendah (low speed) yaitu 1,5 Mbps. Kapasitor disini berfungsi sebagai filter dari tegangan. Pada penerima infra merah, digunakan sensor infra merah TSOP1738 yang berfungsi untuk menerima infra merah dari remote TV. Pin VS adalah sumber tegangan 5 volt, VO adalah pin keluaran dari sensor yang terhubung ke PB2 dan PD2 (T0) pada mikrokontroler, sedangkan GND adalah pin ground. Pada pin VS ke GND dipasang sebuah kapasitor yang berfungsi untuk mencegah interferensi antara sinyal dari infra merah dan sinyal dari USB komputer. Pin PB4, PB5, Pb6 dan PB7 pada mikrokontroler digunakan untuk keluaran yang terhubung ke relay dan digunakan untuk mengendalikan lampu. Pada bagian pengendali lampu digunakan relay yang berfungsi untuk menyalakan atau mematikan lampu yang dikontrol dengan memberikan tegangan dan arus tertentu pada koilnya.
Perangkat lunak yang digunakan dalam perancangan alat ini adalah bahasa Assembler AVR sebagai firmware, driver untuk Windows dan bahasa Delphi untuk program pengendali dari pengguna. Perangkat lunak program utama adalah perangkat lunak yang berfungsi untuk mengatur pembacaan input dari komputer dan juga input dari remote. Pemrogram dilakukan menggunakan bahasa Assembler yang di-download kedalam mikrokontroler bersamaan dengan program firmware. Firmware dipakai untuk mengatur pengiriman dan penerimaan data antara USB dan alat. Program pengendali diimplementasikan menggunakan bahasa pemrograman Delphi 7. Program dibagi menjadi 2 bagian : program pengendali lampu melalui komputer dan program pengendali lampu melalui penekanan remote. Tampilan dari program pengendali seperti gambar di bawah ini:
hasil
Untuk pengujian dari alat ini, dapat dilakukan dengan dua cara yanitu pengujian keseluruhan melalui komputer dan pengujian melalui remote. Adapun perintah-perintah yang dilaksanankan dalam pengujian melalui komputer adalah sebagi berikut:
  • Menyalakan lampu secara bergantian. Percobaan dilakukan dengan cara memberi tanda cek pada pilihan lampu yang ingin dinyalakan. Jika “Lampu1” di beri tanda cek, maka lampu 1 akan dinyalakan, dan apabila dan apabila tanda cek dihilangkan maka lampu 1 akan mati, begitu juga dengan lampu 2, 3 dan 4. Dari percobaan ini tidak ditemui kendala yang berarti, artinya program dan rangkaian berjalan dengan baik ketika dieksekusi.
  • Menyalakan lampu berjalan. Percobaan ini dilakukan dengan cara menekan tombol “Start” padatampilan program dan kemudian lampu akan berjalan secara bergantian terus-menerus sampai tombol “Stop” di tekan, maka lampu akan berhenti. Pengujian ini berjalan dengan baik walaupun perintah dilakukan selama 3 jam.
Pengujian melalui remote dilakukan dengan cara menekan tombol-tombol remote yang sudah ditentukan yang akan menghasilkan keluaran nyala lampu yang berbeda-beda. Tabel di bawah adalah table dari tombol-tombol remote dengan macam fungsinya.
Tombol remote Kode Remote Fungsi
Tombol 1 128 Untuk menyalakan dan mematikan lampu 1
Tombol 2 129 Untuk menyalakan dan mematikan lampu 2
Tombol 3 130 Untuk menyalakan dan mematikan lampu 3
Tombol 4 131 Untuk menyalakan dan mematikan lampu 4
Tombol “Power” 149 Untuk menyalakan dan mematikan semua lampu
Tombol “Mute” 148 Untuk menyalakan dan mematikan lampu berjalan
Tombol “Program” 144(+), 145(-) Untuk menyalakan dan mematikan lampu  secara bergantian sesuai jumlah penekanan tombol
Tombol “Volume” 146(+), 147(-) Untuk menyalakan secara “volume”

Disadur dari Tugas Akhir Zainur Ridlo
Universitas Gadjah Mada Yogyakarta
Fakultas Matematika dan Ilmu Pengetahuan Alam
Jurusan Fisika Program Studi Elektronika dan Instrumentasi

1 komentar:

  1. list program assemly-ny mn gan? klo boleh shering tlong kirim k email saya dong kemaladewi09@gmail.com, saya masih dlm tahap belajar, terimakasih atas postingan ny, sangat membantu.. :)

    BalasHapus