VF-1 VALKYRIE バルキリー52 まだ続くよw2.8インチ液晶

ちょっと更新期間が開いてしまいましたが、こういう時は大概プログラム関係やってますw
前回で機体のデモ動作が完成しましました。
次はこの機体を操作するためのリモコンを製作していきます。
リモコンはせっかくなので液晶付きとしたいので、今回は液晶のお話~w

使うのはこちら!なんと丁度Vividさんと同じILI9341の2.8インチw

ただ、私の物はSPI接続となっています^^;

使うライブラリーはもちろん、らびやんさんのLovyanGFX!
もうこれ以外考えられないw
そもそもこの液晶選んだのもLovyanGFXに対応だったからですw

この液晶はタッチパネルも付いていますのでそれも利用です。
こちらのサイトも参考にさせてもらいながら、lovyanGFXのuser_settingを見ながら設定

設定プログラムは後ほど載せて置きます。
こんな感じで動きます。

すげーよ!!LovyanGFX!!なんかよく分からないながらも設定したら普通に動いたwww

いきなりタッチパネル扱えたwwwwちょっと怖いwww!

てなことでプログラムを少し変えてタッチパネルのテスト

指定のエリアをタッチすると対応した動画が再生され、動画再生中は画面を触ると初期画面に戻るようにしてみました。

なんか超簡単に出来たwwwタッチパネルは使えそう。
てなことで、これをリモコンに付けるとして、最大のネックは機体がデモ動作している間だよね~。
画面に「デモ中!!」文字表示しても良いけど、ちょっと手抜き感が凄いwww
やはり理想はコクピットと同じ画面が流れる感じかな。ただ、リモコンでその画面流れたら機体の方のモニター見てもらえない可能性も有るけどねww

まっ、とりあえずコクピットと同じ映像を流す方向でw

プログラムの修正を開始しました。
最初の辺の画面は簡単wただ単に拡大するだけ。

ただ、大きくなった分なんか隙間が目立つww

ちょっと複雑な辺りでは

こんな感じでグチャグチャになりながら整理していきました。

機体に乗っている液晶の表示範囲が約80x60程度。今回の液晶が320x240でそれぞれの辺が4倍になっているので、当然画像とかは全部作り直しw
もしかしてやるかな~?と思って元画像は全部残していましたので大きさの調整だけでよかったのでその辺は比較的簡単でした。

で、進んでいくとついに、パラパラ動画部分の作成となります。この辺も元の動画は保存してありますので、大きさを合わせてパラパラ画像の作成は簡単に。ただ、これが表示となると超悩みましたwww

元が80x60で今回は320x240ピクセルなんですよね・・・・・4倍x4倍=16倍の面積の表示になります・・・・・・・という事は当然表示時間も16倍となりますよね・・・・・・・

で、とりあえず何も考えずに320x240の画像でパラパラ動画やってみました。

これは酷いwwwでも、まっ当然こうなりますわな~~~。
これは相当悩みましたよwww
まず思いついたのが、それぞれのフレームの枚数を減らして読み込む回数を少なくする。
で、1/3のフレームレートになるようにパラパラ画像の枚数を間引いてみました。
カタカタ感むしろ増えたんじゃないwwwwww

そうなんですよw上の動画見ると、1枚の画像を表示するのに時間がかかっているで画像を間引ても、その間が飛んでしまってむしろカタカタ感増える感じなんです。

やはりSPIの限界か・・・・・・・Vividさんの様にパラレルにするべきか・・・・・・・・
(ちなみにVividさんも偶然にも同時期に同じ液晶のパラレルと格闘中。ブログはこちら
でもパラレルにするとピンが絶対足りなくなる・・・・・・・

最終手段として全画面でデモを表示せずに半分ぐらいの範囲で表示するか・・・・・・・かっちょ悪いな・・・・・・。
と思いながらも試してみると半分ぐらいならまだ見れるスピードに。
全画面だと元の16倍だけど半分なら2x2=4倍だもんね・・・・
でもやはりかっちょ悪いw

3日くらいああでもない、こうでもないと試してみました・・・・・
そこで、ふと、あれっ、これ元の2x2倍のスプライトに表示してそのスプライトを縦横2倍にして全画面に表示したらどうなんだろ?少なくともSPIの通信時間は4倍までで済むし・・・

スプライトに付いてはこちらをご覧ください。うまく説明されています^^)

てなことで160x120のスプライトをメモリー上に作成してそこに描画して2倍表示で画面に映すようにしてみました。ついでにフレームの枚数も1/2にしたものがこちらです。

うひょー٩(๑>∀<๑)۶ 随分早くなったwww多分元の画面より早いかもw

2倍表示だからちょっと画質落ちるけどこれで行くしかないw

てなことでパラパラ動画の攻略ができました!!

でもね、スプライトで行くのが決まったのですが、そうすると今度はメモリの限界にすぐにぶち当たって、スプライトが描画されない状況にww
例えばこの画面とか

