Tanuki_Bayashin’s diary

電子工作を趣味としています。最近はラズベリーパイPicoというマイコンを使って楽しんでいます

【確率・統計ロボティクス学習キット MZIP-01】自作キットを組み立てて動かしてみた

※なにか気になる点がありましたらコメント欄からお伝えください。また、工作をする場合にはけがなどしないよう、注意を払って行うようお願いいたします。
(2021/10/11)

目次

1.はじめに

 先日、twitterを見ていたら、倒立振子のロボットが動いている映像を見つけた。学生時代、卒業研究で、同じ研究室内に倒立振子を動かしている人がいたということもあり、懐かしい気持ちになった。また4年ほど前にYouTubeだったかと思うが、Arduinoで制御された倒立振子を見つけ、自分でも作ろうとしたがうまくいかなかったという悲しい過去もある。倒立振子への執着に再び火が付いたといったところである。
 作り方を是非知りたいと思い、映像の投稿者に「回路図やコードを教えてほしい」と書き込んだところ、タイトルに挙げた組立てキットを紹介していただき、購入するに至った。
 今回、このキットを作るにあったって、いろいろと運のいいことが多かったように思った。また、所々、気づいた点もあったのでそれらを記しながら、運の良さも見ていこうと思う。(すべての工程は載せていないです)


確率・統計ロボティクス学習キット MZIP-01(マルツオンライン)
www.marutsu.co.jp
※結果から先に知りたい方は、『3.まとめ』から読むことをおすすめします。必要となる道具などを一部載せています。

2.製作

 制作時の感想です。気づいたことなどを記していきます。

2.1 制御基板にパーツを取り付ける

2.1.a  モータドライバICの取り付け

 まず、基板(図1 左)にドライバICを取り付ける。

f:id:Tanuki_Bayashin:20210726200604j:plainf:id:Tanuki_Bayashin:20210726232816j:plainf:id:Tanuki_Bayashin:20210726185859j:plain
図1 左:基板の銅はく面 中:2.4D型のコテ先 右:仮はんだを付ける

 部品はSMD(表面実装デバイス)なので、はんだごてのコテ先は2.4D型を用いる。(図1 中)ピン幅に対して幅が広すぎると思われるかも知れないが、これくらいがよいと今年3月に受けたはんだ付け講習会で教わった。手順を以下に示す。

f:id:Tanuki_Bayashin:20210726191006j:plainf:id:Tanuki_Bayashin:20210726191109j:plainf:id:Tanuki_Bayashin:20210726191247j:plain
図2 左:部品(ドライバIC)中:部品の仮止め 右:フラックスを塗る
  1. 仮はんだを付ける(図1 右 基板を90°回転しました)軽く1ピンか2ピン分ぐらい、銅はくにはんだを流す。(糸はんだの太さははΦ0.3mmがやりやすいようです)
  2. 部品を仮止めする(図2 左、中)はんだごてを当て固定する。部品がナナメになったり、ズレや浮きがないようにピンセットで調整する
  3. フラックスを塗る(図2 右)フラックスを塗ると、はんだが銅はくの部分だけに乗るようになる(順番が違っているかも知れないです)
f:id:Tanuki_Bayashin:20210726191335j:plainf:id:Tanuki_Bayashin:20210726191419j:plainf:id:Tanuki_Bayashin:20210726191450j:plain
図3 左:はんだ付けする 中:アルコールで掃除をする 右:アルコールを拭き取る
  1. はんだ付けをする(図3 左)銅はくを温め、コテ先の【下側】に少しだけはんだを乗せ、図の場合だと右から左にずらすようにしてはんだ付けしていく。(右利きの場合) 基板とハンダゴテの間にあるはんだを、滑り込ませていくような感じ。
  2. アルコール(IPA)を歯ブラシに付け、部品の周りの残ったフラックスを取り除く。(図3 中)
  3. アルコールを布(キムワイプ)などで拭き取ってできあがり。(図3 右)

※はんだ付けの知識が少しあるので解説しましたが、はんだ付け検定3級(電子工作レベル)は不合格のままなので、自信をもってお伝えできないもどかしさはあります。はんだ付けの詳しいことは以下のリンクをご参照下さい。
godhanda.net

※あるいは最近出版されたものとして以下の本があります。分かりやすいと思いました。
https://www.amazon.co.jp/%E3%82%AB%E3%83%A9%E3%83%BC%E7%89%88-%E7%9B%AE%E3%81%A7%E8%A6%8B%E3%81%A6%E3%83%8A%E3%83%83%E3%83%88%E3%82%AF-%E3%81%AF%E3%82%93%E3%81%A0%E4%BB%98%E3%81%91%E4%BD%9C%E6%A5%AD-%E9%87%8E%E7%80%AC%E6%98%8C%E6%B2%BB/dp/4526081213/ref=pd_lpo_1?pd_rd_i=4526081213&psc=1www.amazon.co.jp

※製作後、電源を入れると、左側のモーターしか動きませんでした。もしやと思い、右側のドライバICのはんだ付けをやり直してみたところ、うまく動作しました。作業は確実に行うほうがいいようです。

2.1.b センサモジュールの組立て
f:id:Tanuki_Bayashin:20210731103641j:plainf:id:Tanuki_Bayashin:20210731103723j:plainf:id:Tanuki_Bayashin:20210731111832j:plain
図4 左:センサーをテープで固定する 中:ブレッドボードにてはんだ付け 右:完成

 先に基板の裏側のジャンパの一部を、はんだでブリッジする。テープで固定してはんだ付けを行った。(図4左)
 ピンヘッダはブレッドボードに取り付けた状態ではんだ付けするのもありかと思った。(図4右)

