重さ比べで遊べる機械を作る!
第1回:電子計りの仕組みと圧力センサを使った重さの計測
第2回:Arduinoで重さを数値化する!
人気のマイコンArduinoとセンサを使ってさまざまな物の重さをデジタルで計測してみる連載を全4回でお送りしています。教えてくれるのは、メディアアートの分野で、また「ちょっと深い仕組み」を解説する書籍の世界で活躍している、伊藤尚未さんです。第3回の今回はArduinoを使って重さを数値化していきます。それでは早速見ていきましょう!
目次
こんにちは、伊藤尚未です。
前回は重さをロードセルで計るところまで来ましたので、今回は具体的に重さ比べゲームを組み立てていきたいと思います。
そのためにはまずイメージを固めましょう。
なんの設計においても目標=完成形を思い描き、そうなるように作り上げるわけですが、もしかしたら何らかの問題が起こる可能性もあり得ます。問題によって途中でイメージ変更したとしても、最初の目標を作ることで、その後の必要なモノ、手段、工程などが見えてくるわけです。
今回の制作で使用する部品:
名前、説明 | デバイス |
---|---|
ロードセル 秋月電子通商 | ![]() |
コンバータ 秋月電子通商 | ![]() |
ブレッドボード | ![]() |
ジャンパー線 | ![]() |
アクリル板 5㎜厚、ポリ座金、透明ゴム足、ねじ類 |
ホームセンターにて適当なものを購入 |
釣り用の錘 | 釣具店にて数種を購入 |
サーボモータ | ![]() |
1.重さ比べのイメージ
イメージとしては上部に重さを計るための計り部分(ロードセル)を設置し、最初にこれに錘を置いておきます。次にこの重さと同じだけの重さを持つ何かを作り、ロードセル部分に乗せ、同じ重さであればOK、重かったり、軽かったりすると乗せた部分が動き、NGであることを表現するというものです。
重かったら沈み、軽かったら浮き上がるというのがインターフェイス的にもわかりやすい表現でしょう。

視覚的にそれとわかるようにするための表現を考える
ということで、まずは計り部分に柱をつけて、この柱が上下運動できるようにします。
問題はこの上下運動させるための駆動機構ですね。例えば滑車を使ってギヤボックスでシャフトに糸を巻き付けることで、柱部分を持ち上げ、モータを逆回しにすることで、糸を放し、沈ませるという機構。あるいはエレベータのように荷台部分と同じ位の錘を糸やチェーンで結び、ギアボックスのシャフトに取り付けられたプーリを回すことで上下させる、柱にラックギアをつけて、ピニオンギアで直接上下させる、油圧シリンダで…と、いろいろと考えられます。
2.可動部分の設計
考察の結果、サーボモータを使うことはできないかというイメージにたどり着きました。サーボモータを使うことでギアボックス、スライドさせるための機構など機械部分をシンプルにできるのではないかと考えたからです。
例えば図のように計りを上げるための柱に直接サーボホーンをカムのように使えば、非常にシンプルな構成になります。
サーボホーンを初期値で水平にしたとき、時計回りに60度動けば柱は下がりますし、反時計回りに60度回れば上がる動きになります。これをざっくりと設計しますが、計り部分は前回作ったものをそのまま使いますので、この寸法を活かしながら、また強度的にも耐えられるように設計していきましょう。
ここで、ポイントになるのはサーボモータの寸法です。ざっくりと言えばサーボモータのパワーが大きければもちろん筐体も大きくなってしまいますし、パワーが小さければ小さく済みます。これも設計に入れなくてはいけません。
もちろんサーボモータのパワーといえばトルクですね。今回は2㎏のロードセルですから、もし2㎏分の初期設定(問題)の錘が載せられた場合を考えると、2㎏+計り躯体部分の重さ分を上下に動かすのですからそれなりのトルクのあるサーボが必要になります。
さて、トルクとは何でしょう…?トルクとは、回転時のモーメント、中心の軸に対してかかる力で、中心からの距離と力の大きさをかけたものです。よく使われる単位としては、kg・cm、kgf・cmがありますね。
簡単にいうと中心から1㎝離れたところに錘を掛けて耐えられる力ということになります。

例えば10㎏・㎝のトルクであれば、中心から2㎝なら重さは半分まで
小学校理科では「トルク」という言葉はあまり出てきませんが、天秤やてこの原理として紹介されている法則と考えればよいのではないでしょうか。
例えば、シーソーの片方に体重60㎏の大人が乗ったら、中心(支点)から同じ距離なら体重60㎏の人でつり合い、中心からの距離が2倍なら30㎏の子供でも釣り合うというアレです。

