マイコンを使った工作をしていると1番頭を悩ませるのが入出力です。
最近でもメモリーをたくさん搭載してシリアル通信やI2Cが可能であれば、7セグLEDやOLEDディスプレイなどを出力に利用する事ができますが、表示をコントロールするプログラムを中に入れなければいけませんので、それだけでメモリーがオーバーフローする事もしばしばです。
かと言ってメモリーカードなどにディスプレイに表示させる画像データなどを保存しておき読み込んで表示させると言う方法もありますが、PICなどのマイコンでは通信スピードが遅くリニアにストレスなく画面を切り替えたりと言う事が難しいと言う所もあります。
結果的にI/Oに使用するデバイス側でそう言った画面デザインや入出力処理などをさせる事ができれば、マイコンに書き込むプログラムもシンプルに出来ますし、メモリー不足で機能を削らなければならないと言った事もありません。
そこで今回は、ロータリエンコーダに1.28インチの円形タッチパネルを搭載した「Rotary Encoder」をご紹介致します。
ロータリエンコーダを使うメリット
ロータリエンコーダそのものは時計回りなのか、反時計回りなのか、何カウント回したのかと言った情報しか得る事はできません。
ですが20と言う数値を入力する場合、プッシュスイッチだと20回押さなくてはいけませんが、ロータリエンコーダですと20ノッチ分回せば良いだけですので、入力が非常にスムーズな上にその量が多くなればなるほどロータリエンコーダの方が有利です。
またロータリエンコーダは時計回り、反時計回りで入力を切り分ける事ができますし、何よりロータリエンコーダのダイヤルの中に1.28インチの円形タッチパネルが搭載されていますので、ロータリエンコーダでメニューを切替、そして細かな設定はタッチパネルに表示された画面で行うと言った仕様にする事で、タッチパネルを何度もタッチしてメニューを切り替えて操作するよりも操作がとてもスムーズに行えます。
今回紹介する「Rotary Encoder」には”Raspberry Pi Pico W”、”ESP32-S3”をメインボードとして搭載しているものと、”Raspberry Pi HAT”バージョンの3つのバリエーションがラインナップされています。
どれを選択するかは、Arduinoと連携してコントロールするのであればESP32の方が連携し易いでしょうし、単独で動かすのであれば”Raspberry Pi Pico W”バージョンかRasPi HATバージョンと言う事になります。
LVGLを組み込んだ専用システムで設計
次にこの「Rotary Encoder」ではLVGL(Light and Versatile Embedded Graphics Library)ライブラリを取り込んだ専用システムで、タッチパネル及びロータリエンコーダ、そしてロータリエンコーダの周囲に配置された32個のフルカラーLEDの表示、動作設計が行える仕様になっています。
これはLVGLの豊富な画面ライブラリをそのまま利用する事ができますので、1から画面を設計する必要なない上に画面を設計するにしても用意されたパーツをドラッグ&ドロップで配置して行くだけのGUI設計なので、自ら表示プラグラムを書くと言った事は一切なくとても楽な上に画面設計、I/O設計が出来るだけでなくビジュアライズされたライブラリなどを使えば、画面も非常に美しく仕上げる事ができます。
IoT化も容易
そして「Rotary Encoder」には”Raspberry Pi Pico W”、”ESP32-S3”、RasPi HAT”の3つのバリエーションがありますが、どれもWiFi及びBluetoothでの通信が可能になっています。
そのため、自作したマイコンシステムに組み込むのではなく、「Rotary Encoder」をワイヤレスで単独動作させ、IFTTT等のクラウドサービス経由で自宅のIFTTTに対応した家電製品をコントロールする、自作デバイスをコントロールすると言った「Rotary Encoder」をスマートリモコン的なものにしてしまうと言った事もできますので、もし詳細な仕様をご覧になりたい方は下記URLをご覧ください。
https://www.kickstarter.com/projects/arushi/rotary-vibrant-visuals-and-seamless-interaction
この記事へのコメントはありません。