【軸の秤】はじめの一歩
- 起動方法
- 基本的な操作について
- ロードセルのキャリブレーション
- ロードセルの動作確認
- キャリブレーション
- 1. 無荷重時の値の取得
- 2. 基準値の取得
- Rate
- プラットフォームの動作確認
- 本体のスイッチのフォースカーブを測ってみる
- 1. 大まかな位置合わせ
- 2. 測定設定の確認
- Measure Settings
- Find Zero Settings
- Max Dist.
- Max Weight
- 3. 測定開始
組み立てお疲れさまでした。ここでは軸の秤を使って実際にフォースカーブを測るまでの手順を解説します。
起動方法
特に電源スイッチ等はありません。本体左側のMicroUSBコネクタにしっかりと給電のあるUSBケーブルを接続すれば起動します。
ちなみに、PCに繋ぐと普通にESP32の開発ボードのように認識され、Arduinoからプログラムを書き込むことができる状態になります。誤って他のスケッチを書き込んでしまうと軸の秤のプログラムが消えてしまうのでご注意下さい。
基本的な操作について
軸の秤はBIOSのようなメニュー形式のUIになっています。本体のキーボード右端にある上下キー ↑ / ↓ で項目を選択し、上段右から2番めの決定キー ● でその項目を実行します。
開発の途中でM5Stackなどを使っていた事もあり、基本的にはほとんどこの3つのキーしか使いません。レトロなパソコンっぽい見た目になるようにスタッガードの7キーレイアウトにしましたが、正直持て余しています(笑)。
キーボードレイアウト
標準のキーボードレイアウトは下記の写真の通りです。前述の通り ↑ ↓ ● 以外はあんまり使いません。特に × でのキャンセル操作は導入されたのが開発のごく後期ということもあり、キャンセルが効かないシーンも多いです。自分でも気持ち悪いので、速くプログラム直したいです😅 スミマセン。
ロードセルのキャリブレーション
フォースカーブを測定するには、まずロードセルのキャリブレーションが必要です。
トップメニュー(タイトルに
〈軸の秤〉とあるメニュー)から
〈Load Cell〉を選択します。
( ↑ / ↓ キーでカーソルを合わせ、 ● キーで決定します)
ロードセルの動作確認
組み立てに成功していれば、
〈Raw Value〉及び
〈Average〉の右にある数値が常に変化しているのが確認できるハズです。
この値がゼロから変化しない場合、ケーブルが正しく接続されていないなど、センサーの値を読み取れていない可能性があります。値そのものは相対的なものなので特に正常な値というものはありません。マイナス10万だったり、4千程度だったり、6万あったり…… とにかく基準値はバラバラですが、その値から大きくは変化しないはずです。
ここで測定部のロードセル先端のネジを下から優しく押してみて下さい。値が変化するのが確認できると思います。手を離すと値が元に戻るハズです。次にカバーの上から優しく押すと、今度は逆方向に値が変化します。
いかがでしょうか? これが上手くいっていれば少なくともロードセルセンサーは正常に動き、本体がその値を正しく取得できています。イェイ!
キャリブレーション
ロードセルカバーの上に乗せられる程度の、10g〜100g程度の重りを用意し、予《あらかじ》め正確な重さを調べておいて下さい。1g単位までわかれば十分です。
適当なものがない場合は組み立てで余った5gの重り4つで構いません。概ね19gです。ええ、僕も
「1個5gじゃ無いんかい!」とツッコみました(笑)。
あるいは100円玉5枚でもOKです。約24gです。
1. 無荷重時の値の取得
まずロードセルセンサーの上に何も乗せず、ネジの先もどこかにぶつかったりしていない事を確認した上で(ロードセルカバーはそのままでかまいません)、メニューから 〈Zero Calib.〉にカーソルを合わせて ● キーで決定します。Zero Calib.の横の数値が押した時のAverageの値に変わるはずです。
2. 基準値の取得
続いて
〈Ref. Weight〉を選択します。
〈Calib. Ref. Weight〉というテンキーが表示された画面に遷移するはずです。 ↑ ↓ ← → キーと ● キーを使って、用意した重りの重さを入力して下さい。入力が終わったらテンキーの右下、エンターキーにカーソルを合わせ決定して下さい。
画面がLoad Cellに戻り、Ref. Weightの横の値がたった今入力したグラム数に変わっているはずです。値がマイナスになっているのは正常です。また、その次の項目(画面下に半分見切れています)が
〈-XXg Calib.〉に変わっているはずです(XXは入力したグラム数)。
用意した重りをロードセルカバーの上に乗せます。Raw Value及びAverageの値が重さに従って変化しますので、Averageの値が落ち着いたら(大きく変化しなくなったら)カーソルを-XXg Calib.に合わせて決定します。ゼロキャリブレーションのときと同様、右に表示されている値がその時のAverageのものに変わります。
これで0gとする値と基準値が定まったので、ロードセルセンサーの値からグラム数が計算できるようになりました。Gramsの値の横に現在ロードセルにかかっている荷重が正しく表示されるようになります。今はキャリブレーション用の重りが載ったままだと思いますので、その重さがマイナスで表示されているはずです。
キャリブレーション用の重りを取り除き、何か適当なものを載せてみて下さい。その重さが表示され、簡易的な量りとして機能するはずです。実際、市販のデジタルスケールに入ってるのもこれと同じロードセルセンサーです。
これでロードセルセンサーのキャリブレーションが終わったので、Backを選択してトップメニューに戻って下さい。
なお、キャリブレーションした値は本体に保存されますが、時間経過と共にロードセルからの値が徐々に変わってしまうため、基本的には測定前に毎回行っていただく方が正確な値が測れます。
特に1日とか経つと1g単位でガッツリ変わってしまいます。これを値のドリフトと言うらしいのですが回避方法がわかっていません。市販のロードセルを使ったスケールは回避できているので、何かしら方法はあると思うのですが……もしご存じの方がいたら教えていただきたいです。
Rate
ちなみに、ロードセルからの値のサンプリングレート(更新間隔)を10Hzと80Hzで選択できます。初期設定では測定時の各測定ごとの待ち時間が1秒になっていますが、80Hzならもっと短くて十分かと。
プラットフォームの動作確認
トップメニューから 〈Move Platform〉を選択しMove Platformメニューに遷移します。測定部のプラットフォームの上下に余裕がある(1cm程度動いてもリミットスイッチにぶつからない)ことを確認したら、試しに 〈Ascend 4mm〉を実行してみて下さい。軸が回転し、プラットフォームがゆっくりと上昇すれば成功です。カップリングを見ると回転しているのがわかりやすいです。この時、測定部基板上部にあるLEDも点滅します。
プラットフォームの移動方向を変えたい時はメニューの 〈Direction〉を選択し、ハイライトされたら上下キーでAscend/Descendを切り替えます。もう一度決定キーを押すとハイライトが解除され、選択した値が採用されます。Ascendは上方向、Descendは下方向への移動です。
2022/08/17 追記[Added 2022/08/17]
もしステッパーが逆に回転してしまった場合(Ascendで下がり、Descentで上がってしまう)、Platformメニューの最後にある
〈ピン順〉を切り替えて見て下さい(
〈1-2-3-4〉になっていたら
〈4-3-2-1〉に、またはその逆に)。回転方向が逆になります。
Ascendで上昇、Descentで下降するようにしておいて下さい。ステッパーのラベル印字が全て緑字のものは回転方向が逆(
〈4-3-2-1〉で正常)な事が多いようです。
ちなみに、Excitationをフルステップ/ウェーブステップにすると少し速く移動させる事が出来ますが、トルクが弱くなるので途中で止まってしまう事があります。必要に応じて使い分けて下さい(測定は常にハーフステップで行われます)。
また回転中は決定キーを押しっぱなしにしておくことで移動をキャンセルできます。
本体のスイッチのフォースカーブを測ってみる
1. 大まかな位置合わせ
まずはMove Platformを使ってロードセルセンサーのネジの先をスイッチの近くまで移動させます。キーキャップからネジの先までが数ミリのところまで近づけて下さい。
2. 測定設定の確認
トップメニューから 〈Start Measuring〉を選択します。測定前に現在の測定設定が表示されます。測ろうとしているスイッチがCherryMX互換スイッチの場合、各設定が下記の通りになっている事を確認して下さい。この値は測るスイッチに合わせて調整する必要があります。
これらはディフォルト値なので、本来なら確認せずともこの値になっているはずなのですが、作者が出荷前の動作確認でいじってしまっている可能性があるため、念の為確認をお願いしております。すみません。
Measure Settings
Find Zero First | Yes |
Find Zero Settings | 下記を参照 |
Meas. Step | 0.125mm |
Max Dist. | 4.5mm |
Max Weight | 100g |
Wait each meas. | 1000ms |
Meas. Release | Yes |
Find Zero Settings
これは測定開始前にゼロ位置を特定するための設定になります。
Weight each meas. | 250ms |
Descent each meas. | 0.250mm |
Ascent each meas. | 0.063mm |
Switching Weight | 1.0g |
Zero Weight | 0.5g |
Seach Distance | 10mm |
Max Ascent | 3.0mm |
特に重要なのはMeasure SettingsのMax Dist.及びMax Weightの値です。
Max Dist.
前者はMax Distance、下降距離となっており、軸の秤はゼロ位置からこの距離まで下降しながら測定します。基本的にはキーのストロークの長さことと思っていただいて大丈夫です。従ってロープロファイルスイッチなどストロークが短いスイッチをこの値が大きいまま測ると、スイッチのステムが物理的にもう下がらないのに軸の秤はぐいぐい押そうとしてスイッチ(または軸の秤)にダメージを与える(最悪壊れる)可能性があるのでご注意下さい。
実際は次に説明するMax Weightでの荷重制限が入るので、必ずこの距離まで測るわけではなく、Max Weightの値がより重要になってきます。
一般的なCherry MX互換スイッチのストロークが4mmであるにも関わらず、上記設定が4.5mmになっているのは、ほとんどのスイッチに若干の遊びがあり、その部分を測定するためです。4mmまでのグラフが見られれば十分な場合は設定を4mmに変更して下さい。
Max Weight
さらに重要なのが後者、Max Weightで、これは測定時の最大荷重です。軸の秤は荷重がこの値以上になると底打ちしたものとしてリリースカーブの測定に移ります。
(一部例外はありますが)一般的なスイッチで100gに達することは殆ど無いので、キーボードのスイッチを測る時は100gにしておけば十分です……と言うより、キーボードに限らず、人間が押すことを想定している身近なボタンで100gを超えるものはあまり無いと思いますので、特に理由がない限り100gのままにして下さい。
こちらもMax Dist.による距離制限が入るので、必ずこの荷重に到達するまで測るわけではありません。
軸の秤はこれらの下降距離、最大荷重に到達するまではバカ正直にプラットフォームを下げ、荷重を測ろうとします。両者ともに不必要に大きな値に設定されていると、スイッチに荷重をかけすぎて壊してしまったり、ロードセルセンサーに負荷がかかりすぎて軸の秤が壊れてしまう事がありますのでご注意下さい。
また、プログラムの不具合によって上記のような自体を招いてしまう事があるかもしれませんが、しがない同人ハードゆえ、大変申し訳ありませんが何の補償も出来ません。オウンリスクでご使用いただくものとし、測定中は目を離さないようにしていただき、おかしな自体が起きていないか常にご確認下さい。すみませんがよろしくお願いいたします。
3. 測定開始
メニュー一番上にある 〈Save & Start〉を選択すると現在の設定値が保存され、測定が開始されます。まずFind Zero Level(ゼロ位置特定)が行われ、無荷重位置が特定できると実際の測定が開始されるのですが、今回はSDカードを挿入していないため、データ記録できないが続けるかという警告ダイアログが表示されるはずです。
Continueを選択するとデータ記録せずにフォースカーブを測定できますが、測定後に画面を遷移すると測ったデータは消えてしまいます。今回は動作確認ですので問題ありません、Continueでそのまま続けましょう。画面にフォースカーブグラフが表示され、測定しながらリアルタイムでフォースカーブが描画されていくのを確認できるはずです。
下降距離が設定値の4.5mmに達するか、荷重が100g以上になると、リリースカーブ(キーを上げるときのフォースカーブ)の測定に移ります。測定中の位置を示す三角形の向きが逆になったことが確認できるはずです。
画面にCompleteと表示されたら測定は終了です。
いかがでしょう、フォースカーブが正しく測れたでしょうか?
お疲れさまでした。以上が軸の秤の基本的な使い方になります。その他の機能(そんなに無いですけど)や技術的な情報は使い方のページに徐々に追記していければと思いますので、ふと思い出した時は是非ページを見に来て下さい。
測定に慣れてきたらキーボード以外のスイッチ、リモコンのボタンや、ゲームパッド、カメラのシャッターなども測ってみると面白いです。その時は適切なMax Dist.の設定を忘れずに。
それでは、良きフォースカーブライフを~。
この記事はここで終わりです。
読んでいただきありがとうございました。
良かったらシェアしてね!
That's all for this article. Thank you for your reading.
Please share this if you like it!