Teknik Elektro LinksBarrier-Gate & Turnstile Interface, Thermostat, Relay Driver, Microcontroler Board

USB-2KEY – Modul Input USB Dengan Dua Buah Tombol

Gambar di bawah ini adalah modul USB-2KEY, yakni modul interface USB yang memiliki 2 buah tombol sebagai input. Modul USB-2KEY bekerja sebagaimana keyboard. Jika tombol merah ditekan, maka modul akan mengirimkan karakter ‘M’ seperti layaknya tombol karakter ‘M’ ditekan pada keyboard Anda. Dan jika tombol hijau ditekan, maka modul akan mengirimkan karakter ‘H’.

usb-2key_640Dengan demikian, untuk membaca penekanan tombol merah atau hijau sangatlah mudah. Kita bisa menggunakan fungsi baca input keyboard pada bahasa pemrograman apapun. Berikutnya saya akan berikan sebuah contoh program antarmuka USB-2KEY yang saya buat menggunakan bahasa BASIC.

Contoh Program USB-2KEY

Program saya buat menggunakan kompiler PowerBASIC versi console. Berikut adalah listing programnya.

' Program testing modul USB-2KEY
' Chandra MDE
' USBINOV - Low-Speed USB Control & Sensing
' www.usbinov.com

FUNCTION PBMAIN() AS LONG

   PRINT "Testing modul USB-2KEY"
   PRINT "USBINOV - Low-Speed USB Control & Sensing"
   PRINT "www.usbinov.com" : PRINT 
   PRINT "Tancapkan USB-2KEY ke port USB dan tekan tombol merah/hijau."
   PRINT "Tekan q untuk selesai." : PRINT

   DO
      i$ = WAITKEY$ 'tunggu ada tombol merah/hijau ditekan
 
      IF LEN(i$) = 1 THEN
         IF i$="M" THEN
            PRINT "Tombol Merah ditekan."
         ELSEIF i$="H" THEN
            PRINT "Tombol Hijau ditekan."
         ELSEIF i$ = "q" THEN
            PRINT "Selesai."
            EXIT DO
         END IF
      END IF
   LOOP

END FUNCTION

Singkat saja, bukan? Dan berikut ini adalah screenshot program ketika dijalankan.

usb2key_basic

Program menggunakan fungsi WAITKEY$ untuk mendeteksi penekanan tombol keyboard. Karena USB-2KEY juga bekerja seperti sebuah keyboard, maka ketika tombol merah/hijau ditekan maka fungsi WAITKEY$ akan mengembalikan nilai karakter ‘M’ atau ‘H’.

Contoh Program Versi C GUI

Untuk versi ini, saya menggunakan kompiler C For Windows Pelles C versi 7.0. Kompiler ini gratis dan masih aktif dikembangkan. Versi terakhir adalah versi 8.0 yang hanya mendukung Windows Vista/7/8 dan seterusnya. Untuk WindowsXP, saya sarankan untuk menggunakan Pelles C versi 7.0.

Nah, berikut adalah tampilan screenshot program antarmuka USB-2KEY versi C dan listing programnya.

usb2key_pellesc

Listing Program USB-2KEY Versi C GUI

#define WIN32_LEAN_AND_MEAN

#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <tchar.h>
#include "main.h"

#define NELEMS(a) (sizeof(a) / sizeof((a)[0]))

static INT_PTR CALLBACK MainDlgProc(HWND, UINT, WPARAM, LPARAM);
static HANDLE ghInstance;

int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
 INITCOMMONCONTROLSEX icc;
 WNDCLASSEX wcx;

 ghInstance = hInstance;

 icc.dwSize = sizeof(icc);
 icc.dwICC = ICC_WIN95_CLASSES /*|ICC_COOL_CLASSES|ICC_DATE_CLASSES|ICC_PAGESCROLLER_CLASS|ICC_USEREX_CLASSES|... */;
 InitCommonControlsEx(&icc);

 /* Get system dialog information */
 wcx.cbSize = sizeof(wcx);
 if (!GetClassInfoEx(NULL, MAKEINTRESOURCE(32770), &wcx))
 return 0;

 /* Add our own stuff */
 wcx.hInstance = hInstance;
 wcx.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDR_ICO_MAIN));
 wcx.lpszClassName = _T("usb2keyClass");
 if (!RegisterClassEx(&wcx))
 return 0;

 HWND hwnd = CreateDialog(hInstance, MAKEINTRESOURCE(DLG_MAIN), NULL, (DLGPROC)MainDlgProc);
 ShowWindow(hwnd, SW_SHOW);

 MSG msg;
 while (GetMessage(&msg, NULL, 0, 0))
 {
 if (msg.message==WM_CHAR)
 {
 SendMessage(hwnd, msg.message, msg.wParam, msg.lParam);
 }
 TranslateMessage(&msg);
 DispatchMessage(&msg);
 }

 return FALSE;
}

