Translate

Mengakses Mouse Dengan Mikrokontroller

Mengakses Mouse Dengan Mikrokontroller


         Pada penjelasan kali ini akan dibahas mengenai bagaimana cara mengakses mouse komputer dengan mikrokontroller, alat ini menggunakan mikrokontroller ATMega16 yang difungsikan untuk mengolah data dan clock yang ada pada mouse, namun yang harus diperhatikan yaitu pada device mouse yang digunakan, mouse yang dipakai yaitu mouse yang menggunakan port PS/2 sebagai konektornya, Gambar 6.48a adalah contoh alat dengan komunikasi mouse komputer.

        Alat ini hanya membaca koordinat pergerakan mouse X dan Y atau bahasa lainnya maju-mundur dan kanan-kiri, tidak hanya itu pada mouse juga terdapat fitur klik kanan, klik kiri dan klik tengah, itu pun juga akan ditampilkan pada layar LCD 16x2 mikrokontroller, jadi jika tombol klik kanan ditekan maka akan menampilkan tulisan “klik kanan” begitu pulan dengan tombol kiri dan tengah.

 
Mouse / 3D Optical Mouse
                   Mouse pada alat ini adalah device yang sangat menentukan, mouse yang digunakan adalah mouse jadul (jaman dulu) buatan lama jadi kalau mouse yang buatan baru dimungkinkan tidak bisa berjalan dan yang perlu diperhatikan yaitu mouse ini berlabel “3D Optical Mouse” ini dikarenakan pada saat mencoba mouse yang berlabel “Optical Mouse” tidak bisa berjalan seperti yang terjadi pada mouse yang berlabel “3D Optical Mouse”, berikut adalah informasi dan bentuk mouse yang digunakan seperti Gambar  berikut


      
           Untuk menghubungkan device mouse / 3D Optical Mouse dengan mikrokontroller menggunakan 4 buah kabel yaitu Vcc, Gnd, Data dan Clock, memang hanya 4 buah jalur saja dan 2 diantaranya adalah jalur powet Vcc dan Gnd. Untuk jalur clock di hubungkan ke PortD.6 dan untuk data dihubungkan ke PortD.7, berikut penjelasan lengkapnya seperti Gambar 6.48c berikut

 
 

Program Bascom AVR
$regfile = "m16def.dat"
$crystal = 12000000

Config Portd.6 = Input
Config Portd.7 = Input
Ddrd.6 = 0
Ddrd.7 = 0
Clock_m Alias Pind.6
Data_m Alias Pind.7

Dim Frek As Byte
Dim Datamouse As Byte

Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2

Dim S As String * 12
Dim Datahost As Byte
Dim Pariti As Bit
Dim Hasil As Byte
Dim Hasil1 As Byte
Dim Hasil2 As Byte
Dim Hasil3 As Byte
Dim Hasil4 As Byte
Dim Hasil5 As Byte
Dim Ulang As Byte
Dim Sumbux As Integer
Dim Sumbuy As Integer
Dim Perubah As Integer

Cls
Cursor Off

Locate 1 , 1
Lcd "uji mouse"
Wait 1

Cls
Cursor Off


 Frek = 0
   Do
     Waitus 5
     Frek = Frek + 1
     If Clock_m = 0 Then
        Frek = 0
     End If
   Loop Until Frek > 250

   Gosub Baca8bit
   Hasil1 = Hasil

   Gosub Baca8bit
   Hasil2 = Hasil
   Waitms 500

   Datahost = &HFF
   Gosub Kirimdrhost

   Gosub Baca8bit
   Hasil1 = Hasil

   Gosub Baca8bit
   Hasil2 = Hasil

   Gosub Baca8bit
   Hasil3 = Hasil
   Waitms 500

   Datahost = &HEA
   Gosub Kirimdrhost
   Gosub Baca8bit
   Hasil1 = Hasil
   Waitms 500

   Datahost = &HF4
   Gosub Kirimdrhost
   Gosub Baca8bit
   Hasil1 = Hasil
   Sumbux = 0
   Sumbuy = 0
   Waitms 500

