2 6 956.50 0.000 30039 0.200: 4 3 119.26 -0.005 28422 0.200: 0 4 236.41 -0.023 47531 0.200: 0.257 1
2 6 953.49 0.000 30087 0.200: 4 3 118.65 -0.009 28342 0.200: 0 4 234.68 -0.031 47403 0.200: 0.257 1
2 6 955.64 0.000 30007 0.200: 4 3 119.09 -0.006 28310 0.200: 0 4 235.73 -0.027 47403 0.267: 0.257 1
2 6 954.14 0.000 30151 0.200: 4 3 118.79 -0.008 28486 0.200: 0 4 235.71 -0.024 47483 0.200: 0.257 1
2 6 956.07 0.000 30039 0.200: 4 3 119.17 -0.006 28438 0.200: 0 4 238.76 -0.002 47323 0.200: 0.257 1
2 6 955.64 0.000 30071 0.200: 4 3 118.97 -0.008 28406 0.200: 0 4 235.61 -0.028 47339 0.200: 0.258 1
ハードウェアでやったこと
外部ADCではなくて、NucleoF767ZIの内蔵ADCを使うためにPOTパネルを作って操作しやすくしました。
ソフトウェアでやったこと
ファームウェア(mbed-cli)
https://github.com/ryood/Nucleo_DCO/tree/master/mbed/Nucleo_DCO_Test12
周波数レンジ
プッシュスイッチで、オシレーターごとに1オクターブ音程をずらせるようにしました。
デチューン
OSC2とOSC3は、MasterとなるOSC1に対して±1オクターブ可変するようにしました。±1オクターブ可変するために、疑似指数カーブで対応しています。
マスター・レベル
波形がクリップした場合も、デジタルならではの過激な歪が出るので、歪ませる/歪ませないを選択できるようにマスター・レベルを調節できるようにしました。
ピン割り込みのチャタリング対策をTickerからTimeoutに変更
mbedではTimeoutクラスは内部でTickerクラスのオブジェクトを持っているようなので、Timeoutにした方がいいのか悪いのかわかりません。OLEDの表示項目
I2C接続の128x32のSSD1306 OLEDで実験していますが、表示域が少なくて一覧性が確保できません。
AliExpressで発注した128x64のOLEDは関空水没のせいか届きません。同じ日に発注したものは届いたのですが、タイミングが悪かったのか。
ここで一句
「中華製、忘れた頃に、届いてる」
ToDo:
POTの読み取り値がふらつくので、補間してみる。
波形切り替え、周波数レンジ切り替えは、プッシュスイッチでも役目は果たせますが、ロータリーエンコーダならもっと操作性が良くなるのではないかと妄想。
0 件のコメント:
コメントを投稿