\r\n\r\n

arduinoでショートカットをカスタマイズ

Arduinoは様々なことができますが、USBキーボードを模倣できることをご存知ですか?この簡単な回路で、長いキーボードショートカットを組み合わせて、カスタムショートカットにすることができます...

Arduinoは様々なことができますが、USBキーボードを模倣できることをご存知ですか?この簡単な回路を使えば、覚えにくい長いキーボードショートカットをカスタムショートカットにまとめることができます。最終的には以下のようになります。

Arduinoを使ったことがない方は、まず「入門ガイド」をご覧ください。

必要なもの

このプロジェクトでは、以下のものが必要です。

  • 1 x Arduino Pro Micro.
  • モメンタリボタンまたはキーパッドボタン。
  • 10KΩの抵抗。
  • 各種接続ケーブル。
  • 220Ωの抵抗1本。
  • 5mm(0.197インチ)LED×1個。
  • 5mm LEDランプホルダー×1個。

このプロジェクトには、非常に特殊なArduinoが必要です。私は小さくて安いのでPro-Microを使いましたので、プロセッサにUSBシリアルインターフェースを組み込んだArduino(Atmega32u4)が必要でしょう。他のArduino(UNOやNanoなど)でも作ることは可能ですが、バイオのリフラッシュや作業をいじるなど、大変な労力が必要になります。他のモデルのArduinoのクローンは通常全く動作しませんが、Pro-Microのクローンは動作します。

OSOYOOプロマイクロATmega32U4 5V/16MHzモジュールボード2行ピンヘッダーはArduinoのためのATmega328プロミニと交換してくださいBUY NOW ON AMAZON

モーメンタリボタン、10KΩの抵抗、使いたいボタンに合った接続ケーブルが必要です。実際のショートカットボタンにはCherry MXのメカニカルキーボードスイッチを使っていますが、一時的なものでロックされていなければ、どんなスイッチでもかまいません。

作り方によっては、他にも必要なものがあるかもしれません。試作する場合は、ハンダレスのテストボードが必要です。お金をかけて良いものを買う価値があります。これを包むなら、ストリッパーボードが必要です。

建設計画

Arduinoは、USBキーボードとしてプログラムされることになります。Arduinoに接続されたいくつかのボタンから、コンピュータにキーコマンドを送信します。例えば、ボタンを1つ押すだけなのに、コンピュータはAlt> F4を押したと勘違いしてしまうのです。

セレクタースイッチ

MXシリーズのスイッチには、いくつかのバリエーションがあります。このサイトでも紹介していますが、基本的には騒音と圧力に集約されます。モデルによっては、より強い力で押す必要があるものや、押すと機械的な「カチッ」という音がするものもあります。Cherry MX Brownを使っていますが、押した時の音はしません。すべて同じサイズなので、好きなモデルを選んで(混ぜて使ってもOK)安心してください。

もちろん、キーハットも購入する必要があります。

事例紹介

この箱は3Dプリントしており、Thingiverseから.STLファイルをダウンロードできます。自分の3Dプリンターを持っていない方でも、安心して作ってください。3Dハブやシェイプウェイズなど、多くのサイトで3Dプリントサービスを提供しています。あるいは、これは非常にシンプルなケースですが、プラスチック、プレキシガラス、木、あるいは段ボールから自作することもできます。もし本当に倹約したいのであれば、CherryMXは**アマゾン(英国)でスイッチテスター/サンプラーのセットを提供します。M5×35mmボルト4本とM5ナット4個が必要です。既存の適切な代替品と置き換えて確実に使用することができます。

Max Keyboard Keycap, Cherry MX Switch, Tester Kit (9 switches Pro Sampler Tester Kit) BUY NOW ON AMAZON

ケースを自作する場合、1つだけ知っておくべき重要なことがあります。Cherry MXのスイッチは、プッシュイン式の取り付け穴にフィットするようになっているのです。14×14mmの正方形の取り付け穴と、1.5mm以下の厚さの板が必要です。この寸法から大きく外れると、スイッチが**正確に**取り付けられない場合があります。

3Dプリントされた箱は、上と下の2つのパーツに分かれています。Cherry MXスイッチを四角い穴に押し込んでください。

上部に「cherry」の文字、下部に小さな切り欠きがあります。この小さな切り欠きに3mmのLED**をセットしてください。

LEDは「逆さ」に取り付けるのがベストかもしれません。私が使っているキーキャップは、スイッチにまったく干渉しません。

9個のLEDと9個のスイッチがあるはずです。接着剤は不要で、はんだでLEDを固定し、摩擦でスイッチを固定します。

次に、LEDホルダーをねじ込みます(今はLEDを取り外さないでください)。後で回路を組んだら、ケースの組み立てを終了します。

サーキット

この回路はリボンボードに作られています。プリント基板(PCB)のコストをかけずに半永久的な回路を構築することに優れています。グラスファイバーと銅の線路を一方向に平行に走らせただけのものです。これらのトラックは、ハンダ付けとカッティングのいずれかを行うことができます。線路の切断は、専用の工具や小さなドリルビットで行うことができます。

