ホーム > BeagleBone, Physical Computing > BeagleBone Black のハードウェアハック(5)Hacking BeagleBone Black, part 5

BeagleBone Black のハードウェアハック(5)Hacking BeagleBone Black, part 5

2014 年 1 月 6 日

BeagleBone BlackにI2Cキャラクタ液晶を付ける

BBB-LCD02

BBBに取り付けたI2C液晶

1. はじめに

時計とセンサが付きましたので、表示用にLCDを付けてみました。

秋月電子で変換基板付きで売られている8×2文字のI2C液晶を選択しました。

I2C接続小型LCDモジュールピッチ変換キット

2. I2C液晶の接続方法

I2Cなので、接続は簡単です。SCL/ SDAを所定の端子に繋ぐだけです。

Schematic of I2C LCD

Schematic of I2C LCD

秋月の基板上には、プルアップ抵抗の有効/無効のジャンパがあります。

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が検出できれば成功です。

BBB-LCD01

LCDを取り付けたケープ

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 タグ:
コメントは受け付けていません。