終末ボタンまたはハードウェアホットキー



おそらく、読者のそれぞれは、彼がホットキーを欠いているという事実に直面しました。 最も一般的で単純な組み合わせはビジーであることが判明し、残りの組み合わせはボタンアコーディオンプレーヤーの敏a性を必要とします。 これは、キーの数が削減されるラップトップの場合に特に当てはまります。 特に、多数のマルチメディアキーが機能キーと組み合わされているMacbookの場合。

したがって、「プロジェクトの作成」アクションでは、別個のボタンが必要でした。 この考えは、ある日、660V 10Aのマシンのスタートボタンに出くわすまで、潜在意識のどこかにかなりの時間住んでいました。 Bluetooth経由でラップトップに接続する方法の詳細については、以下を参照してください。



まず、デバイスがワイヤレスであり、ドライバーのインストールが不要であることを望みました。

少し検索した後、私はSparkfun Bluesmirf HIDモデムをベースとして使用しました。







Bluegigaオプションもありましたが、 Sparkfun Webサイトで、他の必要なコンポーネントを購入してから、最初のコンポーネントで解決することもできます。 このモデムはワイヤレスキーボードとして定義され、UARTを介して制御できます。 コントロールの「頭脳」として、ATTiny2313コントローラーを使用することにしました。



必要なもののリスト:

•Bluesmirf HIDモデム

•ATTiny2313 +基板20ピン

•ブレッドボード11h16穴

•ISP AVRプログラマー、誰でもできます、安いです。

•FTDI TTLケーブル。 実際、これは通常のUSB-シリアルケーブルですが、出力電圧は5Vです。 このケーブルは、モデムのセットアップと制御コントローラーのデバッグに非常に必要です。

•利便性、デバッグ、およびアセンブリのために、すべてのコンポーネントはミニコネクタを介して接続されているため、オスヘッダー、直角、およびメスヘッダーをさらに2本のラインで切り離す必要があります。

•抵抗器-10 kOhm 2個、200オーム1個、コンデンサ-0.1 uF 1個、1個のLED。

•ISPプログラマー用のコネクタ



Bluesmirf HIDモデム



回線でモデムを使用するには、最初にモデムを構成する必要があります。 これを行うには、UARTを介して接続し、コマンドモードで必要な設定を設定する必要があります。

まず、デバイスがキーボードとして定義されるように、デバイスのHIDプロファイルを有効にする必要があります。 実際には、モデムには2つのプロファイルがあります-チップがHIDデバイスとして定義されている場合、本質的にはBluetoothとHIDを介したUART接続の複製であるSPPです。 キーボードまたはマウス。 バージョン6.10より前は、デフォルトでHIDプロファイルがロードされました-SPP。



そこで、FTDIケーブルをチップ端子に接続します:

Modem Pins Cable Pins VCC ------------ VCC GND ------------ GND TX-0 ----------- RX RX-1------------ TX RTS-0 ----+ | CTS-1 ----+
      
      







次に、お気に入りのターミナルプログラムをケーブルのCOMポートに接続します。これにはCoolTermを使用しました。

Mac OS Xでは、すべてのCOMポートのリストを取得するには、次のコマンドを実行します。

 ls /dev/tty.*
      
      







私のケーブルは/dev/tty.usbseria-AH019ML6として定義されていました

デフォルトのチップは115200の速度で機能し、残りの設定はフロー制御なし、データビット-8、パリティ-なし、ストップビット-1、キーエミュレーションの入力-CRです。 Local Echoを追加することをお勧めします。そうすると、端末は入力された文字を表示します。

コマンドモードに切り替えるには、最後に改行文字なしで$$$を入力する必要があります。 設定が正しく設定されている場合、チップはCMDを返します-これは、コマンドモードに切り替わったことを意味します。 これで、必要な設定を設定できます。

以下のコマンドはすべて改行で終わる必要があります。

•S〜、6-HIDプロファイルに切り替えます

•SU、96-速度を9600に変更

•SN、Doomsday Button-デバイス名をDoomsday Buttonに変更します

•SM、6-このコマンドの後、モデムは接続が失われた後に自動的に再接続します。

