徒然なるままにMake:

Fusion360 3Dプリンタ 電子工作 面白そうなモノづくりをやっていくブログ

秋月電子通商のステッピングモーターを回してみる その3

前回

something-make.hatenablog.com

前回はステッピングモーターのホイールユニットを作りました。

しかし、このシステムには問題があります。

それは

ドライバが大きいこと

この回路滅茶苦茶に大きいんです

akizukidenshi.com

akizukidenshi.com秋月電子通商ステッピングモーターSPG27-1101と、公式で推奨している学習用のPICドライバキットなんですが、学習用にディスクリート部品だらけなせいでかなりデカいんです。

以前作ったArduinoを使ったXBeeコントローラーの基板と同じ位に大きくかさばります。いくらなんでもこれは使い勝手が悪すぎるので、コンパクトなドライバ無いもんかなと探してみたらありました。

ここを参考にちょっとやってみようと思います。

monoist.atmarkit.co.jp

A4988モジュールというものです。Amazonにも売ってました。

 

 5個セットで990円と言うのはかなり安いです。

このモジュールは3Dプリンタのバイポーラステッピングモーター制御用のキットです。

秋月のステッピングモーターはユニポーラーですが、線の繋ぎ方を変えるだけでバイポーラステッピングモーターとしても機能します。

参考になるURLがあったので載せておきます。

www.mechatroidea.comコイルの中間にある線Cを無視すれば機能させることができます。

まずはタクトスイッチで動かしてみます。


秋月電子通商のステッピングモーターSPG27-1101を回してみる その4

 

動きましたが脱調しているようです。恐らく、タクトスイッチのチャタリングをA4988が拾ってしまっているようです。

モータが駆動できるパルスの周波数を、チャタリングの周波数が超えてしまっているせいだと思われます。

 

次はArduinoにパルスを送らせてみます。


秋月電子通商のステッピングモーターSPG27-1101を回してみる その5

特に問題なく正転、逆転をすることができました。

 

これでこのコンパクトなモジュールを使ってステッピングモータを操作することができるようになりました。

秋月電子通商のステッピングモーターを回してみる その2

前回

something-make.hatenablog.com

 ちょっと思いついたのでギヤで減速したホイールユニットを作ってみます

f:id:something-make:20190101195921p:plain

まずはステッピングモーターモデリング

データシートを見ながら、Fusion360でゴリゴリ作ります

そんなに複雑な形状ではないので、時間をかけずにできました。

 

これに組み合わせるギヤはFusion360のアドインで作りました

fabble.cc

 

f:id:something-make:20190106231312p:plain

ギヤを作ったら、ギヤにあわせてホイールも作り、ギヤとホイールを接続します。

f:id:something-make:20190106230513p:plain

f:id:something-make:20190106230521p:plain

 

ホイールにはミゾを付けて輪ゴムを取り付けることで滑り止めにします。

 

車輪の軸はボールベアリングを使おうかと思ったのですが、以前何かで見かけたネタをやってみます

軽量な軸受を作るために、近所のホームセンターで見つけたスチールシャフトとジュラコンブッシュを組み合わせて使います。

シャフトは直径4mm、長さ40mmf:id:something-make:20190106230917j:plain

 

ジュラコンブッシュは穴直径4mmのものを使用します。

ジュラコンブッシュはとても滑りが良いプラスチックでできているので、軸受けに使うことでボールベアリングよりも軽量にできるというわけです。

www.monotaro.com

 

後はモーターとシャフトを固定できるようにフレームを作ります。

組み立てができるように注意します。

 


 

f:id:something-make:20190106230534p:plain

 

そして3Dプリントして組み立てるとこのように動作します。

これにて目標達成です。


秋月電子通商のステッピングモーターSPG27-1101を回してみる その3

 

しかし、このホイールユニット、ギヤの動作は問題無いように見えるのですが、実はモーターをフレームに取り付けるネジを締め過ぎると回りにくくなります。

これはギヤの間隔がかなり詰まっているので、3Dプリントした際の誤差のせいでかみ合いが悪くなってしまっているのです。

