国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

應(yīng)用于接力賽的智能小車軟件部分設(shè)計(jì)

2020-05-18 02:43:35張偉偉丁宇豪
科技視界 2020年7期
關(guān)鍵詞:循跡小車賽道

張偉偉 丁宇豪

摘 要

本設(shè)計(jì)以安徽省機(jī)器人競(jìng)賽為背景,采用STM32單片機(jī)為核心微處理器。本設(shè)計(jì)采用模塊化的設(shè)計(jì)方法,對(duì)應(yīng)用于接力賽的智能小車軟件部分進(jìn)行設(shè)計(jì),主要設(shè)計(jì)內(nèi)容包括:信息采集模塊,尋跡模塊,接力模塊,電機(jī)驅(qū)動(dòng)模塊以及控制算法的設(shè)計(jì)。在實(shí)際比賽過(guò)程中,智能小車能夠自動(dòng)適應(yīng)直道、彎道、接力區(qū)、停止區(qū)等各種路況。通過(guò)PID算法實(shí)現(xiàn)智能變速,在實(shí)際行駛過(guò)程中的行進(jìn)速度達(dá)到1.2m/s,達(dá)到智能小車接力賽的設(shè)計(jì)目標(biāo)和要求。

關(guān)鍵詞

智能小車;單片機(jī);PID;STM32

中圖分類號(hào): TP242 ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼: A

DOI:10.19694/j.cnki.issn2095-2457.2020.07.052

0 引言

智能小車是機(jī)器人的一個(gè)分支,是一項(xiàng)涉及到計(jì)算機(jī)技術(shù)、傳感器技術(shù)、自動(dòng)控制技術(shù)、通信技術(shù)、人工智能技術(shù)等相關(guān)技術(shù)的綜合性系統(tǒng)。它是輪式機(jī)器人的一種,很適合在人類無(wú)法生存的環(huán)境下工作。本課題 “應(yīng)用于接力賽的智能小車軟件部分設(shè)計(jì)”,是針對(duì)于“恩智浦智能車大賽”的要求所設(shè)計(jì)的軟件系統(tǒng),希望在比賽之外它也可以用于眾多領(lǐng)域解決現(xiàn)實(shí)問(wèn)題。

1 本課題研究的內(nèi)容

本設(shè)計(jì)所述的智能車是一種循跡小車,能夠在一定的區(qū)域內(nèi)沿著給定的軌跡自動(dòng)行駛(采用與白色地毯相反的黑色引導(dǎo)線作為行駛軌跡),運(yùn)行過(guò)程由信息采集模塊、循跡控制模塊和電機(jī)控制模塊三個(gè)部分完成。此外,還需要完成兩輛小車之間的接力棒傳遞過(guò)程。小車的硬件控制核心選用的是STM32F103VET6微處理器。軟件平臺(tái)為Keil MDK開(kāi)發(fā)環(huán)境。在本次設(shè)計(jì)中使用了數(shù)字PID軟件算法來(lái)調(diào)節(jié)左右輪的轉(zhuǎn)速差,實(shí)現(xiàn)智能小車的平滑轉(zhuǎn)彎與平穩(wěn)循跡。一號(hào)智能小車沿著黑色軌跡線運(yùn)行,并在接力區(qū)域傳遞接力棒,由二號(hào)車完成到終點(diǎn)的運(yùn)行。

2 系統(tǒng)軟件設(shè)計(jì)

2.1 開(kāi)發(fā)環(huán)境

本設(shè)計(jì)選用的微控制芯片是STM32F103VET6,該芯片基于ARM核,所以有很多基于ARM嵌入式的開(kāi)發(fā)環(huán)境都適用于本設(shè)計(jì)的軟件程序開(kāi)發(fā)。本設(shè)計(jì)選擇由德國(guó)ARM公司開(kāi)發(fā)的微控制軟件開(kāi)發(fā)平臺(tái)Keil MDK作為軟件開(kāi)發(fā)環(huán)境。MDK-ARM軟件為基于Cortex-M、Cortex-R4、ARM7、ARM9處理器設(shè)備提供了一個(gè)完整的開(kāi)發(fā)環(huán)境。下面介紹軟件開(kāi)發(fā)的整個(gè)過(guò)程:

2.1.1 USB接口

智能車通過(guò)USB接口將程序下載到主控制芯片。使用一個(gè)連接PC機(jī)USB接口與智能車的USB接口相連。通過(guò)此接口將程序下載到智能車中。支持下載目標(biāo)程序、檢查內(nèi)車寄存器、單步運(yùn)行程序、在程序中插入斷點(diǎn)運(yùn)行等一系列操作。

2.1.2 Keil MDK環(huán)境下的軟件開(kāi)發(fā)

首先在Keil MDK中創(chuàng)建一個(gè)新的工程,在新的工程中選擇智能車使用的主控制芯片,并進(jìn)行相關(guān)配置;然后開(kāi)始編寫(xiě)程序;程序編寫(xiě)完成后,在MDK中進(jìn)行程序編譯;如果有錯(cuò)誤發(fā)生,則修改源程序文件,直到程序無(wú)誤,此時(shí)將程序文件燒錄到芯片中。

