PyUSB 1.0 adalah library Python yang dibuat untuk memudahkan kita dalam mengakses port USB. Jika versi sebelum-sebelumnya library ini ditulis menggunakan bahasa C, maka tidak demikian halnya dengan PyUSB versi 1.0. PyUSB ditulis 100% menggunakan bahasa Python!
USB adalah protokol yang sangat rumit, akan tetapi dengan PyUSB, maka pemrograman USB terasa sangat sederhana. ๐
Untuk membuktikan betapa mudahnya menggunakan library PyUSB 1.0, berikut adalah skrip ringan yang hanya terdiri dari beberapa baris saja yang bertujuan untuk mengontrol relay-relay yang ada pada modul USB-2REL.
Program pengontrolan modul USB-2REL menggunakan Python ini sangat berbeda dengan program kontrol USB-2REL versi Delphi, Lazarus, dan VB.NET. Ketiga versi program tersebut HANYA memanggil program USB2R.EXE untuk mengontrol USB-2REL. Adapun versi Python ini langsung berkomunikasi dengan USB-2REL seperti halnya pada program kontrol versi C.
Semakin menarik, bukan? Namun sebelum dapat menggunakan PyUSB, kita harus melakukan instalasi terlebih dahulu. Pertama-tama, download PyUSB dari situsnya. Pada eksperimen ini saya menggunakan PyUSB-1.0.0a3.
Setelah download, ekstraksi file pyusb-1.0.0a3.zip dan eksekusi file setup.py menggunakan console dengan perintah:
python setup.py install
Berikut adalah screenshot instalasi PyUSB 1.0 pada komputer saya.
Pada komputer saya, Python 2.5 terinstalasi pada direktori C:\Python25, oleh karenanya digunakan perintah:
c:\python25\python setup.py install
Selanjutnya, kita dapat menguji PyUSB dengan modul driver relay USB-2REL. Berikut adalah screenshot eksperimen yang saya lakukan dalam Python Shell.
Perintah import usb.core berfungsi meng-import fungsi-fungsi yang terdapat pada modul usb.core agar selanjutnya dapat kita gunakan dalam program.
Perintah usb2rel = usb.core.find(idVendor=5824, idProduct=1500) berfungsi untuk mendapatkan handle untuk modul USB-2REL. Melalui handle inilah nantinya program akan berkomunikasi dengan modul USB-2REL. Perintah ini secara spesifik mencari piranti USB dengan idVendor=5824 dan idProduct=1500. Jika terdapat lebih dari satu piranti USB dengan ID yang sama, maka piranti yang pertamalah yang digunakan.
Catatan: idVendor dan idProduct yang digunakan adalah ID gratisan yang diberikan oleh OBDEV.COM pada program freeware V-USB. Oleh karenanya ID USB-2REL akan sama dengan piranti USB lain yang dibuat dengan V-USB. Contoh yang populer adalah USBASP.
Fungsi usb.core.find() akan mengembalikan nilai None jika tidak menemukan piranti USB yang dimaksud, dan akan mengembalikan sebuah alamat handle/object jika berhasil menemukan piranti USB dengan ID yang cocok. Pada eksperimen ini USB-2REL ditemukan dengan alamat 0x00BD2070.
Perintah selanjutnya adalah usb2rel.ctrl_transfer(0x40, 1, 1, 1, None) yang berfungsi untuk mengaktifkan RELAY-1.
Dan perintah usb2rel.ctrl_transfer(0x40, 1, 0, 1, None) berfungsi untuk mematikan RELAY-1.
Perintah yang sama berlaku juga untuk RELAY-2 namun dengan parameter yang berbeda. Berikut adalah perintah untuk mengaktifkan RELAY-2 dan mematikan RELAY-2.
usb2rel.ctrl_transfer(0x40, 1, 1, 2, None) # RELAY-2 ON
usb2rel.ctrl_transfer(0x40, 1, 0, 2, None) # RELAY-2 OFF
usb2rel.ctrl_transfer(0x40, 2, 0, 0, None) # ALL RELAYS ON
usb2rel.ctrl_transfer(0x40, 3, 0, 0, None) # ALL RELAYS OFF
Untuk melengkapi eksperimen ini, berikut adalah skrip Python yang akan mengaktifkan dan mematikan kedua relay USB-2REL secara bersamaan dengan interval 1 detikan sebanyak 10 kali.
#——————————————————————————-
# Name: USB-2REL.py
# Purpose: TESTING PyUSB – USB2REL
# Author: Chandra MDE
# Created: 13/04/2013 (c) Chandra MDE 2013
#——————————————————————————-
import usb.core
import time
def main():
usb2rel = usb.core.find(idVendor=5824, idProduct=1500)
if usb2rel == None:
print "USB-2REL tidak ditemukan!"
exit
else:
for i in range(1, 11):
print โPerulangan ke-โ, i
usb2rel.ctrl_transfer(0x40, 2, 0, 0, None) #ALL ON
time.sleep(1) #tunda 1 detik
usb2rel.ctrl_transfer(0x40, 3, 0, 0, None) #ALL OFF
time.sleep(1) #tunda 1 detik
if __name__ == ‘__main__’:
main()
Untuk IDE Python, saya menggunakan PyScripter 2.4.3.0 yang muantab! ๐
Demikian sedikit informasi yang dapat saya berikan, semoga bermanfaat.
Jika Anda berminat dengan modul driver relay USB-2REL, silakan mengunjungi situs kami di: http://teknikelektrolinks.com untuk mengetahui informasi harga dan pemesanan.
Selamat belajar dan selamat berkarya!
๐
mantab mas,, bermanfaat sekali.. ๐
referensi tentang USB 2 REL ini ada bukunya bg chandra…?