Raspberry Pi モータードライバー基板キット

RescueROBO1.png(135310 byte)ドライバ基板使用例

変更情報

はじめに

このモータードライバーはRaspberryPiに取付ける事で小型DCモーターを2個(オプションにより最大3個まで)駆動可能です。

特徴 注意

内容物一覧

組み立てる前に内容物を確認してください。
内容 数量 表記/カラーコード
基板 1枚
ドライバIC 2個 TA7291P
26pinコネクタ 1個
ターミナルブロック 3個
1列ピンヘッダ 9pin分
タクトスイッチ 1個
トランジスタ 1個 2SC1815
コンデンサ(100μF) 1個 100μF
コンデンサ(10μF) 1個 10μF
コンデンサ(0.1μF) 2個 104
抵抗(51KΩ) 1個 緑茶橙 金
抵抗(2.2KΩ) 1個 赤赤赤 金
抵抗(3.3KΩ) 2個 橙橙赤 金
スペーサ 1個
ネジ 1個

組み立て

図に従って部品を取り付けていきます。次の点には注意してください。
※特に「RaspberryPiと接続する26ピンコネクタは裏面につけます。」には気をつけてください(後で修正するのは大変なので)。

KIBANd.png(194211 byte)

タクトスイッチについて

タクトスイッチは5ピンタイプが入っている場合があります。この場合は不要なピンを切取ってください。
TACTsw.png(126545 byte)

速度制御について

RaspberryPiのPWM出力を利用してモーターの速度制御が可能です。但しRaspberryPiのハードウェアPWMは1CHのみですので複数のモーターを個別に速度制御はできず、全て同じ速度で回転しようとします。なおモーター3については配線による設定で最大速度に固定することもできます。
モーター3動作設定
速度制御 JP2:1-2間をショートする
最大速度固定 JP2:2-3間に3.3KΩを取り付ける。
※複数モーターを速度制御する場合、全部のモーターが同じ速度制御信号で回転します

完成すると次の様になります。

※タクトスイッチの色は写真と異なる可能性があります。
※オプションの3個目ドライバIC実装例です
Board1.png(799696 byte)

使い方

RaspberryPiに図の様に取り付けます。

26ピンGPIOタイプ

26ピンGPIOのRaspberryPi(RaspberryPi1 typeB等)は写真の様に取付けます。
Attach1.png(564367 byte)

モータードライバと本体の取り付け穴位置が一致するのでスペーサーで上下を固定するか、長ねじで共締めにする事が可能です。 Attach2.png(559764 byte)

40ピンGPIOタイプ

40ピンGPIOのタイプ (RaspberryPi2等)は写真の様にコネクタの左端に寄せて取付けます(ピン位置がずれない様に差し込んで下さい)。 Attach3.png(602487 byte)

モータードライバ取り付け穴の直下のRaspberryPi本体には取り付け穴がありません。この場合ドライバ基板とスペーサーをネジで固定し、RaspberryPi本体には乗せるだけとなります。
「HDMI」文字の真上付近にスペーサが当たる形になります。 Attach4.png(528974 byte)

配線

配線例です。
RaspiMDWiaring.png(76124 byte)

回路図

RaspiMDschS.png(28999 byte)※クリックするとPDFファイルが開きます。

ピン配置

GPIOピンと用途の対応は次の通りです。RaspberryPiはRev1とRev2以降とでピン配置が異なっているのでご注意ください(Rev1は初期のRaspberryPiなのでこれを使う場面は少ないと思います)。
ピンRev1Rev2以降用途
3GPIO0GPIO2Motor1 IN1
5GPIO1GPIO3Motor1 IN2
13GPIO21GPIO27Motor2 IN1
19GPIO10GPIO10Motor2 IN2
21GPIO9GPIO9Motor3 IN1
23GPIO11GPIO11Motor3 IN2
12GPIO18GPIO18PWM
18GPIO24GPIO24オープンコレクタ
22GPIO25GPIO25タクトスイッチ入力
7GPIO4GPIO4サーボ1
11GPIO17GPIO17サーボ2

ソフトウェア

ソフトウェアから各機能を次の様に制御します。
(上記配線例をイメージした説明になっています)

モーター

モーターを制御するには各モータードライバのIN1,IN2に次の信号を入力する事で動作を決定します。PWMで速度制御を行うモーターはこれらに加えGPIO18のPWM信号で速度をコントロールします。
IN1IN2動作
00ストップ
10回転
01逆回転
11ブレーキ
※「回転」はOUT1がH、OUT2がLを表し、「逆回転」はその反対を表します。(実際のところは回転方向を厳密に考えるよりも回してみて逆ならモーター配線を入れ換えるのが手っ取り早いと思います)
C言語等で制御する場合はGPIOにHやLを出力していく手段として、WiringPi等のライブラリを使うと便利です。

サーボ

サーボを制御するには20mS周期1.0mS〜2.0mS幅のPWM信号をGPIO4およびGPIO17から出力します。 これにはServoBlaster等のライブラリを使うと便利です。
GPIOサーボ
GPIO41
GPIO172

LED(オープンコレクタ出力)

GPIO24をHにするとLEDがON、LにするとOFFです。

タクトスイッチ入力

GPIO25から状態を読みます。スイッチを押すとH、離すとLです。シャットダウンボタンとして利用する方法はサンプルプログラムを参照してください。

サンプルプログラム

rescuerobo.c
レスキュークローラの制御ソフトの例です。
このプログラムを起動するとネットワークでUDPのポート番号8765を監視し、受信したデータに従いモーター・サーボ・LEDを制御します。 GPIOの制御にWiringPi、サーボの制御にServoBlasterを利用しています。 通信を行っていますがセキュリティ的な処理は全くしていません。通信内容は各GPIOの状態をカンマ区切りで並べただけのものです。
RaspberryPi上で次の様にコンパイルします。
cc -o rescuerobo rescuerobo.c -l wiringPi

sdbutton.c
タクトスイッチをシャットダウンボタンとして使う例です。本プログラムを立ち上げ時に起動しておきます。 このプログラムの起動後、ボタンが押されていない期間が10秒以上続くと動作を開始し、その後3秒以上ボタンを押し続けるとシャットダウンコマンドを発行します。

RaspberryPi上で次の様にコンパイルします。
cc -o sdbutton sdbutton.c -lwiringPi
RescueRoboControl.zip
参考用にレスキュークローラのコントロールソフト(Windows版)も載せておきます。Visual C# 2010 Expressでコンパイルしています。


Created by ez-HTML
トップページへ
ほいほい堂本舗