Select Your Language

免責事項

  • 本サイトの情報の利用、内容、サービスによって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします。

    本サイトで頒布している基板およびキットは、技術者、またはそれに準ずる電気的知識をお持ちの電子工作ファンの方のためのものです。 一般のオーディオファンの方のためのものではありません。
    また、頒布基板およびキットは、いかなる条件でも動作を保証するものではございませんので、あらかじめご了承ください。

    電子工作では、火傷、感電、火災などの可能性があります。 十分に注意をして作業して下さい。

    営利目的のご使用は認めておりません。  記事の転載や、基板・キットの商用利用の方は、ご連絡ください。
    学生やサークルの学習目的でまとめてご購入する場合は特別なコースをご用意させていただきます。

« MPDをソースコードからコンパイルしてPi 2 Pi 3に最適化する方法 | トップページ | Windows10 ついにUSB Audio Class 2.0 に対応して192kHzサンプリングが標準で扱えるようになる »

2016年8月27日 (土)

Volumio2に秋月電子のI2CタイプOLEDを接続して曲名などを表示する方法


  ※ この記事は古くなっています。 最新の方法はこちらからどうぞ。 


 

久しぶりにキャラクタ型有機ELディスプレイ(OLED)を接続しようとしましたら、少々てこずってしまいました。 

OLEDに表示させるものは、再生の状況と曲名などです。 これは Volumio 1.xxやRune Audio で以前から仕込んでいました。 

基本的にはPython2でmpcから情報を取得してI2Cで文字情報を転送するという仕組みです。 

Vol2_oled1 

volumioはRasbianをベースにしているはずなのですが、pythonからGPIOを操作するRPI.GPIOが入っていません。 (本家Rasbian jessie には標準で入っています。)

そして apt-getでインストールしようとしても何故かインストールできないのです。 

ということで、少々強引ではありますが下記の方法でインストールしていきました。 この方法が正しいのかどうかは不明です。 

※ RPI.GPIO使いません。

volumio2の最新版 volumio-0.979-2016-08-20-pi.img で作業していきます。 ダウンロードはこちらからどうぞ。  Raspberry Pi 2を使いました。 Pi 3でも同じ方法でOKと思います。 

Vol2_dw 

バージョンは0.979と書いてあります。 

 

SDカードに焼いて起動したら、ひと通りDACから音声が出るようにセットアップしてください。 

ここでは、Sabreberry+を使いました。 SabreBerry+は、外部機器接続用にI2Cポートを用意しているので簡単に接続できます。 (SabreBerry32も同様です)

 接続方法はこちらを参照してください。 

Vol2_oled2 

DAC基板側は、シルク文字に従って接続して下さい。(3V3 は、3.3Vの意味です) 

Aaa120 

OLED側はこんな感じです。 見えにくいですがSDAとSCLがクロスしています。 

I2Cは電源を含めても4本の配線で済むので簡単ですね。 

 

以下、ピンク文字はコマンド  青文字はテキストファイルへの追加・編集です。 

 

sshでリモートログイン

sshにはTeraTermなどを使用します。 ホスト名はiTunesがインストールされているWindwos PCからは、下記の名前で接続できます。 iTunesを入れていなければIPアドレスを探す必要があります。

Host : volumio.local    もしくはRaspberry Pi のIPアドレス

User : volumio

Pass : volumio

 

 

RPI.GPIOをインストール

sudo nano /etc/apt/sources.list で 下記の1行を追加します。  

deb http://mirror.gunah.eu/linux/raspbian/archive.raspberrypi.org jessie main

ctrl + o を押してエンターで保存。 ctrl + x でファイルを閉じます。 

sudo apt-get update 

少々待ちます。 http://mirror.gunah.eu のシグネチャはベリファイできません など文句を言われますが無視します。

sudo apt-get install python-rpi.gpio python-smbus kakasi

ここでも何か注意が出ますが  Y  を押してインストールしていきます。 

これでどうにか python-rpi.gpioがインストールできました。 もう少しスマートな方法がありましたら教えてください。 

