freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于距離感知的自動(dòng)玩具小車系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)畢業(yè)論文-資料下載頁

2025-06-30 10:08本頁面

【導(dǎo)讀】隨著時(shí)代的不斷發(fā)展進(jìn)步,上班族越來越多,家長基本沒多少時(shí)間陪他們的小孩玩耍,買智能玩具也許就會(huì)成為好多家長送給小孩的最大安慰,如今玩具車的智能化已經(jīng)越來普遍,天真可愛的小孩帶來無窮無盡的樂趣。本設(shè)計(jì)下位機(jī)系統(tǒng)是一個(gè)52單片機(jī)作為控制核心,所使用的CPU型號為STC12C5A60S2,片,穩(wěn)壓模塊采用的是穩(wěn)壓精度高的5V穩(wěn)壓塊AMS1117-5V,還有舵機(jī)FutabaS3003用來全。方位的距離感知,小車的控制機(jī)構(gòu)由兩個(gè)直流電機(jī)以及L298N驅(qū)動(dòng)芯片組成的兩驅(qū)四輪小車,這樣直流電機(jī)的輸入口可由STC12C5A60S2的IO口直接控制。大份額,所以相關(guān)設(shè)計(jì)較多,取材容易。還有其他領(lǐng)域?qū)Τ暡▊鞲衅鲬?yīng)用的比較廣泛,未。來玩具智能化是必然的社會(huì)趨勢!

  

