Baumkuchen’s Workshop

バイオリンと電子工作、DIY、ジョギングなど。

バイオリンタイマーの製作#8-ソフトウェア

制御基板の作動確認ができたので、少しづつソフトを作っていきます。

baum-kuchen.hatenablog.com

ソフト製作

時計/時刻合わせ

ざっと考えた仕様は以下の通り。

 ・表示
  1行目 年/月/日 サイズ3(7x5の3倍)
  2行目 時:分:秒 サイズ4
  曜日は自動計算、1行目の上に記号(S M T W T F S)で表示、Sun:赤、Sat:青、他白
 ・操作(時刻設定)
  セットボタン(長押し)で時刻合わせ開始、秒、分、時、月、年の順に桁選択、年の次は→秒からと繰り返し。
  再度セットボタン(長押し)で時刻合わせ完了。 
  選択桁ブリンク 2Hz
  モードボタン→桁インクリメント、繰り上がりはしない。秒桁は、00にリセット。
  時刻合わせ中も時計機能は作動

現状、作成状況は、表示部分まで実装。

f:id:Baum_kuchen:20220130183844j:plain

簡易オシロ(波形)

ざっと考えた仕様は以下の通り。この機能は、どちらかと言うとデバッグ用です。

  256サンプリング、表示、サンプリング の繰り返し。
 表示は左から前回値を消して、書くことの繰り返し

 表示エリア 150ドット分なので、あとは飛ばす。表示性能上、スクロール表示は断念

実際に音を拾ってみたところ。サンプリング自体は約3KHzでやってますが、表示周期は3Hz位になってしまいます。ただ、ちゃんと音が取れていることは分かります。

f:id:Baum_kuchen:20220130183902j:plain

簡易スペアナ

同じく仕様。この機能も、どちらかと言うとデバッグ用です。

 256サンプリング。窓関数(ハニング窓)、FFT、表示、の繰り返し。
 棒グラフ化 レベルによる色分け、ピークホールド、ホールド値は一定レートで0に。32高調波まで。

基本的なところまで実装。表示関係の細かい仕様はまだですが、表示性能との兼ね合いで断念するかもしれません。写真は、実際にバイオリンを弾いてみた状態で、ちゃんとスペクトルが分かります。緑色の数字は、サンプリングからFFT計算までの所要時間(ms)です。表示の遅さを除けば、十分使えそうです。

f:id:Baum_kuchen:20220130183931j:plain

練習時間タイマー

最終的な目的である練習時間積算タイマー機能の仕様です。

・音判別(練習判別)
 マニュアル:練習開始、終了、1時間毎に確認アラート5分間待ち、終了自動判定
  簡易版、ある程度大きな音
  詳細版、バイオリンの音検知。本当にできるでしょうか。
・操作
 モードスイッチで、年、月、週、日の積算時間を表示
 履歴標示:月、週、日選択時は、日単位、年選択時は、月単位

まずは、画面イメージだけ作りました。本当に、千時間を超える練習をするのかは、自分自身不明です。

f:id:Baum_kuchen:20220130184000j:plain

バックライト制御

 ノーマル状態で セットスイッチ 消灯を含む4段階の輝度を設定。バックライトの自動消灯、点灯機能など、出来るだけ省電力化の工夫を実装予定。合わせて、PICのスリープ機能も実施しないと、電池が持たなそうです。

今後の計画

ソフトの各機能の仕様を検討しながら、一部実装を開始しました。一通り機能するようにするにはあと一歩ですが、表示処理をどこまで早くできるかを見ながら、細部を詰めていく予定です。

ソフトも開発のサイクルに乗りそうなの、ケース実装を含めたハードを最初に完成させていきます。

よろしかった、お付き合い願います。