2018年8月19日日曜日

デジタル水準器、リファクタリング

6月にプロトタイプを作ったデジタル水準器を若干修正し、ソース(スケッチ)を公開できるように試行錯誤で汚くなっていた箇所をリファクタリングしました。

デバッグはArduinoを使わず、直接ATmega328Pに書き込んでいましたが、プログラマのUSBASPが頻繁に書き込みエラーを起こす上、Windowsから認識できなくなることもあって何度もWindowsを再起動。リファクタリングにかかった時間の半分位はUSBASPのトラブルに費やされました。何が悪いのでしょうかね?安物だったから?

教訓としてArduinoで動作確認までしっかり行ってソースFixしてから、ATmega直接書き込みをした方が楽だったと思います。ブレッドボードの配線を変えるのが面倒でつい楽な方に走った結果、遠回りでした。

リファクタリング以外の修正箇所は以下です。

1. ニコ動でコメント頂いた、キャリブレーションはスイッチを離した1秒後に実施。スイッチを押すとその力でブレッドボードが傾き、正しいキャリブレーションができないため。

2. これもニコ動でコメント頂いた、degreeのスペルミス修正。

3. 動作モード切り替え時に傾き測定精度が0.1度か1度か分かりづらかったため、表示モードに-1,-01を表記するようにしました。これに伴い、ピッ音の音符アイコンの表示位置変更。


ソースコード(スケッチ)をブログに貼ると長くなってしまうので、PIC電子工作のページに置きました。デジタル水準器スケッチです。傾きを計算するため三角関数を多用しているあたりが今ひとつスマートでありません。また、圧電スピーカから極小さなピーという音が聞こえることがあります。なぜかな? Arduinoの使い方が正しくないかも。

無保証です。バグがあるかも知れませんし、加速度センサや有機ELディスプレイの使い方が正しくないかも知れません。改変などご自由にどうぞ。もし、お気づきの点があればお教え下さい。

以下は、修正前の動画です。



PIC電子工作ブログを謳っていますが、全然PICの話題がでてきませんね。そろそろ何か考えましょう。

8 件のコメント:

  1. 初めましてAdruino初心者です。貴兄のこの作品の格好良さに完全にやられまして、私も同じパーツを揃え組み上げました。基本的な動作は問題ないところまでは来たのですが、動作が非常に重い状況があり、キー入力も長押しで反応している状況です。Arduino nano互換品&Arduino IDEでの書き込みで環境なのですが、もし処理速度にノウハウがありましたらご教授頂けると幸いです。

    返信削除
  2. コメント、ありがとうございます。
    処理が遅い件ですが、デバッグ用に何かシリアル出力をし続けていませんか?

    返信削除
  3. 全く同じソースコードを使っていますので、違いは無いはずなのですが、まだ各要素を切り離してデバッグできるスキルがないのですから、突っ込んだ確認ができていない状況です。しかしながらすべてのファンクションは動いていますので、確認させていただきました。

    返信削除
  4. 以下のblog記事によると外付け16MHzの水晶振動子で動かすためにヒューズの設定を変えたようです(忘れていた)。でも、nano互換機なら16MHzですよね。
    https://pic-garage.blogspot.com/2018/06/atmega.html
    https://pic-garage.blogspot.com/2018/06/atmega_18.html

    ATmegaとNanoで何か違うのかも?

    返信削除
    返信
    1. スケッチを見直してみましたが、表示処理に時間がかかるとスイッチの状態を確認するまでに時間がかかり、長押しのような感じになるかも知れません。

      削除
  5. いろいろと調べて頂きありがとうございます、この水準器は望遠鏡の設置に使用させて頂きたいと思っています。使用しているNanoはTMega328ですので違いはないと思いますが、2作目の映像を見る限り同じNanoが使用され外部クロックではなさそうに思いました。SSD1306のイニシャライズも違いはないようです、気になっていますのは三角関数の計算で何か特別なコンパイルや中間処理がありますでしょうか?すみませんがよろしくお願いします。

    返信削除
    返信
    1. 三角関数などのコンパイルで特に何もしていなかったと思います。
      もしかしたら何か高速化の手段があるのかも知れませんが知りません。
      よろしくお願いします。

      削除
    2. 了解いたしました。色々とご手稲にアドバイスありがとうございました。頑張って完成したさせたいと思います。

      削除