張力計の開発日記② キャリブレーションソフト
試作2号に向けた部品発注をしたんですが、部品が全然届かない…
ということでキャリブレーションソフトの作成中です。私の専門は回路設計とマイコンのプログラミングなのでアプリ開発は苦手なのですが、pythonで何とかかんとか作っています。※写真は作りかけのソフトなのでレイアウトが大きく変わるかもしれません。
だいぶ形になってきてはいるので、4月中にはモニターに協力して頂いている方々に試作2号と合わせて納品できるかと思います。
使い方は、まず張力計をPCに接続してソフトを起動、重さがわかっている重りをぶら下げて「測定開始」をクリック、この作業を何度か繰り返してから「更新」→「送信」とクリックすることでキャリブレーションが完了する、という手順になる予定です。もちろん、重りでなくとも他の張力計を直列に繋いで負荷をかけてもOKです。
ここからはキャリブレーションソフトの仕組みの解説です。
開発中の張力計は、「ロードセル」という金属の塊の変形に応じて電気抵抗が変わるセンサーを使用しています。また抵抗値に応じて電圧を変動させる回路がセンサーに内蔵されており、この電圧の大きさがセンサーに掛かっている張力に比例することになります。これをA/Dコンバータ(アナログ/デジタル変換IC)を使用して24bitの数字に変換しています。
この比例関係を数学的に表現すると、張力をx、電圧をyと置いたとき、[y=ax]の式が成り立つということです。(張力0のときは電圧が0となるよう別途でゼロ点調整をするので、切片bは0としています)
キャリブレーションソフトは張力計から電圧データを受信し、そのデータと作業者が入力した張力を元に、最小二乗法を用いて係数aを算出する仕組みになっています。そして前述の式を変形した[x=(1/a)×y]を使ってセンサーの電圧から逆算することで張力を知ることができます。この係数1/aを理解しやすくするために「補正値」と呼んでいます。
この補正値を張力計に送信してキャリブレーション完了となります。補正値は張力計のフラッシュメモリに記録されるので、電源を落としても消えたりしないようになっています。
データの有効/無効判定については、測定値の標準偏差で判定しようかと考えています。測定開始をクリックすると張力測定を20回する仕様なので、20個のデータがあまりにもバラバラだったら再測定を促す仕様にしたいです。
補正値は気温、測定場所の緯度、経年劣化などで変化します。この変化が測定に問題ないレベルかを検証することが次の課題の一つと考えています。気温はもしかしたら影響が出るかも…?もし問題があれば温度センサの追加を検討しないと。
ディスカッション
コメント一覧
まだ、コメントがありません