左の大きなマップ、右のレーダー、右下の武器選択画面、ヒカル、マックス、柿崎と全てスプライトで表示しようと思ったのですが、全くメモリーが足りないw
そこでヒカル、マックス、柿崎はスプライトの使いまわしw右下の武器選択画面は表示したらすぐにスプライトの消去と徹底的にスプライトの管理を行って何とか一通り表示出来るようになりました。

ちなみにこの画面

右側はメモリの不足でスプライトが表示されていませんw
結局左部分の表示160x240のスプライトを上下160x120の2つに分けて、下半分の動きが無くなったらすぐに下半分のスプライトを消去してメモリを確保することによって何とか表示出来るようになりました。で、最終的にちょっと画面拡大で隙間が目立つ部分に文字などを足してこんな感じに仕上がりました。

(この画面だけ情報量の密度感高過ぎたかもww)

てな感じで結構苦労しましたw
ちなみに最後のワンコロさんの写真とかせっかく借りたので出来るだけ綺麗な画像でと思ってかなり面倒だったw

最終的にこんな感じに纏めました。途中コクピットと速度を合わせるための編集ポイントとして一瞬止まる時有りますが無視でww
この後同期させていきます^^

あっ、それと一番最初にカッコいい起動画面を追加してみました!!

ちなみに、機体に搭載されている液晶表示はこちら。

なんかおっきな画面で見ちゃった後だとコクピットの画面じゃ辛いねwwwwww
やっぱデモ画面表示やめようかなwwwwww

あっ、そうそう、ILI9341、SPI接続のuser_settingプログラムはこちら。

関連すると思われる記事:

    None Found

8 comments

  1. なになに?
    なんでwin3.1?
    めっちゃなついんですけど!!
    そのくらいのマシンパワーってことなのかな?

  2. teznoさん こんばんは!
    いやいやwww
    冗談でwindows3.1の起動画面入れてみたwww
    バルキリーがWindows3.1で動いたいたら面白いじゃないww

  3. こんばんは
    6jiroさんと同じ時に同じデバイスでトライしているなんて、びっくりですね!
    流石「うっかり教」教祖様と信者です。(笑)
    やはり小さなLCDから320×240の大画面は、迫力あって使い心地が良いですよね。
    SPIのフレームレートは、ちょっと厳しいですか! でもスプライトを工夫されて、良い感じにスムースに見えます。実は私もスプライトをテストしていて、どうしても画面が欠損して、設定が悪いのかと苦しみました。結果、フル画面のスプライトはメモリオーバーで「物理的に不可能」と気づくまで1週間以上苦しみました。
    今のところ、パラレル接続+SD+DAC+4Ch入力まで、何とか行けそうです。

  4. Vividさん こんばんは!
    ホントww
    示し合わせたように同じデバイスやってたとはwwww
    画面大きくなると出来る事増えますが、なかなか大変なことももっと増えますねww
    スプライトは画面大きいとメモリとの戦いになりますよねw
    画面が大きな場合は3分割して2つのスプライトを使って表示することもされるようです。
    https://lang-ship.com/blog/work/lovyangfx-9-time/
    音の方はI2Cで別arduinoにしようと思っていましたがDACの方がどのようになるのか楽しみです!

  5. こんばんは
    またこんな面白いデバイス持ち出しちゃってw
    大画面は迫力ありますね、でも改めて見るとそれよりも、よくあの小さな画面であそこまで情報詰め込んで動かしてたな~という方がインパクトあります(^^)
    設定ソースは読みませんでした。もう異次元でついていけませぬ。Vividさんと良い旅を!ww

  6. FGOなおさん こんばんは!
    リモコン用にタッチパネル使うことにしてみましたw
    ボタン沢山付けると端子足りなくなるので^^;
    なおさん良い見方してくれてるねw確かにあの小さな画面に情報詰めるの結構大変だったんですよね~。ただ画面が大きくなると詰める情報なさ過ぎて少し間延びしてますww
    うんwあのプログラム部分は実際にLCD使う時来たらやってみてwこれだけ見ても何の事か分からないと思うからww

  7. スプライト、久しぶりに聞きました。
    今のPCは描画速度がとてつもなく早くなり、スプライトが不要になったという認識でしたが、こういった環境では、スプライトが有効になるのですね。
    それにしてもいろんなハードを使いこなされていて、神の領域ですね~。

  8. パイロットpapaさん こんばんは!
    スプライト使いまくっていますよww
    流石に今のPCとくらべると使っているマイコン達は全然パワー不足ですからスプライトを有効に使っています^^
    ただメモリがきつい~~~~wwwww
    この液晶も、もともと今まで使っていたライブラリーで使えることが分かったので選択しました。
    慣れたプログラムでやれるのはホント助かります^^

Leave a Reply

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

wp-puzzle.com logo