実用する際にはギヤのクリアランスを考える必要がありそうです。

また、今回ホイールの摩擦のために輪ゴムを使用しましたが、実際はフレキシブルフィラメントを使用したほうがより完成度が高かったと思います。

秋月電子通商のステッピングモーターを回してみる その1

秋月のステッピングモーターを回してみます。

akizukidenshi.com

この二相ユニポーラステッピングモータを、公式で推奨している

akizukidenshi.comで回してみます。

まあドライバはキットなので部品を説明書通りに配置してハンダ付けすれば問題なく組みあがります。

f:id:something-make:20181228145259j:plain

 

モーターとドライバはQIコネクタで接続しています

電源を投入してみます

youtu.be

・・・回りません

振動するだけです

 

仕方ないので テスター片手に不良箇所を探します

しばらく探してようやく見つかりました

QIコネクタの圧着が不十分でした

f:id:something-make:20181230103958j:plain

取扱説明書の「トランジスタが壊れると回らなくなる」という記述を見てトランジスタを交換したりしてみたんですが、結果は単純な圧着不良でした。

これからはこういった部分は真っ先に確認するようにすべきですね。

 


秋月電子通商のステッピングモーターSPG27-1101を回してみる その2

 

3Dプリンターでロボット作ってみる 多脚ロボット編 37 コントローラを改良します3(完結)

前回 コントローラーの筐体を設計しました。

something-make.hatenablog.com

このロボットの3Dデータは下のリンクのものを使用しています

 

前回設計したパーツの出力にかかる時間は合計で15時間

プリンターの稼動音の関係で昼間しか動かせないので、結局2日かかりました。

 

 


3Dプリンターでロボット作ってみる 多脚ロボット編 37 コントローラを改良します3 その1

実際に組み立ててわかったことがあります

ボタンがひっかかって押せません

ボタンの穴はドリルを使って整えたのですが、マージン0.1mmというのは流石に狭すぎたようです。

こういうときの対処は簡単です

動くように修正すればいい!

 

まずこれが修正前のボタン

f:id:something-make:20181202085518p:plain

そしてこれが修正後のボタン

穴とボタンに0.5mmのオフセットをさせました。

これなら動くはずです。

f:id:something-make:20181202085522p:plain

 

ボタンがくるくる回転しないようにつけた裏側の六角形も0.5mmオフセットをさせました。

f:id:something-make:20181202085725p:plain

f:id:something-make:20181202085722p:plain

 

 

これで組み立てるとしっかりと動くようになりました


3Dプリンターでロボット作ってみる 多脚ロボット編 37 コントローラを改良します3 その2

 

完成したコントローラはこんな感じです

まず表

f:id:something-make:20181202090217j:plain

ネジが目立ちますが、とりあえずこれでよしとします。

そして裏

f:id:something-make:20181202090246j:plain

こちらもネジだらけです。

基板固定、電池固定、カバー固定で随分とネジを使いました。

 

これにて、多脚ロボット編 は完結です。

割としっかりしたロボットとコントローラーを作れたので満足しています。

 

3Dプリンターでロボット作ってみる 多脚ロボット編 36 コントローラを改良します2

前回 コントローラをモデリングして、試作部品を3Dプリントしました。

something-make.hatenablog.com

このロボットの3Dデータは下のリンクのものを使用しています

 

前回の試作でコントローラの改良をどうやって進めていくのか見通しが立ったので、改良版モデルを作りました。

f:id:something-make:20181123230030p:plain

前回作ったCADデータにねじ留め部分を追加し、各スイッチにパーツを追加しました。

f:id:something-make:20181122215047p:plain

f:id:something-make:20181123230035p:plain

上に被せるカバー部分は結構な大きさになりました。

3Dプリント時間を試算してみたところ、このカバーだけで8時間かかることがわかりました。

完成時から動かしても深夜にプリンタの稼動時間がずれこみそうだったので、今日はプリントは無しです。

f:id:something-make:20181123230037p:plain

