試作を行い、丸形カラーLCDを調査していたが、だいぶ使い方が分かってきたので、以前製作した「週間スケジュールが可能なRDA5807 FM DSPラジオ」の表示装置を、丸形カラーLCDに取り換えたものを新たに製作した。時計とFMラジオの表示を合体して、表示画面は結局以下のようになった。ケースは手元にあった筒形の物を利用した。作成したスケッチはGithubに登録してある。
コントローラ(MCU:Seed Studio XIAO ESP32C3)からの制御インターフェースは、I2CとSPIを利用するので、ESP32C3の入出力ピン数ではギリギリで、操作のボタンスイッチを設ける余裕はない。したがって、操作は全てWiFi経由で行う。
この丸形LCDは、240x240ピクセルなので、表示位置は、x:ヨコ位置、y:タテ位置とすると、左上隅は(0,0)、中心は(120,120)、右下隅は(239,239)となる。なお、実際に表示できる円からはみ出た部分は表示されない。丸形LCDにおいては、円の外周に沿って表示を行う必要があるが、その表示位置を求めるためには三角関数を利用する必要がある。
例えば、半径rの円の外周位置(x,y)を求めるには、以下の図に示した計算を行えばよいことになる。角度θの起点は時計の秒針では、15秒の位置になる。例として、半径r=108の時、20秒(4時)の位置は、x=108*cos30°+120≒94+120=214、y=108*sin30°+120=54+120=174というふうに求められる。
腕時計によくある秒単位の印を表示したい場合は、半径r1の円の内側に半径r2の円を想定し、同じ角度θの位置、(x1,y1)と(x2,y2)を求め、2の点を指定して直線を描けば良い。そうすれば、中心からの放射状の直線の一部として描かれる。
高校の数学の教科書みたいになってしまった。