基于STM32+JAVA+Android的六足機(jī)器人控制系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)(含代碼)
STM32畢業(yè)設(shè)計(jì)——基于STM32+JAVA+Android的六足機(jī)器人控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(畢業(yè)論文+程序源碼)——六足機(jī)器人控制系統(tǒng)
大家好,今天給大家介紹基于STM32+JAVA+Android的六足機(jī)器人控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),文章末尾附有本畢業(yè)設(shè)計(jì)的論文和源碼的獲取方式,也可現(xiàn)在直接進(jìn)群免費(fèi)領(lǐng)取。
點(diǎn)擊這里找小助理0元領(lǐng)?。?a class="pgc-link" data-content="mp" data-source="outerLink" rel="noopener noreferrer noopener noreferrer" target="_blank" style="box-sizing:border-box;background-color:transparent;cursor:pointer;text-decoration-line:none;color:#406599;margin:0px;padding:0px;border:0px;">掃碼進(jìn)群領(lǐng)資料
1、項(xiàng)目簡介
- 本設(shè)計(jì)主要是基于單片機(jī)的六足機(jī)器人控制系統(tǒng)設(shè)計(jì),綜合分析六足機(jī)器人的結(jié)構(gòu)、步態(tài)和控制算法,結(jié)合云端服務(wù)器、WIFI技術(shù)、藍(lán)牙技術(shù)、語音識(shí)別技術(shù)和手勢識(shí)別技術(shù)進(jìn)行多種控制模式的設(shè)計(jì),并提出不同應(yīng)用場景的不同構(gòu)建方案。
- 本系統(tǒng)的硬件設(shè)計(jì)分為主控板和舵機(jī)控制板兩部分。主控板主要負(fù)責(zé)各種控制模式的數(shù)據(jù)處理和顯示,舵機(jī)控制板主要負(fù)責(zé)舵機(jī)轉(zhuǎn)動(dòng)角度的控制,兩板通過串口進(jìn)行數(shù)據(jù)的交互。主控制板采用STM32F103VET6芯片,舵機(jī)控制板采用STM32F103R8T6芯片,兩者都基于ARM的Cortex M3內(nèi)核進(jìn)行設(shè)計(jì)的。主控制板的硬件電路設(shè)計(jì)主要有啟動(dòng)電路、晶振電路、下載電路、復(fù)位電路、穩(wěn)壓電路以及各個(gè)模塊接口電路。在Altium Designer16軟件中進(jìn)行原理圖的繪制和PCB的繪制,打樣后進(jìn)行焊接并完成整體的測試。
- 本系統(tǒng)的上位機(jī)主要是手機(jī)APP,其開發(fā)環(huán)境是Android Studio,采用C#作為云端開放平臺(tái)語言,JAVA語言作為移動(dòng)客戶端設(shè)計(jì)語言,通過JAVA語言的編寫實(shí)現(xiàn)手機(jī)客戶端的數(shù)據(jù)接收和發(fā)送,最終實(shí)現(xiàn)基于云端和藍(lán)牙的控制系統(tǒng)上位機(jī)板塊的設(shè)計(jì)。本系統(tǒng)下位機(jī)的軟件設(shè)計(jì)是在Keil5編程環(huán)境下進(jìn)行的,參考STM32F1的手冊和各個(gè)模塊的數(shù)據(jù)手冊進(jìn)行程序的編寫,最終實(shí)現(xiàn)云端控制、藍(lán)牙控制、語音控制和手勢控制這四種控制系統(tǒng)設(shè)計(jì)。
二、系統(tǒng)方案設(shè)計(jì)
2.1 控制系統(tǒng)方案設(shè)計(jì)2.1.1 遠(yuǎn)程控制方案設(shè)計(jì)
遠(yuǎn)程控制方案是基于云端的控制方案,是結(jié)合最新的云端技術(shù)進(jìn)行開發(fā)的方案。本系統(tǒng)的舵機(jī)控制系統(tǒng)與控制模式選擇的控制系統(tǒng)是分開來設(shè)計(jì)的,因此在對遠(yuǎn)程控制方案進(jìn)行設(shè)計(jì)的時(shí)候,我們只需要關(guān)注WIFI模塊如何與云端服務(wù)器連接,手機(jī)APP如何與云端服務(wù)器連接,手機(jī)APP如何與主控制板的WIFI模塊進(jìn)行數(shù)據(jù)交互。
該六足機(jī)器人結(jié)構(gòu)上搭載的WIFI模塊與主控板的主控芯片是用串口接口進(jìn)行數(shù)據(jù)交互的,然后根據(jù)查閱相關(guān)AT指令,發(fā)送或接收相關(guān)AT指令可以配置WIFI模塊,配置完成后便可使用無線透傳模式來傳輸數(shù)據(jù)。
數(shù)據(jù)的流動(dòng)過程是先從手機(jī)APP開始的,手機(jī)APP通過WIFI將數(shù)據(jù)發(fā)送到遠(yuǎn)端服務(wù)器,然后云端服務(wù)器做轉(zhuǎn)發(fā)的作用,將數(shù)據(jù)通過互聯(lián)網(wǎng)發(fā)送到六足機(jī)器人所在的局域網(wǎng)的路由器,然后路由器再一次進(jìn)行轉(zhuǎn)發(fā)將數(shù)據(jù)發(fā)送到六足機(jī)器人機(jī)械結(jié)構(gòu)的WIFI模塊上,WIFI模塊通過串口將數(shù)據(jù)傳輸?shù)街骺匦酒?主控芯片對數(shù)據(jù)進(jìn)行解析,解析完成后發(fā)送相關(guān)的動(dòng)作組指令到舵機(jī)控制板,最終實(shí)現(xiàn)機(jī)器人相關(guān)動(dòng)作組動(dòng)作。
遠(yuǎn)程控制方案是結(jié)合當(dāng)前最新的技術(shù)進(jìn)行開發(fā)的,只要六足機(jī)器人所在區(qū)域有網(wǎng)絡(luò),用戶的手機(jī)在世界任何地方通過手機(jī)流量即可實(shí)現(xiàn)遠(yuǎn)程控制。再加上六足機(jī)器人搭載視頻模塊可以進(jìn)行遠(yuǎn)程監(jiān)控,因此可以實(shí)現(xiàn)真正的遠(yuǎn)程控制,這為后面的運(yùn)用在不同場景下的方案設(shè)計(jì)起到很大的作用。當(dāng)然,這也是本設(shè)計(jì)在控制系統(tǒng)方面重點(diǎn)要設(shè)計(jì)的內(nèi)容。
2.1.2 藍(lán)牙控制方案設(shè)計(jì)
2.1.3 人機(jī)交互方案設(shè)計(jì)
2.2 應(yīng)用場景方案設(shè)計(jì)
2.2.1 系統(tǒng)運(yùn)用方案說明
本系統(tǒng)硬件部分預(yù)留出模塊或傳感器的通信接口,采用模塊化配置的方式來設(shè)計(jì)檢測部分,用戶可以根據(jù)不同的任務(wù),不同的場景進(jìn)行不同的模塊搭配,通過不同的傳感器進(jìn)行數(shù)據(jù)的采集,可以實(shí)現(xiàn)溫濕度、有毒氣體、可燃?xì)怏w、生命圖像、坐標(biāo)位置等等數(shù)據(jù)的采集,從而達(dá)到不同場景不同功能。
2.2.2 崎嶇地形探測方案
本系統(tǒng)在不添加其他模塊配置的情況下即可實(shí)現(xiàn)復(fù)雜地形的探測功能,因?yàn)樵摿銠C(jī)器人因?yàn)楸旧淼牧憬Y(jié)構(gòu)可以非常靈活在崎嶇地形運(yùn)動(dòng),然后其本身還帶有遠(yuǎn)程視頻模塊,因此可以實(shí)現(xiàn)遠(yuǎn)程視頻實(shí)時(shí)顯示并可以通過云端實(shí)現(xiàn)遠(yuǎn)程的控制。所以,只要是在一些有網(wǎng)絡(luò)但道路崎嶇的地形,都可以讓該六足機(jī)器人進(jìn)行現(xiàn)場的探測,用戶可以在遠(yuǎn)程進(jìn)行現(xiàn)場的觀察。
2.2.3 震后救災(zāi)搜尋方案
該六足機(jī)器人如果需要運(yùn)用于地震后的救災(zāi)搜尋工作中則需要進(jìn)行個(gè)別傳感器和模塊的搭配配置。比如生命探測模塊、GPS模塊和聲音探測器等等。通過生命探測器可以對地震后的地面進(jìn)行生命的搜尋,由于它可以靈活行走在一些工作人員無法進(jìn)入的地方,所以很大程度上提高了搜尋的效率及面積。一旦檢測到有生命,馬上通過GPS模塊進(jìn)行定位,然后通過云端把坐標(biāo)發(fā)送到工作人員的手機(jī)客戶端,從而實(shí)現(xiàn)精確的災(zāi)后生命搜尋定位功能。除此之外,還可以通過聲波的檢測來判斷是否有生命。當(dāng)然,還可以通過它來進(jìn)行食物的運(yùn)輸或者儀器的運(yùn)輸。
2.2.4 科研探險(xiǎn)勘測方案
完整項(xiàng)目可進(jìn)群免費(fèi)領(lǐng)取,領(lǐng)取鏈接在文章開頭和結(jié)尾??!
4.4.2 下位機(jī)的程序編寫
遠(yuǎn)程控制模式是基于云端進(jìn)行遠(yuǎn)程控制的,六足機(jī)器人身上搭載ESP8266WIFI模塊,通過WIFI連上云端服務(wù)器,然后手機(jī)也聯(lián)網(wǎng),通過這樣的方式來實(shí)現(xiàn)遠(yuǎn)程控制。這一塊的程序是實(shí)現(xiàn)STM32F103VET6芯片與WIFI模塊的數(shù)據(jù)交互,并配置相關(guān)的AT指令來設(shè)置STA模式中的TCP-CLIENT模式。
整個(gè)工程里面有兩個(gè)文件是與WIFI相關(guān)的,一個(gè)是common.C文件,另一個(gè)是WIFISTA.C文件。下面是WIFI配置的流程圖。
在common.C文件里面首先是需要寫好路由器的名稱和密碼。具體設(shè)置如下:
const char* WIFISTA_ssid="AAAA"; //連接路由器 const char* WIFISTA_encryption="wpawpa2_aes"; //連接加密方式 const char* WIFISTA_password="88888888"; //連接密碼 然后進(jìn)行WIFI模塊的連接,程序如下: while(ATK_8266_SEND_CMD("AT","OK",20)) //檢查WIFI模塊是否在線 {
ATK_8266_quit_trans();//退出透傳 ATK_8266_SEND_CMD("AT+CIPMODE=0","OK",200); //關(guān)閉透傳模式 Show_Str(40,55,200,16,"未檢測到模塊!!!",16,1);
delay_ms(800);
LCD_Fill(40,55,200,55+16,BLACK);
Show_Str(40,55,200,16,"嘗試連接模塊...",16,1);
} while(ATK_8266_SEND_CMD("ATE0","OK",20));
完整項(xiàng)目工程可進(jìn)群免費(fèi)領(lǐng)取。
嵌入式物聯(lián)網(wǎng)的學(xué)習(xí)之路非常漫長,不少人因?yàn)閷W(xué)習(xí)路線不對或者學(xué)習(xí)內(nèi)容不夠?qū)I(yè)而錯(cuò)失高薪offer。不過別擔(dān)心,我為大家整理了一份150多G的學(xué)習(xí)資源,基本上涵蓋了嵌入式物聯(lián)網(wǎng)學(xué)習(xí)的所有內(nèi)容。點(diǎn)擊下方鏈接,0元領(lǐng)取學(xué)習(xí)資源,讓你的學(xué)習(xí)之路更加順暢!記得點(diǎn)贊、關(guān)注、收藏、轉(zhuǎn)發(fā)哦!
點(diǎn)擊這里找小助理0元領(lǐng)?。?a class="pgc-link" data-content="mp" data-source="outerLink" rel="noopener noreferrer noopener noreferrer" target="_blank" style="box-sizing:border-box;background-color:transparent;cursor:pointer;text-decoration-line:none;color:#406599;margin:0px;padding:0px;border:0px;">掃碼進(jìn)群領(lǐng)資料
- 贊