ボクにもわかる電子工作

Raspberry Pi、IchigoJam、Wi-Fi、BLE、XBee、RN-42、ESP-WROOM-02、ESP32

全体表示

[ リスト ]

IchigoJam用Personal Computer基板で 液晶キーパッドのキー入力

 今日はSainSmart製のLCD Keypad Shieldのキーパッドを使用する実験をしてみました。この液晶を利用する記事は以前に(http://blogs.yahoo.co.jp/bokunimowakaru/55271591.html)に紹介しました。
 今回は4つの方向キーに応じて「ミギ」「ヒダリ」「ウエ」「シタ」のいずれかを表示します。雑誌「BASIC I/OコンピュータIchigoJam入門」用のパーツセットに含まれるキーパッドに比べると、プログラムが長くなってしまいます。その理由も後述します。

イメージ 1

プログラム

 プログラムです。液晶の上の行にアナログ入力値を表示し、下の行に方向を表示します。行番号110〜190がメイン部分です。行番号140〜170でキーを判定します。行番号900以降は液晶表示用のライブラリなので、理解する必要はありません。
rem LCD Keypad Example Code for IchigoJam BASIC 1.1
rem Copyright (c) 2015-2016 Wataru KUNINO
rem https://bokunimo.net/ichigojam/

1 CLS:?"IchigoLCD for IJ":?" by Watt Kunino"
100 GOSUB 900
110 WAIT 180:CLS
120 K=ANA(0):IF K>1000 GOTO 120
130 LC0,0:?"Key value=";K;"   "
140 IF K>600 ?"ヒダリ":K=-1
150 IF K>400 ?"シタ  ":K=-1
160 IF K>200 ?"ウエ  ":K=-1
170 IF K>=0 ?"ミギ ":K=-1
180 GOSUB 900
190 GOTO 120

900 'LCD
910 out35:out3:wait3:out35:out3:out35:out3:out34:out2
920 out34:out2:out40:out8:out32:out0:out44:out12
930 out32:out0:out33:out1:out32:out0:out38:out6
940 forZ=#900to#90F:gosub960:next:out44:out12:out32:out0
950 forZ=#920to#92F:gosub960:next:return
960 ifpeek(Z)outpeek(Z)>>4+48:out6,0
970 ifpeek(Z)outpeek(Z)&15+48:out6,0
980 return

純正IchigoJamプリント基板との接続方法について

純正IchigoJamの接続する場合、液晶については、下記を参照ください。液晶の電源には5Vが必要です。

またA0(Analog 0)端子をIchigoJamのBTN端子に接続してください。

CQ出版オリジナルKeypad Shield基板との違い

 下図はボクが設計したKeypad Shield基板です。7個のキーをIchigoJamのIN1、IN2、IN4に接続して使用します。IN3を避けたのはI2C用に使用するからです。
 ところで、1,2,4という数字にピンとくるかもしれません。2倍ずつ増えてゆく数字は2進数と相性が良いのです。この基板では、基板上に書かれている1〜7の数字の並びに合わせて、2進数に変換しています。上ボタンの「3」だと、2進数の「011」がIchigoJamに入力され、10進数に戻すとキー番号「3」が得られます。
 さらに、4方向のキーに関しては、得られた数値に27を足すと、IchigoJamのカーソルキーのコードに一致します。そうです、わざわざ、その並びにしたのです。
イメージ 2
パーツセットで製作できるキーパッド基板
(セットには1枚しか含まれていません)

 これらの工夫により、以下のような簡単な方法で、キー入力が行えるようになりました。
700 'KEYPAD
710 K=inkey():ifKletK,K&3+1:return
720 K=~IN()&#F:K=K+K>>1&4:K=K&7
 なお、回路や考え方を自由に応用していただいてかまいませんが、簡単で良いので出典元を記入していただけるよう、お願いいたします。

電源も一体型「ポケットコンピュータ」

 最初の写真から分かるように、単3電池1本での動作に成功しました。少し、液晶のバックライトの輝度が下がるのと、DCDCコンバータの出力が4.5Vあたりまで低下してしまいましたが、ちゃんと動作しています。

課題

 ここで、もとのSainSmart製のLCD Keypad Shieldのキーパッドの一番左にある「SELECT」ボタンを押してみてください。どんな反応があったでしょうか?
 壊れているわけではありません。LCD Keypad Shieldは5V動作なのに対して、IchigoJamは3.3Vまでしか検出することが出来ません。このため、3.5VくらいになるSELECTキーを検出することが出来ないのです。
 なお、本マイコンのADコンバータの入力の上限は3.3Vです。それを超過するのは良くありません。とはいえ、デジタル入力時は、トレラント機能によって5Vまでの入力に対応しているので、他のマイコンよりは壊れにくくなっているものと思います。もちろん、自己責任でお願いします。

 実験が終わったら、プログラムをセーブしてから「RESET」ボタンも押してみてください。こちらは、ちゃんと動きます。リセット信号はローアクティブ、すなわちLレベルのときにリセットがかかる決まりになっているからです。


ボクにもわかるIchigoJamマイコンボード

基板とパーツセットは3月31日に下記で発売開始予定です

この記事に

閉じる コメント(0)

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

.


みんなの更新記事