キーボードを使う


R4.4.26 M5Stackでのキーボード

 USBモジュールを持っているので、M5StackにはPC用のUSBキーボードが付くと思うが現実的ではないね(^^;) M5Stack用カード型キーボードユニットも持っているのでこれを使うのは便利です。

 近いうちに、WiFiが使える旅館に泊まる予定があるので、M5Stackを持って行って天気予報や花粉予報を表示したいと思っている。一応タブレットも持っていくので、それによってM5Stackのスケッチを修正してWiFiに接続させることができるのだけれど、M5Stackだけで実行しようという計画。

 いろいろネットを見ていたら、yamanononoさんの「SDからiniファイルの読込み」という記事があって、スケッチの変更ではなく、SDカードにネット情報を入れておいて、それを読み込んでWiFi接続させるようにしておけばいいと考えた。
 それならば、M5Stack上でネット情報を作成するスケッチを作ってみようと。長文作成でなく、SSIDとパスワードだけ書き込んだiniファイルを作ればいいんだし。
 ふと、以前DLしていたらびやんさんの M5Stack_OnScreenKeyboard libraryのことを思い出した。これを使えば、M5Stackだけで完結する。「だけで完結」このことが大事。ということでやってみた。

 作成するべきiniファイルの内容は、最低限次の4行。

  1. #SSID
  2. abcdefg
  3. #SSID_PASS
  4. PASS_of_abcdefg
 これらのうち、2と4の行をM5Stack上のOnScreenKeyboardで入力するだけ。yamanononoさんの記事では、#SSIDと#SSID_PASSをキーワードにして読み込んでいる。そこで、そのスタイルを踏襲してiniファイルを下のように作成させることにした。

  1. String text = m5osk.getString();
  2. m5osk.close();
  3. // --------- OnScreenKeyboardの入力終了
  4. int first = text.indexOf('\n');
  5. String gyo1 = text.substring(0,first+1); // SSID
  6. String gyo2 = text.substring(first+1); // SSID_PASS
  7. Serial.println( gyo1 );
  8. Serial.println( gyo2 );
  9. // ---------- ファイルへの書き込み
  10. file = SD.open("/set/config.ini", FILE_WRITE);
  11. file.println("#SSID");
  12. file.println(gyo1);
  13. file.println("#SSID_PASS");
  14. file.println(gyo2);
  15. file.close();
 順番が逆になってしまったが、OnScreenKeyboardでの入力が終わった時に出力される文字列が1行目で表される。

 OnScreenKeyboardの使い方は、ライブラリを見て慣れていただくとして、入力の際には、SSIDやパスワードを打ち込んだ後は改行コードを入れることを忘れないように。windowsの場合 '\r' と '\n' だと思う。あまり詳しいこと分からないので、間違いあったらごめんなさい。5・6行目の first+1 が重要でした(^^;)

 らびやんさん、yamanononoさんのお2人に感謝です。


R3.12.6 M5Atomの4Keys

 ショップで部品を探していたら、M5Atom用の増設キーボードがあったので、作ってみました。キーボードといってもタクトスイッチです(^^;)

 GNDとVcc、GPIOピン2本でできるので、残りのGPIOピンを他に使えるよう下側のピンソケットの出しています。

 こんな具合に使えます。

 回路は簡単です。以前に使った抵抗計算ファイルもあるので、これも楽。ただ、手持ちの抵抗器にはぴったりのものがなかったので、2カ所で2個の抵抗器を直列にして値を合わせています。

 あとは、いかに小さな基板に細かいはんだ付けワークができるかです(^^;) これが難しい。

 基板の裏から、表からとひっくり返していると、半田付けの位置が分からなくなってくる.....(^^;)

 さて、これを何に使うか.....今のところ予定なし。(^^;)


R3.5.6 USBキーボードを使う

 USBモジュールを購入していたので、これを使ってみる。サンプルコードがあるので、USBマウスは使えることが分かっている。けれども、USBキーボードはなかなかうまくいかない。正確に言うと、次の通り。

  1. M5単独で電源を入れても「OSC did not start」と出て、動かない。
  2. M5の電源+外部USB電源を入れた後、外部USB電源ケーブルを抜くと、M5電源に切り替わって動くようになる。
  3. その後キーボードをつなぐと右上のLEDがフラッシャーのように反応してキーボード入力が使える。
※私のスケッチではかな入力時にCapsLockが必要。

 日本語は、東雲フォントで実現しています。

 これを作成したのは.....小学校でPCを始めだした孫が私のPCでかな入力したがるのです。占有されても困るので、M5Stackでかな入力できるようにしてみたわけです。しかし、かな入力難しすぎる(^^;) 私自身が練習用にいいかもしれない。さらに、シューティングゲーム仕立てにしたら習得できるかも... 大きなフォントのひらがながM5画面に表れて時間内にキーボード入力できなければGamaOver。入力できればひらがなが爆発し、得点となるような。

 安直な考えでした。それをスタックで実現できる自信はありません(^^;)


R2.6.24 キーボード修正

 基盤が露出して見苦しい、自分としてはその方がいいのだけど、ちょっと見えないようにしてみました。

 3Dプリンターなんてものが手元にあればいいんですけどね。


R2.6.14 M5Stackキーボード一応完成

 作った十字キーボード基板の裏側には、樹脂ボード1mm厚×2枚で絶縁と適度な厚みを付けて、薄い鉄板で覆いました。この鉄板は手元にあったもの。百均で購入のホワイトボードの板です。この鉄板とM5Stackのボトムに入った磁石とで固定することにしました。大分コードが長いのですが、短くするまでは我慢。

このビデオのように取り付けて入力します。入力した文章をAquesTalkで喋ります。取り付けたキーボードの裏表は、下の画像のようになってます。

 入力はこんな具合です。


R2.6.13 M5Stackサイズキーボードを作る

 ならば作ってしまおう! ということで、やってみました。十字キー配列にして、中央に決定キーを置く5つのキーで構成します。画面に並べた文字を十字キーで選択して文を作るようにしようと思います。ここで見れます。

 とりあえずは、動くかどうか。

 ケースをどうにか考えて、内部に磁石を配置、M5Stackの磁石と作用させて固定できるようにしようと計画中。スタックできれば恰好がいいんだけどね。

 こんな感じで作っています。抵抗は手持ちのものを使っているので、理想計算値からは離れているのですが、おおむね良好です。


R2.6.11 M5Stackのキーボードを購入

 そこで、沢山のキーが付いて小型のキーボードを購入しました。プチプチとおす形式のもの。安価でしたね、有難い。

 これで文字入力してAquesTalkに喋ってもらうことにしてみました。でも、もう少し小さくできないかな。無理があるんだけどね。これ以上小さくはならない。


R2.6.11 ラズパイのキーボードを流用

 以前、ラズパイ用に作った沢山の12キーボードがストックされています。もったいないので、マイクロビットで使ってみました。使えたけれど、それっきり。電源とGNDにアナログインプットのピン1本で使える便利グッズ。だからラズパイでもマイクロビットでも使えました。ならば、M5Stackでも使えるはず。で、やってみました。使えますね。でも、12のキーでは不足します。