很多初學者不知道是先學8位單片機好還是32位單片機,用案例說明

2022-04-01     大方老師單片機

原標題:很多初學者不知道是先學8位單片機好還是32位單片機,用案例說明

很多初學者不知道8位單片機好,還32位單片機讓我用案例告訴你

本人新近結交了一位單片機愛好者,他想做一位好舅舅,於是踏進了為外甥製作超迷你自均衡小車玩具的坑,為的是證明身為電子工程師TA有多厲害。一路走來,這是個技能成熟的過程,是舅舅勵志進修的故事,我們也能夠體會到他從想法到實物的設計思維及攻克問題的策略方法。

讓我們先來了解一下製作地心五號自均衡小車的故事。

01 MCU起航的造小車故事

2016年,我的小外甥就要上小學了,有男孩子動手實踐天性,我就想給他做個電子玩具,激發他的進修熱情。流水燈low,四軸飛行器有螺旋槳危險,因此智能小車就成為首選。四個軲轆的比鄙偃皆是,兩輪自均衡小車才有的成就感。於是,踏上3年的慢慢製作路。我這三年不斷踩坑,不斷爬出來,過程中補齊了自己的根底知識,還提升了自己的硬體設計和軟體工程的才能。

故事是這......

時長拉回2016年,網上能夠找到兩類方案:一STM32+MPU6050,另一種是Arduino做的。製作的先期過程是進修,我在自己動手前,買了個樣機來鑽研。從此入了坑,不僅資料少,讓我驚掉下巴的是,程序竟然是STM322.0的庫寫的。沒經歷STM32庫函數版本變動的同學是不了解的32的庫從剛出來到此時相對穩定3.5版本,變更了幾次,每次都是會大變樣。我只好自己將整套程序3.5的庫重寫一遍,意外收穫是我對程序流程非常熟悉,為後續的調試打下根底。

再後來,我發現賣家的原理圖和實際硬體不配套電路沒有JTAGSW接口,只有一個串口下載的接口。註定我要自力更生為外甥造小車。

02當我造小車時,我都在想什麼?

很多單片機初學者都會有這樣的靈魂拷問:8位單片機好,還是STM32好?其實不衝突。玩STM8是更好使 STM32的鋪墊。

我的均衡小車主控晶片為什麼STM8,小車的設計要到達哪些要求?

STM32此時市面上非常時興,成為很多用人單位招聘技術人員的標配技能。但我想STM8來實現我的均衡小車,一是由8位單片機的性能能夠到達;二是最俗的因素8位單片機便宜!三,我認為會STM32不代表牛逼,會8位單片機不代表不牛逼,能STM32的項目8位單片機做出來,這才算厲害!

那麼為什麼不用簡略易學Arduino

Arduino是義大利的一名教師和一名晶體工程師創造的一個靈敏性非常高的電子平台,非常易學好用。它常出此時很多中小學中的機器人課程中,假如穩定性不行,入門再簡略,功能再強大,都是扯淡Arduino的穩定性卻備受爭議。由於它最初因教學目標被設計出來,主要用途DIY工具,中小學生興趣課,還有一些玩具。國內很少有用它來做商業產品,鑒Arduino和實際市場的主流單片機差別很大,為了有個好前途,不必Arduino上花費太多時長。

小車的設計要到達哪些要求?以下幾點是我的考量:

1、要有進修的意義,就是說這個板子不光能跑均衡小車,還要作為一個進修的開發板,這是最根本的。

2、選型方面要合理,就像我最初始說的,能8位的單片機32位的單片機的項目做出來,這才叫厲害,要儘量選擇適宜的資源。每一個元器件的選型都要有理由,有做產品的意識,同時要實現它的效果。

3、製作過程要儘量低老本。身DIY愛好者,很多人會有這樣的感覺,製作過程中通常是非常興奮的,演示時候也多巴胺爆棚,但是演示完了三天之後,很可能這DIY作品就初始吃灰了。為了防止這的情況出現,或者說即便吃灰,由於它的價格也不高,不會心疼。所以我們儘量使用低老本東西來實現。

4、組裝過程要儘量簡略。儘量避免太過複雜的組裝過程,降低動手門檻,對很多人才有進修的意義和提高的動力。

03均衡小車的原理探索及製作過程中的坑

先說選型。單片機選用的STM8S103f3P620管腳Flash空間獨8K ROM1KRAM。相比傳統51,它8位單片機的性價比之王,功能強大,某寶有小巧的最小系統板可供選擇。

角度傳感器采MP6050,參照資料多,價格適宜。

電機驅動的局部,這裡有兩個選擇,一個L9110s,另外一個TB6612L9110S在測試過程中發現兩個問題:一個是發熱鄙偃較嚴重(據說後來新的晶片攻克了發熱的問題),加了散熱片也不行;另一個是能量轉換效率不高,同樣50%的占空比驅動電機,只用肉眼觀察TB6612L9110S明顯要快一點;三是組裝不方便。最後選TB6612

選電池的時候,尤其要注意放電才能!

然後是電機,選中性能較好N20電機。注意帶碼盤和不帶碼盤的電機價格差別有點大。

最後是輪胎,N20電機配套,選中一D字型的橡膠輪胎。

首先是搭建這個小車的構造,原型採用洞洞板,依照一定的尺寸評估整個車身的大小,然後用剪刀裁定的尺寸,然後使用銅柱進行多層的構造組裝。近乎暴力的組裝,造成外形自然不夠美觀。

能夠看到左邊MPU6050,右邊STM8S的最小系統板。高低兩層洞洞板,採用銅柱做固定。