※ 上記 不要でした。 

 

python-smbus、kakasiをインストール

sudo apt-get update

少々待ちます。 

sudo apt-get install python-smbus kakasi

sudoのパスワードを求められたときは「volumio」と入力します。

つづいて、表示スクリプトを入れていきます。 

 

OLED表示用のスクリプトをインストール

スクリプトは、今までのと同じものを使用します。 kakasiを使って日本語を半角カタカナに変換しています。

wget http://nw-electric.way-nifty.com/blog/files/oled_ctrl3.py

sudo chmod +x oled_ctrl3.py

 

次は、systemdで自動起動させます。 ファイルをテキストエディタで作成します。 

sudo nano /etc/systemd/system/oled_ctrl.service

これで空のファイルができていますので、下記の呪文をコピー&ペーストします。

[Unit]
Description=i2c OLED ctrl service

[Service]
ExecStart=/usr/bin/python2 /home/volumio/oled_ctrl3.py
Type=simple

[Install]
WantedBy=multi-user.target

 
ctrl + o を押してエンターで保存。 ctrl + x でファイルを閉じます。 

 

※ Pi 3 でWifi接続するとスクリプトが落ちてしまう現象があったので
    oled_ctrl2.py   ->  oled_ctrl3.py  と変更しました。 

 

 

起動時にスクリプトを自動で実行させる

systemdを使って起動時にスクリプトを自動で実行させるには

sudo systemctl enable oled_ctrl

とするだけでOKです。 

 

今、実行したいときは下記のコマンドです。 

sudo systemctl start oled_ctrl

 

デバッグなどしたいときは、systemdを使わずに直接スクリプトを実行した方が良いです。 

sudo ./oled_ctrl2.py

 

以上で表示ができていると思います。 

 

 

ところで、volumio2はSoftware Volumeが使えず、SabreBerry+だと常に最大音量になってしまいますね。 標準のHifiberry ドライバを使う他の基板も同じ不具合が発生していると思われます。 

https://github.com/volumio/Volumio2/issues/485

この辺で問題点として報告されて取り組んでいるようではあります。 

 

 

 

にほんブログ村 PC家電ブログ PCオーディオへ にほんブログ村
ブログランキングに参加中です。 めざせ1位! 
もしよろしければ「ぽちっと」お願いします。 



« MPDをソースコードからコンパイルしてPi 2 Pi 3に最適化する方法 | トップページ | Windows10 ついにUSB Audio Class 2.0 に対応して192kHzサンプリングが標準で扱えるようになる »

Raspberry Pi」カテゴリの記事

コメント

待ってました。
自分ではなかなか解決できないため、RuneAudioでSabreBerry32を使っていました。
これはこれで音は良く表示もできていたのですが、WiFiが不安定で悩んでいました。
今回公表していただいた方法で試してみたところ、最終的には表示もWiFiもうまくいきました。
最終的にと書いたのは、oled_ctrl2.py でIPアドレスを見に行くところで、ケーブルを外していると止まってしまったので、その辺をパスしたりしてやってみたところ、うまくいきました。
本当にありがとうございました。
今後とも、良いボードとそれに伴う情報の開示を期待しています。

myoko さん

動作したようで良かったです。
IPアドレスの取得方法を「oled_ctrl3.py」でちょっと変えました。

たかじんさん こんにちは

Moodeaudio2.6で、「irBerry」をリモコンつけて、OLEDをつけて動かしております。
RPi3に、「SabreBerry32」をつけて、OLEDをつけて、使っております。
Volumio1.5のインストール方法で、両方とも、oled_crl1.pyを使っております。
WEBラジオを使うと、液晶表示がとまってしまうので、今回のoled_ctrl3.pyを入れたのですが、液晶に、IPアドレスが表示されてとまっております。また、mainの部分の、NETあたりを削除してみると
MPD_errorがでておりました。
判定条件まで、追えませんでした。

RPi3を使い、有線LANに接続して、無線LANの設定はしておらず
デフォルトのアクセスポイントのまま使っております。


