ベリーパイ小車の左カーブと右カーブ(創楽博キット)


ベリーパイ小車でカーブを実現
一般車両のステアリングはステアリング構造があるが、小型車は構造を備えていないため、車輪からしか手に入らない.ステアリングを実現するには、左右側モータの差速か、速度が異なるため、摩擦力の影響で、必然的に偏りを招き、もう一つは車輪を逆方向に回転させることである.これに基づいて、左回転を実現し、左側の車輪を反転させ、右側の車輪を正転させることができる.
#     
def turnLeft(speed, lefttime):
    leftMotor.ChangeDutyCycle(speed)
    GPIO.output(AIN1, False)
    GPIO.output(AIN2, True)
    rightMotor.ChangeDutyCycle(speed)
    GPIO.output(BIN1, True)
    GPIO.output(BIN2, False)
    time.sleep(lefttime)

AIN 1は前進時にTrueを設定して正転させ、現在はFalseに設定している.これに対応してAIN 2をTrueとして有効にし、車輪を反転させる.右に曲がるコードを出すのは難しくありません.
#     
def turnRight(speed, righttime):
    leftMotor.ChangeDutyCycle(speed)
    GPIO.output(AIN1, True)
    GPIO.output(AIN2, False)
    rightMotor.ChangeDutyCycle(speed)
    GPIO.output(BIN1, False)
    GPIO.output(BIN2, True)
    time.sleep(righttime)

しかし、注意しなければならないのは、ステアリングは運動エネルギーを損なうので、車を運転したことがある人はみな知っていると思います.したがって、通常の前進および後退給の50デューティ比に対して、ステアリング時に不十分であり、大きな数値を与えるため、ステアリングに失敗する可能性がある.
if __name__ == '__main__':
    try:
         while True:
             forward(50,3)
             turnLeft(70, 3)
             backword(50,3)
             turnRight(70,3)
    except KeyboardInterrupt:
         GPIO.cleanup()

最後に70に転向することにした.もちろん状況によって数値は少し違います.これにより,前進,後退,左折,右折といった基本機能が実現される.