•R、1-モデムを再起動します



モデムを再起動した後、端末設定の速度も変更します。

現在、チップはキーボードとして定義されています。 これをコンピューターに接続し、ターミナルで文字を入力すると、対応するキーストロークがコンピューターで生成されます。 通常の印刷文字に加えて、モデムはさまざまなキーの組み合わせを生成できます。 これをターミナルで直接行うことはできません。これらの目的のために、COMポートに接続して遅延キーの組み合わせを起動するpythonスクリプトを作成しました。 別のプログラムへの切り替えを管理し、キーの組み合わせが正しいことを確認するには、遅延が必要です。 表示には、KeyViewRemap4MacBook EventViewerを使用しました。

スクリプトについては、 github.com / Nepherhotep / doomsday-buttonプロジェクトリポジトリのgithubリポジトリをご覧ください。



モデムを構成したら、制御ボードの組み立てに進みます。



制御モジュール



ATTiny2313ベースのモジュールは、同じUARTを介してモデムを制御します。

回路は比較的簡単です。以下に回路図を示します。







そのため、配線はありません。 回路は最終的に組み立て中に形成されました。



•VCC、GND、RX、TX(コントローラーのデータシートを参照)をUARTプラグに接続します

•MOSI、MISO、GND、VCC、SCK、RST-プログラマーコネクタへ、RSTから10 kOhmを介してVCCへ。

•デバッグLEDをコントローラーフット12(PB0)に接続し、200Ω抵抗を介してもう一方の出力をVCCに接続します。

•ボタンの1つのピンをコントローラーのフット6(INT0)に接続し、2番目のピンをGNDに接続します。 ボタンを押す「ガタガタ」を取り除くには、コンテナをそれに並行して接続することをお勧めします。 0.1マイクロファラッドを接続しました。これは、使用可能なコンデンサーでしたが、さらに多くのコンデンサーがあるためです。 容量がない場合、押されると、数回連続してクリックが生成されます。 VCCも10kΩ抵抗を介してピン6に接続する必要があります。



ISPとLEDを接続した後、リポジトリからproto / ledblinkプロジェクトでフラッシュすることにより、回路の動作をすぐに確認できます。



回路をコンパイルするには、make flashコマンドを実行する必要があります。 ファームウェアの場合、プログラマードライバーとavrdudeユーティリティが必要です。 ポピーにCrossPackパッケージを置くだけです。 また、Makefileの設定(モデルのusbtinyプログラマーなど)を変更する必要がある場合もあります。



UARTのパフォーマンスは、 www.getchip.net / posts / 078-proverka-modulya-uart-attiny2313-testovaya-proshivkaのファームウェアでコントローラーをフラッシュすることで確認できます。

githubリポジトリで、proto / uart_testで確認してください。 スクリプトwrite-fuses.shを実行してヒューズビットをフラッシュし、次にwrite_flash.shを実行してファームウェアをフラッシュします。 ボードをFTDIケーブルに接続します。

 VCC -- VCC GND -- GND RX -- TX TX -- RX
      
      







すべてが正常に機能する場合は、uart_attiny2313プロジェクトに進みます。 ファームウェアはこの原理に従って動作します。INT0レッグでロー信号を受信すると、コントローラーをスリープから復帰させる割り込みが作成され、fire_keypress関数が起動します。 この機能では、SHIFT + F10の文字の組み合わせがUARTに送信され、LEDが点灯/消灯します。



端末のボタンを押して目的の文字の組み合わせが表示される場合(私の場合はFE 02 02 42 FE 00、モデムのデータシートを参照)、これはボードをモデムに接続できることを意味します。 配線は、モデムをケーブルに接続するときと同じです。



次に、電源と電源ボタンを対応するコネクタに接続します。











今ではすべてをケースに入れることが残っています。







出来上がり! Doomsday Buttonの準備ができました! これをクリックすると、イベントが作成されます-SHIFT-F10。IdeaIDEのプロジェクトビルドチームに対応します。







最後に、ビデオの仕組み。



www.youtube.com/watch?v=JafRsrstjKw



All Articles