2.2 系統(tǒng)程序設(shè)計(jì)

智能小車的控制主程序的主要任務(wù)是完成系統(tǒng)的初始化、處理信息采集、小車的循跡控制、電機(jī)的控制、舵機(jī)轉(zhuǎn)動(dòng)、紅外對(duì)管檢測(cè)。當(dāng)檢測(cè)到一號(hào)車到達(dá)接力區(qū)的時(shí)候應(yīng)該停在接力區(qū),將接力棒傳給二號(hào)車。當(dāng)檢測(cè)二號(hào)車接收到接力棒的時(shí)候,二號(hào)車啟動(dòng)循跡前進(jìn)。當(dāng)檢測(cè)到二號(hào)車到達(dá)停止區(qū)時(shí),二號(hào)車停在停止區(qū)內(nèi)。

2.3 信息采集模塊

智能車要實(shí)現(xiàn)循跡功能,就需要采集賽道上的黑色引導(dǎo)線的軌跡信息,這部分就需要信息采集模塊來(lái)實(shí)現(xiàn)。通過(guò)光電傳感器采集道路上的黑白線位置信號(hào),根據(jù)采集到的信號(hào)將不同的信號(hào)的電壓值輸入到主控制器內(nèi),在主控制器內(nèi)將輸入的電壓信號(hào)轉(zhuǎn)化為所需要的工程值,根據(jù)不同的工程值大小判斷黑白線。

2.4 循跡控制模塊

該模塊根據(jù)道路信息模塊所采集的道路信息和判斷的黑白線信息來(lái)判斷小車在賽道中的位置,根據(jù)小車在賽道中的位置通過(guò)調(diào)節(jié)左右輪電機(jī)的轉(zhuǎn)速差來(lái)控制小車的行動(dòng)方向從而調(diào)節(jié)小車位置。當(dāng)檢測(cè)到小車在賽道偏左位置時(shí),左電機(jī)的轉(zhuǎn)速大于右電機(jī);當(dāng)檢測(cè)到小車在賽道偏右位置時(shí),右電機(jī)的轉(zhuǎn)速大于左電機(jī);當(dāng)檢測(cè)到小車位置在賽道中間位置時(shí),左右電機(jī)轉(zhuǎn)速一致。

2.5 接力模塊

整個(gè)設(shè)計(jì)中接力模塊分為兩個(gè)部分。

第一部分為一號(hào)車的舵機(jī)控制模塊:當(dāng)一號(hào)車檢測(cè)已經(jīng)到達(dá)接力區(qū)并穩(wěn)定停車時(shí),控制舵機(jī)的轉(zhuǎn)動(dòng),當(dāng)舵機(jī)轉(zhuǎn)動(dòng)到一定的角度的時(shí)候,接力棒完成投遞動(dòng)作。

第二部分為二號(hào)車的紅外對(duì)管檢測(cè)模塊:在二號(hào)車沒(méi)有接收到接力棒的時(shí)候紅外對(duì)管是導(dǎo)通的,這個(gè)時(shí)候程序中該位為高電平,二號(hào)車在接力區(qū)處于停止?fàn)顟B(tài);當(dāng)二號(hào)車檢測(cè)到接收到接力棒時(shí),紅外對(duì)管是不導(dǎo)通的,這個(gè)時(shí)候程序中該位為低電平,二號(hào)車啟動(dòng)。

2.6 電機(jī)控制模塊

在實(shí)際的軟件算法設(shè)計(jì)中,需要對(duì)參數(shù)進(jìn)行先比例,后積分,再微分的整定步驟[1]。首先整定比例部分,如果調(diào)節(jié)比例調(diào)節(jié)器參數(shù),系統(tǒng)控制的效果沒(méi)有達(dá)到設(shè)計(jì)要求的時(shí)候,需要使用積分環(huán)節(jié),若同時(shí)使用比例和積分環(huán)節(jié),能消除靜差,但調(diào)試過(guò)程仍達(dá)不到設(shè)計(jì)要求時(shí),就需要加入微分環(huán)節(jié)。調(diào)速程序中采用的是增量式PID算法。

本設(shè)計(jì)的PID算法選取比例控制單元(Kp)和微分控制單元(Td),所以在算法程序中只需要設(shè)置比例放大系數(shù)(P)和微分時(shí)間常數(shù)(D),實(shí)際算法程序如下:

PID算法程序:

wucha_d=loc-lastloc[4];//誤差計(jì)算

pwm_out=P*loc+wucha_d*D;//誤差處理

PWM輸出:

pwm_final_L=pwm_max+pwm_out;//左電機(jī)PWM輸出

pwm_final_R=pwm_max-pwm_out;//右電機(jī)PWM輸出

一號(hào)車的參數(shù)設(shè)置:P=330,D=900,pwm_max=900;

