トップ «前の日記(2014-01-16(Thu)) 最新 次の日記(2014-01-19(Sun))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2014-01-18(Sat) 雨が降っていたらしいが、遭わずに済んだ

キャラクタ液晶ディスプレイ

Hello, World

年末に買って放置していたが、 なんとか勉強会メソッドっぽく強行して汚く雑なはんだつけに のコピペ。
動いたことを確認し、サンプルソースから 変数、関数の定義部分のみ抜いて source コマンドに かける。

# RaspberryPi[実用]入門 Page 153-154 より
# 変数、関数定義部分のみ引用
I2CBUS="1"
CHIP_ADDR="0x3e"
BL_GPIO="4"
BL_GPIO_BASE=/sys/class/gpio/gpio${BL_GPIO}
BL_GPIO_VALUE=${BL_GPIO_BASE}/value
BL_GPIO_DIRECTION=${BL_GPIO_BASE}/direction
IP_ADDR=$(hostname -I)
HOSTNAME=$(hostname)
 
decimal_dump() {
echo $1 | python -c \
  'print " ".join([ "%d" % ord(x) for x in raw_input() ])'
}
 
send_block_data() {
 i2cset -y ${I2CBUS} ${CHIP_ADDR} $1 $2 i
}
 
send_byte_data() {
 i2cset -y ${I2CBUS} ${CHIP_ADDR} $1 $2 b
}
 
do_reset() {
  send_block_data 0 "0x38 0x39 0x14 0x78 0x5e 0x6c"
  sleep 0.25
  send_block_data 0 "0x0c 0x01 0x06"
  sleep 0.05
}
 
do_clear() {
  send_block_data 0 1
}
 
move_to() {
  send_byte_data 0 $(expr 128 + 64 \* $1 + $2)
}
 
do_disp() {
  send_block_data 0x40 "$(decimal_dump $1)"
}
 
change_bl() {
  echo $1 > ${BL_GPIO_VALUE}
}

そしてスーパーユーザで適当にコマンドを叩く。
適当な位置に移動し、Hello と World! を入力し、 GPIOのLEDをONにする。
コマンドの次元で理解してはいないけど、一応 ラッパーを利用することはできたと。

温度計壊れた。

GPIOへの接続を間違えて通電してしまっていた。
幸い、RaspberryPiは無事だったようだ。でも、装着すると Raspbianは正常に起動しなくなり、i2cdetectコマンドでも温度計は 認識されなかった。
次は間違いにくいように工夫せねばなるまい。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。