RuneAudio v0.3-beta RPi2 に有機ELディスプレイをつける方法
Arch linuxでi2cデバイスを使う方法がなかなか分からなくて、せっかく用意したSabreBerry+のi2cポートを使わずじまいでした。
やっと方法が分かりましたので、ご紹介いたします。
配線方法はこちらをご覧下さい。 I2Cは電源を含んでも4本だけで接続できるので、とてもシンプルです。
有機ELディスプレイは秋月電子で販売しているものを使いました。
では早速セットアップしていきましょう。
まずは、sshにて接続します。
ユーザ:root
パスフレーズ:rune
です。
<<こんな感じでsshでコマンドを打ってセットアップしていきます> >
■ i2cデバイスを有効にします。
nano /boot/config.txt
#device_tree_param=i2c_arm=on <- 先頭の「#」を削除する
#device_tree_param=i2c_vc=on
#device_tree_param=i2s=on
#device_tree_param=spi=on
#device_tree_param=act_led_trigger=mmc
「ctrl」+「o(オー)」 後、そのままエンターで保存。
「ctrl」+「x」 で閉じます。
自動でi2cドライバをロードするようにします。
echo "i2c-dev" > /etc/modules-load.d/i2c-dev.conf
■ gccのインストール
pacman -Sy gcc
しばらくすると、インストールしますか? って出ますので「y」と応えてインストールします。 (ホントは、全パッケージのアップグレードをせずに、部分的にパッケージを入れるこの方法は推奨されないようです。 詳しくはこちらをご覧下さい。 )
■ pythonからi2cポートを使うためにRPi.GPIOをインストールします。
wget http://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.11.tar.gz
tar xvf RPi.GPIO-0.5.11.tar.gz
cd RPi.GPIO-0.5.11
python2 setup.py install
一旦、rootディレクトリに戻っておきます。
cd /root
i2c-toolsをインストール
pacman -S i2c-tools
■ 有機EL表示用のスクリプトをインストール
wget nw-electric.way-nifty.com/blog/files/oled_ctrl_arch.py
サービスのスクリプトをインストール
cd /etc/systemd/system
wget nw-electric.way-nifty.com/blog/files/oled_ctrl.service
有効化する
systemctl enable oled_ctrl.service
開始する
systemctl start oled_ctrl.service
以上で完了です。
ついでに起動が遅いので下記で無線LANのサービスを止めて、再起動しておきます。
mv /etc/systemd/system/multi-user.target.wants/netctl-auto@wlan0.service /root/
再起動
reboot
↑再起動がやけに遅いので、web-UIからシャットダウン・リブートした方がよいかもしれません。
有機ELディスプレイ(OLED)は、焼付きや寿命問題など課題を抱えていて、カラーTV用途やPCディスプレイなどでは、まだまだ先のものという感じがありますが、モノクロのキャラクタ形ディスプレイでは、残像の少なさ、応答の良さで液晶より良いなって思います。
にほんブログ村
ブログランキングに参加中です。 めざせ1位!
もしよろしければ「ぽちっと」お願いします。
« 方形波の再生波形比較 CD、ハイレゾ、LPレコード(MCカートリッジ) | トップページ | DSD対PCM ダイナミックレンジ比較 (ノイズフロア比較) »
「Raspberry Pi」カテゴリの記事
- MotionEyeと余っているラズパイで監視カメラ(2024.11.21)
- 秋の夜長にはRaspberryPi5 RT-linux セルフビルド(2024.10.13)
- 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル(2024.10.10)
- RaspberryPi 5 の公式OSは32bit版でも64bit?(2024.10.09)
- 秋の夜長にはRaspberry Pi5 64bit カーネル・セフル・ビルド (2024.10.07)
コメント
« 方形波の再生波形比較 CD、ハイレゾ、LPレコード(MCカートリッジ) | トップページ | DSD対PCM ダイナミックレンジ比較 (ノイズフロア比較) »
OLEDセットアップのご紹介ありがとうございます。 "I2C-tools"は、パッケージで提供されているのに気が付かず、ソース探しからでしたので、かなり時間が掛りました。"pacman"ってなかなか優れもの・・・(^_^;
"runeaudio"はarchlinuxなのに何で遅いんだろと思っていましたが、裏で色々とサービスが走っているからなんですね。参考になりました。
投稿: hide | 2015年4月30日 (木) 13時03分
たかじんさん
上記を参考に、OLED版で表示ができたので、
常用の物はLCDバージョンでしたので、
過去のLCDでの例をみながら、若干の変更と追加で無事に表示できました。
ありがとうございました。
投稿: イワン | 2015年4月30日 (木) 17時44分
液晶ができたので、今度はkakashiを入れようとしたら、
apt-get が、通りませんでした。残念!
投稿: イワン | 2015年5月 1日 (金) 01時07分
イワンさん
ソフトウェアのインストールは debian系は apt-get
Arch linuxは pacman です。
pacman -S kakasi でインストールできるようです。 動作は試していません。
投稿: たかじん | 2015年5月 1日 (金) 18時17分
hide さん
archは、起動シーケンスにsystemdという新しいものを使って並列に処理していくので、起動が速いのですが、なぜかwifiは、応答待ちをしていて、タイムアウトするまで、mpdが起動しないようになっています。
起動シーケンスを工夫すると、wifiがあってももう少し速くできるのかも知れません。
投稿: たかじん | 2015年5月 1日 (金) 19時04分
いつも何かと参考にさせて頂いています。ありがとうございます。runeaudioのUIにairplayの楽曲が表示出来ている様になってました。欲張りですがOLEDにもそのデータが送れたらなと考えています。海外サイトの有志が成功している様ですが、たかじんさんのスクリプトを活用させて頂いて表示するためのご助言など頂けたら幸甚です。
投稿: YL | 2015年5月 2日 (土) 07時42分
たかじんさん
コメントありがとうございます。 サービスファイルをカスタマイズできれば良いのですが、今の自分のスキルではハードルが高そうです。 これができるようになると、一気にハマりそうなシステムかと思っています。
それと…、OLEDを繋いだままで、どうやればリモコンが使えるか悩んでいます。以前の記事では、GPIO2から入力をする設定でご紹介がありましたが、その代わりに他のピンをアサインするだけで良いのでしょうか。
投稿: hide | 2015年5月 2日 (土) 18時47分
YL さん
私が作ったI2C-LCD、OLED用のpythonスクリプトはmpcというmpdクライアントを使っているのでairplayは難しいですね。 どこかで動いているものがあるのでしたら、それを使うのが手っ取り早いと思います。
hide さん
ですね。 LIRCのinputを空いている別のGPIOにすると良いと思います。
SabreBerry+が使っていないGPIOポート部をざぐった形にしているのは、他の用途にGPIOを使えるようにするためなんです。 ご活用下さい。
投稿: たかじん | 2015年5月 2日 (土) 21時27分
たかじんさん
いつもありがとうございます。
RPi2になってvolumioが不安定なのでRuneAudioを試したところ安定でいい感じです。
WiFiでアクセス出来るポータブル機を作ってOLEDを入れようとしたのですが表示が出ません。
たかじんさんの手順でインストールは特に異常はなかったのですが、波形を見るとSCL、SDA共にHのままです。
何が考えられるのでしょうか。何かヒントをご教示いただけると幸いです。
投稿: pire | 2015年5月 6日 (水) 03時31分
pire さん
i2cdetect -y 1 でデバイス(OLED)見えているか見てみてください。
投稿: たかじん | 2015年5月 6日 (水) 19時44分
i2cdetect でデバイスが見えませんでしたので、これはOLEDがおかしいに違いないと思い、たまたまIrBerryDACに付けてあった別のOLEDと交換したところ、正常に表示されました。結局、今回新規に購入した秋月のOLEDの初期不良のようです。
Arch Linuxは情報が少なくトラブルと大変ですが、今回おかげで少しI2Cの勉強が出来ました。
お手数おかけしました。
投稿: pire | 2015年5月 6日 (水) 22時27分
pire さん
無事に表示がでてよかったです。 初期不良だったのですね。
arch linuxも、使う人が増えてきているようですので、徐々に情報が増えてくるような気がします。
投稿: たかじん | 2015年5月11日 (月) 19時56分
irberrydacを使わせて頂いております。とても良い音で、音楽を楽しませて、頂いております。今回、秋月電子のOLEDを購入しまして、配線及びVOLUMIOを貴ブログの通り書き直しをしましたが、表示されません。配線を何度も確認し、oledも買い直しをして、取り替えました。また貴ブログのイメージファイルも新らしいSDカードに入れ直しましたが、表示されません。お手上げ状態であります。
何かチェックする箇所があれば、ご教授お願いします。ご多忙中と存じますが、宜しくお願いします。
投稿: 佐藤公彦 | 2015年7月18日 (土) 17時16分
佐藤公彦さん
volumioへ有機ELディスプレイを付けるのは、下記の方が近いです。
https://nw-electric.way-nifty.com/blog/2014/10/raspberrypi-vol.html
https://nw-electric.way-nifty.com/blog/2014/10/raspberrypi-v-1.html
うまく表示できないのは「lcd_ctrl.py」が自動起動していない可能性があるように思います。
volumioが起動したあとsshにてログインしてlcd_ctrl.pyを起動させてみるというのも手です。 起動後、10秒ちょっとで終了してしまう場合は、I2C通信できていない時です。
その時はi2cドライバが入っているかどうか確認します。
投稿: たかじん | 2015年7月18日 (土) 21時29分
たかじんさん
ご多忙中、ご返答有り難うございました。再度、sdカードをフォーマットして、設定をしましたら、OLED表示が出来ました。多分、前回は最初にweb画面でNASの追加などをして、systemを変更してしまった為、作動しなかったようです。お騒がせしてすいませんでした。
投稿: 佐藤公彦 | 2015年7月20日 (月) 18時11分
佐藤公彦さん
良かったです。
投稿: たかじん | 2015年7月22日 (水) 22時03分
ラズパイ2で液晶表示をするまではできたのですが、DSDが音飛びします。
投稿: aya | 2016年4月 1日 (金) 21時38分
自己解決しました!日本語化にも成功しましたw
投稿: aya | 2016年4月 2日 (土) 08時50分
aya さん
良かったです。
投稿: たかじん | 2016年4月 2日 (土) 18時29分
たかじん さん
SabreBerry+ と Volumio で、快適に使用中です。ありがとうございます。
RuneAudio でも、有機ELディスプレイの上段に「音量」ではなく、「サンプリング・レート」と「再生時間」を表示するには、どうしたらよいでしょうか?
投稿: ゆうご | 2016年4月27日 (水) 19時07分
ゆうご さん
有機EL対応バージョンのvolumioからmpcとoled_ctrl2.pyを持ってくるのが手っ取り早いと思います。
pythonスクリプトの方は、若干、変更が必要かもしれません。
投稿: たかじん | 2016年4月27日 (水) 22時17分
たかじん さん
アドバイスありがとうございました。
Rune にも kakasi をインストールして、カタカナで日本語表示するところまでは、出来ましたが、上段の表示は未だ成功していません。
(volumio の usr/bin から mpc をコピーして、oled_ctrl2.py を oled_ctrl_arch.py にコピー&ペイストしてみただけでは上手く行きませんでした)
もう少しアレコレいじってみます。
投稿: ゆうご | 2016年4月28日 (木) 18時12分
ゆうごさん
pythonスクリプトを少し変えないといけない可能性が高いです。
volumio用のままだと、archでは起動しなかったので変えたと思いますが、ちょっと記憶が定かではありません。
とりあえず見比べてみてください。
投稿: たかじん | 2016年4月29日 (金) 01時34分