床に Arduino Leonardo 互換機が落ちていました.手に取りこそしましたが,しまうところを考え始めるとストレスで押しつぶされそうになったので,便利なものを作り,常に使うことでしまう場所を考える必要を消し去りました.
作ったのは様々なメールアドレスや ID ,パスワード等をワンボタンで入力してくれる最高便利機械です.先にいっておきますが,パスワードの使い回しはよくないです.パスワードマネージャーを使うなりなんなりしましょう.
使ったボードはこちらのブログの方と同じものです.公式サイトを探す気力が尽きたので,これで許してください.
arduino.hateblo.jp
運用の様子です.別に自分の部屋で使えればいいので,ブレッドボードそのままで置いて使っています.
ソースコードも回路もマジでなんの工夫もありません.回路に関しては,内部プルアップを使っているおかげで,GND とポートの間にタクトスイッチを挟んでいるだけなので,回路図は割愛します.ソースコードは一応載せておきます.なんかでコピペしたくなるかもしれないので.
#include "Keyboard_jp.h" // Keyboard_jp.h は https://mgt.blog.ss-blog.jp/2016-01-14 より拝借 // Mac なら標準の <Keyboard.h> でも問題なく動く char nankanomojiretsu[ ] = "ninninomojiretsu_hoge@fug[a" const int NANKA_NO_PORT = 9; void setup() { pinMode(NANKA_NO_PORT, INPUT_PULLUP); } void loop() { if( digitalRead(NANKA_NO_PORT) == LOW ) { for (int i = 0; i < sizeof(nankanomojiretsu); i++){ Keyboard.print(nankanomojiretsu[i]); } } // スイッチを増やしたら増やしただけ同じのを書けばいい // 1 回だけ発動するためのトラップ // ちゃんと立ち上がりを取るのがめんどかった while( digitalRead(NANKA_NO_PORT) == LOW ); // || で読む digitalRead を増やして使ってるけど複数入力でも対応できてる感じする }
ちょっとだけハマりポイントがあったので,それだけメモしておきます.
キー配列の問題を考慮したデータを作らないといけない
Windows 11
Arduino Leonardo 側は US101 キーボードのつもりで文字を解釈して送信する一方で,Windows 側では JP106 キーボードがつながっていると思って受信して文字を解釈するため,ソースコード内に書いたままの文字が出ませんでした.
たとえば =
を Windows 側に送るつもりで,ソースコード内に =
とそのまま打ち込んで Keyboard.print( )
すると,^
が出てきます.確かに US101 キーボードの =
の位置と同じところの JP106 キーボードのキーを確認すると ^
が鎮座しています. (参考までにキー配列の画像を載せてくださっている記事をリンクします)
pentan.info
そうなんか~と思いながら US101 キーボードを眺めていると,US101 キーボード側に文字の割り当てがないのに,JP106 キーボードに割り当てのあるキーがあることに気づきました.リンク先の図では右側にある |
と _
です._
はメールアドレスでも ID でも パスワードでも使われがちなので困りました.みんなどうしているのかなと思ってググってみたら,このブログがヒットしました.
先ほどの記事の方と同じく,以下のブログに掲載のあった Keyboard_jp.cpp
と Keyboard_jp.h
をありがたく拝借し試してみたところ,無事ソースコード内に記載のとおりの文字が Keyboard.print( )
で Windows 側に送られました.もちろん _
もそのまま受け取ることができました.
mgt.blog.ss-blog.jp
Mac
完成を確信したので Mac にも繋いでみたところ,記号が軒並み意図通り出力されません.ここで,接続した瞬間に出てきたキーボードの設定ウィザードみたいなのを即消したことを思い出して設定に潜っていきましたが,よくわかりませんでした.たぶんここで JP106 キーボードと設定すればいいんでしょうけれども,眠かったのでなかったことにしました.
それでも動かないのは癪なので Keyboard_jp.h
から Keyboard.h
に戻す形でソースコードを書き換えて書き込み再度接続したところ,満足に文字が出てきました.Mac では謎の HID キーボードは US101 キーボードとして取り扱うのかもしれません.ちゃんと調べてはいません.でも使えるからもうこれでいいです.
床に落ちているもので積極的に工作しよう
作って使ってしまえば,きれいに片付ける必要がなくなるのでおすすめです.
おまけ
Canva でアイキャッチを作る機能を使ってみました.どこかの SNS が SDGs に配慮して(?)リンクの詳細文字列を表示するのをやめたので,こういうサムネイルに文字が入っているのが大事になってしまいました.