物理法則のキホンのひとつ
これが軸(支点)だけで支えることを考えると良いわけで、例えば10kgf・㎝のトルクのサーボであれば中心から1㎝のところでは10㎏のものを支えることができ、中心から2㎝のところでは5㎏のものを支えることができるということになります。
今回は前述の2㎏を対象とし、計り部分の重さを足した数値以上の十分なトルクがあれば良いかと思い、16.5㎏・㎝という数値にひかれTowerProサーボ「0825DP」というものを選びました。
(https://akizukidenshi.com/catalog/g/gM-17063)

頑丈そうなボディです
付属のサーボホーンは中心から2.5㎝にネジ穴があるので、これを使えば6.6㎏のものが持ち上げられるということになるので、十分だと考えました。これで上下にそれぞれ2㎝程度も動けばよいのではないかと思います。この設置位置、寸法も含めて設計します。

大まかな設計でも、寸法や穴位置などが確認できればOK
3.サーボモータの稼働確認
ということで、このサーボモータの確認をするわけですが、WEBでの表記では16.5㎏・㎝と書いてあるのに対し、製品表面には「25㎏」と大きく書いてあります。

製品表面に表記してあると非常にわかりやすい
これはどういうことでしょう?と、製品について調べてみると…この製品、あまり情報が出ていないことがわかりました。
いくつかわかったのは5V~7.4Vで使えて、どうやら7.4Vの場合の最高値が25㎏ということらしいです。表面には「4.8-7.4V」という文字もありますが、下限は厳密ではないのではないかと想像します。とりあえずつなげてみます。
まずは端子の並びですが、黒黒白というリード線は、GND、電源(+)、信号なのでしょう。他の製品に見習い、白を信号線と見当をつけて、順番に接続します。
Arduino側には以前サーボモータを使った時に習い、まずは稼働を確認します。
Arduinoを制御デバイスにしてさまざまなモノを動かそう!【第5回】Arduinoでサーボモータを制御して楽器を演奏する!
あれ?なにか動きがおかしい…?このモータ、これじゃダメかな…ヤバっ、Arduino壊れたか?
そりゃそうでしょう、情報ないままにとりあえず動かそうとしているのですから、なにか問題が起きますよ。うすうす予想していたのですが、情報がないまま止まっていても仕方ないので、「やってみる」作戦だったのです。一応発熱などには注意を払ってはいましたが、いろいろ考察してみます。
これだけ大きなトルクがかかるサーボモータですから、電流値が原因だと考えました。とはいえ以前から思っていたのですが、サーボモータって、仕様に定格電流値はあまり記載されないのでしょうか?あったり、なかったりしますが…。
少なくとも情報量の少ない製品なので、ここではトライアンドエラーでチャレンジということで、意を決したわけですが、とりあえず改善方法を考えます。
まずは、サーボモータの電源(+)を別途とるように接続し直します。実はこのときに一番参考になったのはこちらの記事。
第57回 Arduinoでモータ再入門(その1)サーボモータの基本と使い方
ちょうど役立つ記事がデバプラにありました(笑)。
ということで、さっそく外部電源として手元にあった単四形乾電池4本で6Vの電源で動かしてみると…おおっ、無事に動いています。
無事に動きました
これを上下にスライドするアーム下部に取り付ければ、ロードセルテーブルを上下に動かすことができます。
4.装置全体を組み上げる
全体を組み立てるとこのような雄姿になりました。

ロボットのようにもみえますが、ロボットではないです
5㎜厚の透明アクリルと金具などを駆使しました。機能を果たし、組み立てやすく、そして美しく仕上げたつもりですが、いかがでしょう?
アクリル板の加工は異形カットやくり抜き加工は面倒なので、できるだけ方形カット+穴あけ加工で済むよう設計し、各部品の固定もネジ、ボルト止めで組み立てるようにしました。
サーボモータは金具で固定し、ホーン先にカムとなるよう金属スペーサーを代用しました。これでスライド柱(板)を押し上げるようにしています。
サーボホーンの位置(高さ)とスライド柱の位置を多少調整できるよう、サーボ固定の部分だけ別パーツにしています。

シンプルな構造です
このアクリル板のスライダの上部に計り部分を小型のL字金具で固定しました。

計り部分は以前制作の物の下板に穴を開けてネジ止め
このスライダが横にズレないよう、ベース板に同厚のアクリル板とネジ、座金などで押さえるようにしています。
このベース板をアルミのL字金具で下部の台(MDF)に固定しました。
これでハードウエアとしては完成です。次にArduinoにつなげてソフトの調整になりますが、今回はスライダ部分の稼働を確認したところまで。
80号の錘を載せて上下させてみましたが、力強いですね
次回はロードセルからの重さ情報で上下するように作り上げます。
次回もお楽しみに!
今回の連載の流れ
第1回:電子計りの仕組みと圧力センサを使った重さの計測
第2回:Arduinoで重さを数値化する!
第3回:重さ比べで遊べる機械を作る!(今回)
第4回:有名なあのシーンを再現してみる!