/****************************************************************************
 * Function: MainDlgProc *
 * Purpose : Process messages for the Main dialog. *
 ****************************************************************************/

static INT_PTR CALLBACK MainDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
 switch (uMsg)
 {
 case WM_CHAR:
 if (wParam=='M')
 {
 SetDlgItemText(hwndDlg, ID_EDIT1, "Tombol Merah ditekan.");
 }
 else if (wParam=='H')
 SetDlgItemText(hwndDlg, ID_EDIT1, "Tombol Hijau ditekan.");
 return TRUE;

 case WM_COMMAND:
 switch (GET_WM_COMMAND_ID(wParam, lParam))
 {
 case IDOK:
 PostQuitMessage(0); 
 return TRUE;
 }
 break;

 case WM_CLOSE:
 PostQuitMessage(0);
 return TRUE;
 }

 return FALSE;
}

Program versi C ini mendeteksi pesan WM_CHAR untuk mengetahui adanya penekanan tombol yang ditekan. Jika tombol merah ditekan, maka program akan menampilkan tulisan “Tombol Merah ditekan.” pada komponen edit. Dan jika tombol hijau ditekan, maka program akan menampilkan tulisan “Tombol Hijau ditekan.”.

Contoh Program USB-2KEY Versi Pascal

Program versi Pascal ini saya buat menggunakan Lazarus 1.6 dengan kompiler FreePascal FPC 3.0. Program ini mirip dengan program versi C di atas. Untuk membuat program yang mirip menggunakan Lazarus jauh lebih mudah. Kita cukup mengaktifkan property KeyPreview=TRUE dan mengisi rutin untuk event OnKeypress dengan kode program berikut ini:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
  if Key='M' then
    Edit1.Text:= 'Tombol Merah ditekan.'
  else if Key='H' then
    Edit1.Text:= 'Tombol Hijau ditekan.';
end;

Sangat mudah dibanding versi C. Berikut adalah screenshot program antarmuka USB-2KEY versi Lazarus dengan listing program selengkapnya.

usb2key_pascal

Listing Program USB-2KEY Versi Pascal

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Windows;

type
 { TForm1 }

 TForm1 = class(TForm)
 Button1: TButton;
 Edit1: TEdit;
 Label1: TLabel;
 Label2: TLabel;
 procedure Button1Click(Sender: TObject);
 procedure FormKeyPress(Sender: TObject; var Key: char);
 private
 { private declarations }
 public
 { public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
 Close;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
begin
 if Key='M' then
 Edit1.Text:= 'Tombol Merah ditekan.'
 else if Key='H' then
 Edit1.Text:= 'Tombol Hijau ditekan.';
end;

end.

Nah, dengan 3 contoh program di atas, semoga dapat memberikan gambaran betapa mudahnya membuat program antarmuka untuk modul USB-2KEY.

Video Demo USB-2KEY (USB-2BTN)

Video demo ini tanpa pemrograman, demo menggunakan program Notepad untuk menampilkan karakter ‘M’ atau ‘H’ ketika tombol merah/hijau pada modul ditekan. Berikut adalah link videonya.

usb2btn_vid

Link:

https://www.facebook.com/teknikelektrolinks/videos/1385838238156406/

Aplikasi USB-2KEY

USB-2KEY dapat diaplikasikan pada sistem berbasis komputer atau minikomputer seperti Raspberry Pi yang membutuhkan modul sederhana sebagai pengganti keyboard untuk mengoperasikan sistem. Contoh aplikasi USB-2KEY adalah sebagai tombol input pada sistem informasi survey kepuasan pelanggan. Contoh apliakasi USB-2KEY yang lain adalah sebagai input pada sistem POS (Point Of Service).

Kelebihan USB-2KEY

Modul USB-2KEY praktis dan mudah digunakan. Dengan koneksi USB HID Keyboard, maka modul dapat langsung dikenali oleh sistem operasi tanpa perlu melakukan instalasi driver. Berikut adalah screenshot Device Manager yang mengenali modul USB-2KEY sebagai  HID Keyboard Device.

usb2key_dm

USBINOV – Low-Speed USB Control & Sensing

USBINOV menerima pemesanan modul USB-KEY dengan jumlah tombol yang sesuai dengan kebutuhan aplikasi Anda. Silakan menghubungi kami melalui email ke: info at usbinov dot com.

Selamat berkarya.

 

 

Add a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>