Do
  Frek = 0
   Do
     Waitus 5
     Frek = Frek + 1
     If Clock_m = 0 Then
        Frek = 0
     End If
   Loop Until Frek > 250

   Gosub Baca8bit
   Hasil1 = Hasil
   Gosub Baca8bit
   Hasil2 = Hasil
   Gosub Baca8bit
   Hasil3 = Hasil
   Gosub Baca8bit
   Hasil4 = Hasil
   Gosub Baca8bit
   Hasil5 = Hasil

   If Hasil1.4 = 1 Then
      Perubah = 255 - Hasil2
      Perubah = Perubah * -1
   Else
      Perubah = Hasil2
   End If

   Sumbux = Sumbux + Perubah

   If Sumbux < 0 Then
      Sumbux = 0          
     ‘koordinal minimal X, bisa dirubah
   End If

   If Sumbux > 1000 Then
      Sumbux = 1000       
    ‘koordinat maksimal X, bisa dirubah
   End If

   If Hasil1.5 = 1 Then
      Perubah = 255 - Hasil3
      Perubah = Perubah * -1
   Else
      Perubah = Hasil3
   End If

   Sumbuy = Sumbuy + Perubah

   If Sumbuy < 0 Then
      Sumbuy = 0           
    ‘koordinat Y minimal, bisa dirubah
   End If

   If Sumbuy > 1000 Then
      Sumbuy = 1000       
    ‘koordinat Y maksimal, bisa dirubah
   End If


   Locate 1 , 1
   If Hasil1.0 = 1 Then
     Lcd "Klik Kiri  "
   Elseif Hasil1.1 = 1 Then
     Lcd "Klik Kanan "
   Elseif Hasil1.2 = 1 Then
     Lcd "Klik Tengah   "
   Else
      Lcd "               "
   End If

   Locate 2 , 1
      Lcd "X=" ; Sumbux ; "   "
   Locate 2 , 8
      Lcd "Y=" ; Sumbuy ; "   "

Loop



Baca8bit:
   Bitwait Clock_m , Reset
   Bitwait Clock_m , Set
   For Ulang = 0 To 7
      Bitwait Clock_m , Reset
      Hasil.ulang = Data_m
      Bitwait Clock_m , Set
   Next
   Bitwait Clock_m , Reset
   Bitwait Clock_m , Set
   Bitwait Clock_m , Reset
   Bitwait Clock_m , Set
Return


Kirimdrhost:
   Pariti = 1
   For Ulang = 0 To 7
      If Datahost.ulang = 1 Then
        Pariti = Not Pariti
      End If
   Next
   Ddrd.6 = 1
   Portd.6 = 0
   Waitus 80
   Portd.6 = 1
   Ddrd.6 = 0

   Ddrd.7 = 1
   Portd.7 = 0
   Bitwait Clock_m , Reset
   Bitwait Clock_m , Set
   For Ulang = 0 To 7
      Portd.7 = Datahost.ulang
      Bitwait Clock_m , Reset
      Bitwait Clock_m , Set
   Next
   Portd.7 = Pariti
   Bitwait Clock_m , Reset
   Bitwait Clock_m , Set
   Portd.7 = 1
   Bitwait Clock_m , Reset
   Bitwait Clock_m , Set
   Ddrd.7 = 0
Return

End



Cara Penggunaan Alat
                   Cara penggunaan alat ini langkah awal yaitu memberikan teganagn 12 volt atau 9 volt dc untuk power minimum sistem kemudian akan LCD akan menyala, setelah itu gerakkan mouse ke kanan-kiri dan atas-bawah maka akan tertulis koordinat dari posisi mouse tersebut dan juga tekan tombol yang ada pada mouse seperti klik kanan, kiri dan tengah maka terdapat tulisan terkait dengan tombol yang ditekan.












No comments:

Post a Comment