回答:
一番簡単?グラブのArduinoをとPythonの数行を書きます。Arduinoはプログラミングが非常に簡単で、追加のハードウェアを使用する必要がないため、非常に人気があります。Pythonには非常に単純なシリアルライブラリがあり、簡単に記述できます。
サンプルコード
Python:このスクリプトをサービスとして実行します。私はUbuntuを使用しているため、このスクリプトはArduinoでボタンが押されたときに通知をポップアップします。
#! /usr/bin/python
import serial
import pynotify
ser = serial.Serial('/dev/ttyUSB0', 9600)
while True:
x = ser.read()
if x == 'b':
# Show notification
n = pynotify.Notification("Arduino", "The button was pressed.")
n.show()
Arduino:
void setup(){
// Assuming button is active low and on pin 4
pinMode(4, INPUT);
Serial.begin(9600);
}
void loop(){
if(digitalRead(4) == LOW){
Serial.print('b');
}
}
USBヒューマンインターフェイスデバイスクラスデバイスを構築します。これは、キーボード、マウス、ジョイスティック、ゲームパッドなどで使用されるものと同じクラスです。お使いのPCはすでにHIDデバイスのデバイスドライバーを完全にサポートしているため、ソフトウェアアクセスは簡単です。多くのポインターとサンプルコードさえもJan AxelsonのHID pageにあります。彼女のサイトを閲覧して、USBデバイス開発に関連する多くの良い情報を探してください。
小さなマイクロプロセッサファミリの多くは、HIDを実行できます。USB Low SpeedでATtiny 8ピンAVRを完全にソフトウェアで実行するのを見たことさえあります。
お好みのチップを選び、その「通常のリソース」でHIDサンプルを検索します。
別のアプローチは、シリアル通信デバイスを作成することです。FTDIのシングルチップソリューションがいくつか存在します。FT232Rは、人気のある選択肢です。ドライバーが必要ですが、Windows認定ドライバーはFound New Hardwareウィザードで認識されるため、インストールは難しくありません。インストールすると、COMポートのように見えるデバイスができます。GPIOピンにアクセスし、より高度なモードで使用できる代替ドライバーが利用可能です。
更新、2015年:これにはhttp://www.lvr.com/hidpage.htmへのリンクがありましたが、リンクが腐っていて、新しい場所がEl Marceのおかげで発見されたようです。JanのLakeview Researchは、USBの実際の使用に関する情報の素晴らしい情報源です。
これは、非常に詳細なブログ投稿http://msdn.microsoft.com/en-us/devlabs/dd491992で、5ドル未満のPIC18F4550を使用してUSB経由で標準のHIDデバイスとしてインターフェイスするソフトウェアを備えています。提供されるソフトウェアは、任意のHIDデバイスとのインターフェースに使用できるため、代替チップが必要な場合でもソフトウェアは動作します。
さらに、ブログの投稿では双方向通信の方法が示されているため、スイッチをインターフェイスできるだけでなく、LEDをオンまたはオフにできます。
Cortex-M3ベースのマイクロコントローラを気にしない場合は、NXPのLPC1343をご覧ください。Digikeyでわずか$ 6.30(1個)です。非常に便利な機能が1つあります-チップのROMにあるストレージとHIDデバイスのファームウェアです!
FTDIチップ+マイクロコントローラーを使用したソリューションと比較すると、チップが1つ少なくなります。