二號(hào)車的參數(shù)設(shè)置:P=200,D=720,pwm_max=900;

首先對(duì)比例放大系數(shù)(P)進(jìn)行整定,將P的值從零開(kāi)始逐步增大,觀察小車循跡時(shí)翻譯的快速性,當(dāng)小車循跡時(shí)反應(yīng)的快速性良好時(shí),開(kāi)始對(duì)微分時(shí)間常數(shù)(D)進(jìn)行整定,最終得到上述的P、D參數(shù)。

3 系統(tǒng)調(diào)試

通電檢查:給智能車通電,檢測(cè)各模塊是否供電正常,尤其是電機(jī)的驅(qū)動(dòng)電壓和電流,需要時(shí)電機(jī)的驅(qū)動(dòng)電壓和電流保持在額定范圍內(nèi),才能使電機(jī)保持正常工作。

程序調(diào)試:檢查程序是否已經(jīng)燒錄到芯片中,在各模塊中能否正常運(yùn)行。

整機(jī)調(diào)試:整體調(diào)試智能車的各個(gè)參數(shù)。

(1)光電傳感器的參數(shù)調(diào)節(jié):分別讓光電傳感器在黑色和白色的區(qū)域工作采集此時(shí)7個(gè)通道的各路參數(shù),共采集10組計(jì)算平均值,用平均值作為所需要的參數(shù)。

(2)PID參數(shù)調(diào)節(jié):PID的參數(shù)調(diào)節(jié)需要根據(jù)參數(shù)PID參數(shù)整定的步驟一步步進(jìn)行調(diào)節(jié),直至智能車的循跡效果和轉(zhuǎn)彎效果達(dá)到設(shè)計(jì)要求。

通過(guò)優(yōu)化和完善,智能車基本實(shí)現(xiàn)了設(shè)計(jì)和比賽的要求,在賽道上能夠正常運(yùn)行,并且實(shí)現(xiàn)了平均1.2m/s的行駛速度。

4 結(jié)論

本文從信息采集模塊,尋跡模塊,接力模塊,電機(jī)驅(qū)動(dòng)模塊以及控制算法等幾個(gè)方面完成了應(yīng)用于接力賽的智能小車的軟件部分設(shè)計(jì),給出了軟件設(shè)計(jì)流程,詳細(xì)闡述了設(shè)計(jì)思路。光電傳感器采集道路上的黑白線位置信號(hào),通過(guò)左右電機(jī)的PWM控制來(lái)實(shí)現(xiàn)控制電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、停止,通過(guò)PID的參數(shù)整定一步步進(jìn)行調(diào)節(jié),直至智能車的循跡效果和轉(zhuǎn)彎效果達(dá)到設(shè)計(jì)要求。經(jīng)過(guò)模塊調(diào)試和整機(jī)調(diào)試,本設(shè)計(jì)控制精確度高,可靠性強(qiáng),具有一定的實(shí)用價(jià)值。

參考文獻(xiàn)

[1]雷慧杰.基于STM32的直流電機(jī)PID調(diào)速系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù)2016.08:165-167.

[2]劉松斌,王海星,李碩恒.基于STM32的直流電機(jī)PWM調(diào)速系統(tǒng)[J].化工自動(dòng)化及儀表2016.08:834-837.

[3]朱向慶,何昌毅,朱萬(wàn)鴻,et al.基于STM32單片機(jī)的通信技術(shù)實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2019(8).

猜你喜歡
循跡小車賽道
自制冰墩墩不能滑出“法律賽道”
公民與法治(2022年4期)2022-08-03 08:20:24
基于DFT算法的電力巡檢無(wú)人機(jī)循跡檢測(cè)系統(tǒng)設(shè)計(jì)
科創(chuàng)引領(lǐng),搶跑新賽道
走向世界(2022年3期)2022-04-19 12:38:58
快樂(lè)語(yǔ)文(2020年36期)2021-01-14 01:10:32
自制小車來(lái)比賽
征服蒙特卡洛賽道
劉老師想開(kāi)小車
文苑(2018年22期)2018-11-19 02:54:18
基于單片機(jī)的智能循跡小車的設(shè)計(jì)
兩輪自平衡小車的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2018年8期)2018-06-26 06:43:02
無(wú)人駕駛,先上賽道如何?
空中之家(2017年11期)2017-11-28 05:28:21
长沙县| 吉安县| 上杭县| 镇江市| 淳安县| 鲜城| 榆中县| 莒南县| 石城县| 孟村| 九龙坡区| 锡林浩特市| 平安县| 宜春市| 溆浦县| 九龙县| 临夏县| 临夏市| 舟曲县| 城固县| 遵义县| 西吉县| 长葛市| 吕梁市| 剑河县| 都昌县| 连南| 盐亭县| 洞口县| 舒兰市| 汉沽区| 广汉市| 兴城市| 丹凤县| 金坛市| 都兰县| 广平县| 林州市| 宁海县| 高阳县| 盐山县|