<< 前のページ
2023年4月5日(水) 20:56
データーシートを確認すると、当然ではあるがキャリブレーションなどもマイコンレベルで実行可能なようだ。ただし、それを具体的なプログラムコードに落とし込むのは相当な試行錯誤を要するように感じられる。ならば、中立位置におけるセンサー値をマイコンの方で覚えさせる方式でも構わない気がする。パソコンと接続せずにキャリブレーションできるから、屋外で使用中でもキャリブレーションできる。
幸いにして、パソコンと接続できていた間に設定した情報は、あえて変更しなくても使い物になる。
既にセンサーの値は正常に読めているという前提で、各センサー値を表示するプログラムを一気に作る。そして実行すると、0しか表示されない。
何が起きているか調べると、いろいろな変数は想定通りになっている。
結局のところ、ちょっとした勘違いによる記述ミスでしかなく、角度と角度加速度の両方が取得できた。
Sタンクを想定し、取り敢えずX軸とY軸しか使わないのでそれだけを表示させてある。360度を16ビットに分割した値なので、0.0055度単位ということになる。
数字の変化も適切で、センサーが正常に動作しているのは間違いない。となると、故障したのはUSBシリアル変換基板である可能性が高い。
written by higashino [加速度センサー] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
2023年4月4日(火) 20:43
ボーレート設定が狂って、データー化け状態かもしれない。そう考えて再びUSBシリアル接続し、ボーレートを順番に変更してみる。だが、どのボーレートで通信しても、デバイスが見つからない。
止むを得ず、dsPIC 上でセンサーを読む。取得値をチェックサム無視して表示させてみる。
すると、それなりに安定した値が取得できている。少なくとも、ボーレートは 115200 で間違いない。
センサーを傾けると値もソレっぽく変化する。更に、電源を入れ直したら即座に値が表示される。
ひょっとしたら、壊れているのはセンサーではなくUSBシリアル変換基板の方ではないのか?
USBシリアル変換基板に接続した場合も、センサーのLEDはちゃんと定期点滅するんだよな。
更に調べると、チェックサムの計算がバグっていることに気付いた。チェックサムの計算にはヘッダーやコマンドも含まれるのに、含まずに計算していた。
おかげで、センサー値の変化によるチェックサムが偶然に一致しないとデーターが取得できた扱いになっていなかったのだ。それで、取得までの時間が不安定になっていた。データー自体は、即座に取得できていたっぽい。
ここまで来ると、dsPIC に接続した状態で正常にセンサーが読める可能性が高い。プログラムを煮詰めて、完成させてしまおう。
ただし、パソコンと接続できないと設定変更もキャリブレーションもできない。それも、dsPIC
で何とかなるかもしれない。
written by higashino [加速度センサー] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
2023年4月3日(月) 21:11
試験基板の実態に合わせ、U1TX と U1RX を入れ替える。
WITMOTION WT901の資料でセンサー値の受信フォーマットを確認する。必要なのは Angle とその加速度である。
項目を再確認するため、再びセンサーをUSBシリアルでパソコンに接続する。ところが、設定を確認しようにもできない。なぜか、当然センサーが認識されなくなったのだ。
何度試しても、USBケーブルを替えても、認識されない。ボーレートを変えても駄目。コネクターの抜き差しだけで、静電気か何かでセンサーが壊れたのか?
不具合の原因を追い込むため、dsPIC に接続してUARTから読んでみた。ひとまず、取得データー数を表示させてみる。
受信できていないと0であり、フルに受信できれば8になる。
これがまた、何とも厄介な結果となった。電源を入れた直後は0で、数秒経過すると8に変わる。問題は、8に変わるまでの時間が一定しないこと。1秒未満で8になることもあれば、何十秒も0のままということもある。
幸いにして受信はある程度できているようなので、もっと詳しく調べることができる。
written by higashino [加速度センサー] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
2023年4月2日(日) 21:23
キャリブレーションなどのメンテナンスのため、今後もUSBシリアルでパソコンと接続したくなる。それに、Sタンクに搭載する場合も、コネクター化は前提だ。
現状ではセンサーよりそれを接続したい機器の数が多いので、製作の面倒なメスコネクターを数の少ないセンサー側にしたい。だが、短絡事故の予防から電源供給する側をメスコネクターにするのが常識である。
仕方なく、センサー側をオスコネクターにする。
メスコネクターの製作がとにかく面倒臭いので、配線済みコネクターを売って欲しいといつも思う。
USBシリアル側のコネクター化も済んだところで、結合させ動作確認する。
WitMotion 純正アプリで、昨日同様問題なくアクセスできている。
設定が初期化されていました、などというトラブルも無し。
使い回しではなく、新造である。USBシリアル基板は、メンテナンスのためずっと待機させておきたい。
written by higashino [加速度センサー] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
2023年4月1日(土) 20:47
考えた末に、まずはトラブルが少ないソフトウェアI2Cを組み込むことにする。I2Cはセンサーとの接続に使用せず、液晶ディスプレイを表示するためだけに使用する。そうすると、ソフトウェアI2Cで十分だ。
真っ更からプロジェクトを新造する。だが、ソフトウェアI2Cまでもコンパイルでエラーが出る。どうやらバージョンが新しいと、ピンに対してLATとかTRISとか直記できなくなっているようだ。すべて、I2C_SDA_SetDigitalOutput()
だの I2C_SCL_SetHigh() だの関数形式の記述をせねばならない。実体は同じなのだが。
更に、関数の返り型も厳密にチェックされるようになっている。こっちは、xc16 のバージョンを上げたからかもしれない。
修正すると、すんなり動作した。
これにより、液晶ディスプレイが使用可能となり、dsPIC への書き込みも問題ないと確認できた。
ならば、次はセンサーとの接続である。
ここで、センサーの設定を行うにはパソコンとの接続が必要と判明。
秋月のUSBシリアル変換基板を用意する。
接続すると、サンサーが勝手に動き始めた。
WitMotion 純正ソフトを動かすと、センサーの値を取得して表示してくれた。dsPIC を使うまでもなく、センサーの動作確認完了。ただし、dsPIC から具体的な値を取得するプログラムは作らねばならない。
ボーレートを 115200 に変更し、出力値はアングルとアングル加速度だけにしておく。そう、ちょっと優先度を上げたいネタがあって、Sタンク搭載を最優先で済ませることにした。出力頻度は、50Hzにする。
written by higashino [加速度センサー] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
<< 前のページ
Generated by MySketch GE 1.4.1
Remodelling origin is MySketch 2.7.4