Pada kesempatan
ini kita akan mencoba membuat program sederhana untuk mengendalikan
(ON/OFF) lampu LED melalui port USB. Sebagai mana komputer/laptop
sekarang banyak yang sudah menghilangkan port paralel dan port
serialnya, sebagai gantinya terpasang beberapa port USB.
Lupakan dahulu tentang specifikasi, protokol dan driver USB, kita
langsung saja semudah mungkin bisa menghidupkan dan mematikan lampu LED
melalui port USB. Biasanya setelah praktek bisa menghidupkan LED akan
lebih mudah untuk mempelajari lebih lanjut. Ini merupakan contoh yang
sangat sederhana sehingga mudah untuk diterapkan bagi pemula sekalipun.
Untuk mengotrol LED melalui port USB kita membutuhkan konverter yang
bisa menerjemahkan protokol serial USB menjadi logika high low seperti
yang kita inginkan. Kita tidak bisa menggunakan port USB ini langsung
berlogika high atau low seperti port paralel, kita membutuhkan konverter
yang menerjemahkan protokol USB ke logika high-low.
Di internet di jual bermacam-macam konverter ini, misal konverter USB
ke serial yang cukup terkenal dari FTDI. Untuk pemograman LED ini kita
akan mengunakan USB I/O Converter dari http://www.satu-microelectronics.com
yaitu USB HID IO Converter yang berupakan USB HID yang tidak memerlukan
driver tersendiri, ini seperti Mouse dan Keyboard USB yang tinggal
colok dan langsung bisa digunakan. USB HID IO Converter merupakan konverter USB ke 8 bit
IO, I2C, SPI dan ADC. USB konverter ini adalah USB kelas HID (Human
Interface Device) sehingga tidak memerlukan instalasi driver USB baik di
sistem operasi Windows XP maupun Windows 7. Sistem operasi tersebut
sudah menyediakan drivernya yang tentunya memudahkan kita dalam
menggunakannya. Sistem operasi lain seperti MAC, Android dan LINUX pun
juga sudah menyediakan driver untuk USB kelas HID sehingga USB HID IO
Converterini juga bisa di gunakan pada sistim operasi tersebut.
Berikut penampakannya;
USB HID IO ConverterUSB ini bisa kita dapatkan di : http://www.satu-microelectronics.com/?p=22
Dan berikut fungsi2 yang didukungnya; Berikut adalah tool dan alat yang harus kita persiapkan untuk praktek ini;
Komputer/Laptop yang ada port USB nya.
Visual Basic NET (pada contoh ini digunakan Visual basic Express Ediotion 2005 dengan OS Windows 7)
USB HID IO Converter
Lampu LED , resistor 1K Ohm (jika tidak ada maka bisa dilangsungkan
saja) dan kabel untuk menyambungkan kaki LED ke terminal USB HID IO
Converter.
Langkah-langkah pemograman:
1. Sambungkan LED ke kaki2 USB HID IO Converter seperti gambar berikut;
Setelah rangkaian LED telah dibuat, maka sekarang adalah pembuatan
program yang digunakan untuk mengontrol LED tersebut. File source
code-nya dapat di download disini : http://www.satu-microelectronics.com/attach_file/VB.NET%20LED%20Driver.zip
Buka VB. Pada menu File, klik perintah New Project, lalu klik OK
untuk membuat sebuah file executable standar. Simpanlah project dengan
nama LED_Driver.
Klik kontrol Label untuk membuat sebuah label yaitu untuk Label1yang akan kita gunakan untuk menampilkan pesan.
Buat delapan buah kotak check box. Lihat gambar diatas untuk lokasi
penempatan objek. Kotak -kotak check box tersebut nantinya akan
menjadi status dari LED yang akan kita kontrol.
Ubah property danukuran form agar seukuran kotak dialog sedang, seperti Gambar dibawah;
5. Klik menu ProjectAdd Referencedan tambahkan HID_IOConverter_NET.dllseperti gambar dibawah. (Copykan file HID_IOConverter_NET.dll pada folder project terlebih dahulu)
6. Buka ViewCode dan tambahkan code jika ada yang kurang sebagai berikut; Option Explicit On Imports Microsoft.Win32.SafeHandles Imports System.Runtime.InteropServices Imports HID_IOConverter_NET
7. Tambahkan object class HID_IOConverter_Function dan tambahkan code untuk event Form1_Load berikut; Dim iHandle As SafeFileHandle Dim HIDi As New HID_IOConverter_NET.HID_IOConverter_Function Dim Returns As Long Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load iHandle = HIDi.Hid_OpenDevice If Not iHandle.IsInvalid Then Returns = HIDi.GPIO_DDR_Out(iHandle, &HFF) Returns = HIDi.GPIO_Port_Out(iHandle, &H0) Else Label1.Text = “USB HIDClass<->IOConverter tidak terkoneksi… ” _ & “Koneksikan USB HIDClass<->IOConverter trlebih dahulu,” _ & “kemudian buka kembali program ini….” End If End Sub
Berikut print screen-nya;
Prosedur ini akan berjalan pertama kali ketika program dijalankan.
Program akan mencoba mencari USB HIDClass<->IOConverter melalui
fungsi Hid_OpenDevice dan handle dari USB ini akan kita simpan pada
iHandle, jika berhasil maka akan di kirim perintah GPIO_DDR_Out(iHandle,
&HFF) ke USB HIDClass<->IOConverter untuk memnuat 8 bit port
IO-nya sebagai output semua, kemudian mengirim perintah
GPIO_Port_Out(iHandle, 0) yang akan membuat ouput GPIO berlogika low
(LED mati semua) saat awal program. Jika USB
HIDClass<->IOConverter tidak ditemukan maka akan di tampilan pesan
pada Label1 bahwa USB HIDClass<->IOConverter tidak terkoneksi.
8. Ketikkan kode program berikut ini pada even CheckBox1_CheckedChanged sampai CheckBox8_CheckedChanged Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged If CheckBox1.Checked Then HIDi.Set_Bit(iHandle, HID_IOConverter_Function.GPIO_Port0) Else HIDi.Clear_Bit(iHandle, HID_IOConverter_Function.GPIO_Port0) End If End Sub
Setiap kali terjadi peng-klik-an pada CheckBox1 maka LED pada port IO USB HIDClass<->IOConverter akan ON dan OFF.
9. Selesai sudah pembuatan program LED Driver. :) Menjalankan Program USB HID – LED Driver
Sekarang kita siap menjalankan program LED Driver. Tancapkan USB
HIDClass<->IOConverter pada komputer, kemudian klik tombol Start
pada Toolbar, maka jika tidak ada kesalahan akan muncul seperti Gambar
berikut; Pada
awal program, LED akan OFF semua. Peng-klik-an pada CheckBox LED0 –
LED7 akan menyalakan LED, peng-klik-an selanjutnya akan mematikan
kembali LED.
Berikut penampakan alatnya;