空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

raspberry pi 3でDCモータを2つ動かす(TA7291Pを使う)

raspi3でDCモーターを2つ動かす

 準備
  • raspi3
  • dc motor 2つ
  • TA7291P 2つ
  • 電池
  • ブレッドボード
  • ピン

etc …

ハードセットアップ
  • 配線の仕方は以下参考。こちらはraspi 12ピンをpwmに設定。さらにraspi 16 18 32 ピンを同様に使用。32にpwmをセット。

参考:↓わかりやすい内容ありがとうございます↓

Raspberry Pi 3 でモーター制御(USB電源) | manspace

Raspberry Pi 2でDCモーターを2つ制御する - カイワレスタイル

  • 電源をセット(試したのは単三電池4個=6Vくらい)
ソフトセットアップ
sudo apt-get install python-rpi.gpio

RPi.GPIOパッケージのインストール

import time
import RPi.GPIO as GPIO

time.sleep(3)
                                                                                                                                                                                    
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)

GPIO.setup(8,  GPIO.OUT)
GPIO.setup(10, GPIO.OUT)
GPIO.setup(12, GPIO.OUT)

GPIO.setup(16,  GPIO.OUT)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(32, GPIO.OUT)

pwmR = GPIO.PWM(12, 50)
pwmR.start(0)
pwmL = GPIO.PWM(32, 50)
pwmL.start(0)

pwmR.ChangeDutyCycle(0)
GPIO.output(8,  1)
GPIO.output(10, 0)
pwmL.ChangeDutyCycle(0)
GPIO.output(16,  1)
GPIO.output(18, 0)

pwmR.ChangeDutyCycle(100)
pwmL.ChangeDutyCycle(100)
time.sleep(3)

GPIO.output(8,  0)
GPIO.output(10, 0)
GPIO.output(16,  0)
GPIO.output(18, 0)
time.sleep(3)

pwmR.ChangeDutyCycle(0)
GPIO.output(8,  0)
GPIO.output(10, 1)
pwmL.ChangeDutyCycle(0)
GPIO.output(16,  0)
GPIO.output(18, 1)

pwmR.ChangeDutyCycle(100)
pwmL.ChangeDutyCycle(100)
time.sleep(3)

GPIO.output(8, 1)
GPIO.output(10, 1)
GPIO.output(16, 1)
GPIO.output(18, 1)
time.sleep(3)
                                                                                      
GPIO.output(8, 0)
GPIO.output(10, 0)
GPIO.output(16, 0)
GPIO.output(18, 0)
pwmR.stop()
pwmL.stop()

GPIO.cleanup()
time.sleep(1)

これを実行するとモーターが2つ動きます〜

動作は正回転、停止、逆回転、停止です。

これで車と腕を動かせるようになりました。次はモバイルマニピュレータをつくりたいっす