お父にゃんの電子工作 -6ページ目

お父にゃんの電子工作

暇なおじさんが、電子工作(主にラジオ製作)をして勝手な感想を書く

前回に引き続いて、「ハズレ」のCYDでDSPラジオを作ってみたい。

まずは、タッチ操作だけで動かす「それっぽい」UIを作っていきたいのである。

 

こんな感じ

前にChatGPTにお願いしたのだが、思った通りのコードを書いてくれなかったので、ChatGPTが書いたコードと他の人の記事を参考に書き進めていく。

 

Displayの表示には、TFT_eSPIを使う。

ポイントは、画面のちらつき無しに表示の更新をさせるためにSpriteを使う。

メモリ上に表示イメージを展開してから、一気にデータを送ることで、ちらつき無く表示の更新が出来るのである。

こちらのページが、とても参考になる。

おじさんは表示項目(バンド、音量、周波数、信号強度、スケール)ごとに別のSpriteを設定してみた。

あと、CYDではSPIがDisplayとは別系統になっているので、個別に<XPT2046_Touchscreen.h>を使って、タッチ検知するようにした。

 

あと、フォントについてはこちらのページを参考にさせていただいた。

TFT-eSPIでは、いろんなフォントが使えるので、それっぽいUIを作るうえで、とてもありがたいのである。

 

なんだかんだで、おじさん的には結構苦労して何とか それっぽく動くものが出来た。
 
バンド切替、ボリューム調整も動くし、スケールを左右にドラッグして周波数変更もちゃんと動作するのである。ちらつき無くスムーズに動くので良い感じなのである。
 
今回のコードは以下に置いておくので、興味のある方はどうぞ
 
なお、Arduino/libraries/TFT_eSPI/User_Setup.h を編集して以下に変更しておく必要がある
(当たりのCYDの場合、ST7789_DRIVERに書き換え他が必要)
 

#define ILI9341_DRIVER
#define TFT_MISO 12
#define TFT_MOSI 13
#define TFT_SCLK 14
#define TFT_CS   15
#define TFT_DC    2
#define TFT_RST  -1
#define TOUCH_CS 33

#define LOAD_GLCD
#define LOAD_FONT2
#define LOAD_FONT4
#define LOAD_FONT6
#define LOAD_FONT7
#define LOAD_GFXFF
#define SMOOTH_FONT
#define SPI_FREQUENCY  40000000

 
UIが何となく良い感じに出来たので、これにDSPラジオのコードを追加してタッチ操作だけで動くラジオを作っていきたいのである。
 
もう年の瀬なので今年の作業はここまで。
 
来年は、おじさんと読者の皆様にとって良い年になりますように。
 
 
 
「正月だからといって、変なもの載せないで欲しいにゃ」