2022年4月1日金曜日

1/12 VEWLIX筐体に液晶を組み込む [前編]

1/12 VEWLIX筐体にRaspberry Pi用の液晶(とスピーカー)を組み込んでみます。

[関連記事]


1/12 VEWLIX筐体に液晶を組み込む  [前編]




VEWLIX筐体 プラモデル
VEWLIX筐体 プラモデル


かなり前に安売りで購入したビュウリックス筐体(ペルソナ4 ジ・アルティマックス ウルトラスープレックスホールド)に液晶を組み込んでみます。



今回は余り出来に満足していません。
後日変更するかもしれませんが現時点でのメモとなります。





左:2.4インチ液晶  右:4.3インチ液晶
左:2.4インチ液晶  右:4.3インチ液晶


まず最初に問題となるのが組み込む液晶の選定となります。
元のVEWLIX筐体は32インチの16:9ワイド液晶を搭載しているのですが、小型サイズで安価(ここ重要)の液晶にはワイドの液晶は少ないため選定に困りました。

4インチ位の液晶を縦に搭載して一部分を使用する案も考えましたがコストや手間の関係でやめました。
また4インチ位のスマートフォンなら内蔵できそうですけどね。









そこで今回は2.4インチの液晶がギリギリ入りそうでしたので使用することにしましたが、液晶に接続されているフラットケーブルの向きがどうしても気に食わない。
横画面に対して下向きにケーブルが出ているタイプも有るには有ったのですが、自分のスキルの範囲(あとコスト)で使用できそなものを見つけることが出来なかったので横向きにケーブルが出ているタイプで妥協することにしました。


接続方法や設定方法は以前に試した2.4インチ液晶を使用しました。

[関連記事]


但し今回用の設定もありますので記載しておきます。





設定前の液晶ユニット
設定前の液晶ユニット(仮)


取り敢えず筐体に液晶を組み込んでみて電源入れてみます。
白く発光して液晶の範囲が解りますが、やはりオリジナルのようにはいかないようです。
まず左右ですがどうしても液晶のケーブル側はかなり端に寄せても中央寄りになってしまいます。(画面が左寄りに見え、右側の余白が多い)
仕方ないのでここは妥協します。





電源を入れた状態の液晶ユニット
電源を入れた状態の液晶ユニット


元の2.4インチ液晶は240x320の4:3液晶ですので上部をカットして、写真の赤線の範囲で疑似ワイド風にしてみます。
当初は4:3液晶の中で16:9表示させてそれを移動させると言うブラウン管的考えで出来ると簡単に考えていましたが上手く出来ませんでした。
またシステムの設定を4:3のままRetroArchの設定で16:9にすることは出来ましたがこの設定だと4:3のゲームは16:9の引き延ばし表示になるようでした。
上手く設定できればこの問題を解決できるかもしれませんが、今回は見送りました。
ただワイド専用と割り切るならいいかもしれませんね。

今回はメディアプレイヤーのKodiがメインとなりますのでRaspberry Pi 4を使用します。

RetroPieをSDカードにインストールする。
今回は"retropie-buster-4.7.1-rpi4_400.img.gz"を使用。
※SPIはオンにしない。


fbcp-ili9341をダウンロード
sudo apt-get install cmake cd ~ git clone https://github.com/juj/fbcp-ili9341.git cd fbcp-ili9341

st7735r.hを変更
sudo vi st7735r.h #if defined(ST7789) || defined(ST7789VW) #define DISPLAY_NATIVE_WIDTH 240 #define DISPLAY_NATIVE_HEIGHT 320
st7735r.cppを変更
sudo vi st7735r.cpp #ifdef ST7789 // // // // if ((madctl & MADCTL_ROW_ADDRESS_ORDER_SWAP)) SPI_TRANSFER(0x37, 0, 0); #endif

ビルド
mkdir build cd build cmake -DSTATISTICS=0 -DST7789=ON -DSPI_BUS_CLOCK_DIVISOR=8 -DGPIO_TFT_DATA_CONTROL=5 -DGPIO_TFT_RESET_PIN=6 -DDISPLAY_INVERT_COLORS=ON -DDISPLAY_ROTATE_180_DEGREES=ON -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON .. make -j
・-DDISPLAY_ROTATE_180_DEGREES=ON
 ディスプレイを天地反対向きに組み込んでしまったのでその修正用

-DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON
 config設定を無視してLCDの全画面にスケーリングする



/etc/rc.localを変更
sudo vi /etc/rc.local sudo /home/pi/fbcp-ili9341/build/fbcp-ili9341 & exit 0

再起動
sudo reboot


/boot/config.txtを変更
sudo vi /boot/config.txt hdmi_group=2 hdmi_mode=14 hdmi_cvt=848 480 60 3 0 0 0 hdmi_force_hotplug=1 overscan_top=48

※必要に応じてコントラストの調整

簡単に説明するとconfig.txtで16:9のワイド画面に設定。
それを4:3のLCDに全画面表示させてから、画面の上部から圧縮して疑似ワイド画面を作り出すみたいな感じです。
実際は正確な16:9では無く筐体に合わせて設定しています。

848x480の解像度設定は外部ディスプレイとKodi用となります。




[追加記事]





0 件のコメント:

コメントを投稿