ところで、MoodeAudio2.7が8月28日にリリースされておりまして、
(TOPページは、2.6のままですが)
RPI3のSabreBerry32に、ドライバーをインストールしたのですが
選択画面に表示されませんでした。
今の、2.6でも、落ちるわけではないので使えておりますが、
MPDの最新バージョンを使ってみたいです。

totoさん

moode 2.7が出たのですね。 情報ありがとうございます。
近日中にドライバを用意いたします。

MPD_errorがでるときは、MPDが何かしらの原因でエラーが出ているときです。
例えば、NASとの接続を切って楽曲が見つからないとか、webラジオでも指定したアドレスにアクセスできない場合などです。 


よろしくお願いいたします。

たかじんさん こんにちは

Moode2.7を使っていて、SD card -> Radio -> Air play -> SD cardと
切り替えていくと2.6では、有機ELの表示がとまっていたように、思えるのですが、動いており
安定してる。
Air playでは、曲の表示もなく、Stopになりますが、私の使い方では、十分です。
(oled_ctrl1.py)

Moode2.7は、APモードが使えるので、お気に入りです。
ドライバーお待ちしております。

toto さん

Moode R2.7用のドライバが用意できました。
http://nw-electric.way-nifty.com/blog/sb32j.html
こちらからどうぞ。

WIFIはアクセスポイントモードとネットワーク接続用とどちらにも切り替わるようになりましたね。 R2.6はちょっとバグっぽい動作をしていてAPモード以外は厳しかったので、改善されて良くなったと思います。

たかじんさん こんにちは

RPi3に、ドライバーをインストールしてみました。
HARD WARE VOLUMEに設定し、SD領域を拡張するとエラーがでる(?)
SystemのALSA Volumeのところが、赤く枠取りされました。

そこで、再度、2.7をインストールして、SD領域を拡張してからドライバーをインストール。液晶表示をしてみました。(oled_ctrl1.pyを組み込みました。)

Hardware Volumeを選択すると、液晶表示が
「Vol: 0%」 -> 「Vol:n/a」になってしまいます。

そこで、Software Volumeのまま使ってみました。
SD Cardに、曲を入れて、「スタート」しても、「Pause」のまま。
動きません。

MPD Configurationを見ると、
Audio Device のところが、「Nothing selected」になっておりました。
いくつか、フォーマットが変更になったようです。
よろしくお願いします。

toto さん

oled_ctrl1.pyの処理内容をみていただくとわかるとおり、mpcコマンドで文字情報を取得しています。
Vol:n/a は mpcの返答です。 mpcがハードウェアボリュームに対応していないためと思われます。
もちろんmpd自体を使っていないairPlayの情報も取得できません。

折を見て、別の手法で情報取得ができないか検討してみますが、あまり期待しないで下さい。

たかじんさん こんにちは

(1)SabreBerry32:RPi3に接続。
 9/4 7:50の書き込みの時、SabreBerry32のドライバーのインストールに失敗していたのですが、再度 Moode2.7をダウンロードしてやり直すと
正常に動きました。(以前のものは、8/29にダウンロードしております)

深夜に、インストールしていたので、音を出さずにやっておりました。

今、AirPlayを使うと、接続できません。
iPadからは、AirPlayの接続が出ているのですが、
液晶の表示がでないのではなく、接続していないみたいです。
どうのも、Moode2.7は、AirPlayができないときがあるもたいです。
よくわかりませんが。

(2)IrBerry :RPi B
 知人のものを組み立てて、Moode2.7をインストール。
 リモコンも、液晶表示もできております。
 rc.localのファイルは、
 "/usr/bin/python /home/pi/mpd_ctrl.py"にて書き換えました。
 爆速のSDカードに差し替えたら、立ち上がりも早くなり
 調子が良いです。
 USB-無線LANドングルが、APモードで立ち上がり、
 iPhoneから操作できました。

(3)SabreBerry+:RPi3に接続。
 ・9月1日の20:41の書き込みは、SabreBerry+に、Moode2.7をインストール。
  この時には、Moode2.7で、AirPlayが動いておりました。(?)
  (8/29にダウンロードした、Moode2.7において)


たかじんさん。こんにちわ。
いつもご苦労さまです。
volumio2(0.979-2016-08-20)にoled_ctrl.pyを入れてみました。
$ git --version とすると
git version 2.1.4
pio -v
gpio version: 2.25
ということで
RPI.GPIOはすでに入っているようです(WiringPi Pythonも入っているのでしょうか???)。
/etc/apt/sources.list は編集せず、
sudo apt-get install python-smbus kakasi のみ実行しました。
これでOLED問題なく動作するようです。それと、ソフトウエアボリュームも聞くようです。
一度しか作業を行っていませんが、おそらく問題なさそうです。
ご確認お願い致します。

こんにちは。

ちょうど、IrBerryDACをvolumio2(0.979-2016-08-20)で動かそうとゴソゴソしていました。

私がやったリスト取得とRPIインストール手順は、sources.listは、deb http://archive.raspberrypi.org/debian/ wheezy mainのままでやりました。

このままupdateすると、GPGエラーになるので、エラーになったキーを足します。
> sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [エラーになったkey]

これで、もう一度updateすると綺麗に通るので、python系インストールします。

ただ、このlistだとkakasiが入ってないようなので、gccとmakeをインストールして、kakasiもビルドインストールしました。

>sudo apt-get -y install gcc make

>wget http://kakasi.namazu.org/stable/kakasi-2.3.6.tar.gz
>tar -zxvf kakasi-2.3.6.tar.gz
>cd kakasi-2.3.6
>./configure
>make
>sudo make install

煩雑ですが、エラーや警告はなさ気です。

toto さん

R2.7もまだ不安定なところがあるのですかね。
SDカード領域拡大などは、最初にやっておく方が良いようです。
SabreBerry32をAirPlayで使う場合は、Slave設定にしてください。 これは仕様です。

knkn59 さん

> sudo apt-get install python-smbus kakasi のみ実行しました。

あっ  根本的な事を失念していました。
oled_ctrl.pyはGPIO使っていないです。  ソースの冒頭コメント部にも書いてました。 すっかり忘れていました。 本文のほうも修正いたします。
ご指摘、ありがとうございました。

私のところではsoftware Volumeは、OLEDを入れる前から機能しませんでした。 他の方からも音量が絞れないという報告があります。 でも、動くときもあるのですね。 不思議ですね。 潜在的なバグ? 何か回避策があるのでしょうか。


ルチさん

なるほど、kakasiをソースからインストールなのですね。 volumio2は、何かヘンですね。 Kernelソースをrpi-sourceでもってこようとしても、エラーがでてしまい、悩んでおります。
RPi 1 にもインストールしてみたのですが、あまりに重く、そして不安定(応答がなくなる)なので諦めました。 V1.55の方が軽くてストレスないですね。

たかじんさん。
ソフトウエアボリューム使えるのはSabreberry32のみです。
書き忘れたてましたので追記させていただきます。
IrBerry、HiFiDAC系はだめです。

RPi1+Volumio2+IrBerryDACで、使えてますよ。
でも、たしかに重くて、無応答ありますね。ライブラリ先がなくなった状態で、ライブラリ見に行こうとすると、一発です。
そうそう、こちらもソフトボリューム設定できないです。そもそも設定の選択肢が潰れてる。

リモコンもほとんど問題ないのですが、MENUボタンのふるまいが曲送りになってしまうので困っています。2回押しのシャットダウンは動くので、MPDのほうが何か変わったことになるのでしょうか?

RPi1でVolumio2、IrBerryDACに対応させた追加手順をブログに書きました。最後は、このページで答えが出てたというオチになっていますが。こちらのページにリンクをしています。連絡まで。

Airplayを実現しているshairportというプログラムは、Volumioにバンドルされているものではなく、新しいバージョンには曲情報とアルバムアートを吐き出すオプションがあります。
mpdの状態を監視するループで、ストップの時にその情報を確認すれば、Airplayでも情報表示ができると思います。

リモコン関係ないトピックで引っ張ってすいません。