怎麼確定這個新組裝出來的構造能夠用?方法是替換之前購置的均衡小車樣機模塊,進行組裝測試。

第一坑出現了,如何STM8來替STM32來控制這個構造STM32使用的DMP方式讀MPU6050的角度,控制小車,是能夠站立的;但換STM8,使用原始數據轉化為角度再去控制的話,簡直站不住。問題的核心在於,採用原始數據計算角度的方式,DMP方式計算出的角度有一定的偏差。而這個偏差會導致當小車發生偏移時,電機沒法快捷響應,也就是反應速度不夠。這時候就須PID控制算法。我的方案是車身構造較小,電機扭距不夠強,須要特殊方式提高響應速度,最直接的方式就是使PID這個算法裡面的參I,也就是積分。積分的特性就是它會累積誤差,時長越久累積的誤差越大,它糾正的力度也就越大,此處的時長概念指是單片機的時長。幾個循環過去,假如發現誤差還在繼續增加,那麼它會產生非常強大的修正的力,這個力會作用在電機上,最終使小車的車身恢復均衡。到此,第一坑順利攻克,確定STM8控制這個構造是可行的。

接下來,工作分兩個方向同時進行,一個是電路板的繪製,使Autumn DesignerPCB板繪製;另外是程序的編寫STM8S的單片機的編程有很多參照例程,難度不大。程序的移植和編寫時,STM8S103F3P6這個晶片flash非常小,沒法使DMP的方式讀取比較高精度的數據。只能採用讀取原始數據,然後解析的方式。

這時第二坑出現了,小車雖然站了起來,但是抖動和晃動明顯,不平穩。怎麼辦?我對程序進行優化,如調PID參數、調整程序循環周期、PID算法的根底上做微調等等,最終採用卡爾曼濾波,調整了周期,小車從哆哆嗦嗦的狀態,一下子變成了平穩的滑翔者!角度環已經沒有問題了。

第三坑被卡在了位置環上。均衡小車的站立,至少須要兩個環!一個是角度環,維持小車均衡。但是維持均衡還不夠,你會看到它均衡的到處亂跑,不服從指揮。所以須要第二個環:位置環(也有人叫路程環)。它能讓小車原地不動,或者依照我們的要求挪動。原理也很簡略,它會監測小車輪胎的轉速和轉向,從而對小車的挪動進行糾正。有的還會做轉向環,例如,有外力導致小車旋轉90?,須要把這個旋轉糾正過來。

最終,通過使用一個紅外反射式傳感ITR8307,做了個模塊,利用輪胎自身的構造,組成了一個另類的測速裝置,好似讓輪胎自帶編碼器。如圖:

輪胎內部自帶白色牙齒,共12個。他們把紅外反射模塊固定在牙齒下面,當輪胎旋轉時,牙齒會依次、間斷的從傳感器上面經過,出現的效果就是高、低、高、低電平的不斷輸出。單位時長內計算脈衝信號個數,速度有~~~

注意這裡的脈衝個數,回升沿12個、下降沿12個!輪胎轉一圈獨24個!

然後是方向。這種編碼器沒法計算方向,我只須要在檢測到高低電平的時候判斷一下電機的驅動方向就行了。

路程環怎麼搞?換個思維思考。小車的站立也要保持重心均衡,假如不均衡,那麼就會往一個方向偏。在這個過程中,我要阻止外力對小車重心的破壞。

小車的均衡靠角度環能夠實現,但是會偏。怎麼不讓它偏?

由於小車的車身質量分布並不均勻,導致小車水平的時候可能並不是它的均衡角,那就須要找到這個均衡角。小車維持均衡的角度,剛好是小車重心垂直過電機軸的角度。所以小車初始調試的時候,須要先找均衡角。

假設已經找到了均衡角,在均衡角狀態下,外力導致小車向前走7步,我能夠通過碼盤測速測出來。那麼,怎麼糾正?

重心!

是的,我能夠讓小車的重心均衡角向反方向增0.7?。這樣角度環為了維持均衡,會自動往反方向糾正。往回走一步,重心均衡角上面添加的誤差少一點,回到原地,角誤差清零。

這個想法擯棄了傳統的路程環,重新設計了一種控制策略,轉化為代碼,編譯、燒錄、上電,小車以一個位置為原點,做往復運動!這種情況下,只須要把偏差和重心聯合起來,使PID的方式計算出一個糾正用的誤差角,疊加到小車的均衡角上就行了。這種新PID環,我把它叫做重心環。

04地心一號迷你均衡小車的誕生

均衡小車的設計完成後,它的誕生還要三步走:

1、確定方案,畫原理圖PCB,找工廠安排制板、焊接、組裝;

2、編寫教程;

3、給小車起個名字。

攻克小車技術的一個關鍵點是重心環的出現,而《地心引力》是我最喜愛的電影之一,就叫地心五號吧,來看看地心五號美顏!

硬體方案如下:

STM8S103F3P6+MPU6050+TB6612+藍牙串口模+紅外遙控

藍牙串口模塊在這裡有兩個功能:一個是調PID參數的時候,能夠終端介面沒線測試;另一個就是在鍵盤介面控制小車的行駛方向。

加入我們,一起學習平衡小車課程!

05課程大綱及訂閱用戶權益

地心迷你平衡小車教程內容分兩大部分:STM8基礎教 +迷你平衡小車視頻教程。想要的私我哦,說了這麼多,大家記得留意下方評論第一條(或者私信我)有干~

文章來源: https://twgreatdaily.com/cd5a65aed3c06a95218dc0b93cb764d0.html