Raspberry Π

Raspberry Piでいろんなことをやってみようというブログです。

mincraft

第14回 Raspberry Piでラジコンを作る。

今回はモーターを2つ使っての配線設計を行います。

今までは1つのモーターをブレッドボードに組み込みましたが、
モーターが2つになるということでどのように設定を変更すべきか考えたいと思います。

f:id:taka230035:20170111091010p:plain:w400



前回の記事は以下です。

rasp0035.hatenablog.com





今回の設計について

まずWeb上を検索し、ベストプラクティスを探しましたが、そもそも事例自体があまりなく、探し出せませんでした。
ですので、今回の記事は自分の考えた設定となります。

同様のことを行った際のトラブルには一切責任は負いませんのでご了承ください。

また、設計を変えて、モーターの回転速度を比較していますが、
モーター音と目視での比較結果となり、正確なものでない可能性がありますので、合わせてご了承ください。




単3電池2個セットで2つのモーターを回す

モーターとラズパイの基本的な設計は以下の記事を参照ください。

rasp0035.hatenablog.com



まず、単3電池2個セットで2つのモーターを回すことを試みます。

既存の配線にもう一つモーター配線をつなげる形になると思います。
思いつきで、以下のように設定しました。
f:id:taka230035:20170111083431p:plain:w300

1つ目のモーターと同列にもう一つのモーター回路を繋げただけです。
あっけなくこれで2つのモーターが回りました!

ですが、1つのモーターの時より、2つの方がモーターの回転が明らかに落ちているようです。
ちょっとこれではスピード不足だと思いました。




単3電池4個セットで2つのモーターを回す

上の回路でパワーが落ちてしまったのなら、単純に電池を増やせば良いと考えて、
今度は上記回路で単3電池を2個→4個に増やして回してみます。
f:id:taka230035:20170111085516p:plain:w300

そうすると、すごい勢いでモーターが回りました。
仕組みはよく分かってないのですが、
単3電池2個セットで1つのモーターを回した時より
今回の単3電池4個セットで2つのモーターを回した方
2つのモーターそれぞれが、音が大きく、より早く回っている感じがしました。


なので、単3電池4個セットでの方針で行こうと思いました。


※他に単3電池2個セットを2つ用意して、1個ずつ、各モーターを回す作戦も考えていました。
ただ、モーターの回転速度は1セットのものと変わらないので、こちらの検証はしませんでした。




GPIOをモーターで分ける

ただ、上記のままですと、1つ問題があります。


それは2つのモーターが同じタイミングで回転してしまうのです。
モーターを2つ使うダブルシャフトギアは左右が独立しています。

このままですと、同じタイミング・同じ速度での回転なので、1つのモーターを使った時と変わりません。
何が駄目かというと、旋回ができなく、以前と同じ直進、後退、停止しかできないのです。


なので、GPIOを2セット用意する必要があると考えました。
となると、モータードライバも2つ必要となります。
結果、以下のような回路を思いつきました。
f:id:taka230035:20170111091010p:plain:w400
追加するもう1セットのモーターは同じ役割をするGPIOピンに繋げております。
今回は11番、12番、17番ピンを使用しました。

GPIOピンの役割については以下の記事を参照ください。

rasp0035.hatenablog.com




また、使用したpythonスクリプトは以下となります。

import wiringpi as pi, time

motor1_pin = 23
motor2_pin = 24
motor3_pin = 17
motor4_pin = 18

pi.wiringPiSetupGpio()
pi.pinMode( motor1_pin, 1 )
pi.pinMode( motor2_pin, 1 )
pi.pinMode( motor3_pin, 1 )
pi.pinMode( motor4_pin, 1 )

while True:
pi.digitalWrite( motor1_pin, 1 )
pi.digitalWrite( motor2_pin, 0 )
pi.digitalWrite( motor3_pin, 0 )
pi.digitalWrite( motor4_pin, 1 )

上記設計およびスクリプトで、問題なく2つのモーターが回ることを確認しました。


今回は以上となります。

次回の記事は以下となります。

rasp0035.hatenablog.com