【正文】 y(50)。 DQ1=1。 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 29 _nop_()。 _nop_()。 圖 37 單總線讀時(shí)序 DQ1=0。 _nop_()。 DQ1=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 dat = DQ1。 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 30 time_delay(50)。 ( 2)光照強(qiáng)度傳感器 光照強(qiáng)度傳感器,顧名思義,是檢測光照強(qiáng)度的,市場上一般叫做光度計(jì),但是一般的光度計(jì)體積大,而且價(jià)格較高,為了節(jié)約成本,本課題利用光敏電阻和 PCF8591設(shè)計(jì)了 一個(gè)簡略的光度計(jì)。光敏電阻的材料存在一種光電導(dǎo)效應(yīng),是指由輻射引起被照射材料電導(dǎo)率變化的一種物理現(xiàn)象。 [9]電導(dǎo)率的變化會(huì)導(dǎo)致電壓變化,所以不同的電壓就對應(yīng)了不同的光照強(qiáng)度。光敏電阻的電阻值隨光強(qiáng)的變化而變化的圖如下: 圖 38 光敏電阻的光照強(qiáng)度 由上圖可以看出,光敏電阻電阻隨光照強(qiáng)度的變化呈大致為線性的變化,故理論上可以實(shí)現(xiàn)光照強(qiáng)度的測量。 單片機(jī)不能直接讀取模擬電壓,所以需要通過模數(shù)轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字信號。小車開發(fā)板中自帶了 PCF8591,是 A/D和 D/A雙轉(zhuǎn)換器,這里只用到了 A/D轉(zhuǎn)換功能。 PCF8591具有 4個(gè)模擬輸入、 1個(gè)模擬輸出和 1個(gè)串行 I178。C總線接口 , I178。C總線的時(shí)序與單總線不同,它有單獨(dú)的數(shù)據(jù)線和控制線, I178。C的時(shí)序如下: 圖 39 I178。C總線時(shí)序圖 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 31 I178。C時(shí)序的代碼實(shí)現(xiàn): /*啟動(dòng)總線 */ void Start_I2c() { SDA=1。 //發(fā)送起始條件的數(shù)據(jù)信號 _Nop()。 SCL=1。 _Nop()。 //起始條件建立時(shí) 間大于 ,延時(shí) _Nop()。 _Nop()。 _Nop()。 _Nop()。 SDA=0。 //發(fā)送起始信號 _Nop()。 //起始條件鎖定時(shí)間大于 4μ _Nop()。 _Nop()。 _Nop()。 _Nop()。 SCL=0。 //鉗住 I2C總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù) _Nop()。 _Nop()。 } /*結(jié)束總線 */ void Stop_I2c() 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 32 { SDA=0。 //發(fā)送結(jié)束條件的數(shù)據(jù)信號 _Nop()。 //發(fā)送結(jié)束條件的時(shí)鐘信號 SCL=1。 //結(jié)束條件建立時(shí)間大于 4μ _Nop()。 _Nop()。 _Nop()。 _Nop()。 _Nop()。 SDA=1。 //發(fā)送 I2C總線結(jié)束信號 _Nop()。 _Nop()。 _Nop()。 _Nop()。 } 數(shù)字信號獲取后,需要轉(zhuǎn)換成對應(yīng)光強(qiáng),轉(zhuǎn)換公式如下: light=255light。 light*=4。 其中 light為 PCF8591轉(zhuǎn)換的結(jié)果。 ( 3)可燃?xì)怏w濃度 這里的可燃性氣體主要為甲烷、酒精、 CO、氫氣,為了可以測量這四種氣體的濃度,本次課題選擇了 MQ2型氣敏傳感器,其靈敏度特性圖見下: 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 33 圖 310 MQ2靈敏度特性 由上圖可知, MQ2對甲烷、酒精、 CO、氫氣的靈敏相對較高,故可以作為這四種氣體濃度檢測的傳感器。 MQ2有 TTL和模擬量兩種輸出口,這里讀取模擬量的輸出口以便可以實(shí)時(shí)檢測氣體濃度。模擬量經(jīng)過 PCF8591轉(zhuǎn)換成數(shù)字量,數(shù)字量轉(zhuǎn)換成相應(yīng)濃度的公式為: co=co*4。 經(jīng)過上面的公式轉(zhuǎn)換后的結(jié)果除以 100后就是可燃?xì)怏w在空氣中的體積百分比了。 環(huán)境感知傳感器的硬件 連接 傳感器與單片機(jī)的 I/O口連接如下表: 表 32 傳感器與 I/O連接表 傳感器引腳 I/O引腳 MQ2: AOUT PCF8591: AN2 PCF8591: SDA、 SCL STC89C52RC: 、 DHT11: DATA STC89C52RC: DS18B20: DATA STC89C52RC: 小車的運(yùn)動(dòng)控制機(jī)構(gòu)設(shè)計(jì) 只有一塊開發(fā)板是不夠的,缺乏靈活性,所以把開發(fā)板用一個(gè)兩驅(qū)三輪小車搭載起來。這里談一下為什么選擇兩驅(qū)三輪車。三輪車的方向由兩個(gè)驅(qū)動(dòng)輪控 制,所以控制起來很方便。而且兩個(gè)驅(qū)動(dòng)輪可以減少電池的損耗。小車的輪子是由兩個(gè)直流電機(jī)驅(qū)動(dòng)的, 52單片機(jī)的 I/O口不能夠直接驅(qū)動(dòng)直流電機(jī),因?yàn)閱纹瑱C(jī) I/O口的電流過小,驅(qū)動(dòng)力不足。這里是通過 L9110合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 34 芯片對 I/O進(jìn)行功率放大,然后間接控制直流電機(jī)的運(yùn)轉(zhuǎn),實(shí)現(xiàn)小車的控制。 直流電機(jī)的兩個(gè)端口的電壓不同,電機(jī)運(yùn)轉(zhuǎn)方式不同。下面定義了電機(jī)的控制口與單片機(jī) I/O的連接: //電機(jī)控制口 sbit MOTOR_IN11=P2^4。 sbit MOTOR_IN12=P2^5。 sbit MOTOR_IN21=P2^2。 sbit MOTOR_IN22=P2^3。 下表列出了控制口的設(shè)置對應(yīng)車的運(yùn)動(dòng): 表 33 控制口設(shè)置與小車運(yùn)動(dòng)對應(yīng)表 控制口 小車運(yùn)動(dòng) IN11=0, IN12=0, IN21=1, IN22=0 左轉(zhuǎn) IN11=1, IN12=0, IN21=0, IN22=0 右轉(zhuǎn) IN11=1, IN12=0, IN21=1, IN22=0 前進(jìn) IN11=0, IN12=0, IN21=0, IN22=0 停止 IN11=0, IN12=1, IN21=0, IN22=1 后退 藍(lán)牙模塊的使用 藍(lán)牙模塊是下位機(jī)與上位機(jī) 通信必要組成部分,沒有藍(lán)牙模塊,就無法實(shí)現(xiàn)上位機(jī)無線遙控下位機(jī)。本次選用的藍(lán)牙模塊是 SPPCA, SPPCA藍(lán)牙模塊是專門為了無線數(shù)據(jù)傳輸而設(shè)計(jì)的,本模塊支持 SPP藍(lán)牙串口協(xié)議,成本低、功耗低、體積小、收發(fā)靈敏度高, [10]很適合 52單片機(jī)這種低功耗的開發(fā)板。 SPPCA模塊可以直接將串口數(shù)據(jù)輸入輸出口 RX和 TX與 STC89C52RC的 TXD和 RXD相連,單片機(jī)向藍(lán)牙模塊傳輸數(shù)據(jù)時(shí)和串口操作相同,但是需要將兩者的波特率設(shè)置一致。可以通過串口發(fā)送指令到藍(lán)牙模塊以便設(shè)置 SPPCA模塊的內(nèi)部參數(shù)及屬性, SPPCA模塊的主要指令如下表(發(fā)送 AT指令時(shí)需要加回車換行): 表 34 SPPCA藍(lán)牙串口模塊指令表 功能 指令 響應(yīng) 參數(shù) 測試指令 AT OK 無 模塊復(fù)位(重啟) AT+RESET OK 無 獲取版本號 AT+VERSION +VERSION=Param OK Param:版本號 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 35 恢復(fù)默認(rèn)狀態(tài) AT+DEFAULT OK 無 查詢藍(lán)牙地址碼 AT+LADDR +LADDR=Param OK Param:地址碼 默認(rèn)地址碼: “ AA:BB:CC:11:22:33” 設(shè)置藍(lán)牙地址碼 AT+LADDRParam OK 查詢設(shè)備名稱 AT+NAME +NAME=Param OK Param:藍(lán)牙設(shè)備名稱 默認(rèn)名稱“ SPPCA” 設(shè)置設(shè)備名稱 AT+NAMEParam OK 查詢模塊角色 AT+ROLE +ROLE=Param OK Param:參數(shù)取值如下: 0 從角色( Slave) 1 主角色( Master) 默認(rèn)值: 0 設(shè)置模塊角色 AT+ROLEParam OK 查詢配對碼 AT+PIN +PIN=Param OK Param:配對碼 默認(rèn)值:“ 1234” 設(shè)置配對碼 AT+PINParam OK 查詢串口波特率 AT+BAUD +BAUD=Param OK Param:波特率 1— 1200 2— 2400 3— 4800 4— 9600 5— 19200 6— 38400 7— 57600 8— 115200 9— 230400 A— 460800 B— 921600 C— 1382400 默認(rèn): 4— 9600 設(shè)置串口波特率 AT+BAUDParam OK 下位機(jī)程序設(shè)計(jì) 下位機(jī)的程序開發(fā)環(huán)境為 Keil uVision4,開發(fā)語言為 C52。 C52的語法規(guī)則與標(biāo)準(zhǔn) C類似,但是比標(biāo)準(zhǔn) C更接近底層,也比匯編更接近高級語言,對于單片機(jī)的程序開發(fā)提供了很方便的庫和開發(fā)方法,可以提高下位機(jī)程序的開發(fā)效率。 程序的主要組成部分 系統(tǒng)程序主要包括環(huán)境數(shù)據(jù)采集與處理、小車控制、數(shù)據(jù)上傳三個(gè)部分,主程序的流程圖如下: 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 36 圖 311 主程序及中斷子程序流程圖 小車控制部分可以根據(jù)表 21 和表 33 來實(shí)現(xiàn),當(dāng)檢測到有新指令接收到,即CONTROL_FLAG為 1時(shí),通過 switch語句對不同的 指令做相應(yīng)的操作,實(shí)現(xiàn)代碼如下: switch (CMD) { case if (BACK_FLAG == ON) { 開始 初始化下位機(jī)狀態(tài)及中斷 (中斷)是否接受到指令? N Y 是否為小車運(yùn)行控制指令? Y 執(zhí)行指令,控制小車運(yùn)行 N 環(huán)境數(shù)據(jù)采集與處理 上傳環(huán)境數(shù)據(jù) 結(jié)束 串口中斷子程序 清接受標(biāo)志 RI 讀接受緩沖區(qū)指令 SBUF 設(shè)置接收標(biāo)志CONTROL_FLAG 返回主程序 是否有障礙物且不是倒退與檢測指令? N 停止小車運(yùn)行 Y 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 37 BACK_FLAG=OFF。 stop_car()。 delay_ms(300)。//直流電機(jī)瞬間倒轉(zhuǎn)前做停止延時(shí)操作 } CAR_STATE=ON。 MOTOR_IN11=OFF。 MOTOR_IN12=OFF。 MOTOR_IN21=ON。 MOTOR_IN22=OFF。 break。 case if (BACK_FLAG == ON) { BACK_FLAG=OFF。 stop_car()。 delay_ms(300)。 //直流電機(jī)瞬間倒轉(zhuǎn)前做停止延時(shí)操作 } CAR_STATE=ON。 MOTOR_IN11=ON。 MOTOR_IN12=OFF。 MOTOR_IN21=OFF。 MOTOR_IN22=OFF。 break。 case if (BACK_FLAG == ON) { 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 38 BACK_FLAG=OFF。 stop_car()。 delay_ms(300)。 //直流電機(jī)瞬間倒轉(zhuǎn)前做停止延時(shí)操作 } CAR_STATE=ON。 MOTOR_IN11=ON。 MOTOR_IN12=OFF。 MOTOR_IN21=ON。 MOTOR_IN22=OFF。 break。 case CAR_STATE=OFF。 BACK_FLAG=OFF。 stop_car()。 break。 case BACK_FLAG=ON。 if (CAR_STATE == ON) { CAR_STATE=OFF。 stop_car()。 delay_ms(300)。 //直流電機(jī)瞬間倒轉(zhuǎn)前做停止延時(shí)操作 } MOTOR_IN11=OFF。 MOTOR_IN12=ON。 MOTOR_IN21=OFF。 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 39 MOTOR_IN22=ON。 break。 case if (CAR_STATE == 0) { check()。//檢測環(huán)境 send_msg()。//上傳數(shù)據(jù) } break。 } 在 case CHECK_CMD中,分別是環(huán)境數(shù)據(jù)檢測與處理 check()和數(shù)據(jù)上傳操作 send_msg()。 check()中,主要做兩件事
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1