CAM-PROGRAM ROBOT をリモコン化してみた!

シェアする

Pocket

さて、CAM-PROGRAM ROBOT を TA7291P で、ラズパイで制御することはできました。

そこで、次は、前に戦車をリモコン化(ラズパイ戦車をスマホからコントロールする)したように、CAM-PROGRAM ROBOT もリモコン化してみましょう。

今回は、プログラム作成の手間を極力減らしたいので、前回使用したプログラムをそのまま利用したいと思います。

また、コントロール画面も、前回のものをそのまま借用しましょう。

1.配線の変更

前回使用したプログラムをそのまま利用するには、ラズパイ制御したプログラムから、少し、配線を変更しなければなりません。

即ち、ピン12及び32を使用しないようにします。その代わりに、ラズパイの3.3Vをつなぎ変えます。

データシートを示します。

配線図も示します。

これによるプログラムも載せます。ちなみに、このソースは、「ラズパイ戦車をスマホからコントロールする」で使用したプログラムと全く同じものです。異なるのはピン番号だけです。

import webiopi

# Debug
webiopi.setDebug()

GPIO = webiopi.GPIO

# GPIO 18,23が左モータ、GPIO 24,25が右モータ

MOTOR_L1 = 23
MOTOR_L2 = 24
MOTOR_R1 = 14
MOTOR_R2 = 15
duty=50

# WebIOPi起動時CALL

def setup():
    webiopi.debug("Script with macros - Setup")
    # GPIOのセットアップ

    GPIO.setFunction(MOTOR_L1, GPIO.PWM)
    GPIO.setFunction(MOTOR_L2, GPIO.PWM)
    GPIO.setFunction(MOTOR_R1, GPIO.PWM)
    GPIO.setFunction(MOTOR_R2, GPIO.PWM)

    # 静止状態

    GPIO.pwmWrite(MOTOR_L1, 0)
    GPIO.pwmWrite(MOTOR_L2, 0)
    GPIO.pwmWrite(MOTOR_R1, 0)
    GPIO.pwmWrite(MOTOR_R2, 0)

#

def loop():
    webiopi.sleep(5)

# WebIOPi終了時

def destroy():

    webiopi.debug("Script with macros - Destroy")

    # GPIO関数のリセット(入力にセットすることで行う)

    GPIO.setFunction(MOTOR_L1, GPIO.IN)
    GPIO.setFunction(MOTOR_L2, GPIO.IN)
    GPIO.setFunction(MOTOR_R1, GPIO.IN)
    GPIO.setFunction(MOTOR_R2, GPIO.IN)

#defult function

@webiopi.macro
def forward():
    GPIO.pwmWrite(MOTOR_L1, duty)
    GPIO.pwmWrite(MOTOR_L2, 0)
    GPIO.pwmWrite(MOTOR_R1, duty)
    GPIO.pwmWrite(MOTOR_R2, 0)
    webiopi.debug("foward")

@webiopi.macro
def left():
    GPIO.pwmWrite(MOTOR_L1, 0)
    GPIO.pwmWrite(MOTOR_L2, duty)
    GPIO.pwmWrite(MOTOR_R1, duty)
    GPIO.pwmWrite(MOTOR_R2, 0)
    webiopi.debug("left")

@webiopi.macro
def stop():
    GPIO.pwmWrite(MOTOR_L1, 0)
    GPIO.pwmWrite(MOTOR_L2, 0)
    GPIO.pwmWrite(MOTOR_R1, 0)
    GPIO.pwmWrite(MOTOR_R2, 0)
    webiopi.debug("stop")

@webiopi.macro
def right():
    GPIO.pwmWrite(MOTOR_L1, duty)
    GPIO.pwmWrite(MOTOR_L2, 0)
    GPIO.pwmWrite(MOTOR_R1, 0)
    GPIO.pwmWrite(MOTOR_R2, duty)
    webiopi.debug("right")

@webiopi.macro
def back():
    GPIO.pwmWrite(MOTOR_L1, 0)
    GPIO.pwmWrite(MOTOR_L2, duty)
    GPIO.pwmWrite(MOTOR_R1, 0)
    GPIO.pwmWrite(MOTOR_R2, duty)
    webiopi.debug("back")

コントロール画面の HTML も同様のものを使用します。こちらは全く同じなので、コードは載せません。

WebIOPi サービスの設定の変更(sudo vi /etc/webiopi/config)も忘れずに実施してくださいね。

2.稼働実験

前回も実施したように、稼働実験をします。

起動前に、webiopiを起動することを忘れずに実施しましょう。パスワードは raspberry ですね。

CAM-PROGRAM ROBOT を逆さにおいて、スマホから操作を行い、正しく稼働するか試します。

正常に稼働しました。

3.リモコン始動

それでは、再び、ラズパイ、電池ボックス、モバイルバッテリを CAM-PROGRAM ROBOT に積載して、リモコンから動かしてみます。

おー、動きますね。

しかし、よく見ると、右回り、左回りの際、右のキャタピラが動いていません!フム・・・。

本体を持ち上げると、キャタピラは問題なく動くので、モーター起動用の電池の出力が足りないのかもしれませんね。

電源をアップしてやってみる価値はありそうです!

4.電源を入れ替えて実施

電源として、積層乾電池(006P型 9V)を採用します。

ネットでもいろいろと調べたのですが、お値段とかを考えて、最終的に100均のものになりました。

これを使用するには、バッテリスナップというものが必要になります。こちらは、ネットで調達しました。

そして、こちらの電源を差し替えました。

そしてリモコンスタートです。

見事に動きましたね。大成功です。

スポンサーリンク

シェアする

フォローする