設(shè)計(jì)硬件系統(tǒng)的時(shí)候,離不開元器件選型。那么我們?cè)谠O(shè)計(jì)喵嗚ISO兩輪自平衡小車時(shí),器件選型的依據(jù)是什么呢?且搬個(gè)小凳子坐下,聽我們細(xì)細(xì)說明吧。 主控芯片喵嗚ISO兩輪自平衡小車選用宏晶(STC)公司推出的IAP15W4K61S4作為控制芯片。 我們選擇IAP15W4K61S4作為主控芯片當(dāng)然是有原因的啦: - 一是IAP15W4K61S4性能牛逼,滿足系統(tǒng)需求。
IAP15W4K61S4是STC生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的增強(qiáng)型8051單片機(jī),4K字節(jié)SRAM,5個(gè)16位定時(shí)器,6路15位高精度PWM,主頻能達(dá)到33.1776M。IAP15W4K61S4采用STC-Y5超高速CPU內(nèi)核,在相同時(shí)鐘頻率下,速度比傳統(tǒng)8051快7~12倍,速度也比STC早期的1T系列單片機(jī)(如STC12/11/10系列)的速度快20%。 - 二是IAP15W4K61S4簡(jiǎn)單易學(xué),降低學(xué)習(xí)門檻。
眾多高校開設(shè)單片機(jī)課程都是以8051單片機(jī)作為講解對(duì)象,為此,大部分同學(xué)都是以“用8051單片機(jī)點(diǎn)亮個(gè)LED燈”的方式踏上了學(xué)習(xí)單片機(jī)這條不歸路的。IAP15W4K61S4是STC生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的增強(qiáng)型8051單片機(jī),但萬變不離其宗,IAP15W4K61S4始終還只是8051單片機(jī),容易入門的特點(diǎn)仍在。 其實(shí)就是兩句話: 因?yàn)镮AP15W4K61S4性能牛逼,所以選擇它; 因?yàn)镮AP15W4K61S4簡(jiǎn)單易學(xué),所以選擇它。 有些人會(huì)質(zhì)疑,STC15也是80C51內(nèi)核單片機(jī),運(yùn)算速度那么慢,能行么? 對(duì)于質(zhì)疑,我們可以用理論參數(shù)來回答,再不然,就用實(shí)踐來證明。 當(dāng)然,對(duì)于我們工程師,打破砂鍋問到底是很有必要的,那么問題來了:STC15的運(yùn)算速度到底有多慢?有沒有什么指標(biāo)可以表示,和ARM對(duì)應(yīng)指標(biāo)相比如何? 帶著疑問,我們尋找答案。 MIPSMillion Instructions Per Second的縮寫,每秒處理的百萬級(jí)的機(jī)器語言指令數(shù)。這是衡量CPU速度的一個(gè)指標(biāo)。像是一個(gè)Intel 80386 電腦CPU可以每秒處理3百萬到5百萬機(jī)器語言指令,既我們可以說80386是3到5MIPS的CPU。MIPS是衡量CPU性能的指標(biāo)。 現(xiàn)如今CPU的頻率越來越高,又是流水線又是超標(biāo)量計(jì)算又是雙核多核的,單純以時(shí)鐘頻率來衡量計(jì)算機(jī)的速度已經(jīng)不再科學(xué),用MIPS來衡量相對(duì)比較合理。 MIPS/MHz 表示 CPU 在多少M(fèi)Hz的運(yùn)行速度下可以執(zhí)行多少個(gè)MIPS,如10MIPS/MHz,表示如果CPU運(yùn)行在1MHz的頻率下,每秒可執(zhí)行一千萬條指令,如果CPU運(yùn)行在5MHz的頻率下,每秒可執(zhí)行五千萬條指令。 MIPS/MHz可以很好的反映CPU的運(yùn)行速度。 以ARM7為內(nèi)核的S3C44B0X的推薦最高工作頻率為66MHz,按照ARM公司提供的技術(shù)資料,ARM7類CPU的運(yùn)算速度可按如下公式計(jì)算:MIPS=0.9×MHz,由此可得出,S3C44B0X的最大運(yùn)算速度大約為0.9×66MHz=59.4MIPS。6M的51單片機(jī)通常是4個(gè)時(shí)鐘周期才能完成1條指令,乘法和除法指令更需要48個(gè)時(shí)鐘周期。這樣,初步估算6M的51單片機(jī)的運(yùn)算速度應(yīng)該在0.2~0.5MIPS之間�?梢�8位機(jī)與32位機(jī)的運(yùn)算速度還是有巨大的差異的。再以AVR為例,它的數(shù)據(jù)吞吐率可達(dá)1MIPS/MHz,即1MHz的震蕩頻率可達(dá)1MIPS。 綜上,用MIPS衡量計(jì)算機(jī)速度合理,但對(duì)于不同的cpu,它的最高工作頻率不同,數(shù)據(jù)吞吐率也不同,所以不可一概而論。 STC15是1T 8051單片機(jī),可以設(shè)置1個(gè)機(jī)器周期就是1個(gè)時(shí)鐘周期,我們?cè)赟TC官網(wǎng)首頁可以看到這樣一句話: 一秒鐘能運(yùn)行1000萬條指令的STC 8051也能做四軸飛行器就是說在最佳狀態(tài)下,STC15運(yùn)算速度可達(dá)到10MIPS。如果您是營(yíng)銷人員,您會(huì)只專注于最佳情況,也就是假定每條指令只要一個(gè)工作周期,這樣這款產(chǎn)品的性能就是10 MIPS。要知道程序可不可能一直只運(yùn)行類似NOP這種單周期指令,如果您想了解最低的理論性能,那么就會(huì)假定每條指令需要6個(gè)工作周期,這就會(huì)得到1.66(10/6)MIPS。 傳感器喵嗚ISO兩輪自平衡小車選用MPU-6050三軸加速度傳感器/三軸陀螺儀一體芯片。 這是最主要的姿態(tài)傳感器。 InvenSense公司的MPU-6050芯片內(nèi)部集成了三軸加速度計(jì)和三軸陀螺儀,不僅消除了我們焊接電路板時(shí)易造成的加速度計(jì)和陀螺儀之間的對(duì)準(zhǔn)誤差(alignment error),而且由于其內(nèi)置了數(shù)字可編程的低通濾波器,在飛行器經(jīng)受較大振動(dòng)時(shí),可用程序設(shè)置適當(dāng)頻率的低通濾波器,用來濾掉高頻振動(dòng)。這是一個(gè)很有效的方法用來減小四軸機(jī)體振動(dòng)對(duì)陀螺儀數(shù)據(jù)的影響,這個(gè)方法同樣適用于該公司的ITG3205。另外,MPU-6050內(nèi)置一個(gè)可擴(kuò)展的數(shù)字運(yùn)動(dòng)處理器DMP,還可用I2C連接一個(gè)第三方的數(shù)字傳感器,比如磁力計(jì)。 以下列出部分特征: - 具有131LSBs/°/sec敏感度與全格感測(cè)范圍為±250、±500、±1000與±2000°/sec(dps)的3軸角速度感測(cè)器(陀螺儀);
- 可程式控制,且程式控制范圍為+-2g 4g ,8g 16g的3軸加速度傳感器;
- 數(shù)字運(yùn)動(dòng)處理引擎DMP可減少負(fù)重的融合演算數(shù)據(jù)。
- 感測(cè)器同步化。姿態(tài)感應(yīng)等的負(fù)荷;
- 高達(dá)400K Hz快速模式的I2C。
從數(shù)據(jù)手冊(cè)中找到刻度系數(shù)表,用輸出值除以這些刻度系數(shù),即可得到以°/s為單位的角速度值和以g為單位的加速度值   以MPU6050加速度測(cè)量值為例:當(dāng)測(cè)量范圍是±2g時(shí),測(cè)量精度是16384LSB/g,這個(gè)參數(shù)的含義簡(jiǎn)單說就是當(dāng)測(cè)量的加速值是1g(重力加速度)時(shí),那么加速度的輸出就是16384,這也163842g=32768,±2g對(duì)應(yīng)±32768,MPU6050的ADC是16位的,所以不管測(cè)量范圍多大,最終的輸出范圍都不會(huì)超過±32768,所以測(cè)量范圍越大,精度就越低。下面計(jì)算一下測(cè)量范圍是±16g時(shí)的精度:162/65536=0.00048828125,然后取倒數(shù)1/0.00048828125=2048,和手冊(cè)上完全一樣。LSB/g是針對(duì)數(shù)字輸出的傳感器而言的。 單位是LSB(即最低位所表示的量)。 LSB(Least Significant Bit),意為最低有效位。以一個(gè)12位數(shù)據(jù)采集卡為例,她的采樣精度為4096個(gè)點(diǎn),模擬量輸入范圍是0~10V,那么一個(gè)點(diǎn)對(duì)應(yīng)的模擬量是10V/4096,約等于2.5mV,0.5LSB的意思就是采集誤差是2.5mV/2=1.25mV。 對(duì)兩輪自平衡小車而言,MPU-6050的精度和性能已經(jīng)足夠,可只需要一顆芯片就能滿足系統(tǒng)需求,而且節(jié)省人民幣。如果采用多組件方案,例如分別選用陀螺儀ENC-03和加速度傳感器MMA7260,那浪費(fèi)在傳感器上的人民幣就翻要幾倍,從成本角度看,這才凸顯出MPU-6050的性價(jià)比高大上呀。 電機(jī)驅(qū)動(dòng)芯片喵嗚ISO兩輪自平衡小車選用飛思卡爾半導(dǎo)體公司生產(chǎn)的直流電機(jī)驅(qū)動(dòng)器件MC33186。 另外,常見應(yīng)用于兩輪自平衡小車的直流電機(jī)驅(qū)動(dòng)器件還有:B6612FNG、LN298N。 棄用L298N、B6612FNG原因有二:一是L298N體積大,工作效率低下;二是OpenBalan選用的電機(jī)堵轉(zhuǎn)電流高達(dá)3A,一對(duì)電機(jī)同時(shí)堵轉(zhuǎn)時(shí)電流達(dá)6A,而L298N和B6612FNG的可承受最大電流不符合要求。MC33186具有大電流MOSFET-H橋結(jié)構(gòu),工作效率高,最大輸出峰值電流達(dá)8A。TB6612FNG采用SSOP24封裝,體積超小,非L298N的Multiwatt15大塊頭封裝可比。 MC33186VW與MC33186DH有什么區(qū)別性能一樣,VW是無鉛封裝 USB-TTL芯片喵嗚ISO兩輪自平衡小車板載USB-TTL下載電路,因?yàn)榭紤]到不是每個(gè)同學(xué)手上都有USB-TTL下載模塊的,而且市面上的USB-TTL模塊質(zhì)量參差不齊,質(zhì)量差的還會(huì)導(dǎo)致電腦藍(lán)屏。 通過一根安卓手機(jī)標(biāo)配的MicroUSB線,就可以輕易簡(jiǎn)單地對(duì)BALANCE-ISO進(jìn)行固件更新和調(diào)試參數(shù)。如此簡(jiǎn)單的操作步驟,想來隨便從大街拉一個(gè)路人過來應(yīng)該都可以完成。 無線通信模塊(藍(lán)牙)考慮手機(jī)遙控功能,以及后續(xù)版本要實(shí)現(xiàn)無線升級(jí)固件功能,放棄使用2.4G通信,決定選用藍(lán)牙。但藍(lán)牙協(xié)議是很復(fù)雜的,憑我現(xiàn)有的時(shí)間難以寫出來。而藍(lán)牙模塊已經(jīng)封裝好,只要和單片機(jī)串口正確連接就可通信,很容易將喵嗚ISO兩輪自平衡小車與安卓設(shè)備對(duì)接起來。剩下的只是去開發(fā)適用于安卓平臺(tái)的APP或者上位機(jī)了。 元器件選型就是這樣子。
|