はじめてのRaspberry Pi – その3
これまでの記事はこちら。
勉強会もやりました。
前回は、LEDを点滅させるところまでやりました。今回はもう少しレベルアップして、LCDモジュールを接続し文字を表示させてみたいと思います。(※ まだ勉強中のため今回の方法であっているか保証できません。同じように作業する場合は、自己責任でお願いします。)
用意するもの
今回、新たに使用するのは次のものたちです。
- LCDモジュール 800円
- 半固定抵抗 10kΩ 50円
- はんだごて 800円
- はんだ 200円
- はんだごて台 730円
- その他、前回使ったブレッドボードやジャンパーワイヤ
LCDのはんだ付け
LCD本体とピンソケットという部品(7本足の出たピン)をはんだ付けする必要があります。こんな風にくっつけます。
初めてのはんだ付け作業なのでどうやってやるものなのかをネットで色々調べてみました。以下のサイトにわかりやすく説明されていましたので、これを読んで必要な工具も購入しました。
しかし実際、どんな感じで行うのか読んだだけではイメージすることができません。そこで動画のチュートリアルっぽいのを探していたら、以下の素晴らしい動画を見つけましたので、これを見てさらに勉強します。
さて、そろそろ心の準備が整ったので、はんだ付けの練習をします。が、適当な練習台がなかったので空き缶(ビールの空き缶なのは飲みながらやってたわけではないですよ・・)の上ではんだを溶かしてみます。
空き缶とはんだはくっつきにくいです。空き缶を練習台にしてはいけません・・・。しかし、とりあえず、はんだがどいう風に溶けていくのか感覚はつかめましたので、もう本番です。
私はいつも手がプルプルしているので(ビールを飲みながらやってません)、この作業は無理なんじゃないかと思いながらやってましたが、はんだとLCDの金色の金具部分はくっつこうとする力が働いているため、なんとくっつけることが出来ました。
今回は買ってませんでしたが、はんだ吸取線 CP-3015というのもあるので、失敗してもなんとかなるそうです。
配線
次に、ブレッドボードにLCDモジュールの配線を行います。購入したLCDの仕様書による回路図を見たのですが、実際どういう風に配線すべきなのかいまいちイメージできません。
色々な記事を参考にさせて頂きましたが、次のサイトの配線が今回のものに近そうでしたので、こちらを見ながら行いました。
I2C ACM1602NI LCD表示制御 | Dear プログラマー
以下のように配線を行い、LCDモジュールとRaspberry Piを接続します。青い四角いのは10kΩの半固定抵抗です。LCDモジュールのVo(LCD contrast adjust)へつながります。
接続したあとはこんな感じになります。
Raspberry PiからLCDモジュールを制御して文字を表示する
Raspberry Piで今回購入したLCDを使う場合、ちょっと注意が必要だそうです。次の記事と同じようにやってみたいと思います。
まず、モジュール(i2c-bcm2708, i2c-dev)を読み込み込みます。(恒久的に設定もあるそうです。上記記事を参照してください)
pi@raspberrypi ~ $ sudo modprobe i2c-bcm2708 baudrate=50000
pi@raspberrypi ~ $ sudo modprobe i2c-dev
次に、I2Cへアクセスするツールをインストールします。
pi@raspberrypi ~ $ sudo apt-get install i2c-tools
Reading package lists... Done
それでは、LCDモジュールに信号を送ってみます。これも上記の記事を参考に行います。まず、LCDモジュールの画面のクリアやどういう風に文字を表示するのかなどの設定を行います。
pi@raspberrypi ~ $ sudo /usr/sbin/i2cset -y 1 0x50 0x00 0x01 # Clear Display
pi@raspberrypi ~ $ sudo /usr/sbin/i2cset -y 1 0x50 0x00 0x38 # Function Set: DL: 8bit, N: 2-line, F: 5x8 dots
pi@raspberrypi ~ $ sudo /usr/sbin/i2cset -y 1 0x50 0x00 0x0c
pi@raspberrypi ~ $ sudo /usr/sbin/i2cset -y 1 0x50 0x00 0x06
この制御信号は購入したLCDモジュールと一緒についてくる仕様書の「11.0 DISPLAY INSTRUCTION TABLE AND DDRAM ADDRESS」に書かれているもののようです。ここまで行うと以下のように画面全体がクリアされた感じになります。
それでは「A」を出力してみます。
pi@raspberrypi ~ $ sudo /usr/sbin/i2cset -y 1 0x50 0x80 0x41
おお。でた。
次に、”B”、改行、”ア”、”イ”の順に表示させてみます。
pi@raspberrypi ~ $ sudo /usr/sbin/i2cset -y 1 0x50 0x80 0x42 # "B"
pi@raspberrypi ~ $ sudo /usr/sbin/i2cset -y 1 0x50 0x00 0xc0 # 改行
pi@raspberrypi ~ $ sudo /usr/sbin/i2cset -y 1 0x50 0x80 0xB1 # "ア"
pi@raspberrypi ~ $ sudo /usr/sbin/i2cset -y 1 0x50 0x80 0xB2 # "イ"
でました。しかし、文字が微妙に見難い感じがします(背景のドットがうっすら見えています)。接続した半固定抵抗はLCD contrast adjustに接続されているので、これを調整するといいのかもしれません。正直、どう調整していいの分からないので恐る恐る右に回していくと・・・。
こんな風に綺麗に表示されました!なにこれ面白い。
まとめ
今回もみなさんの知恵をお借りして、LCDに文字を表示するところまで出来ました。
しかし、まだまだ理解せずにやっている内容があるので(配線やI2CやLCDモジュールの制御など)、この辺りを引き続き勉強していこうかと思います。
参考にさせて頂いたサイト
ハンダ付けのやり方
はんだ付け | うまくいく電子工作のコツ | 村田製作所
ハンダ付けのやり方 Youtube
面倒くさい事は抜きです。ハンダ付けの方法
ACM1602N1 LCDの配線
I2C ACM1602NI LCD表示制御 | Dear プログラマー
Raspberry PiでACM16N1の制御
Raspberry Pi でI2C: キャラクタLCD