BeagleBone Black のハードウェアハック(5)Hacking BeagleBone Black, part 5
2014 年 1 月 6 日
BeagleBone BlackにI2Cキャラクタ液晶を付ける
1. はじめに
時計とセンサが付きましたので、表示用にLCDを付けてみました。
秋月電子で変換基板付きで売られている8×2文字のI2C液晶を選択しました。
2. I2C液晶の接続方法
I2Cなので、接続は簡単です。SCL/ SDAを所定の端子に繋ぐだけです。
秋月の基板上には、プルアップ抵抗の有効/無効のジャンパがあります。
BBB側でプルアップしていますので、プルアップしない設定にしていきます。(買ったままで何もしなければオーケーです)
基板上のEthernetコネクタの付近が空いていたので、そこの配置しました。既に下にリアルタイムクロックなどの配線がありますので、ピッチ変換基板の裏側とショートしないように、絶縁をして下さい。高さを押さえたかったので、動作確認後基板上にハンダ付けしてしまいました。
3. 動作確認
リアルタイムクロックを増設したときと同様に、ic2detectコマンドで、動作の確認を行います。
root@beaglebone:~# i2cdetect -y -r 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- UU UU UU UU -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
ID=3e番としてI2Cバス上でICが検出できれば成功です。
4. ソフトウェア
4.1 i2c-toolsのインストール
液晶の制御にはi2csetコマンドを使います。Angstrom付属のi2csetコマンドが少々古く、iコマンド(ブロック書き込み)がサポートされていません。
このため、自分でコンパイルしてインストールしました。
~# wget http://dl.lm-sensors.org/i2c-tools/releases/i2c-tools-3.1.0.tar.bz2 Connecting to dl.lm-sensors.org (160.45.254.26:80) i2c-tools-3.1.0.tar. 100% |*******************************| 66840 0:00:00 ETA ~# tar xvfj i2c-tools-3.1.0.tar.bz2 (略) ~# cd i2c-tools-3.1.0 ~/i2c-tools-3.1.0# make ; make install (略)
/usr/local/sbinにi2c-toolsのコマンドがインストールされます。
4.2 時計表示
とりあえず、液晶上に時刻を表示するスクリプトを作成してみました。 i2c-time.sh
#!/bin/bash i2cset=/usr/local/sbin/i2cset bus=1 chip=0x3e LANG=C # initialize LCD display $i2cset -y $bus $chip 0 0x38 0x39 0x14 0x7f 0x5f 0x6c i sleep 0.5 $i2cset -y $bus $chip 0 0x38 0x0d 0x01 i sleep 0.5 while true ; do MSG=`date +"%X" | perl -pe '$_=join" ",map{ord }split//'` $i2cset -y $bus $chip 0 0x01 $i2cset -y $bus $chip 0x40 $MSG i sleep 1 done
i2c-time.shというファイルを作成し、実行してみます。
~# chmod +x i2c-time.sh ~# ./i2c-time.sh
(続く)
カテゴリー: BeagleBone, Physical Computing