読者です 読者をやめる 読者になる 読者になる

Raspberry Π

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

mincraft

DCモーターを使ってプロペラを動かしてみる

機能追加

今回はモーターを使ってみようと思います。
モーターの使い方が分かれば、動力が確保できて、いろんなものを動かすことが可能です。

f:id:taka230035:20161010095431j:plain:w300



参考は相変わらずのラズパイマガジンです。

rasp0035.hatenablog.com




買ったもの・使ったもの・あると良い物

rasp0035.hatenablog.com 上記キットの内容物だけでモーターは回りますが、今回はプロベラを別途購入しました。
具体的には以下です。

・DCモーター
 一般的なモーターです。キットのやつです。
f:id:taka230035:20161010095108j:plain:w200

・モータードライバー
 電流を制御したり、モーターの回転速度を制御できたりします。
 キットに入ってるものです。
f:id:taka230035:20161010095145j:plain:w200

コンデンサ
 モーターの雑音を軽減するものです。無くてもモーターは動きます。
 キットに入っているものです。
f:id:taka230035:20161010095213j:plain:w200

・ブレッドボード
f:id:taka230035:20161010095237j:plain:w200

・5.1kΩ抵抗(緑・茶・赤・金)
f:id:taka230035:20161010095319j:plain:w200

・ジャンパー線
f:id:taka230035:20161010095348j:plain:w200

プロベラ
 今回用に別途購入したものです。キットには入っていません。
 プロベラ飛行機用のもので、見事にモーターに合いました。
 2個入りで280円です。
f:id:taka230035:20161010095414j:plain:w200 f:id:taka230035:20161010095431j:plain:w200

・(あると良い物として、)はんだごて
f:id:taka230035:20161129220905j:plain:w200
 ついに、はんだごてを使用します。ただ、使わなくてもモーターは動きます。
 モーターと配線とコンデンサーを繋ぐ場面ではんだごてを使用したほうが、  ジャンパー線が外れたせず、安定します。





配線

配線図は以下となります。
f:id:taka230035:20161129221200p:plain:w300


ブレッドボードの実機画像は以下です。ブレッドボードの使い場所を上記図と変えております。

f:id:taka230035:20161010095549j:plain:w200





スクリプト

スクリプトです。
wiringpiコマンドを使用するためのライブラリは別の機能追加でインストール済とします。
ライブラリのインストールの事例は以下となります。

rasp0035.hatenablog.com


スクリプトは以下です。
※例によって、#となるため、そのままコピペするとエラーになるかもしれません。

import wiringpi as pi, time

motor1_pin = 23#①
motor2_pin = 24

pi.wiringPiSetupGpio()#②
pi.pinMode( motor1_pin, 1 )
pi.pinMode( motor2_pin, 1 )

while True:
pi.digitalWrite( motor1_pin, 1 )#③
pi.digitalWrite( motor2_pin, 0 )
time.sleep(2)

pi.digitalWrite( motor1_pin, 1 )
pi.digitalWrite( motor2_pin, 1 )
time.sleep(2)

pi.digitalWrite( motor1_pin, 0 )
pi.digitalWrite( motor2_pin, 1 )
time.sleep(2)

pi.digitalWrite( motor1_pin, 0 )
pi.digitalWrite( motor2_pin, 0 )
time.sleep(2)





スクリプト解説

雑誌掲載内容による解説

①今回はGPIO23,24を使用します。

②初期化設定です。

③これ以降のプログラムが、モーターの挙動を処理しています。

 motor1_pin, 1
 motor2_pin, 0

⇒モーターを回転させる処理

 motor1_pin, 1
 motor2_pin, 0

⇒モーターを惰性で停止させる処理

 motor1_pin, 1
 motor2_pin, 0

⇒モーターを逆回転させる処理

 motor1_pin, 1
 motor2_pin, 0

⇒モーターを強制停止させる処理

とのこと。



動作

スクリプトをエラーなく実行した結果が以下。
f:id:taka230035:20161010095628g:plain:w200
モーターがうまく回らない場合は

・ブレッドボードの接続がうまくいっていない。
 →特にモータードライバーは奥まで差し込んでいること。
スクリプトの記載ミス。
・接続している電池の容量が少ない
 →eneloopを使用している場合は注意です。
  モーターを動かす場合の推奨電圧は1.5Vとなりますが、eneloopは1.2Vしかありません。
☆ムック本には、モーターにつなぐジャンパー線は先端の被覆を剥くと書いてますが、そんなことしなくても一応モーターは回ります。
コンデンサーは無くとも、モーターは回ります。

があげれられます。
特に電源供給には注意です。


相変わらず、配線が邪魔だし、ハンダで固定してないので、
モーターへの接続が不安定。
また、コンデンサーをつけていても振動音がするので、
その対応も必要だと思いました。

以上です。