<< 試作 | main | ボタンで再生停止、ラズパイのシャットダウンなど >>

2016/11/03 木

OLED, LCDスクリプト

ラズパイに液晶とOLEDを付けるスクリプトを落とせるようにしておきました。
OLED, LCDスクリプト
中身はperlで書かれています。

2016/11/3 更新
・再生時間表示が、mm:ssまでの表現だったが、hh:mm:ssまで表示するように修正

2016/10/16 更新
・OLEDのほか、LCDをサポート
・長い曲名を取得できないエラーを修正
・kakasiが返す、(hosi)や(kigou)などを、任意の文字列に置き換えられるようにした
サポートしているOLED, LCD

★秋月 有機ELキャラクタディスプレイモジュール
http://akizukidenshi.com/catalog/g/gP-08278/
clock.jpg
接続方法
OLED <-> ラズパイ
1,3,4はGND -> 9(GND)
2は3.3V -> 1(3.3V)
7はSCL -> 5(SCL)
8,9はSDA -> 3(SDA)


★AITENDO GVLCM1602G
http://www.aitendo.com/product/11430
http://www.aitendo.com/product/14606
a2.jpg
接続方法
LCD <-> ラズパイ
GND -> 9(GND)
VDD,RES -> 1(3.3V)
SCL -> 5(SCL)
SDA -> 3(SDA)


★AITENDO F1602YG1812P7032
http://www.aitendo.com/product/14395
a1.jpg
接続方法
LCD <-> ラズパイ
GND -> 9(GND)
VDD,RST,LEDA -> 1(3.3V)
SCL -> 5(SCL)
SDA -> 3(SDA) さらに2.2Kでプルダウン
注意!
どうやら、この問題みたい。ハマったわ。。。
http://wbbwbb.blog83.fc2.com/blog-entry-242.html



btn2.gif

まあ、ぐぐればいくらでも出てきます。

導入方法は以下の通りとなります。
(moode audio用)

・puttyをダウンロード
windowsな人はputtyをダウンロード
macな人はsshでつなげられると思う。

・puttyを起動して、ホスト名を moode.local で 「開く」をクリック
なんかいわれたら、OKとかYESとか押して続行
ユーザ pi
パスワード raspberry

・i2cを有効にする

#ちょっとしたこと
#putty上で右クリックすると、コピーした文字列がペーストされるので
#手打ちする必要はない

sudo raspi-config

として、Advanced Option -> I2Cを有効にする。
これもまあ、画面見ればわかる。
カーソルキーで操作。エンターで確定
I2Cのとこで、とりあえずYESを選びまくり、最後にFINISH

・必要な物を入れる

sudo apt-get update

しばらく待つ。なにかいわれたら Yを返答

sudo apt-get install i2c-tools kakasi

これもおなじくしばらくまつ。基本的にYを返答

・OLEDが認識しているか確認

i2cdetect 1

として、なにかきかれたら Yを返答
3cや、3e,3fと出れば認識してる。
ぜんぶ -- だったら接続ミス。確認しなおそう

・スクリプトを入れる

wget http://www.telnet.jp/~mia/oled.bin

さらに

mv oled.bin oled.pl


つづけて

chmod 755 oled.pl

LCDを使う人はここで設定が必要。OLEDの場合、そのままで良い。
------------------------
nano oled.plとして、以下を編集

# support OLED, LCDs
#
# akizuki SO1602AW
$lcdflg = 0;
$oaddr = '0x3c';
#

# Aitendo F1602YG1812P7032
#$lcdflg = 1;
#$oaddr = '0x3e';
#$lcdHi = '0x5f';
#$lcdLow = '0x7a';


# Aitendo GVLCM1602G
#$lcdflg = 1;
#$oaddr = '0x3e';
#$lcdHi = '0x5e';
#$lcdLow = '0x76';


自分の使う液晶の設定を「#」を取って生かす。
それ以外は、「#」でコメントアウトする。
なお、$lcdLowをいじると、液晶のコントラストを変更できる。

CTRL + xで保存して終了。
------------------------設定ここまで

・動作確認

./oled.pl

として起動、oledになにか表示されればOK.
CTRL + C で停止。


・自動起動に登録


sudo nano /etc/rc.local

一番最後の行に

exit 0

があるので、その上に以下を追加

/home/pi/oled.pl & > /dev/null 2>&1

保存して閉じる。
CTRL + x を押す
さらに y を押す
そのまま enter を押す

sudo reboot

として、再起動後 oledが動けばOK

・カスタマイズ

nano oled.pl
として開いてやると、頭の方に設定がいろいろある。
表示時間とか。
ただ、nano oled.pl とやって開くと日本語化け化けでつらいだろうから、以下に設定内容だけ列挙しておく。
これ見てカンで設定するといい。(厳密にいえば日本語設定をしっかりやるべきだが、面倒でしょう)

---

# 曲名スクロール時の1文字表示時間(秒)
$MSI = 0.2;

# 曲名先頭の表示時間(秒)
$MTI = 0.5;

# ボリューム変更時、ボリュームを表示し続ける時間(秒)
$VTI = 1;

# 時計表示を有効にする場合(再生中)「1」
$TimeDisp = 0;

# 時計やその他情報の切り替え時間(秒)
$DispTime = 2;

# システム情報表示を有効にする場合(再生中)「1」
$DispSys = 0;

# システム情報表示を有効にする場合(停止中)「1」
$SDispSys = 1;


# IPアドレス表示を有効にする場合「1」
$DispIP = 1;

#LANのインターフェイス
$ETH = 'eth0';
#$ETH = 'wlan0';

# MPDのホストアドレス
$TgHost = 'localhost';

# MPDのポート
$PortNo = 6600;

# kakasiが返す (hosi), (kigou)などをお好みで置換
@RS = ('hosi|*', 'kigou|-');


お好きな値に書き換えればよし。