您好,登錄后才能下訂單哦!
這篇文章給大家介紹樹莓派小車如何實現轉彎,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
一般車輛的轉向是有轉向的結構,但是小車并不具備結構,所以只能從輪子上入手。 要實現轉向,要么是左右側電機差速,因為速度不一樣,摩擦力的影響,必然導致跑偏, 還有一種就是讓輪子向反方向轉動。 基于此,實現左轉彎,可以讓左側輪子反轉,右側輪子正轉:
#左轉彎函數 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)
AIN1在前進時候設置的是True,讓其正轉,現在則設置為False。 而相應的啟用了AIN2為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.當然不同情況,數值略有不同。 至此,就實現了前進、后退、左轉和右轉這些基本功能。
關于樹莓派小車如何實現轉彎就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。