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