久々にやる気になってLCD系の試験を始めたのだが、ライブラリの書き換えに失敗したようで、全く反応が得られ無い。 念の為に配線をチェックしたが、物理面のミスは発生していない模様だ。 これは、ライブラリを未編集=素の状態に戻して再トライするのが正解だろう。
使用するライブラリは、稼働実績が認められるArduino_GFXで、YoutubeにLCDをドライヴしている様子がアップロードされている。 が、現実には全く動く気配を感じられない。 仕方がないので、久々にロジアナを投入してSPIの通信波形を観測したものの、「何かが怪しい」程度の認識を得ることしか出来なかった。 ライブラリに手を入れていない「素」の状態がこれでは、非常に幸先が悪い。

不具合の原因を探るためにスケッチを眺めたところ、どうも初期設定を間違っている風だったので、該当する箇所にOLED/LCDの設定を追加したところ、やっとまともに動かせるようになった。

試しにベンチマークを走らせてみたのだが、、、
プロセスが超絶に速すぎて、初見では何が起こっているのか認知ができなかった。
ついでに、LCDのドライヴにもトライしてみた。
LCDが順調にドライヴできたので、次は表示内容の検討に入ることにした。 まずは、GPT2の Input Capture 1/2 とPWM_LEDを走らせた状態で、OLEDディスプレイに時計を表示してみる。
現時点ではOLEDにデータを送信するSPIはデフォルトのチャンネルで、目標のSPI1に出力を変更することには成功していない。
次に、センシングした周波数の表示を行ってみた。

視認性の向上を狙ってBoldフォントを追加して、背景とフォントの色味を1秒間隔でランダムに選択する実験を行う。 実際にはLoop内にdelayエレメントを配置せず、インターフェイスの操作時に発生させたトリガーのタイミングで描画を行うことになるだろう。

データの表示領域に余裕があるので、プリセットが可能なオフセット値の表示を追加した。

表示系のデザインは、実験を通して実現可能な落し処を探って行っていくことになりそうだ。 例えば、RGB_LEDでカヴァーできない部分を補助するのか、積極的にパラメーターの情報を表示するかで、表現の指向性が変わってくるのだが、LEDの状態に構わず全体の視認性を上げる方にデザインを行うべきかもしれない。
ライヴで演奏する場合は、実用性から事前にプリセットしたものを呼び出す形の運用それ一択と思われるので、多少視認性が落ちることがあっても、得られる情報を詰め込んだほうが良いのではないか?と思っているのだが、背景を工夫することで視認性と情報量の確保を両立できるかもしれない。
例えば、LCDの上下の背景は、ロータリーエンコーダで選択したモードの色味を反映しつつ、色味を反転させたフォントで、各パラメーターの数値を表示するようなデザインを考えている。
例外は波形表示で、これは音色のエディットモードに於いて実際の出力波形を観測しながら行う形になるだろう。 表示するデータのハンドリングは、波形一周期をサンプリングしたデータアレイを更新する方法になるだろうか、、、。

Transitionの設定は画像化によって直感的にその概念を理解出来そうなのだが、共有が望めない概念は「絵で説明する」のが一番だろう。 Webで見つけたコードを参考に、ダミーで描画してみたが、Transitionの表示はこんな感じでよさそそうだ。 サイン波を計算した結果をdrawPixelでプロットしている。

ロータリーエンコーダを操作した状況をシミュレートする際に、位相はCOSが正解と結論した。
posted by Yasuski at 02:04|
LaVoixski