2.1.c NUCLEOボードの取り付け
f:id:Tanuki_Bayashin:20210731103815j:plain
図5 ピンソケットの浮き(少し銅の部分が見えている)

 NUCLEOボードを取り付けるための2列のピンソケットを、2つ取り付ける。ピンソケットが浮かないように、マスキングテープなどで固定するとよいかと思った。(筆者は片方を斜めに浮かせてしまい、NUCLEOボードを差し込むとき少し手こずった:図5)

2.2 車体を作る

2.2.a ロータリー・エンコーダの取り付け
f:id:Tanuki_Bayashin:20210731103844j:plain
図6 車軸とカップリングとロータリー・エンコーダ

 ロータリー・エンコーダとギヤボックスをカップリングでつなげる。軸と軸を留めるので、お互いの中心線がぴったり一致するのが望ましい。筆者はどうしてもずれたままだった。(車軸を回転させるとズレの分だけ、エンコーダがずれて回転する:図6)
 カップリングは4個のイモネジで固定するが、ギヤボックス側の2つのイモネジを固定するときは、それぞれ少しずつ、中心に合うように締めるといいと思った。(ロボットが完成した後、20分ほど試運転をしたが、イモネジが緩んできた。少しきつめに締め直したら、その後緩むことはなくなった)

f:id:Tanuki_Bayashin:20210731103909j:plain
図7 ギヤボックスのレンチと2mmの六角レンチ

 ギヤボックスに付いている六角レンチは細すぎるので、説明書にあるとおり2mmか2.5mmの六角レンチを用意するとよい。(図7)(全く別の組立てキットを購入したときに、同梱されていた六角レンチが2mmで、新しく購入する必要はなかった。2.5mmの六角レンチも持っていたが、筆者に届いたキットでは、大きさが合わなかった)

f:id:Tanuki_Bayashin:20210731113314j:plain
図8 クリスマスツリー(模型)と余っているカラ-モール

 エンコーダがずれて回転するので、キットに付いているスポンジゴムを台にした上で、細い針金状のもので台座と固定するとよいと思われる。(筆者はクリスマスツリーの模型を作ったときに、飾り付けに使ったモールを転用した(図8)どうでもいい情報だった・・・)

2.2.b 電池ボックスの取り付け

 簡易的に両面テープで貼り合わせた。倒立振子ロボットを動かしているとき、部品面を下にして倒れてしまうと、勢いのせいか、電池ボックスは、はがれてしまう。安全に実験を行うには、ビスとナットで固定したほうがいいと思われる。取り付け穴を大きくするのには、ピンバイスか小形のドリルも使えると思った。

2.2.c 配線する

 電線を1cmぐらいむいて、端子台にからげてから、はんだ付けした。より線もしっかり”より”を入れるといいようである。(はんだ付け講習会のときに教わった接続法。今のところ、電線は切れていない)

2.3 動作確認

2.3.a Ni-MH充電池を使う場合

 筆者は以前サンヨー製のエネループを購入していたので、充電した後、完成した倒立振子ロボットに取り付けた。そのとき、予備も含めて8本購入していた。運がよかった。4本で稼働している間に、4本を充電することができる。(乾電池 単3×4本でも動作可能)
 エネループで連続運転してみたところ、だいたい30分位で電池がなくなってきたように思う。(電池がなくなると、加速して姿勢を保つことが難しくなると思った。更に使い続けると、制御系の動作がうまく働かなくなるように感じた)

2.3.b NUCLEOボードへのプログラムの書き込み
f:id:Tanuki_Bayashin:20210731103935j:plain
図9 USB mini B - typeA のUSBケーブル

 このロボットは、NUCLEOボードを搭載しており、このボードによりうまく立つように制御されている。(このキットは、センサーからの信号からノイズを取り除く機能がメインであるが)そのため、ボードにプログラムを転送しないと動かない。そのとき必要になるのが、USB mini B typeAケーブルである。(図9)昔使ったUSBケーブルの中に、NUCLEOボードの端子と一致するものがあった。運が良いことが続く。

以上で筆者が気になった内容を書き終えた。以下に筆者が動かした倒立振子ロボットの映像を示す。感想などあったら、聞かせてください。

【映像】マルツオンラインの動画と比べて、動きが大きいように思う。制御系のチューニングが必要かもしれない。
youtu.be

3.まとめ

 今回の製作で、運がよかったところを以下に記す。(一般の製作記とはひと味違う)

  • 倒立振子ロボットがキットとなって販売されていた(製作された方から教えていただいた)
  • 今年の3月にはんだ付け講習を受けていた
  • ロータリー・エンコーダの取り付けで、2mmの六角レンチと、固定するためのモールを持っていた
  • Ni-MH充電池8本と専用の充電器を持っていた(乾電池 単3×4本でも動作可能)
  • USB mini B type A ケーブルを持っていた

製作自体はさほど難しくなかった。キットがよくできているからだと思う。(ドライバICのはんだ付けの)手直しをした後、スイッチを入れると、当たり前のようにバランスをとって動作したのには感動した。同時に4年前の自分の至らなさが、もどかしくてたまらなく感じた。(大学ではロボットの研究をしていました)

4.今後の展望

 今後、取り組んでみたいことを以下に記す。

  • 自分なりの制御則を試してみる(勉強し直さないといけない。まずはカルマンフィルタから。時間がかかるだろう)
  • リモート操作で前や後ろに動作させてみる(wifiBluetoothを利用できるマイコンボードにて制御する)
  • 製作された方のようにラズベリーパイ Picoで構成する
  • ロータリー・エンコーダを両輪の軸に付け、右や左にターンさせたり、その場で回転させたりする。(すでにそういう倒立振子の製品は出回っているが・・・)

以上