溶接に自信のない方は、まずこちらの簡単なプロジェクトをご覧ください。

ストリッパープレートのレイアウトは以下の通りです(トレーリングリードを除く)。

Arduinoの下の抵抗と配線は必ず切ってください。基板では回路が読みにくいので、テスト基板版を紹介します。

このような小さなスペースにすべての部品を押し込むのは適切なことである。

これは、箱の底にきちんと置いてください:。

線路が垂直に走っていることを確認する。

LEDのアノード(長い方の足、プラス)を200Ωの抵抗に接続し、さらに+5Vに接続します。カソード(短い方の足、マイナス)をアースに接続します。熱収縮チューブで脚部を覆い、LEDホルダーを押し込む。接着剤は不要ですが、お使いのLEDホルダーが押し込み式でない場合がありますので、この説明書を調整する必要があります。

この場合、2色のLEDを使用するとよいでしょう。これにより、2つ以上のスイッチグループを設定し、それぞれに異なる色のステータスLEDを設定することができます。

あとは、LED用のキーキャップをすべてハンダ付けします。キーを光らせるためだけに使うので、お好みで省略できますし、デジタル端子に接続する必要はなく、電源に接続するだけでよいのです。すべてのアノード、すべてのカソードを接続します。私の失敗を教訓に、スイッチを接続する前にこの作業を行う方がはるかに簡単です。アノードを+5Vに、カソードを220Ωの抵抗でグランドに接続します。これらのLEDは並列に接続されています。これらのLEDの回路は以下の通りです。

熱収縮チューブで、LEDとArduinoの接続部分を覆います。

Arduinoの電源を入れ、すべてのLEDが正常に動作することを確認します。コードのアップロードは必要ありません。発光ダイオードのどれかが動作しない場合、配線をもう一度確認してきてください。

今度はスイッチを入れてみてください。これらは10k抵抗で接続しないとArduinoが死んでしまいます。これはデッドショートと呼ばれ、+5Vが直接グランドに流れ、Arduinoに残るのは煙だけです(信じてください、私は1つ殺したことがあるので、あなたは殺す必要はありません)。ここでは、スイッチの回路を紹介します。

9つのスイッチの回路はすべて同じです。スイッチをデジタルピン2~10に接続します。各ピンには10Kのグランド抵抗があります。Cherry MXスイッチのハンダ付けには注意が必要です。少し壊れやすく、私はいくつかのピンが折れてしまいました。これをもう少し剥がれた基板に直接ハンダ付けするのもいいかもしれませんが、やはり引き回しのリード線が適しています。

それは有線です。USBタイプBのメス型ソケットを取り付けたいところですが、ピンが小さいため、ハンダ付けが難しい場合があります。ArduinoのMicro USBコネクタは、シャーシの穴にきちんと収まりますので、このようなことをしなくても大丈夫です。USBの種類に少し戸惑った方は、その違いをしっかり理解してください。

最後に、回路が正しいかどうかをもう一度確認します。ショートはArduinoを簡単に破壊してしまうので、ストリッパーボードを使えば簡単にできます。

コード

ここで、回路が正しいかどうかテストしてください。今のうちに問題を解決しておくためにも、先にやっておくとよいでしょう。このテストコードをアップロードするには(Tools> board and Tools> portメニューから正しいボードとポートを選択するのを忘れないでください)。

c***t int butt***[] = {2,3,4,5,6,7,8,9,10}; // array of all button pinsvoid setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(2, INPUT); pinMode(3, INPUT); pinMode(4, INPUT); pinMode(5, INPUT); pinMode(6, INPUT); pinMode(7, INPUT); pinMode(8, INPUT); pinMode(9, INPUT); pinMode(10, INPUT);}void loop() { // put your main code here, to run repeatedly: for(int i = 2; i < 11; ++i) { if(digitalRead(i) == HIGH) { // software de-bounce improves accuracy delay(10); if(digitalRead(i) == HIGH) { // check switches Serial.print ("input"); Serial.println(i); delay(250); } } }}

回路を変更する場合は、ピンの変更が必要な場合があります。

アップロード後、シリアルモニターを開く(右上>シリアルモニター)。各ボタンを順番に押してください。シリアルモニターに、押したボタンの番号が表示されているはずです。LEDと同じように、パソコンから電流が多すぎると文句を言われたり、ボタンを押したときにLEDが消えたりしたら、すぐに取り外してください回路のどこかでショートしている。回路が正しいか、接続部にショートがないか、よく確認してください。

問題がなければ、回路を箱に入れてください。回路を固定するために接着剤を少し使用するとよいでしょう(私の場合はワイヤーでかなり固定できましたが)。蓋もボルトで固定する。

Arduinoをキーボードに見立てるのは、とても簡単です。NanoやUNOを使用している場合、Arduinoを再プログラムするためにDevice Firmware Update (DFU)を使用します。これは通常、新しいファームウェアをArduinoにフラッシュするために使用します。これを使ってArduinoに新しいファームウェアをフラッシュし、キーボードのように動作させるのです。これはかなり複雑な作業なので、ここでは説明しませんが、Arduinoのウェブサイトに良いチュートリアルがあります。

