Pages

Pemrograman USB untuk mengendalikan lampu LED dengan VB

Jumat, 17 April 2015
Assalammualaikum… bagaimana kabar rekan2 semua? Semoga kesejahteraan selalu di limpahkan Tuhan kepada kita semua ^^ Nulis apa lagi ya sebagai pembukaannya ..hhmmm…ya udah langsung saja kalo gitu hehe
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 Converter
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;
  1. Komputer/Laptop yang ada port USB nya.
  2. Visual Basic NET (pada contoh ini digunakan Visual basic Express Ediotion 2005 dengan OS Windows 7)
  3. USB HID IO Converter
  4. 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
  1. Buka VB. Pada menu File, klik perintah New Project, lalu klik OK untuk membuat sebuah file executable standar. Simpanlah project dengan nama LED_Driver.
  2. Klik kontrol Label untuk membuat sebuah label yaitu untuk  Label1yang akan kita gunakan untuk menampilkan pesan.
  3. 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.
  4. Ubah property danukuran form agar seukuran kotak dialog sedang, seperti Gambar dibawah;

5.  Klik menu  ProjectAdd 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;
menambahkan objec hid

menambahkan objec hid-2
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;
menjalankan-1Pada 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;
menjalankan-2
Read more ...

Membuat Downloader USBasp

Kamis, 16 April 2015
Membuat Downloader USB
               Downloader atau programmer dalam dunia mikrokontroler dikenal sebagai alat yang dapat digunakan untuk mengisi (flashing) program ke dalam chip mikrokontroler. Downloader atau programmer merupakan alat atau tools wajib yang harus Anda miliki ketika ingin ngoprek mikrokontroler. Downloader mikrokontroler banyak jenisnya, tertantung  merek mikrokontroler apa yang Anda gunakan. Masing-masing pabrik mikrokontroler biasanya menjual programmernya secara terpisah. Anda dapat membelinya sesuai dengan chip mikrokontroler apa yang Anda gunakan. Downloader atau programmer mikrokontroler dapat juga dibuat sendiri. Banyak sekali rangkaian downloader mikrokontroler atau programer mikrokontroler yang dapat Anda lihat di internet. Salah satunya adalah downloader mikrokontroler AVR yang bernama USBasp. USBasp merupakan salah satu downloader mikrokontroler AVR yang sifatnya open source. Anda dapat mendownload rangkaiannya secara gratis. Anda juga dapat membuat sendiri rangkaian downloadernya tanpa harus membayar lisensi ke pembuat rangkaiannya.
                Sebagai referensi saya mengacu ke sumber website USBasp yang berada pada link berikut ini http://www.fischl.de/usbasp/   . Pada link tersebut banyak ditampilkan rangkaian pcb downloader yang sudah jadi. Jika Anda malas untuk membuat rangkaian pcbnya sendiri, Anda dapat mendownload dari link tersebut. Untuk membuat rangkaian downloader USBasp, Saya menggunakan software desain PCB gratis yaitu Cadsoft Eagle PCB. Software tersebut dapat Anda download pada link berikut ini http://www.cadsoftusa.com/. Berikut ini merupakan skematik rangkaian downloader yang telah saya buat. Klik pada gambar untuk melihat gambar dengan ukuran fullsize
 Pertama tama anda siapkan komponen seperti dibawah ini
  1. PCB polos
  2. Ferit Clorid
  3. Atmega 8 
  4. Crystal 12Mhz
  5. Soket Atmega 8 (28 pin)
  6. LED Green dan Red
  7. Resistor 10K, 100 Ohm, 270 Ohm, 1.5 K, dan  (Masing masing 4 buah)
  8. Capacitor 22pF , 100nF
  9. Pin Header
  10. Jumper
  11. USB tipe B
  12. Kaber USB tipe B to USB 
  13. Elco 10uF
 Di bawah ini adalah Gambar Schematic rangkaian usb downloader


 Gambar USB downloader yg akan di cetak di PCB polos