3Dプリンターでロボット作ってみる 多脚ロボット編 35 コントローラを改良します1

前回 遠隔操作できました!

something-make.hatenablog.com

このロボットの3Dデータは下のリンクのものを使用しています

 

前回でロボットの遠隔操作に成功したので、このプロジェクトもほぼ完了なのですが、実際に作ってみて気になることが一つ

 

 

コントローラが使いづらい!

 

もう嫌になるくらい使いづらいんですよ!

問題点を挙げてみると、

  1. 基板が小さくて持ちにくい
  2. 電池がぶらぶらしていて危なっかしい
  3. 基板の裏がショートしそう
  4. スイッチが小さくて押しづらい

とりあえずこのへんの問題をなんとか解決できないもんかと思いました。

そこで、基板にカバーを被せて電池を内臓し、ボタンなんかも大きくしてみたいと思います。

参考にしたのはこれ

www.thingiverse.comこういったケースを3Dプリンターでつくってみようと思います。

 

まずは基板をFusion360モデリングします。

モデリングに使うのは定規とノギスです。

 

これだけあれば、十分なモデルをつくることができます。

XBee基板の角等、少々違うところもありますが、コントローラのカバーを作るにはこれで十分です。

f:id:something-make:20181122214529p:plain

 

9V電池のモデルは、世界共通規格なので、探してみるとすぐ見つかりました。

grabcad.comこのCADデータを少々面倒ですが、会員登録してもらってきます。

 

はめあいなんかがどうなるかわからないので、まず作ってみます。

基板をネジで留めて、横に電池とスイッチを配置します

f:id:something-make:20181122215047p:plain

 

 

パーツの固定はM3のねじとナットで

f:id:something-make:20181122224352p:plain

f:id:something-make:20181122224354p:plain

 

こだわったポイントがここです

ネジが干渉するので、基板を差し込んで留めます

f:id:something-make:20181122224349p:plain

 

そんなわけでさっそく印刷します。5時間くらいかかりました。

f:id:something-make:20181122231305j:plain

 

基板もバッテリーもしっかりとはまりました。

ただ、電源スイッチはキツくて嵌りませんでした。要修正です。

f:id:something-make:20181122231338j:plain

 

 基板の差込もしっかりとできました。

f:id:something-make:20181122231648j:plain

 

明日からは今回わかった問題点を修正して出力してみます。

3Dプリンターでロボット作ってみる 多脚ロボット編 34 XBeeで遠隔操作できました!

前回 モーション作りました

something-make.hatenablog.com

 

このロボットの3Dデータは下のリンクのものを使用しています

 

 前進、後退、右旋回、左旋回のモーションをつくることができたので、ロボットをコントローラーで動かしてみます。

 

まず基本はコレです。

something-make.hatenablog.com各種設定を完了したXBeeArduinoのTXとRXに繋ぐと、シリアル通信をそのまま転送してくれます。

  1. コントローラーからシリアル通信で一文字送る
  2. ロボットでシリアル通信を受信する
  3. switch-case文でモーションを選択して実行
  4. モーション実行中に送られた文字は全て読みこんでなかったことにする
  5. 最新のシリアル通信データを受信する

という以外に簡単なプログラムでできました。

4は動作中に送られたシリアル通信を無視することで、モーション終了時点で最新のシリアル通信データを読み込み、コントローラに対する反応を良くしています。

この機能が無いと、シリアル通信で送られた信号に対応するモーションを片っ端から実行してしまうので、コントローラからの操作にすぐ反応せず、操作が困難になります。

この機能は以前のArduino開発環境ではSerial.flush()関数でしたが、仕様変更によりSerial.flush()関数の機能が変更になったので、Serial.read()関数が-1を返すまでSerial.read()を繰り返すことで代用しています。

 

while( Serial.read() != -1){}

 

実際にコードを書く場合はこのようになります。Serial.read()が-1(データ無し)にならない限り、Serial.read()を実行し続けます。

 

これでコントローラでロボットを自在に動かすことができるようになりました。

youtu.be