Arduino Pro Microを使えば、このステップはとても簡単です。USBキーボードをシミュレートするために必要なロジックは、すでにプロセッサに組み込まれているので、必要なのはいくつかのコードだけなのです

まず、キーをセットします。

int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};

ボタンが接続されているすべてのピンの配列です。使用するボタンの数が多いか少ないか、または異なるピンを使用する場合は、ここで値を変更してください。

配列は、同種のものの集まりです。コンピュータは、それらに素早くアクセスできるようにコードを最適化し、コーディングプロセスを高速化することができます。

ここで、すべてのピンを入力として初期化します。

void setup() { // put your setup code here, to run once: Keyboard.begin(); // setup keyboard for (int i = 2; i < 11; ++i) { // initilize pins pinMode(i, INPUT); }}

これはArduinoの配列にあるすべてのピンを入力にするように指示します。ループを使っているので、pinMode (2, INPUT)を9回書く代わりに、1回だけ書けばいいことになります。これは、キーボードとも呼ばれます。スタート .これは、Arduinoのライブラリに組み込まれた、キーボードをエミュレートするために特別に設計された関数を作成します。

readButtonというメソッドを作成します。

boolean readButton(int pin) { // check and debounce butt*** if (digitalRead(pin) == HIGH) { delay(10); if (digitalRead(pin) == HIGH) { return true; } } return false;}

これはピンを必要とし、それが押されたかどうかを確認するものです。また,ソフトウエアによるジッター除去(単純な遅延と,ボタンが本当に押されたかを確認するためのスイッチの再確認)も含まれています。

ここで、void loop()で別のforループを呼び出します。

void loop() { // put your main code here, to run repeatedly: for (int i = 2; i < 11; ++i) { // check butt*** if(readButton(i)) { doAction(i); } }}

この場合も、配列の各要素をチェックして、押されたかどうかを確認します。これは、先に作成したreadButtonメソッドを呼び出すことで実現します。もしボタンが押されたら、そのピン番号をdoAction:という別のメソッドに渡します。

void doAction(int pin) { // perform tasks switch (pin) { case 2: Keyboard.println("drive.google.com"); break; case 3: Keyboard.println("makeuseof.com"); break; case 4: // CMD + T (new tab, Chrome) Keyboard.press(KEY_LEFT_GUI); Keyboard.press('t'); delay(100); Keyboard.releaseAll(); break; case 5: // your task here break; case 6: // your task here break; case 7: // your task here break; case 8: // your task here break; case 9: // your task here break; }}

switch文を使ってピン番号をチェックします。switch文(switchケースと呼ばれることもあります)はif文と似ていますが、あるもの(この場合はピン番号)が複数の異なる結果のうちの1つと等しいかどうかをチェックするのに役立ちます。基本的には、計算速度が格段に速くなります。

主な構成要素は、このswitch文にあります。keyboard.printlnは、各キーを実際に打ったかのようにテキストをコンピュータに書き込みます。キーボード.printlnキーを長押しする。キーボードを使うことも忘れずに。一足先に全機種発売!

コードの全容は以下の通りです。

int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};void setup() { // put your setup code here, to run once: Keyboard.begin(); // setup keyboard for (int i = 2; i < 11; ++i) { // initilize pins pinMode(i, INPUT); }}void loop() { // put your main code here, to run repeatedly: for (int i = 2; i < 11; ++i) { // check butt*** if(readButton(i)) { doAction(i); } }}boolean readButton(int pin) { // check and debounce butt*** if (digitalRead(pin) == HIGH) { delay(10); if (digitalRead(pin) == HIGH) { return true; } } return false;}void doAction(int pin) { // perform tasks switch (pin) { case 2: Keyboard.println("drive.google.com"); break; case 3: Keyboard.println("makeuseof.com"); break; case 4: // CMD + T (new tab, Chrome) Keyboard.press(KEY_LEFT_GUI); Keyboard.press('t'); delay(100); Keyboard.releaseAll(); break; case 5: // your task here break; case 6: // your task here break; case 7: // your task here break; case 8: // your task here break; case 9: // your task here break; }}

Arduinoは、すべての数字と文字のキーに加えて、キーボードモディファイアと呼ばれる特殊なキーのほとんどを押すことができます。これらは、特にキーボードショートカットを押すのに便利です。Arduinoのウェブサイトに便利なリストがあります。

あとは、ショートカットを作成するだけです。Alt+F4(Windowsでプログラムを閉じる)、Cmd+Q(macOSのプログラムを終了する)など、既存のショートカットにマッピングすることが可能です。また、Windowsのショートカットの作成方法に関する究極のキーボードショートカットガイドや、Chromebookの各ショートカットを読んで、あなただけのショートカットを始めてみてください**。

ショートカットボックスを作成しましたか? コメントで教えてください。

  • 2021-03-17 01:02 に公開
  • 閲覧 ( 34 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