Pada rangkaian di atas di print dengan kertas kalender dan di gosokan ke papan PCB (ingat Printnya harus leser, jika tidak ada silahkan di print biasa dan di fotocopy memakai kertas kalender). Jika ingin data di atas silahkan download hasilnya dibawah ini.

Download Terlebih Dahulu Software Eagle 7.20
DOWNLOAD

Download Rangkaian di atas
DOWNLOAD


Lihat rangkaian dengan program eagle. Nama File RANGKEYAN.SCH
  1. buat rangkaian tersebut ke PCB, Pasang komponen dan solder (INGAT jangan sampai ada jalur yang tersambung).
  2. siapkan kabel usb, hati hati tertukar minimal VCC sama GND tidak nyambung.
  3. sekarang masukkan kabel usbnya.
  4. Ingat , ini baru percobaan, MIKRO ATMEGA 8 JANGAN DIMASUKKAN DULU KE SOKET JANGAN DULU.
  5. jika benar, akan muncul seperti ini.



            Sekarang Tinggal memprogram downloader tersebut, sebelum diprogram atur fuse bit downloader karna kita menggunakan Crystal 12Mhz. Saya akan gunakan downloader yg sudah jadi untuk menginjeck driver USBasp pada downloader yg di buat.

Siapkan Downloader yang sudah jadi

  • Hubungkan Downloader yang sudah jadi ke downloader yang baru dibuat, karna akan melakukan proses cloning / injeck driver USBasp. Kemudian sediakan USBASP (Downloader) yang lain untuk mendownload firmware ke atmega8. (Downloader tidak harus yang berbasis USBASP bisa yang lain asal kompatibel dengan MOSI,MISO,SCK dan reset mikrokontroler AVR).
  • Dengan cara ini membutuhkan dua downloader USBASP. yang satu sebagai 'USBASP' yang saya manfaatkan sebagai board target dan satunya lagi sebagai USBASP downloader.
  • Untuk membuat USBASP menjadi target board caranya adalah dengan menghubungkan jumper self programming (JP2)

  • Selanjutnya buka software downloader (khazama/avrdude/Extreme burner AVR dll ), DISINI saya menggunakan Khazama Avr Downloader.
  • Bagi yang belum punya silakan download disini.
  • Untuk mikrokontroler yang belum pernah diotak-atik fuse bitnya (masih menggunakan Frekuensi Osilator Internal) dapat membaca artikel tentang  Langkah Pengaturan Fusebit Atmega8.
  • Oke berikutnya saya anggap fusebit sudah diatur selanjutnya adalah copkan  koneksikan konektor USB (USBASP) pada PORT USB (ya iyalah emang mau kemana lagi. :D).
  • Saya anggap koneksi ke PC atau Laptop sudah lancar . cara ngetestnya adalah buka khazama AVR Programmer kemudian pilih command > read signature.

  • Jika ada permasalahan dalam koneksi maka akan muncul notifikasi berikut :
  •  Solusinya adalah :
  1. Cek kembali koneksi (kabel ke mikrokontroler target) 
  2. Jangan lupa untuk memberi supply tegangan ke mikrokontroler target.
  3. Jika permasalahan masih terjadi maka mungkin terjadi permasalahan pada saat  penginstalan driver
  4. Jika koneksi lancar maka akan muncul notifikasi seperti berikut.


  • Pengisian Driver USBasp telah sukses
  • Berikutnya adalah load firmware caranya
  1. Klik File
  2. Load flash to buffer
  3. Kemudian cari dimana firmware tersebut disimpan
  4. Setelah itu klik auto program
  5. Load Flash  
  6. Cari file.HEX
  7. Write Flas


  • Succesfully Writing Flash
  • Sampai disini telah berhasil mengisi firmware ke dalam mikrokontroler atmega8 . Untuk mencobanya apakah firmware yang anda isi telah berfungsi dengan baik, anda dapat mencobanya langsung diboard USBASP.

  • Lihat di device manager (start > Run > "devmgmt.msc") jika berfungsi dengan baik , maka USBASP akan tampil tanpa tanda seru.
  • USBASP sudah terinstall
Read more ...