Raspberry pi OS(32bit)で画面を縦方向に変更する

これ別に難しくなかったのですが、はまってしまったので書き加えておきます。

画面を縦方向にする

適当にぐぐると、config.txtにdisplay_rotate=nを書き加える方法が出てきます。ところが私の環境下ではうまくいきません。display_lcd_rotate / display_hdmi_rotateというのもやってみましたが、これもうまくいきません。

そこで、いったんこの方法は置いておいて最近のRaspberry PiOSにあるディスプレイの変更を行うアプリがありましてそこで変更しました。こちらはうまく変更できました。

pygameが画面変更を認識しない?

実は画面を縦置きにしたかったのは、サイネージのような使い方を想定していたんですね。OSは縦置きに対応しているわけですが、画面表示をさせたかったのはpythonのライブラリpygameを使ったものになります。ここでトラブルが発生します。

pygameで画面をinitializeしようとするのですが、どうもうまくいかない。エラーが出るわけではなく、描画のエリアがこちらが想定しているものとは違う。どうもpygame.FULLSCREENで帰ってくる値が横置きのものになっているっぽいのです。どうやっても描画エリアが中途半端になってしまいます。

config.txtに戻ってみる

先ほど、うまくいかないからと言うことで保留にしていたconfig.txtを使った方法をもう一度試してみます。OSが最近のバージョンになってからうまくいかなくなったようですね。dtoverlay=vc4-kms-v3dというのがconfig.txtの最後の方にあります。これをコメントアウトさせて、display_hdmi_rotateで回転方向を指定してやることでうまくいくことを確認しました。

config.txtの方は、pygameも正常に認識してくれています。

半日つぶれました

ササッと書きましたが、半日つぶれました。ググっては修正・リスタート。ググっては修正・リスタート。この繰返し。特にリスタートが苦痛。時間かかりますからね。pygameの方は、最初画像のポジショニングを間違えているのではないかと思って、そちらの方をいじっていました。

どうやっても特定のエリアにしか画像が表示されない。なんかおかしい。フルスクリーンではなく、画面いっぱいのウィンドウ表示だとうまくいく。フルスクリーンがうまくいかない。ということに気がついて、initialize段階でのFULLSCREENが正常な値を返していないのではないか。ということに気がつくまで長かった。

知識のなさを露呈するようなものですが、同じことで悩んでいる人に届くといいなぁと思って記事にしました。

投稿者プロフィール

kaizawa
kaizawaブロガー
新潟県在住。1964年生まれ、東京オリンピックの年ですね。
突然燃え上がったり、鎮火したり興味の波が激しいので注意が必要です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA