経緯
ROS+Raspberry Piロボットに乗せれそうな小型モニタを探していたところ,
タッチパネル搭載の7インチで4000円弱と破格のモニタを見つけました.
7インチにしては安いです.
OSOYOO 7 インチ TFT タッチ スクリーン
しかも中国のロボット系の教材をつくっているOSOYOOさんが作っています.
DISコネクタでの接続なので,外部電源も必要なく,HDMIケーブルも必要ないので,
ロボットの配線的にはとてもスッキリします.しかもタッチパネル付きなので色々遊べそう.
Raspberry Pi 2~4に対応しているみたいです.
開封の儀
開けていきましょう.
梱包材でしっかりと保護されています.4000円にしては良き.
内容物一覧.中華名物今回のおまけは小さいドライバーでした.
レビュープレゼントカード等は入っていませんでした.
しっかりとした会社だ.
説明書は日本語と英語で書かれています.
載っている設定方法はRaspbian OS用のようでした.
ネジ4本をしめてケーブルをぶっ差すだけでインストール完了.
特にドライバーの設定する必要もなく,タッチパネルもすぐに動作しました.
解像度は800×480で,画質は値段相応ですが,全然使えそうです.
四隅のネジ穴もあるので,MDFかなんかで外枠とスタンドを作ってあげればよい感じになりそうです.
お負け 解像度を上げてみたい
説明には設定で1920×1080まで解像度を上げられると書いてあったのですが,
Raspberry Pi × Ubuntu20.04では800×480の設定しか出てきませんでした.
Ubuntu20.04のHDMI周りにはバグがあるらしく,大きなモニターをつないだ際に解像度がうまく選択できないことがあります.今回もそれかなと思い色々試しましたが,どうもうまくいきません.
まぁこいつはDSI接続だしなぁ...
このディスプレイの用途はプログラムの動作確認をする程度で,
ロボット開発中はこの小さいディスプレイでコーディングする事はありません.
VNC接続してメインPCの画面からリモートで操作する事がメインになりますので,
しばらくは無理やり解像度を上げて運用する事にします.
あまり解像度を上げすぎても動作がもっさりしますので,今回は1280×720で設定します.
ターミナルを立ち上げて下記コマンドを実行します.
xrandr
モニタの情報が表示されます.
Screen 0: minimum 320 x 200, current 800 x 480, maximum 7680 x 7680
DSI-1 connected primary 800x480+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
FIXED_MODE 60.05 +
800x480_60.00 59.48*
1280x720_60.00 (0x3ae) 74.500MHz -HSync +VSync
h: width 1280 start 1344 end 1472 total 1664 skew 0 clock 44.77KHz
v: height 720 start 723 end 728 total 748 clock 59.86Hz
DSI-1という所がモニターの番号になるので覚えておきます.
ここから新しい解像度の選択肢が出るように設定していきます.
cvt 1280 720
すると下記のように表示されます.
# 1280x720 59.86 Hz (CVT 0.92M9) hsync: 44.77 kHz; pclk: 74.50 MHz
Modeline "1280x720_60.00" 74.50 1280 1344 1472 1664 720 723 728 748 -hsync +vsync
Madeline 以降をコピーしておきます.
下記のコマンドsudo xrandr --newmode 以降にコピーしたコマンドを張り付けて実行します.
sudo xrandr --newmode "1280x720_60.00" 74.50 1280 1344 1472 1664 720 723 728 748 -hsync +vsync
解像度の選択肢に追加します.
sudo xrandr --addmode DSI-1 "1280x720_60.00"
この対処法は、Ubuntuが再起動されてしまうと作業が破棄されてしまいますので,
.profileにコマンドを登録しておきます.
sudo gedit ~/.profile
ファイルが開かれたら一番下の行に下記を追加して保存しておきます.
一応デフォルトの800×480にもすぐ戻せるようにコメントアウトで追加しておきました.
# Added for a missing resolution
sudo xrandr --newmode "1280x720_60.00" 74.50 1280 1344 1472 1664 720 723 728 748 -hsync +vsync
sudo xrandr --addmode DSI-1 "1280x720_60.00"
#sudo xrandr --newmode "800x480_60.00" 29.50 800 824 896 992 480 483 493 500 -hsync +vsync
#sudo xrandr --addmode DSI-1 "800x480_60.00"
再起動すると
が,本体の表示は縮小がうまくいかず大部分が見切れています.
タッチパネルはそれっぽい場所がちゃんと反応してました.
Ubuntu側で無理やりDSI出力の画面を縮小させれば,表示できそうなのですが
小一時間格闘しましたが,改善の兆しが見られなかったので
一旦,開発中は1280×720で運用⇒ロボットに搭載する際は800×480で運用
という方法で使ってみます.
また解決方法が分かったら追記します.
詳しい方いらっしゃいましたら,教えていただけますと幸いです.
まとめ
解像度は少し低いですが,小物を作るにはちょうどいい7インチタッチパネル搭載で
かなりスッキリしたラズパイマシンを用意できます.
ロボットを搭載する以外にも色々作れそうです.
私が見た時点では10台しかなかったので,記事を公開する前にもう数台ポチっておきます.