一、架構(gòu)與通信協(xié)議
1、軟件架構(gòu)
在開(kāi)始前,我們來(lái)復(fù)習(xí)一下第一期文章中提到的軟件架構(gòu)圖。
首先介紹一下軟件的架構(gòu),小π機(jī)器人的軟件部分主要包含手機(jī)程序、上位機(jī)程序、主控程序和從機(jī)程序構(gòu)成。本周主要講解主控單片機(jī)程序和從機(jī)程序,下周將講解手機(jī)APP程序和上位機(jī)程序。小π機(jī)器人的軟件架構(gòu)圖如下圖所示:
主控單片機(jī)收到數(shù)據(jù)以后先判斷是動(dòng)作指令還是其他指令。如果是動(dòng)作指令,直接將指令發(fā)給動(dòng)作控制單片機(jī),動(dòng)作控制單片機(jī)調(diào)用不同的數(shù)組,輸出不同的PWM,使舵機(jī)的轉(zhuǎn)過(guò)不同角度,從而實(shí)現(xiàn)各種不同動(dòng)作。如果是其他指令,比如三色RGB燈的控制,解析出三色的數(shù)據(jù),輸出不同電壓,實(shí)現(xiàn)臉部變色功能。比如喇叭,可以播放SD卡中的音樂(lè)。
2、通信協(xié)議
為了方便手機(jī)與單片機(jī)之間、上位機(jī)與單片機(jī)之間、主機(jī)與從機(jī)之間的通信,我們定義了屬于自己的通信協(xié)議。
通信協(xié)議的基本格式為。
例如動(dòng)作指令。其中,“”代表指令結(jié)束。這句話的意思就是向前走5步。其它動(dòng)作指令也是類(lèi)似的。
燈光顏色選擇指令由三條指令構(gòu)成,分別為,和。眾所周知,紅、綠、藍(lán)是光的三原色,通過(guò)控制紅、綠、藍(lán)的比例,就可以實(shí)現(xiàn)任意顏色的輸出。R、G、B是英文紅色red、綠色green、藍(lán)色blue的首字母,分別代表紅色、綠色和藍(lán)色。R、G、B的參數(shù)變化范圍為0-255,這樣就可以變化出1600多萬(wàn)種顏色。
二、單片機(jī)選擇
為了方便大家編寫(xiě)單片機(jī)的程序,我們采用的是完全開(kāi)源的系列單片機(jī)。Arduino由一個(gè)歐洲開(kāi)發(fā)團(tuán)隊(duì)于2005年冬季為藝術(shù)生開(kāi)發(fā),所以比較簡(jiǎn)單,容易上手。Arduino由硬件(各種型號(hào)的Arduino板)和軟件(Arduino IDE)組成。下圖為常用的幾款A(yù)rduino。
Arduino IDE可以在Windows、Macintosh OSX、三大主流操作系統(tǒng)上運(yùn)行。Arduino語(yǔ)言基于wiring語(yǔ)言開(kāi)發(fā),是對(duì) a-gcc庫(kù)的二次封裝,不需要太多的單片機(jī)基礎(chǔ)、編程基礎(chǔ),簡(jiǎn)單學(xué)習(xí)后,人人都可以快速的進(jìn)行開(kāi)發(fā)。Arduino的硬件原理圖、圖、IDE軟件及核心庫(kù)文件都是開(kāi)源的,在開(kāi)源協(xié)議范圍內(nèi)里可以任意修改原始設(shè)計(jì)及相應(yīng)代碼。
總之,Arduino具有跨平臺(tái)、開(kāi)發(fā)簡(jiǎn)單、開(kāi)源的優(yōu)點(diǎn),所以我們采用的Arduino系列單片機(jī)。
三、運(yùn)動(dòng)控制簡(jiǎn)析
小π機(jī)器人有4個(gè)自由度,換句話說(shuō),小π機(jī)器人的運(yùn)動(dòng)主要是通過(guò)控制4個(gè)舵機(jī)來(lái)實(shí)現(xiàn)的。4個(gè)舵機(jī)在一定時(shí)間內(nèi)依次轉(zhuǎn)動(dòng)不同的角度,再通過(guò)一定的排列組合,就可以實(shí)現(xiàn)前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn)、后退等簡(jiǎn)易動(dòng)作和搖頭、抬腳、晃腿、彈跳等復(fù)雜的動(dòng)作。
舵機(jī)的輸入線共有三條,紅色中間,是線,一邊黑色的是地線。舵機(jī)的控制信號(hào)為周期是20ms的脈寬調(diào)制(PWM)信號(hào),其中脈沖寬度從0.5ms-2.5ms,相對(duì)應(yīng)舵盤(pán)的位置為0-180度,呈線性變化。也就是說(shuō),給它提供一定的脈寬,它的輸出軸就會(huì)保持在一個(gè)相對(duì)應(yīng)的角度上,無(wú)論外界轉(zhuǎn)矩怎樣改變,直到給它提供一個(gè)另外寬度的脈沖信號(hào),它才會(huì)改變輸出角度到新的對(duì)應(yīng)的位置上。舵機(jī)內(nèi)部有一個(gè)基準(zhǔn)電路,產(chǎn)生周期20ms,寬度1.5ms的基準(zhǔn)信號(hào),有一個(gè),將外加信號(hào)與基準(zhǔn)信號(hào)相比較,判斷出方向和大小,從而產(chǎn)生電機(jī)的轉(zhuǎn)動(dòng)信號(hào)。
由于一次改變PWM占空比太多,舵機(jī)轉(zhuǎn)動(dòng)速度過(guò)快、轉(zhuǎn)動(dòng)角度太大,會(huì)造成動(dòng)作不協(xié)調(diào)、也不美觀,而且運(yùn)動(dòng)過(guò)快容易造成小π機(jī)器人的不平衡。所以要控制小π機(jī)器人做一個(gè)特定的動(dòng)作,只能分多次控制舵機(jī)的角度,每次只轉(zhuǎn)動(dòng)一點(diǎn)角度,延時(shí)一定時(shí)間后再次改變舵機(jī)的角度,這個(gè)延遲時(shí)間一般為幾個(gè)毫秒,這樣就可以使舵機(jī)比較平緩的轉(zhuǎn)動(dòng)相應(yīng)的角度。
四、其余硬件部分程序
1、模塊
藍(lán)牙模塊使用的是HC-06,負(fù)責(zé)與手機(jī)之間進(jìn)行通信。單片機(jī)與藍(lán)牙模塊之間的通信采用的是串口通信。波特率設(shè)置為115200,設(shè)置代碼為Serial.begin(115200)。發(fā)送命令代碼為Serial.println(””)。
2、播放模塊
主控單片機(jī)通過(guò)模擬人按壓獨(dú)立按鍵產(chǎn)生一個(gè)脈沖信號(hào)控制藍(lán)牙音頻模塊,實(shí)現(xiàn)切換歌曲、調(diào)節(jié)音量、播放與暫停的功能。
例如,定義播放/暫停鍵為2號(hào)端口,初始化代碼為:
nMode(2,OUTPUT);
產(chǎn)生一個(gè)脈沖信號(hào)代碼為:
digitalWri(2,HIGH);//2號(hào)端口置為高電平
delay(200);//延時(shí)200毫秒
digitalWrite(2,LOW); //2號(hào)端口置為低電平
delay(1000);//延時(shí)1秒
3、七彩控制
主控單片機(jī)產(chǎn)生三個(gè)不同PWM信號(hào)實(shí)現(xiàn)對(duì)七彩LED的控制,最終達(dá)到燈光秀的效果。
PWM信號(hào)是數(shù)字方波,其中頻率是恒定的,但信號(hào)接通時(shí)間的一小部分(占空比)可以在0和100%之間變化。
4、觸摸功能
三根觸須使用的是金屬材料,人摸觸須時(shí),由于端口電平的改變觸發(fā)中斷,執(zhí)行相應(yīng)的操作。
中斷設(shè)置代碼如下:
pinMode( pinInterrupt, INPUT);//設(shè)置管腳為輸入
//Enable中斷管腳, 中斷服務(wù)程序?yàn)閛nChange(), 監(jiān)視引腳變化
attachInterrupt(digitalPinToInterrupt(pinInterrupt),onChange,CHANGE);
5、語(yǔ)音互動(dòng)功能
將語(yǔ)音以數(shù)組的形式存到SD卡中,每次進(jìn)行語(yǔ)音互動(dòng)時(shí),提取相應(yīng)的數(shù)據(jù),產(chǎn)生音頻輸出信號(hào),經(jīng)過(guò)濾波后通過(guò)喇叭播放相應(yīng)的語(yǔ)音。
6、SD卡模塊
SD卡模塊讀寫(xiě)可以采用SPI模式或者O模式讀寫(xiě)數(shù)據(jù)。
SD庫(kù)允許讀取和寫(xiě)入SD卡,例如在Arduino盾上。該庫(kù)支持標(biāo)準(zhǔn)SD卡和SDHC卡上的FAT16和FAT32文件系統(tǒng)。它使用簡(jiǎn)短的8.3名稱作為文件。傳遞給SD庫(kù)函數(shù)的文件名可以包含用正斜杠分隔的路徑,例如“directory / filename.txt”。由于工作目錄始終是SD卡的根目錄,因此無(wú)論是否包含前導(dǎo)斜杠(例如,“/file.txt”等同于“file.txt”),名稱都是指同一個(gè)文件。從版本1.0開(kāi)始,該庫(kù)支持打開(kāi)多個(gè)文件。
微控制器和SD卡之間的通信使用SPI,它發(fā)生在數(shù)字引腳11,12和13(在大多數(shù)Arduino板上)或50,51和52(Arduino Mega)上。另外,必須使用另一個(gè)引腳來(lái)選擇SD卡。這可以是硬件SS引腳 - 引腳10(在大多數(shù)Arduino板上)或引腳53(在Mega上) - 或調(diào)用SD.begin()時(shí)指定的另一個(gè)引腳。 請(qǐng)注意,即使您不使用硬件SS引腳,也必須將其保留為輸出或SD庫(kù)不起作用。
這些模塊的代碼都比較簡(jiǎn)單、網(wǎng)上也有大量的例程。需要什么程序,大家自由組合就好了。
上一篇:跳舞機(jī)器人上位機(jī)設(shè)計(jì)
下一篇:人工智能把機(jī)器人變得很可怕?人工智能有作惡的能力嗎?
推薦閱讀
史海拾趣
隨著市場(chǎng)的不斷變化和競(jìng)爭(zhēng)的加劇,BENCENT公司意識(shí)到只有不斷創(chuàng)新才能在行業(yè)中立足。公司加大了研發(fā)投入,引進(jìn)了一批高素質(zhì)的技術(shù)人才,并與其他科研機(jī)構(gòu)展開(kāi)合作。通過(guò)一系列的技術(shù)創(chuàng)新,公司成功推出了一系列具有自主知識(shí)產(chǎn)權(quán)的電子產(chǎn)品,進(jìn)一步提升了市場(chǎng)競(jìng)爭(zhēng)力。
品質(zhì)是Calex Mfg. Co., Inc.的生命線。公司始終堅(jiān)持以品質(zhì)為核心,從原材料采購(gòu)到生產(chǎn)制造,再到產(chǎn)品出廠,每一個(gè)環(huán)節(jié)都嚴(yán)格把控。這種對(duì)品質(zhì)的執(zhí)著追求,使得公司的產(chǎn)品贏得了客戶的信賴和好評(píng)。同時(shí),公司還注重品牌建設(shè),通過(guò)廣告宣傳和參展等方式,不斷提升品牌知名度和影響力。
義隆電子在多個(gè)技術(shù)領(lǐng)域保持領(lǐng)先地位,如數(shù)字模擬混合技術(shù)、高階設(shè)計(jì)流程等。這些技術(shù)優(yōu)勢(shì)使得公司能夠迅速掌握市場(chǎng)脈動(dòng),開(kāi)發(fā)出具有實(shí)用性的新產(chǎn)品。同時(shí),義隆電子還注重將先進(jìn)技術(shù)應(yīng)用于實(shí)際產(chǎn)品中,如高性能的觸摸屏控制器、觸摸板模塊等,這些產(chǎn)品廣泛應(yīng)用于智能手機(jī)、平板電腦等消費(fèi)電子產(chǎn)品中,贏得了市場(chǎng)的廣泛認(rèn)可。
為了保持技術(shù)領(lǐng)先地位和市場(chǎng)競(jìng)爭(zhēng)力,EOS不斷加大研發(fā)投入,積極推動(dòng)產(chǎn)品創(chuàng)新。他們與多所知名高校和研究機(jī)構(gòu)建立產(chǎn)學(xué)研合作關(guān)系,共同開(kāi)展前沿技術(shù)研究。同時(shí),EOS也積極拓展國(guó)際市場(chǎng),產(chǎn)品出口到歐美、東南亞等多個(gè)國(guó)家和地區(qū)。通過(guò)持續(xù)創(chuàng)新和國(guó)際拓展,EOS在紅外探測(cè)器領(lǐng)域的地位日益穩(wěn)固。
面對(duì)未來(lái),EOS制定了明確的發(fā)展戰(zhàn)略和規(guī)劃。他們將繼續(xù)深耕紅外探測(cè)器領(lǐng)域,不斷提升產(chǎn)品性能和質(zhì)量。同時(shí),EOS也將積極布局新領(lǐng)域,探索新的增長(zhǎng)點(diǎn)。他們關(guān)注新興技術(shù)如人工智能、物聯(lián)網(wǎng)等的發(fā)展動(dòng)態(tài),尋求與這些技術(shù)的深度融合和應(yīng)用。通過(guò)不斷創(chuàng)新和拓展新領(lǐng)域,EOS將為實(shí)現(xiàn)企業(yè)的可持續(xù)發(fā)展注入新的動(dòng)力。
請(qǐng)注意,以上故事框架是基于EOS在紅外探測(cè)器領(lǐng)域的發(fā)展情況和行業(yè)趨勢(shì)進(jìn)行構(gòu)建的,具體細(xì)節(jié)和數(shù)據(jù)可能需要根據(jù)實(shí)際情況進(jìn)行調(diào)整和完善。
在監(jiān)控工程設(shè)計(jì)中,對(duì)于采用嵌入式DVR,在網(wǎng)絡(luò)安全方面可靠嗎? 有人說(shuō),嵌入式DVR采用的操作系統(tǒng)系統(tǒng)是固化在ROM中,因此不像計(jì)算機(jī)采用硬盤(pán)那樣,程序很容易被改寫(xiě)和被病毒所攻擊。是這樣嗎?… 查看全部問(wèn)答∨ |
1 引言 隨著嵌入式微處理器和嵌入式操作系統(tǒng)的發(fā)展,嵌入式系統(tǒng)在通訊、控制和消費(fèi)電子等諸多領(lǐng)域得到了廣泛的應(yīng)用。嵌入式系統(tǒng)通常是面向特定應(yīng)用的嵌入式CPU,與通用型的最大不同就是嵌入式CPU大多工作在為特定用戶群設(shè)計(jì)的 ...… 查看全部問(wèn)答∨ |
這次的華碩主板發(fā)布會(huì)有些特別,因?yàn)槿A碩的御用美女小曼登場(chǎng)了!美女高清無(wú)碼照一并傳送。 發(fā)布會(huì)現(xiàn)場(chǎng)入口,本次發(fā)布會(huì)主題:“真”的最快 場(chǎng)地和氣勢(shì)不小 發(fā)布會(huì)現(xiàn)場(chǎng) P7H55D-MEVO 已經(jīng)在大陸開(kāi)賣(mài),而且超頻能力較強(qiáng) P7H57D ...… 查看全部問(wèn)答∨ |
error C2039: 'IsDriverLoaded' : is not a member of 'DeviceFolder' 各位前輩,我是新手, 我在編譯新的PB時(shí)遇到一個(gè)錯(cuò): PLATFORM\\SMDK2416\\Src\\Drivers\\SDBUS\\sddevice.hpp(151) : error C2039: \'IsDriverLoaded\' : is not a member of \'DeviceFolder\' 不知道為何,請(qǐng)幫忙分析下,萬(wàn)分感激!… 查看全部問(wèn)答∨ |
實(shí)現(xiàn)100臺(tái)手機(jī)組成的藍(lán)牙散射網(wǎng)的問(wèn)題 在大概十到二十平方米的空間里,要把100臺(tái)左右的藍(lán)牙手機(jī)用散射網(wǎng)組成一個(gè)局域網(wǎng), 在技術(shù)可行性上不知道能否行得通?希望各位大俠幫幫忙給點(diǎn)意見(jiàn)。 以前有看過(guò)一個(gè)老外寫(xiě)的Bluechat的手機(jī)程序,他也實(shí)現(xiàn)了藍(lán)牙的無(wú)限連接,但不知道他使 ...… 查看全部問(wèn)答∨ |
我想用單片機(jī)每次上電后產(chǎn)生一個(gè)隨機(jī)數(shù)作為單片機(jī)的地址,網(wǎng)絡(luò)中有多個(gè)單片機(jī),每個(gè)單片機(jī)的程序都一樣,因此要求每次單片機(jī)每次產(chǎn)生都隨機(jī)數(shù)都不一樣,請(qǐng)問(wèn)各位有辦法實(shí)現(xiàn)嗎?… 查看全部問(wèn)答∨ |
最近要用到異步FIFO,誰(shuí)有過(guò)這方面的經(jīng)驗(yàn)?我的數(shù)據(jù)時(shí)間是40M和80M,主要是讀寫(xiě)空滿標(biāo)準(zhǔn)哪里不是很明白!… 查看全部問(wèn)答∨ |
|
新手,wince5.0燒錄時(shí)出現(xiàn)的問(wèn)題,求助 RomBOOT>INFO : Low Level Init : OKDataflash init OKStarting eboot ...Master Clock is 48054841 HzMaster Clock is 49920000 HzMaster Clock is 49920000 Hz5)5)晧諠佂喪叡仴攻靴叡ラ晳伖構(gòu)構(gòu)構(gòu)?-?)=-5)5)5?酵綑褋]箲捷蛠? ...… 查看全部問(wèn)答∨ |
- 6月超17款人形機(jī)器人新品推出
- ABB在中國(guó)推出面向電子制造業(yè)的兩大全新機(jī)器人系列
- ABB在中國(guó)推出PoWa協(xié)作機(jī)器人系列
- ABB推出三大全新機(jī)器人系列,強(qiáng)化中國(guó)機(jī)器人市場(chǎng)領(lǐng)導(dǎo)地位
- 智元機(jī)器人兩大核心產(chǎn)品啟動(dòng)規(guī)?;a(chǎn)
- 100億元!湖北“下注”人形機(jī)器人產(chǎn)業(yè)
- 亞馬遜全球部署100萬(wàn)臺(tái)機(jī)器人
- 均普智能人形機(jī)器人開(kāi)賣(mài),拿下約3000萬(wàn)元訂單
- 從慕尼黑展會(huì)看中國(guó)機(jī)器人崛起,中國(guó)企業(yè)以硬核實(shí)力叩響全球市場(chǎng)大門(mén)
- BOE(京東方)聯(lián)合榮耀打造榮耀Magic V5 以領(lǐng)先LTPO技術(shù)打造行業(yè)新標(biāo)桿
- 華為ADS 4發(fā)布:多傳感器融合,提升自動(dòng)駕駛安全性
- 曉鶯說(shuō):線控制動(dòng)變革風(fēng)云
- 大眾商用車(chē)推出AirConsole 將其信息娛樂(lè)系統(tǒng)擴(kuò)展為游戲機(jī)
- 福州大學(xué)發(fā)明新機(jī)器視覺(jué)傳感器 可使機(jī)器人對(duì)極端光照做出超快反應(yīng)
- 蘋(píng)果獲沉浸式虛擬顯示器相關(guān)的專利
- 英特爾汽車(chē)“折戟”,十年布局一夜歸零
- 寶馬自動(dòng)充電機(jī)器人概念驗(yàn)證成功,引領(lǐng)無(wú)人充電新時(shí)代
- 智駕模式下LQR最優(yōu)算法在EPS中的應(yīng)用研究
- 6月超17款人形機(jī)器人新品推出
- 晶豐明源擬收購(gòu)凌鷗創(chuàng)芯的95.75%股權(quán)并募集配套資金
- 多自由度軌跡運(yùn)動(dòng) 杭可科技鋰電池搬運(yùn)機(jī)械手方案解密
- 臺(tái)PCB廠精成科馬來(lái)西亞工廠9名員工染疫確診全廠停工
- 歐盟斥巨資發(fā)展先進(jìn)制程計(jì)劃遇冷,技術(shù)及客戶來(lái)源是核心
- 產(chǎn)業(yè)鏈進(jìn)入下一競(jìng)爭(zhēng)階段:在整合中實(shí)現(xiàn)“內(nèi)卷”
- 未來(lái) Siri 或許會(huì)更容易識(shí)別口吃用戶下達(dá)的指令
- 蘋(píng)果發(fā)布macOS Big Sur 11.2.2/Redmi K40系列發(fā)布
- 庫(kù)克在股東大會(huì)上表示「iPhone 將迎來(lái)令人興奮事情」
- 蘋(píng)果需在法國(guó)提供產(chǎn)品的可維修性得分
- Redmi 發(fā)布會(huì)匯總:手機(jī)、電腦、電視與周邊應(yīng)有盡有