記事担当:共立プロダクツ
ハンダ付け必須-マイコン系


★「抵抗膜式タッチパネル 変換基板キット / KP-TPCONV」を使ってみましたよ企画の第2回です。
(第1回は★こちら!)

今回はアプリケーションをご紹介したいと思います。
00

まずは、タッチパネルを保持するベースプレートの試作を行っていきます。
前回ご覧いただいた通り、タッチパネル本体は繊細なガラス製の1枚板で、
ネジ穴などもついていないうえ、繊細な端子を破損しないように取り扱う必要があります。
タッチパネル本体
実際にはこのパネルを指やペン先などでタッチして使うわけですので、
何らかのボード上に固定させる方法を考えてみたいと思います。

そこで考案したのがこちら!
試作したベースプレート
タッチパネルそのものにネジが打てない以上、なんらかの枠型のものにはめこんで動かなくしようという作戦です。
ぴったりサイズの[ ]字型のガイドを用意してみました。

底板の上にタッチパネルとガイドを並べるとこんな感じ。
このタッチパネルは厚さ約1mmなので、ガイドも同じ1mmのアクリル板で作りました。
ほぼ段差なくフラットな構造となりました。
ガイドの板を乗せた様子

更にその上から挟むための押さえ板を置き、ガイドや底板にネジとナットで止めます。
左右それぞれ2か所を固定すると、もうほとんど動きません。固定成功です!
最後に押さえ板を取り付け

裏面はこんな感じです。
ベースプレートの裏面

今回は「中継基板」を裏側に配置してみました。
こうするとタッチパネルの端子を裏面に引き出すための穴が増えて面倒ではあるのですが、
端子のフラットケーブルや非常に機械的に弱いため、どうにか保護したいと思ってこのようにしてみました。

フラットケーブルの周囲を斜めから見てみます。
フラットケーブル部(表)
このフラットケーブルは赤い線のところで図の方向(上側)に折り曲げてしまうと、接触不良や断線の原因となってしまうのです。
ひとたび接触不良になると修理ができない箇所なので、端子を上側に曲げる力をかけず、常に下向きになるようにするため
あえて中継基板を裏面にしてみました。
フラットケーブル部(裏)

ではこの先にマイコンボードを接続して遊んでみましょう。

こんな基板を作ってみました。
製作した制御用基板
今回も★「Seeed XIAO RP2040」に登場していただきました。
(このボード、本当に使いやすくてお気に入りです…。基本的な性能は本家ラズピコと全く同じなのですが、ユニバーサル基板との相性が良いだけでなく、★「拡張ボード」★「Groveシールド」などの純正別売オプションの完成度が高くて、ちょっとした試作開発のハードルを下げてくれると思います。特にMicroPythonでのプログラミングがおすすめです)

4本のアナログ対応ピンすべてをタッチパネルに、残った7本のピンを7セグメントLEDに接続しただけです。

タッチパネルの透明性を活かした使い方のひとつとして、コピー用紙でシートをプリンターで印刷し、タッチパネルの下に敷いてみました。
コピー用紙で作成したテンキーシート
ネジを締めて完成!

タッチ位置に応じて何番のボタンが押されたかを判定する方法は、比較的簡単です。
まずはタッチした座標をそのままシリアルターミナルなどで確認できるプログラムを用意し、
なるべく細くて狙いを定めやすいペンなどを使ってタッチしながら、ボタンの境界線がそれぞれ座標値でどのくらいになるかをメモします。
今回はこんな感じになりました。
確認した座標データの一例
例えば、押されたボタンが「9」であるための条件は、
 「X座標は235~415の範囲内」かつ「Y座標は495~675の範囲内」
であることがわかります。この方法を使って、入力されたタッチ座標をボタンの番号に変換するようなプログラム(関数)をつくればOKです。

ちょっとデモを作ってみました。
押したボタンの数字が7セグメントLEDに表示されるだけですが、正常にタッチの位置を識別できているようです。
ちなみにペンはもう動作しなくなったタブレットに付属していたものです。もちろん指でも反応します。
テンキー動作デモ動画

この方法、下に挟むシートのデザインと判定プログラムを変えるだけで
たいして手間をかけずに他の入力方法にも転用できると思います。
妄想のおもむくままに何枚か作ってみました。
シートのデザイン例

もちろん、丁度良いサイズの液晶ディスプレイを用意して取り付けできれば
本格的なゲーム機や銀行ATMのような操作端末みたいなものをつくることも夢ではないはずです。

使い方自由自在な入力装置、マイコン電子工作の可能性が広がるかもしれません。

みなさんも是非使ってみてくださいね!


(記事:ONE)
更新予定:毎週木曜日(次回は10月6日です!)