RaspberryPi Picoと液晶パネルを有効活用!

f:id:PocketGriffon:20211128141717j:plain

何回か前のブログにて、RaspberryPi Picoに液晶パネルを取り付けたという話を書いた。

 

pocketgriffon.hatenablog.com

 

この液晶パネルは「Pico-ResTouch-LCD-2.8」という商品で、2.8インチの液晶に加えて、タッチパネル搭載、SDカードスロット付きという、だいぶ欲張った構成となっている。

Pico-ResTouch-LCD-2.8 - Waveshare Wiki

 

プログラムで使えるようになるサンプルが上記リンクにあったけれど、Pico用ということでCMake環境でビルドするようになっていた。

しかし最近の私はArduino IDEがお気に入りで、開発環境もこちらに移している。

 

このArduino環境で動くサンプルが無かったので、仕方なく元のサンプルを参考にしながら、液晶パネルのみ動かすように最低限のコードを書いた。

 

その上で動かしたのが前にブログに書いたFM-7エミュレータだ。

pocketgriffon.hatenablog.com

 

そんな限定的で汎用性のカケラもない目的で開発したものだったので、タッチパネルは使えない、SDカードも使えないという、ハタから見たら「さすがにもったいないのでは??」という状態だった(^^;;

 

単純に元のサンプルを移植してきたら?と言われそうだけど、SPIとかGPIOを根本から理解していない私にとって、その辺りのハードが絡むコードは呪文に見えてしまい、もう液晶だけでいいか…と思っていた(^^;;

 

ちょっとした事情があり、あお氏(@hd61yukimizake)に同じ液晶をお送りしていた。

その後、私はFM-7を動かりたり、micro:bitPC-8001動かしたりBad Apple!!を動かしたりして遊んでたりしてたワケだけれども…

その裏であお氏の超快進撃が始まっていた!!

 

Arduino環境で液晶パネルを動かすための作業が進んでいたのだ!

Arduino環境で画面が出ました」

「サンプルのグラフィックデモが動きました」

「ハードウェアSPIが対応出来ました」

と矢継早にメッセージが飛んでくる!!

 

やはり正しく理解してる人から見たら一瞬作業なんだな…と思いつつ、私はそのドライバを利用して、より過酷なテストをするべく画像を表示させたりと、なんとなく作業が分担されるカタチで進んでいく!

f:id:PocketGriffon:20211128154002j:plain

その後も
「SDカード動きました」

「タッチパネル動きました」

とガンガン作業を進められるあお氏!

より過酷なテストをするべくサンプルを組み上げる私。

結果的に2日間ほどで3つの機能が動いてしまった!おそるべし!!

 

その後も気になる箇所をちょこちょこ直したり調べたり(^-^)

おかげでPico関連のライブラリソースをだいぶ見ることが出来た!

f:id:PocketGriffon:20211128155115j:plain

ここまで動くと、何か耐久テストも含めて作ってみたくなる!(フラグ?)

 

プログラマブルI/Oの実験

f:id:PocketGriffon:20211128160408j:plain

おなじくあお氏から勧められて手に入れたインターフェース誌。

これにPico関連の事がものすごーく詳しく掲載されている。

その中でPicoの特徴といえば、プログラマブルI/Oという機能らしい!

 

私のつたない解釈を日本語で書けば「I/Oアクセスを専門に行ってくれる超小型のCPUっぽいものが載っていて、それをプログラミングして実行しておけば、メインのCPUから離れたところで処理される」…みたいな感じ??

 

動くとなれば動かしてみたくなるのがオトコノコってモン!

インターフェース誌と2、3のネットサイトを見ながら試してみるけど…全然うまく動かない(T-T) プログラムの内容を理解せず、適当にコードを切り貼りしてるだけなのに…!←多分ソレが原因

 

1時間半ほど悩んでいたが、結局コードを理解せずにやってたのがダメだった!

それぞれの関数の意味を調べ始めたら、ワリとすぐに原因判明(T-T)

f:id:PocketGriffon:20211128162316j:plain

無事にLEDを光らせる(点滅させる)ことが出来た!!

そういえばPicoでLEDを光らせるのって初めてかも!(^^;;

登竜門であろうLチカをやらずにPicoで遊んでるのって、やっぱりPico本来の目的と外れてる気がする…汗

 

このプログラマブルI/O、私レベルの人間で何に使えるのだろう…と考えてみたけど、全く思い浮かばない…。ホントはLCDへのデータ転送で使えたら良いんだろうけれども、CPUで転送しても待ちが入ってる状態なので、プログラマブルI/Oを使うまでも無い…って感じ。

 

結局、この機能は独自でハードウェアを繋げられる人が便利に使う機能なのかな…と自己解釈(^^;;
とりあえずビルド出来る環境は作れたので結果としてはおっけー!

 

-----

最近はソフト屋さんから見たハードよりの事をかじってる気がする!

根本からハードをやろうとすると学習することが多すぎる気がしてなかなか一歩が踏み込めないですね…。先に「これを作りたい!」があれば良いんでしょうけれども(^-^)

 

最近ではボードマイコンLCDを繋げる方法がおぼろげに理解できて来た気もするので、前にaitendoのセールで意味も分からず手に入れてしまった液晶パネルとか、有効活用できる日が来たのかも!!

そのうち頑張ってみる(^-^)

 

ではまた次回!(^-^)ノ