OLED を Raspberry Pi のコンソールにする
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
*お知らせ [#j566da27]
**OMMF 2022 で 「Raspberry Pi 用 I2C OLED (有機EL) 小型デ...
--通常は Raspberry Pi でCOLOR(RED){このページの末尾にある...
---Install.sh を実行すると必要なソフトウェアが apt-get で...
---ただし COLOR(RED){I2C を手動で有効にする必要があります}
(raspi-configコマンド→Advanced Options または Interfacing...
---初代 Rapberry Pi で安定動作させるためには、GUI を無効...
---モジュールに同梱したマニュアル
#ref(2022ommf-man.pdf)
--2022/12/5: oled.zip 内の実行ファイル "oled" がダイナミ...
**OMMF 2018 で 「Raspberry Pi OLED 小型ディスプレイキット...
--基板は下記の「初期設定」の「(1) 配線」と同じ結線になっ...
&ref(oledbd.jpg,zoom,128x160);
--COLOR(RED){通常は Raspberry Pi で下記の「初期設定」の「...
*概要 [#nd4d04e0]
RaspBerry Pi に I2C 接続の単色 128*64 ドットの OLED(有機 ...
DHCP 環境で RaspBerry Pi にリモートでログインしたいけれど...
//&ref(login.jpg,zoom,320x240);
//&ref(zero.jpg,zoom,300x240);
&ref(case.jpg,zoom,400x340);
//&ref(inu.jpg,zoom,300x240);
//&ref(oled02.jpg,zoom,300x240);
//&ref(oled03.jpg,zoom,300x240);
-動画 &ref(oled01.mpg); ([[Twitter:https://twitter.com/mi...
-mplayer でビデオ再生: https://www.youtube.com/watch?v=AY...
-機種: RaspberryPi(Model-B, Model-B+, Zero)で動作確認
-動作確認した OS
--システムの起動スクリプトが systemd の OS (Jessie 以降) ...
--Linux pi 4.1.13+ #826 PREEMPT Fri Nov 13 20:13:22 GMT 2...
---NOOBS v1.5.0, v1.9.2 でインストール
--Linux raspberrypi 4.4.34+ #930 Wed Nov 23 15:12:30 GMT ...
---Raspbian Jessie Lite Release date: 2017-01-11
-OLED(有機 EL) ディスプレイ: SSD1306 制御の製品(4ピン, I2...
-購入元
--[[秋月:http://akizukidenshi.com/catalog/g/gP-12031/]]
--[[Aitendo:http://www.aitendo.com/product/14959]]
--海外: Aliexpress など
*動作 [#t1aefde1]
-CTRL+ALT+F1 (または "/bin/chvt 1" コマンド)でコンソール...
-CTRL+ALT+F2 以降のコンソールに切り替えると通常通りの画面...
-フレームバッファ(VRAM)の内容を、バックグラウンドで動いて...
-COLOR(RED){コンソールからログインしたときにキーボードで ...
*初期設定 [#uba4dcfc]
**自動設定スクリプト(Install.sh)を使う場合 [#s155fee4]
(1) 配線
-RaspberryPi の I2C 出力と OLED ディスプレイを結線する(必...
-1,3,5,6 ピンを使用。図は RaspberryPi ModelA/B の GPIO が...
-COLOR(RED){電源のピン配列に注意!!}: GND と VDD のピン配...
#ref(hardware.png,zoom,400x340)
--配線の参考にしたページ: [[Raspberry PiでI2C接続の128×64...
(2) &ref(oled.zip); をダウンロードして展開し、root 権限で...
# sh Install.sh
-下記の「手動で設定する場合」の (2)-(7) が自動で実行される
(3) I2C の有効化
# raspi-config
-メニューから "Advenced Options" → "I2C" を選択して有効化
--メニューにない場合は "Interfacing Options" → "I2C" から...
-ここで "4 Internationalisation Options" メニューから日本...
-再起動すると有機 EL ディスプレイの表示が開始する
**手動で設定する場合(通常は不要です) [#jd2f0d32]
(1) 配線
-RaspberryPi の I2C 出力と OLED ディスプレイを結線する(上...
--参考ページ: [[Raspberry PiでI2C接続の128×64 OLEDに日本...
(2) &ref(oled.zip); をダウンロードして展開し oled コマン...
# cp oled /bin/oled
# chmod a+x /bin/oled
(3) 8dot フォント(alt-8x8 他)をインストール
# export DEBIAN_FRONTEND=noninteractive
# apt-get install console-data
-フォントファイルが /usr/share/consolefonts に追加される
//-ここでキーボードの設定もできる
//&ref(console.png,zoom,300x200);
(4) I2C の有効化
# raspi-config
-メニューから "Advenced Options" → "I2C" を選択して有効化
--メニューにない場合は "Interfacing Options" → "I2C" から...
-ここで "4 Internationalisation Options" メニューから日本...
-再起動
(5) 解像度の追加
-/etc/fb.modes を編集して、末尾に下記の行を追加
mode "128x64-60"
# D: 25.175 MHz, H: 31.469 kHz, V: 59.94 Hz
geometry 128 64 128 64 8
timings 39722 48 16 33 10 96 2
endmode
(6) oled サービスの追加
-/etc/systemd/system/oled.service を新規作成して下記の内...
[Unit]
Description = oled daemon
After = multi-user.target
# After=display-manager.service
[Service]
ExecStartPre=/bin/bash -c "/bin/sleep 10; /bin/chvt 1; /...
ExecStopPost=/bin/bash -c "/bin/fbset '800x600-60'; /bin...
ExecStart = /bin/oled
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
(7) OS 起動時にサービスを開始するように指定
# systemctl enable oled
を実行する(不要になったら systemctl disable oled で無効化...
*Raspberry Pi Zero に横向きに OLED を接続する方法 [#l4816...
-I2C 専用のポートでなくても、GPIO に OLED を接続すること...
--オーバーレイという機能で GPIO でソフトウェア I2C を実現...
---https://qiita.com/spicemanjp/items/50474e56ddccabf02b01
--/dev/i2c-3 等としてソフトウェア I2C が使えるようになる
--COLOR(RED){【注意】OLED 側で I2C のプルアップが必要}
---SCK, SDA をそれぞれ 1[kΩ] でプルアップした
-手順
--まず上記の「初期設定(自動設定スクリプト(Install.sh)を使...
--/boot/config.txt に下記の行を追記して再起動する
---SDA=GPIO9, SCL=GPIO10 として /dev/i2c-3 が使えるように...
dtoverlay=i2c-gpio,i2c_gpio_sda=9,i2c_gpio_scl=10,i2c_gp...
--/etc/systemd/system/oled.service を修正。下記の動作をす...
---電源用に GPIO22 を出力ピンにして 0[V] を出力する
---出力電流が GPIO 出力をオーバーしないように OLED の明る...
---I2C データを /dev/i2c-3 に出力する
[Unit]
Description = oled daemon
#After = multi-user.target
After=display-manager.service
[Service]
ExecStartPre=/bin/bash -c "echo 22 > /sys/class/gpio/exp...
ExecStopPost=/bin/bash -c "/bin/fbset '800x600-60'; /bin...
ExecStart = /bin/oled 250 0x3c /dev/i2c-3 /dev/fb0 0
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
--OLED を接続するピン位置
COLOR(RED){(OLED のピン配列が左から GND-VDD-SCK-SDA であ...
#ref(gpio-zero1.jpg,zoom,320x240)
--表示
#ref(gpio-zero2.jpg,zoom,320x240)
*補足 [#xdb433d7]
-COLOR(RED){USB 日本語キーボードを使うには}
--標準ではキーバインドが日本語キーボード用になっていませ...
# loadkeys jp106
-自動設定スクリプト Install.sh を書きました。oled.zip に...
-%%サービスを停止しても X-Window の解像度が 128*64 のまま...
--原理を正確に把握していませんが、上記 (6) の /etc/system...
-手動でのサービスの停止と再開
# service oled stop
でサービスが停止し、有機 EL ディスプレイが更新されなくな...
# service oled start
でサービスを再開します(起動前に10秒間のウェイトが入ります...
-%%I2C スレーブアドレスが 3CH(78H) 以外のディスプレイを...
--引数でスレーブアドレス他のパラメータを指定できるように...
-CPU 負荷を軽減するために、1フレーム表示ごとに 100ms のウ...
-/etc/rsyslog.conf の末尾を次のように編集すると、システム...
--編集前: xconsole に出力
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
*.=notice;*.=warn |/dev/xconsole
--編集後: OLED(/dev/tty1) に出力
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
*.=notice;*.=warn |/dev/tty1 ←この行を修正
-一定時間(600秒)の無操作でディスプレイ表示が OFF になりま...
--ディスプレイ OFF までの時間は /sys/module/kernel/parame...
-下記のコマンドでカーソルが非表示になります
# setterm -cursor off > /dev/tty1
-プロンプトの変更
--bash の場合 export PS1=">"
--csh の場合 set prompt=">"
-COLOR(RED){文字の表示}
--コンソール(/dev/tty1) にテキストをリダイレクトで出力す...
(時刻を表示する例)
# date -R > /dev/tty1
-COLOR(RED){画像の表示}
--画像の表示テスト用プログラム dispImg を作成しました。ol...
# convert file.png file.pbm
# dispImg file.pbm
*外部リンク [#oc2baf9f]
-[[raspberrypi3 yoctoでSSD1306 OLEDディスプレイを動かす:h...
--後日このページの存在に気づきました。このページの方法で...
-[[Raspberry PiでSPIシリアルで有機ELにフレームバッファを...
--本記事と同様の表示を SPI 接続のカラー OLED で実現されて...
*ソフトウェア [#cae08b6d]
**ソフトウェアのダウンロード(ソース+RaspberryPi用バイナリ...
-最新版
--&ref(oled.zip);
-旧版
--&ref(oled.1.zip);
**oled コマンドについて [#c1ee732d]
# oled [-h] waitTime i2cAddress i2cDeviceFile framebuffe...
-フレームバッファ(VRAM)の内容を一定周期で OLED に表示する...
- -h を付けるとヘルプを表示して終了します
-引数は省略可能ですが、いずれかの引数を指定する場合は、そ...
-エラーメッセージは syslog に出力されます(/var/log/messag...
-raspi-config コマンドで RaspberryPi の I2C 通信機能を有...
|引数|意味|省略時のデフォルト値|
|waitTime|画面転送の周期(ms)|100|
|i2cAddress|I2C のスレーブアドレス|0x3c|
|i2cDeviceFile|I2Cのデバイスファイル名|/dev/i2c-0 と /dev...
|framebufferDeviceFile|フレームバッファのデバイスファイル...
|Brightness|OLED の明るさ(0-255)|128|
-例
# oled 100 0x3c /dev/i2c-0 /dev/fb0 128
----
#counter
検索用キーワード:Raspberry pi, ラズベリーパイ, ラズパイ, ...
RIGHT:[https://goo.gl/ZAZqIj]
RIGHT:fanoutsendai@lait.sakura.ne.jp
終了行:
*お知らせ [#j566da27]
**OMMF 2022 で 「Raspberry Pi 用 I2C OLED (有機EL) 小型デ...
--通常は Raspberry Pi でCOLOR(RED){このページの末尾にある...
---Install.sh を実行すると必要なソフトウェアが apt-get で...
---ただし COLOR(RED){I2C を手動で有効にする必要があります}
(raspi-configコマンド→Advanced Options または Interfacing...
---初代 Rapberry Pi で安定動作させるためには、GUI を無効...
---モジュールに同梱したマニュアル
#ref(2022ommf-man.pdf)
--2022/12/5: oled.zip 内の実行ファイル "oled" がダイナミ...
**OMMF 2018 で 「Raspberry Pi OLED 小型ディスプレイキット...
--基板は下記の「初期設定」の「(1) 配線」と同じ結線になっ...
&ref(oledbd.jpg,zoom,128x160);
--COLOR(RED){通常は Raspberry Pi で下記の「初期設定」の「...
*概要 [#nd4d04e0]
RaspBerry Pi に I2C 接続の単色 128*64 ドットの OLED(有機 ...
DHCP 環境で RaspBerry Pi にリモートでログインしたいけれど...
//&ref(login.jpg,zoom,320x240);
//&ref(zero.jpg,zoom,300x240);
&ref(case.jpg,zoom,400x340);
//&ref(inu.jpg,zoom,300x240);
//&ref(oled02.jpg,zoom,300x240);
//&ref(oled03.jpg,zoom,300x240);
-動画 &ref(oled01.mpg); ([[Twitter:https://twitter.com/mi...
-mplayer でビデオ再生: https://www.youtube.com/watch?v=AY...
-機種: RaspberryPi(Model-B, Model-B+, Zero)で動作確認
-動作確認した OS
--システムの起動スクリプトが systemd の OS (Jessie 以降) ...
--Linux pi 4.1.13+ #826 PREEMPT Fri Nov 13 20:13:22 GMT 2...
---NOOBS v1.5.0, v1.9.2 でインストール
--Linux raspberrypi 4.4.34+ #930 Wed Nov 23 15:12:30 GMT ...
---Raspbian Jessie Lite Release date: 2017-01-11
-OLED(有機 EL) ディスプレイ: SSD1306 制御の製品(4ピン, I2...
-購入元
--[[秋月:http://akizukidenshi.com/catalog/g/gP-12031/]]
--[[Aitendo:http://www.aitendo.com/product/14959]]
--海外: Aliexpress など
*動作 [#t1aefde1]
-CTRL+ALT+F1 (または "/bin/chvt 1" コマンド)でコンソール...
-CTRL+ALT+F2 以降のコンソールに切り替えると通常通りの画面...
-フレームバッファ(VRAM)の内容を、バックグラウンドで動いて...
-COLOR(RED){コンソールからログインしたときにキーボードで ...
*初期設定 [#uba4dcfc]
**自動設定スクリプト(Install.sh)を使う場合 [#s155fee4]
(1) 配線
-RaspberryPi の I2C 出力と OLED ディスプレイを結線する(必...
-1,3,5,6 ピンを使用。図は RaspberryPi ModelA/B の GPIO が...
-COLOR(RED){電源のピン配列に注意!!}: GND と VDD のピン配...
#ref(hardware.png,zoom,400x340)
--配線の参考にしたページ: [[Raspberry PiでI2C接続の128×64...
(2) &ref(oled.zip); をダウンロードして展開し、root 権限で...
# sh Install.sh
-下記の「手動で設定する場合」の (2)-(7) が自動で実行される
(3) I2C の有効化
# raspi-config
-メニューから "Advenced Options" → "I2C" を選択して有効化
--メニューにない場合は "Interfacing Options" → "I2C" から...
-ここで "4 Internationalisation Options" メニューから日本...
-再起動すると有機 EL ディスプレイの表示が開始する
**手動で設定する場合(通常は不要です) [#jd2f0d32]
(1) 配線
-RaspberryPi の I2C 出力と OLED ディスプレイを結線する(上...
--参考ページ: [[Raspberry PiでI2C接続の128×64 OLEDに日本...
(2) &ref(oled.zip); をダウンロードして展開し oled コマン...
# cp oled /bin/oled
# chmod a+x /bin/oled
(3) 8dot フォント(alt-8x8 他)をインストール
# export DEBIAN_FRONTEND=noninteractive
# apt-get install console-data
-フォントファイルが /usr/share/consolefonts に追加される
//-ここでキーボードの設定もできる
//&ref(console.png,zoom,300x200);
(4) I2C の有効化
# raspi-config
-メニューから "Advenced Options" → "I2C" を選択して有効化
--メニューにない場合は "Interfacing Options" → "I2C" から...
-ここで "4 Internationalisation Options" メニューから日本...
-再起動
(5) 解像度の追加
-/etc/fb.modes を編集して、末尾に下記の行を追加
mode "128x64-60"
# D: 25.175 MHz, H: 31.469 kHz, V: 59.94 Hz
geometry 128 64 128 64 8
timings 39722 48 16 33 10 96 2
endmode
(6) oled サービスの追加
-/etc/systemd/system/oled.service を新規作成して下記の内...
[Unit]
Description = oled daemon
After = multi-user.target
# After=display-manager.service
[Service]
ExecStartPre=/bin/bash -c "/bin/sleep 10; /bin/chvt 1; /...
ExecStopPost=/bin/bash -c "/bin/fbset '800x600-60'; /bin...
ExecStart = /bin/oled
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
(7) OS 起動時にサービスを開始するように指定
# systemctl enable oled
を実行する(不要になったら systemctl disable oled で無効化...
*Raspberry Pi Zero に横向きに OLED を接続する方法 [#l4816...
-I2C 専用のポートでなくても、GPIO に OLED を接続すること...
--オーバーレイという機能で GPIO でソフトウェア I2C を実現...
---https://qiita.com/spicemanjp/items/50474e56ddccabf02b01
--/dev/i2c-3 等としてソフトウェア I2C が使えるようになる
--COLOR(RED){【注意】OLED 側で I2C のプルアップが必要}
---SCK, SDA をそれぞれ 1[kΩ] でプルアップした
-手順
--まず上記の「初期設定(自動設定スクリプト(Install.sh)を使...
--/boot/config.txt に下記の行を追記して再起動する
---SDA=GPIO9, SCL=GPIO10 として /dev/i2c-3 が使えるように...
dtoverlay=i2c-gpio,i2c_gpio_sda=9,i2c_gpio_scl=10,i2c_gp...
--/etc/systemd/system/oled.service を修正。下記の動作をす...
---電源用に GPIO22 を出力ピンにして 0[V] を出力する
---出力電流が GPIO 出力をオーバーしないように OLED の明る...
---I2C データを /dev/i2c-3 に出力する
[Unit]
Description = oled daemon
#After = multi-user.target
After=display-manager.service
[Service]
ExecStartPre=/bin/bash -c "echo 22 > /sys/class/gpio/exp...
ExecStopPost=/bin/bash -c "/bin/fbset '800x600-60'; /bin...
ExecStart = /bin/oled 250 0x3c /dev/i2c-3 /dev/fb0 0
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
--OLED を接続するピン位置
COLOR(RED){(OLED のピン配列が左から GND-VDD-SCK-SDA であ...
#ref(gpio-zero1.jpg,zoom,320x240)
--表示
#ref(gpio-zero2.jpg,zoom,320x240)
*補足 [#xdb433d7]
-COLOR(RED){USB 日本語キーボードを使うには}
--標準ではキーバインドが日本語キーボード用になっていませ...
# loadkeys jp106
-自動設定スクリプト Install.sh を書きました。oled.zip に...
-%%サービスを停止しても X-Window の解像度が 128*64 のまま...
--原理を正確に把握していませんが、上記 (6) の /etc/system...
-手動でのサービスの停止と再開
# service oled stop
でサービスが停止し、有機 EL ディスプレイが更新されなくな...
# service oled start
でサービスを再開します(起動前に10秒間のウェイトが入ります...
-%%I2C スレーブアドレスが 3CH(78H) 以外のディスプレイを...
--引数でスレーブアドレス他のパラメータを指定できるように...
-CPU 負荷を軽減するために、1フレーム表示ごとに 100ms のウ...
-/etc/rsyslog.conf の末尾を次のように編集すると、システム...
--編集前: xconsole に出力
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
*.=notice;*.=warn |/dev/xconsole
--編集後: OLED(/dev/tty1) に出力
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
*.=notice;*.=warn |/dev/tty1 ←この行を修正
-一定時間(600秒)の無操作でディスプレイ表示が OFF になりま...
--ディスプレイ OFF までの時間は /sys/module/kernel/parame...
-下記のコマンドでカーソルが非表示になります
# setterm -cursor off > /dev/tty1
-プロンプトの変更
--bash の場合 export PS1=">"
--csh の場合 set prompt=">"
-COLOR(RED){文字の表示}
--コンソール(/dev/tty1) にテキストをリダイレクトで出力す...
(時刻を表示する例)
# date -R > /dev/tty1
-COLOR(RED){画像の表示}
--画像の表示テスト用プログラム dispImg を作成しました。ol...
# convert file.png file.pbm
# dispImg file.pbm
*外部リンク [#oc2baf9f]
-[[raspberrypi3 yoctoでSSD1306 OLEDディスプレイを動かす:h...
--後日このページの存在に気づきました。このページの方法で...
-[[Raspberry PiでSPIシリアルで有機ELにフレームバッファを...
--本記事と同様の表示を SPI 接続のカラー OLED で実現されて...
*ソフトウェア [#cae08b6d]
**ソフトウェアのダウンロード(ソース+RaspberryPi用バイナリ...
-最新版
--&ref(oled.zip);
-旧版
--&ref(oled.1.zip);
**oled コマンドについて [#c1ee732d]
# oled [-h] waitTime i2cAddress i2cDeviceFile framebuffe...
-フレームバッファ(VRAM)の内容を一定周期で OLED に表示する...
- -h を付けるとヘルプを表示して終了します
-引数は省略可能ですが、いずれかの引数を指定する場合は、そ...
-エラーメッセージは syslog に出力されます(/var/log/messag...
-raspi-config コマンドで RaspberryPi の I2C 通信機能を有...
|引数|意味|省略時のデフォルト値|
|waitTime|画面転送の周期(ms)|100|
|i2cAddress|I2C のスレーブアドレス|0x3c|
|i2cDeviceFile|I2Cのデバイスファイル名|/dev/i2c-0 と /dev...
|framebufferDeviceFile|フレームバッファのデバイスファイル...
|Brightness|OLED の明るさ(0-255)|128|
-例
# oled 100 0x3c /dev/i2c-0 /dev/fb0 128
----
#counter
検索用キーワード:Raspberry pi, ラズベリーパイ, ラズパイ, ...
RIGHT:[https://goo.gl/ZAZqIj]
RIGHT:fanoutsendai@lait.sakura.ne.jp
ページ名: