PWM調(diào)速與彎道策略
發(fā)布時間:2013/11/19 20:06:57 訪問次數(shù):951
PWM即脈>中寬度調(diào)制技術(shù).是小車類機(jī)器人必用的技術(shù),DS1706SESA主要用來調(diào)速。有關(guān)詳細(xì)技術(shù)細(xì)節(jié)在教科書中或是技術(shù)手冊中都有描述,本文重點(diǎn)在實(shí)際應(yīng)用。PWM波形的產(chǎn)生可以用軟件方法,但這要占用系統(tǒng)資源,而且不夠靈活。ATmega48系列單片機(jī)內(nèi)置了PWM波形產(chǎn)生功能,其實(shí)就是其3個定時器的功能擴(kuò)展,這些定時器除了產(chǎn)生定時信號外,還可以產(chǎn)生多種PWM波形。
機(jī)器人在行走過程中不可能總是走直線,所以轉(zhuǎn)向是設(shè)計機(jī)器人時必須考慮的功能。最簡單的做法是當(dāng)需要轉(zhuǎn)向時,一側(cè)電機(jī)正轉(zhuǎn),另一側(cè)反轉(zhuǎn)或停機(jī)。這實(shí)際是讓機(jī)器人在原地旋轉(zhuǎn),方法簡單,但其缺點(diǎn)也是明顯的。首先,機(jī)器人的動作顯得非常突兀,特別是走彎道時扭來扭去,姿態(tài)不好看,也耽誤速度,搞得不好甚至?xí)粩嗯,失去控制。用自動控制專業(yè)術(shù)語講,叫“超調(diào)”或是“震蕩”。
通過改變機(jī)器人兩側(cè)電機(jī)的PWM參數(shù),就可以實(shí)現(xiàn)流暢的轉(zhuǎn)向動作。一側(cè)快一點(diǎn),另一側(cè)慢一點(diǎn),可以獲得非常理想的轉(zhuǎn)彎半徑,其軌跡為順暢的弧度。使用硬件,即單片機(jī)定時器內(nèi)置的PWM功能產(chǎn)生的波形就可以做到這一點(diǎn),而且程序相當(dāng)簡單。
ATmega48系列單片機(jī)有3個定時器,都具有產(chǎn)生PWM波形的能力,而且可以同時在兩個端口引腳輸出不同頻率的PWM渡形,這就為我們控制機(jī)器人的行走提供了便利。ROBOT C針對這3愛上制作個定時器提供了3組PWM波形的初始化函數(shù)和應(yīng)用函數(shù),它們是use_PWMO與MotorO(lt,rt)、use_PWMl與Motorl (It,rt)、use_PWM2與Motor2(lt,rt)。其中應(yīng)用函數(shù)里的調(diào)用參數(shù)It與r1分別是左電機(jī)和右電機(jī)的PWM參數(shù)。每個定時器在設(shè)置完成后,都可以在無需系統(tǒng)干預(yù)的情況下,自動連續(xù)產(chǎn)生兩個PWM信號。主要的區(qū)別在于定時器0和定時器2的定時計數(shù)器是單字節(jié)的,而定時器1的定時計數(shù)器是雙字節(jié)的,因而定時器1產(chǎn)生的波形的調(diào)節(jié)過程更加細(xì)膩。本文中的所有實(shí)戰(zhàn)案例均采用定時器1產(chǎn)生PWM波形。另外,單片機(jī)內(nèi)置的PWM波形都是輸出到固定引腳上的,定時器1就固定使用端口B的引腳1和引腳2。
ROBOT C開發(fā)環(huán)境同樣提供了用戶友好的PWM設(shè)置對話框,并自動生成所需的相關(guān)初始化函數(shù)和應(yīng)用函數(shù)。點(diǎn)擊“電機(jī)應(yīng)用設(shè)置”按鈕(見圖10),可調(diào)出電機(jī)設(shè)置對話框(見圖11)。選擇直流電機(jī)、PWM1電機(jī)調(diào)速功能,然后確定,系統(tǒng)會自動為你插入語句。
同樣,你所要做的就是將初始化函數(shù)use_PWMl()插入到圭程序模塊的初始化部分。然后在程序需要時,調(diào)用函數(shù)Motorl(lt,rt)即可。It和rt分別是左、右電機(jī)的PWM參數(shù),最終控制兩側(cè)電機(jī)的轉(zhuǎn)速,達(dá)到機(jī)器人運(yùn)行調(diào)速和轉(zhuǎn)向的目的。
需要注意的是,你所給出的調(diào)速參數(shù)數(shù)值越大,速度越慢。這是因?yàn)槟憬o出的參數(shù)實(shí)際是定時器的定時起始值,定時的計數(shù)是從用戶設(shè)定的起始值開始計數(shù)的。比如定時器1的定時計數(shù)器是雙字節(jié)的,即可計數(shù)范圍是0—1023,假如你給的起始值是500,計數(shù)器就從500開始累進(jìn)計數(shù),至1 023計滿后返回,再從500開始計,這時你可以得到一個幾乎對稱的PWM波形。假如你給出的調(diào)速參數(shù)是1000,則計數(shù)器很快計滿,然后返回重新計,你得到的是一個非常窄的PWM波形,結(jié)果導(dǎo)致電機(jī)得到的平均電壓很低,不足以維持運(yùn)轉(zhuǎn),就停機(jī)了。
機(jī)器人在行走過程中不可能總是走直線,所以轉(zhuǎn)向是設(shè)計機(jī)器人時必須考慮的功能。最簡單的做法是當(dāng)需要轉(zhuǎn)向時,一側(cè)電機(jī)正轉(zhuǎn),另一側(cè)反轉(zhuǎn)或停機(jī)。這實(shí)際是讓機(jī)器人在原地旋轉(zhuǎn),方法簡單,但其缺點(diǎn)也是明顯的。首先,機(jī)器人的動作顯得非常突兀,特別是走彎道時扭來扭去,姿態(tài)不好看,也耽誤速度,搞得不好甚至?xí)粩嗯,失去控制。用自動控制專業(yè)術(shù)語講,叫“超調(diào)”或是“震蕩”。
通過改變機(jī)器人兩側(cè)電機(jī)的PWM參數(shù),就可以實(shí)現(xiàn)流暢的轉(zhuǎn)向動作。一側(cè)快一點(diǎn),另一側(cè)慢一點(diǎn),可以獲得非常理想的轉(zhuǎn)彎半徑,其軌跡為順暢的弧度。使用硬件,即單片機(jī)定時器內(nèi)置的PWM功能產(chǎn)生的波形就可以做到這一點(diǎn),而且程序相當(dāng)簡單。
ATmega48系列單片機(jī)有3個定時器,都具有產(chǎn)生PWM波形的能力,而且可以同時在兩個端口引腳輸出不同頻率的PWM渡形,這就為我們控制機(jī)器人的行走提供了便利。ROBOT C針對這3愛上制作個定時器提供了3組PWM波形的初始化函數(shù)和應(yīng)用函數(shù),它們是use_PWMO與MotorO(lt,rt)、use_PWMl與Motorl (It,rt)、use_PWM2與Motor2(lt,rt)。其中應(yīng)用函數(shù)里的調(diào)用參數(shù)It與r1分別是左電機(jī)和右電機(jī)的PWM參數(shù)。每個定時器在設(shè)置完成后,都可以在無需系統(tǒng)干預(yù)的情況下,自動連續(xù)產(chǎn)生兩個PWM信號。主要的區(qū)別在于定時器0和定時器2的定時計數(shù)器是單字節(jié)的,而定時器1的定時計數(shù)器是雙字節(jié)的,因而定時器1產(chǎn)生的波形的調(diào)節(jié)過程更加細(xì)膩。本文中的所有實(shí)戰(zhàn)案例均采用定時器1產(chǎn)生PWM波形。另外,單片機(jī)內(nèi)置的PWM波形都是輸出到固定引腳上的,定時器1就固定使用端口B的引腳1和引腳2。
ROBOT C開發(fā)環(huán)境同樣提供了用戶友好的PWM設(shè)置對話框,并自動生成所需的相關(guān)初始化函數(shù)和應(yīng)用函數(shù)。點(diǎn)擊“電機(jī)應(yīng)用設(shè)置”按鈕(見圖10),可調(diào)出電機(jī)設(shè)置對話框(見圖11)。選擇直流電機(jī)、PWM1電機(jī)調(diào)速功能,然后確定,系統(tǒng)會自動為你插入語句。
同樣,你所要做的就是將初始化函數(shù)use_PWMl()插入到圭程序模塊的初始化部分。然后在程序需要時,調(diào)用函數(shù)Motorl(lt,rt)即可。It和rt分別是左、右電機(jī)的PWM參數(shù),最終控制兩側(cè)電機(jī)的轉(zhuǎn)速,達(dá)到機(jī)器人運(yùn)行調(diào)速和轉(zhuǎn)向的目的。
需要注意的是,你所給出的調(diào)速參數(shù)數(shù)值越大,速度越慢。這是因?yàn)槟憬o出的參數(shù)實(shí)際是定時器的定時起始值,定時的計數(shù)是從用戶設(shè)定的起始值開始計數(shù)的。比如定時器1的定時計數(shù)器是雙字節(jié)的,即可計數(shù)范圍是0—1023,假如你給的起始值是500,計數(shù)器就從500開始累進(jìn)計數(shù),至1 023計滿后返回,再從500開始計,這時你可以得到一個幾乎對稱的PWM波形。假如你給出的調(diào)速參數(shù)是1000,則計數(shù)器很快計滿,然后返回重新計,你得到的是一個非常窄的PWM波形,結(jié)果導(dǎo)致電機(jī)得到的平均電壓很低,不足以維持運(yùn)轉(zhuǎn),就停機(jī)了。
PWM即脈>中寬度調(diào)制技術(shù).是小車類機(jī)器人必用的技術(shù),DS1706SESA主要用來調(diào)速。有關(guān)詳細(xì)技術(shù)細(xì)節(jié)在教科書中或是技術(shù)手冊中都有描述,本文重點(diǎn)在實(shí)際應(yīng)用。PWM波形的產(chǎn)生可以用軟件方法,但這要占用系統(tǒng)資源,而且不夠靈活。ATmega48系列單片機(jī)內(nèi)置了PWM波形產(chǎn)生功能,其實(shí)就是其3個定時器的功能擴(kuò)展,這些定時器除了產(chǎn)生定時信號外,還可以產(chǎn)生多種PWM波形。
機(jī)器人在行走過程中不可能總是走直線,所以轉(zhuǎn)向是設(shè)計機(jī)器人時必須考慮的功能。最簡單的做法是當(dāng)需要轉(zhuǎn)向時,一側(cè)電機(jī)正轉(zhuǎn),另一側(cè)反轉(zhuǎn)或停機(jī)。這實(shí)際是讓機(jī)器人在原地旋轉(zhuǎn),方法簡單,但其缺點(diǎn)也是明顯的。首先,機(jī)器人的動作顯得非常突兀,特別是走彎道時扭來扭去,姿態(tài)不好看,也耽誤速度,搞得不好甚至?xí)粩嗯,失去控制。用自動控制專業(yè)術(shù)語講,叫“超調(diào)”或是“震蕩”。
通過改變機(jī)器人兩側(cè)電機(jī)的PWM參數(shù),就可以實(shí)現(xiàn)流暢的轉(zhuǎn)向動作。一側(cè)快一點(diǎn),另一側(cè)慢一點(diǎn),可以獲得非常理想的轉(zhuǎn)彎半徑,其軌跡為順暢的弧度。使用硬件,即單片機(jī)定時器內(nèi)置的PWM功能產(chǎn)生的波形就可以做到這一點(diǎn),而且程序相當(dāng)簡單。
ATmega48系列單片機(jī)有3個定時器,都具有產(chǎn)生PWM波形的能力,而且可以同時在兩個端口引腳輸出不同頻率的PWM渡形,這就為我們控制機(jī)器人的行走提供了便利。ROBOT C針對這3愛上制作個定時器提供了3組PWM波形的初始化函數(shù)和應(yīng)用函數(shù),它們是use_PWMO與MotorO(lt,rt)、use_PWMl與Motorl (It,rt)、use_PWM2與Motor2(lt,rt)。其中應(yīng)用函數(shù)里的調(diào)用參數(shù)It與r1分別是左電機(jī)和右電機(jī)的PWM參數(shù)。每個定時器在設(shè)置完成后,都可以在無需系統(tǒng)干預(yù)的情況下,自動連續(xù)產(chǎn)生兩個PWM信號。主要的區(qū)別在于定時器0和定時器2的定時計數(shù)器是單字節(jié)的,而定時器1的定時計數(shù)器是雙字節(jié)的,因而定時器1產(chǎn)生的波形的調(diào)節(jié)過程更加細(xì)膩。本文中的所有實(shí)戰(zhàn)案例均采用定時器1產(chǎn)生PWM波形。另外,單片機(jī)內(nèi)置的PWM波形都是輸出到固定引腳上的,定時器1就固定使用端口B的引腳1和引腳2。
ROBOT C開發(fā)環(huán)境同樣提供了用戶友好的PWM設(shè)置對話框,并自動生成所需的相關(guān)初始化函數(shù)和應(yīng)用函數(shù)。點(diǎn)擊“電機(jī)應(yīng)用設(shè)置”按鈕(見圖10),可調(diào)出電機(jī)設(shè)置對話框(見圖11)。選擇直流電機(jī)、PWM1電機(jī)調(diào)速功能,然后確定,系統(tǒng)會自動為你插入語句。
同樣,你所要做的就是將初始化函數(shù)use_PWMl()插入到圭程序模塊的初始化部分。然后在程序需要時,調(diào)用函數(shù)Motorl(lt,rt)即可。It和rt分別是左、右電機(jī)的PWM參數(shù),最終控制兩側(cè)電機(jī)的轉(zhuǎn)速,達(dá)到機(jī)器人運(yùn)行調(diào)速和轉(zhuǎn)向的目的。
需要注意的是,你所給出的調(diào)速參數(shù)數(shù)值越大,速度越慢。這是因?yàn)槟憬o出的參數(shù)實(shí)際是定時器的定時起始值,定時的計數(shù)是從用戶設(shè)定的起始值開始計數(shù)的。比如定時器1的定時計數(shù)器是雙字節(jié)的,即可計數(shù)范圍是0—1023,假如你給的起始值是500,計數(shù)器就從500開始累進(jìn)計數(shù),至1 023計滿后返回,再從500開始計,這時你可以得到一個幾乎對稱的PWM波形。假如你給出的調(diào)速參數(shù)是1000,則計數(shù)器很快計滿,然后返回重新計,你得到的是一個非常窄的PWM波形,結(jié)果導(dǎo)致電機(jī)得到的平均電壓很低,不足以維持運(yùn)轉(zhuǎn),就停機(jī)了。
機(jī)器人在行走過程中不可能總是走直線,所以轉(zhuǎn)向是設(shè)計機(jī)器人時必須考慮的功能。最簡單的做法是當(dāng)需要轉(zhuǎn)向時,一側(cè)電機(jī)正轉(zhuǎn),另一側(cè)反轉(zhuǎn)或停機(jī)。這實(shí)際是讓機(jī)器人在原地旋轉(zhuǎn),方法簡單,但其缺點(diǎn)也是明顯的。首先,機(jī)器人的動作顯得非常突兀,特別是走彎道時扭來扭去,姿態(tài)不好看,也耽誤速度,搞得不好甚至?xí)粩嗯,失去控制。用自動控制專業(yè)術(shù)語講,叫“超調(diào)”或是“震蕩”。
通過改變機(jī)器人兩側(cè)電機(jī)的PWM參數(shù),就可以實(shí)現(xiàn)流暢的轉(zhuǎn)向動作。一側(cè)快一點(diǎn),另一側(cè)慢一點(diǎn),可以獲得非常理想的轉(zhuǎn)彎半徑,其軌跡為順暢的弧度。使用硬件,即單片機(jī)定時器內(nèi)置的PWM功能產(chǎn)生的波形就可以做到這一點(diǎn),而且程序相當(dāng)簡單。
ATmega48系列單片機(jī)有3個定時器,都具有產(chǎn)生PWM波形的能力,而且可以同時在兩個端口引腳輸出不同頻率的PWM渡形,這就為我們控制機(jī)器人的行走提供了便利。ROBOT C針對這3愛上制作個定時器提供了3組PWM波形的初始化函數(shù)和應(yīng)用函數(shù),它們是use_PWMO與MotorO(lt,rt)、use_PWMl與Motorl (It,rt)、use_PWM2與Motor2(lt,rt)。其中應(yīng)用函數(shù)里的調(diào)用參數(shù)It與r1分別是左電機(jī)和右電機(jī)的PWM參數(shù)。每個定時器在設(shè)置完成后,都可以在無需系統(tǒng)干預(yù)的情況下,自動連續(xù)產(chǎn)生兩個PWM信號。主要的區(qū)別在于定時器0和定時器2的定時計數(shù)器是單字節(jié)的,而定時器1的定時計數(shù)器是雙字節(jié)的,因而定時器1產(chǎn)生的波形的調(diào)節(jié)過程更加細(xì)膩。本文中的所有實(shí)戰(zhàn)案例均采用定時器1產(chǎn)生PWM波形。另外,單片機(jī)內(nèi)置的PWM波形都是輸出到固定引腳上的,定時器1就固定使用端口B的引腳1和引腳2。
ROBOT C開發(fā)環(huán)境同樣提供了用戶友好的PWM設(shè)置對話框,并自動生成所需的相關(guān)初始化函數(shù)和應(yīng)用函數(shù)。點(diǎn)擊“電機(jī)應(yīng)用設(shè)置”按鈕(見圖10),可調(diào)出電機(jī)設(shè)置對話框(見圖11)。選擇直流電機(jī)、PWM1電機(jī)調(diào)速功能,然后確定,系統(tǒng)會自動為你插入語句。
同樣,你所要做的就是將初始化函數(shù)use_PWMl()插入到圭程序模塊的初始化部分。然后在程序需要時,調(diào)用函數(shù)Motorl(lt,rt)即可。It和rt分別是左、右電機(jī)的PWM參數(shù),最終控制兩側(cè)電機(jī)的轉(zhuǎn)速,達(dá)到機(jī)器人運(yùn)行調(diào)速和轉(zhuǎn)向的目的。
需要注意的是,你所給出的調(diào)速參數(shù)數(shù)值越大,速度越慢。這是因?yàn)槟憬o出的參數(shù)實(shí)際是定時器的定時起始值,定時的計數(shù)是從用戶設(shè)定的起始值開始計數(shù)的。比如定時器1的定時計數(shù)器是雙字節(jié)的,即可計數(shù)范圍是0—1023,假如你給的起始值是500,計數(shù)器就從500開始累進(jìn)計數(shù),至1 023計滿后返回,再從500開始計,這時你可以得到一個幾乎對稱的PWM波形。假如你給出的調(diào)速參數(shù)是1000,則計數(shù)器很快計滿,然后返回重新計,你得到的是一個非常窄的PWM波形,結(jié)果導(dǎo)致電機(jī)得到的平均電壓很低,不足以維持運(yùn)轉(zhuǎn),就停機(jī)了。
上一篇:開始DIY吧
熱門點(diǎn)擊
- 利用無線路由器將普通攝像改造成無線攝像頭
- 常小數(shù)點(diǎn)的七段共陰極半導(dǎo)體數(shù)碼管BS201的
- 自制經(jīng)典的1875功放
- 應(yīng)變靈敏度因數(shù)(gauge factor)
- 正弦波公式
- 量化和編碼
- 正弦波公式的推導(dǎo)
- 阻抗和相角隨頻率的變化
- 自制電壓基準(zhǔn)法
- 七段字形譯碼器
推薦技術(shù)資料
- 自制經(jīng)典的1875功放
- 平時我也經(jīng)常逛一些音響DIY論壇,發(fā)現(xiàn)有很多人喜歡LM... [詳細(xì)]
- AMOLED顯示驅(qū)動芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計
- GB300 超級芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究