手の中に収まるスイッチインターフェース プログラム改良2

障碍者

2~3年前に作った安価なマイコンボード「Digispark」で作ったスイッチ1個だけのスイッチインターフェース用のプログラムと、1個のデジタルセンサ用のプログラムを、新たに数種類追加しました。久しぶりにArduino系 を触ったので、環境構築からやり直しました。ほぼ、自分のための備忘録です。

デバイスドライバーと書き込みの準備

(1)【GitHub】DigistumpArduino から「micronucleus-2.0a4-win.zip」をダウンロードし展開(解凍)する。
(2) DPimst.exe を実行して、デバイスドライバーをインストールする。
(3) デバイスマネージャーで、Digispark をUSBケーブルで接続した後に、[libusb-win32 Usb Devices] [Digispark Bootloader] があることを確認する。
(4)書き込みに使用する「micronucleus.exe」以外のファイルを、フォルダ「micronucleus-***」内から消す。

開発環境構築

 プログラムを修正するのでなければ、この作業は必要ないです。

(1)Software | Arduino から、「Arduino IDE 2.0.4」をダウンロードし、インストールする。
(2)[ファイル] [基本設定] "追加のボードマネージャのURL"
http://digistump.com/package_digistump_index.json
(3)[ツール] [ボード] [ボードマネージャ] [Digistump AVR Boards by Digistump 1.6.7] [インストール]
(4)[ツール] [ボード] "Digispark (Default - 16.5mhz)"
(5)書き込み装置に「Micronucleus」を選択する
(6)IDEのUI上で書き込み操作を実行後、USBにdigispark を差し込む

モーメンタリースイッチ用プログラム

 Digispark のP0に接続されたスイッチを押すと、以下のアクションをするプログラムを作成しました。新たに4種類を追加しました。SwitchToX_230409.zip

長押し有効

 キーボードの場合は、長押しするとオートリピート機能で複数のキーの入力になります。マウスの場合は、ダブルクリックやドラッグができます。
 iOSのスイッチコントロールで、ボタンを短く押した時と長く押した時で別の機能を割り当てたい場合にも使えます。

プログラム名機能
SwitchToSpaceSpaceキーのコードが送られます。
SwitchToEnterEnterキーのコードが送られます。
SwitchToShiftNShift+Nキーのコードが送られます。
SwitchToClickマウスの左ボタンを押します。ダブルクリック、ドラッグできます。
SwitchToRightClickマウスの右ボタンを押します。ダブルクリック、ドラッグできます。

長押し無効

 短く押そうとして長押しになってしまう人にとって、長く押してしまっても長押しにならない方が好都合な場合もあります。

プログラム名機能
SwitchToSpaceOneSpaceキーのコードが送られます。
SwitchToEnterOneEnterキーのコードが送られます。
SwitchToShiftNOneShift+Nキーのコードが送られます。
SwitchToClickSingleマウスの左ボタンをシングルクリックします。
SwitchToRightClickSingleマウスの右ボタンをシングルクリックします。
SwitchToClickDoubleマウスの左ボタンをダブルクリックします

デジタルセンサー用プログラム

 Digispark のP2に接続されたデジタルセンサーを操作すると、以下のアクションをするプログラムを作成しました。新たに5種類を追加しました。DigitalToX_230409.zip

長押し有効

  キーボードの場合は、長押しするとオートリピート機能で複数のキーの入力になります。マウスの場合は、ダブルクリックやドラッグができます。
 iOSのスイッチコントロールで、ボタンを短く押した時と長く押した時で別の機能を割り当てたい場合にも使えます。

プログラム名機能
DigitalToSpaceSpaceキーのコードが送られます。
DigitalToEnterEnterキーのコードが送られます。
DigitalToShiftNShift+Nキーのコードが送られます。
DigitalToClickマウスの左ボタンを押します。ダブルクリック、ドラッグできます。
DigitalToRightClickマウスの右ボタンを押します。ダブルクリック、ドラッグできます。

長押し無効

 短く押そうとして長押しになってしまう人にとって、長く押してしまっても長押しにならない方が好都合な場合もあります。

プログラム名機能
DigitalToSpaceFallHIGH→LOWの瞬間に、Spaceキーを短く押します。
DigitalToSpaceRiseLOW→HIGHの瞬間に、Spaceキーを短く押します
DigitalToEnterFallHIGH→LOWの瞬間に、Enterキーを短く押します。
DigitalToEnterRiseLOW→HIGHの瞬間に、Enterキーを短く押します。
DigitalToShiftNFallHIGH→LOWの瞬間に、Shift+Nキーのコードが送られます。
DigitalToShiftNRiseLOW→HIGHの瞬間に、Shift+Nキーのコードが送られます。
DigitalToClickSingleマウスの左ボタンをシングルクリックします。
DigitalToRightClickSingleマウスの右ボタンをシングルクリックします。
DigitalToClickDoubleマウスの左ボタンをダブルクリックします

プログラムの書き込み

(1) SwitchToX_230409.zip あるいは DigitalToX_230409.zip をダウンロードして展開(解凍)する。
(2) 先に準備をした[micronucleus-***] の中に、展開したフォルダを移動する。
(3) 使いたいプログラムのhexデータ(***.ino.hex)を”upload.bat” の上に、ドラック&ドロップする。
(4)"Please plug in the device …"と表示されたら、Digispark とPCをUSBケーブルで繋ぐ。

詳しくは、Digisparkにプログラムを書き込む

連載

【まほろば】手の中に収まるスイッチインターフェース
手の中に収まる1個のスイッチだけのガジェットを、自作キーボードでは良く使われている安価なマイコンボード'Digispark'で作りました。押すとSPACEキーのコードを送るキーが1個だけのUSBキー…
【まほろば】手の中に収まるスイッチインターフェース 第3弾
手の中に収まるスイッチインターフェースの第3弾です。傾きセンサーやタッチセンサーを使います。傾けた時やタッチした時に、キーボードのSpaceキーやマウスの左ボタンの代わりになります。WindowsP…
【まほろば】Digisparkにプログラムを書き込む
Digispark(または互換品) にプログラムを書き込むには、Android の開発環境(Arduino IDE)を整え、ソースプログラムをコンパイルする必要があります。でも、開発者がバイナリファ…
【まほろば】手の中に収まるスイッチインターフェース プログラム改良
最初に、スイッチを押すと Spaceキーを押したことになり、スイッチを離すと Spaceキーを離したことになるプログラムをリリースしました。これは、iOSのスイッチコントロールで、ボタンを短く押した…
タイトルとURLをコピーしました