自平衡機器人的控制系統(tǒng)設(shè)計
3.2.2 擴展CAN通信電路
單片機與電機控制器采用CAN總線通信,CAN接口采用Philips公司的CAN物理層和鏈路層接口芯片SJA1000和PCA82C250。單片機直接控制SJA1000的AD0~AD7、ALE、INT引腳。SJA1000工作在Intel模式下,MODE腳接高電平,片選腳CS接地,始終處于選通狀態(tài)。擴展CAN通信電路如圖5所示。單片機對SJA1000的操作主要是對寄存器的操作:一方面,對SJA1000的模式寄存器、命令寄存器、狀態(tài)寄存器、中斷寄存器、中斷允許寄存器、總線定時寄存器、輸出控制寄存器、時鐘分頻計數(shù)器進行設(shè)置和檢測;另一方面,對收發(fā)緩沖區(qū)進行讀寫,從而和CAN設(shè)備交換數(shù)據(jù)。
3.3 控制系統(tǒng)軟件設(shè)計
自平衡機器人的控制系統(tǒng)需要實現(xiàn)以下功能:傳感器信息處理和機器人姿態(tài)信息計算,電機控制PID算法實現(xiàn)和CAN口的數(shù)據(jù)處理。系統(tǒng)控制流程如圖6所示。系統(tǒng)上電后從主函數(shù)開始執(zhí)行。主函數(shù)負(fù)責(zé)初始化控制器的I/O口、CAN口、控制周期定時器、A/D轉(zhuǎn)換器、各個中斷接收數(shù)據(jù)和發(fā)送數(shù)據(jù)模塊等。初始化完畢,控制周期定時器時間到后,傳感器信息輸入到A/D轉(zhuǎn)換器中進行轉(zhuǎn)換,計算機器人的傾倒角度和傾倒角速度;然后調(diào)用PID算法計算電機控制數(shù)據(jù),并通過CAN口輸出給電機驅(qū)動器。
伺服電機相關(guān)文章:伺服電機工作原理
評論