スクリプトは正しく動いてるようなので、手打ちでコマンド確認すると
mpc stop で次進んでしまいますね。
あと、mpc prev も曲の先頭までしか戻らない。

いまのところ、リモコン泣かせの仕様のようです。(笑)

Volumio2のブラッシュアップに期待

knkn59 さん

なるほど。 勘違いしてしまいました。 現象は一緒ですね。

ルチ さん

mpcとmpd間の通信がおかしくなっているように見えますね。mpcを新しいものにして確かめる必要がありそうです。

yosyos さん

調べてみると、shairportも派生がたくさん出ているようですね。 どれでしょうか?

Volumio2にソフトウェアVolumeがつきましたね。早速試してみました。設定して「save」のかけ方が、何か変です、設定が通らなかったり。起動直後にエラーになったり、でもVolumio1.55とほぼ同様になりました。ただ、mpcだけでコントロールできないのでリモコンで苦労してますが、Volumio2から用意されたコマンドだけでなんとかしました。まだ、ランダムとリピートがリモコンでできないので、音楽じゃなくて、「設定」だけで結構楽しんでます。10/15に出るとどこかに書いてた人がいたけど、皆さんよく知ってますね。

T ASAIさん

ソフトウェアボリュームが機能するようになりましたか。 情報ありがとうございます。
完成度は、もうひといきなんですね。

Volumio2のコマンドですか? mpcとは別に何かあったのでしたっけ?

mpcを最新版へと差し替えると、まともに動作するようになるんですかね。。
私の方でも、試してみようと思います。

Volumio2のコマンドはhttps://volumio.github.io/docs/Good_to_Knows/Command_Line_Client.htmlに少し説明があります。今回はすぐ動いた記憶ですが、前回はプログラム内のパスが一部間違っていたり、エラーがあって動きませんでした。(直せば動きました)
 コマンドラインで動きますが、linuxのコマンドとして登録されたものではなく、Volumioのコマンド?のようで、lircrcのconfigに書いても受け付けません。コマンドのパスとコマンドを書くとちゃんと動きます。Volumeは値を書くコマンドなのでリモコンでは使いづらいです。今は、configを「5」ピッチで20行書いて使ってます。この内のコマンド「volumio status」は時間以外のすべての情報をはき出してくれますので便利です、ただ、反応が遅いので、使い方に工夫が必要です。

T ASAIさん

volumioコマンドについての情報ありがとうございます。
こんなドキュメントがあったとは。。 知りませんでした。

lircrcから叩けるコマンドは、どういう制限があるんでしょうかね。 私も、以前、pythonで記述したスクリプトを呼ぼうとしたけど、ダメだった記憶があります。

lircrcも複雑で使いこなしが難しいソフトですので、何か技があるのかもしれません。

はじめまして。
Pi3Bにvolumio2(最新V) + Sabreberry32の構成で音楽再生に成功しましたが、OLEDの表示が”最初の表示のまま停止状態で曲名も何も表示されません。その前のSabreberry+のと時は、正常に動作していたのですがーーー原因がわからず困っています。アドバイス
頂ければ幸いです。

NAKAMURA さん

取得方法を変えたバージョンを用意していました。
http://nw-electric.way-nifty.com/blog/2016/09/volumio2i2coled.html

こちらで再挑戦してみてはいかがでしょうか。

たかじんさん

早速のレスありがとうございます。
アドバイスの通り再挑戦して解決しました。
ありがとうございました、今後ともよろしくお願いします。

NAKAMURAA さん

よかったです。 記事の方も追記して、新しい方法を推奨するようにします。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/587107/64118435

この記事へのトラックバック一覧です: Volumio2に秋月電子のI2CタイプOLEDを接続して曲名などを表示する方法:

« MPDをソースコードからコンパイルしてPi 2 Pi 3に最適化する方法 | トップページ | Windows10 ついにUSB Audio Class 2.0 に対応して192kHzサンプリングが標準で扱えるようになる »

サイト内検索

Sponsors link

2017年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

最近のトラックバック

無料ブログはココログ