本文講述如何通過樹莓派的硬體pwm控制好盈電調來驅動rc車子的前進後退,以及如何驅動伺服電機來控制車子轉向。
車子上的電調型號為:wp-10bls-a-rtr,在好盈官網並沒有搜到對應手冊,但找到乙份通用rc競速車的電調使用說明,不過說明書中並沒有提及訊號調製方式,繼續尋找,看到乙份電調的通用驅動說明。
總結來說,對於pwm格式要求如下:
1. 電調接收50hz的pwm訊號,即乙個週期為20ms.
2. 油門對pwm高電平的響應範圍為1ms~2ms,即高電平的占空比為1/20~2/20
3. 預設rc競速車只有前進控制,則1ms為最低速度,2ms為最高速度;若配置rc競速車為前進/後退模式,則1.5ms為油門中點,2ms為正向最高油門,1ms為反向最高油門。
對於第三點,則需要配置電調的相關模式以識別pwm的意圖。
備註:
1. 由於此處並無遙控器,因此圖中文件的步驟1 就只需要拔插電池電源即可
2. 高、中、低檔的pwm輸出則需要自己對樹莓派程式設計進行控制
備註:
1. 不是所有的電調都有這三種執行模式,恰好本文所驅動的wp-10bls-a-rtr電調只能選擇「正轉帶剎車」或「正反轉帶剎車」,此處選擇紅燈閃兩次,配置為「正反轉帶剎車」。
除錯過程中,樹莓派安裝在車上,pc通過ssh區域網訪問樹莓派。因此使用pc鍵盤的w/s/space鍵來模擬遙控器的前進/後退/剎車;同時,考慮到鍵盤只能提供0/1狀態輸入,故選用r/f鍵來模擬「檔位」--限制當前檔位下的w/s的最高油門,以達到換擋加減速的效果。語言表述繁瑣,用流程圖來表達,大概就是如下效果:
伺服電機的工作原理可參考此文,描述十分詳盡,此處不再贅述。
此處使用a/d鍵來控制轉向,由於無法獲知電機當前的轉向角度,因此很難通過逐步增大/減小pwm占空比的方式來控制電機的轉向。為簡化控制,每次按下按鍵時觸發電機偏轉一定的角度,角度值受keep_tick_limit控制,若按住按鍵不鬆開,便左或右轉向打到底。
邏輯較為簡單,直接看**:
工程原始碼請參考github 倉 rc_car.
樹莓派驅動框架
include file operations宣告 include module init module exit宣告 include init exit 巨集定義宣告 include class devise宣告 include copy from user 的標頭檔案 include 裝置號 d...
樹莓派驅動框架
檔名為pin4driver.c include file operations宣告 include module init module exit宣告 include init exit 巨集定義宣告 include class devise宣告 include copy from user 的標頭...
樹莓派基於python的pwm產生
import rpi.gpio as gpio 匯入gpio口驅動模組 import time 匯入時間模組 pwm pin 18 定義pwm輸出引腳 gpio.setmode gpio.bcm 定義樹莓派gpio引腳以bcm方式編號 gpio.setup pwm pin,gpio.out 使能gp...