一、STM32簡介、選型及其目標


STM32簡介

STM32系列是由意法半導體公司推出的ARM Cortex-M內核單片機,從字面上來看,ST為意法半導體公司的縮寫,M是Microcontrollers即單片機的縮寫,32代表32位

芯片系列

STM32系列芯片分類


STM32后綴的型號說明

模塊准備

STM8S103F3P6


STM8S芯片,20引腳,8KB閃存,TSSOP封裝,工作溫度為-40℃到85℃。
這塊芯片屬於8位的低成本STM系列芯片,每個芯片成本不到10元,STM8S103F3P6在淘寶賣3元不到一個。
STM8和STM32的區別,很顯然,一個是8位的,一個是32位的,在寫STM8和STM32代碼的過程中,我感受到的最大區別就是PLL,STM8是沒有PLL(倍頻器)這東西的,STM32的倍頻和分頻的概念理解得我頭大,STM8相對來說就簡單有一些了,STM32的外設也豐富得多,如果學會了STM32,再回頭學習STM8非常容易,STM8也適合做一些相對簡單的電路。\


STM32F103RET6


STM32芯片,64引腳,512KB閃存,QFP封裝,工作溫度為-40℃到85℃。 \


STM32F103RCT6


STM32芯片,64引腳,256KB閃存,QFP封裝,工作溫度為-40℃到85℃。 \


STM32F103C8T6


STM32芯片,48引腳,64KB閃存,QFP封裝,工作溫度為-40℃到85℃。 \


STM32F767IGT6


STM32芯片,176引腳,1024KB閃存,QFP封裝,工作溫度為-40℃到85℃。 \


硬件開發前准備的設備

正品艾德克斯IT6720/IT6721直流穩壓電源


 
 

寶工(Pro'skit) MT-1232 3 3/4 防護型多功能自動數字萬用表


 
 

放大鏡20倍支架焊接台


 
 

優利德數字示波器100m雙通道示波器


 
 

數顯調溫拆焊台柔和旋轉風熱風槍


 
 

936恆溫烙鐵

 
 

其它零碎的元件

面包板、洞洞板、電源芯片、二極管、三極管、STM32的燒錄座等等

 
 

學習動機及目標

現在是2019年了,明年5G正式商用,隨着IPv6的逐漸普及,智能設備將開啟萬物互聯的模式,作為一名有理想有抱負的軟件/Web全棧工程師,也希望能擁抱物聯網。
最初萌發想學習硬件開發的想法,是因為看了《鋼鐵俠》,托尼·史塔克利用智能管家賈維斯進行輔助研發Mark戰甲,管理家里的所有家電,可以幫托尼聯系武器公司定制材料,可以提供各種信息查詢等等。
這可把我羡慕死了,心里萌發了想做一個自己的智能管家的想法。
最初是從圖像識別和語音識別方面着手,申請了訊飛和百度的語音識別接口,后來發現雲端識別實時性太差了,從語音發出到設備接受命令並處理,整個過程至少需要1-3秒的時間才能完成,這在我看來是無法忍受的。
因而想到何不自己做離線的語音識別,於是搜索學習了相關的資料,發現基於神經網絡的圖像識別和語音識別算法的正確率最高,深度學習需要線性代數、微分、統計學、概率論等為基礎的,於是買了好幾本不同的線性代數教材,下班后窩在宿舍學習、上網易公開課看可汗學院的微積分視頻教程,陸陸續續學習了三個月,自己用Python基於CNN實現了手寫數字的識別、手指數識別,手指的識別准確率有點慘不忍睹。
后來再看RNN和LSTM,想做NLP,因為在我看來,所有語音識別的結果都會是文字,NLP處理這些文字並做出反饋、最后生成語音消息播放出來,在后續的學習過程中,我發現這些算法所需的數學基礎越來越高,憑借自己半桶水都不到的數學水平、再加上無人指導的尷尬局面,學習效率非常非常低,再加上工作忙的原因,幾乎放棄學習了。不過中途做了一項挺有趣的事,因為訓練聊天機器人的NLP模型,需要大量語料來訓練,於是我基於開源了的易語言版的半成品安卓QQ模擬客戶端,花了三個月時間實現了Python版的安卓機器人,QQ加密協議方面是最耗時的,通過Wireshark抓取了很多閉源的QQ機器人,終於實現了安卓QQ的加密協議,只是有個詭異的問題一直無法解決,每次模擬登陸安卓QQ后,過一陣子會自動掉線,這個掉線時間無法確定,不知道問題出在哪兒了,但也懶得探究了,Python版安卓QQ實現之后,我創建一個小號QQ加入了很多千人群,通過半年的時間收集了幾千萬條聊天記錄和數百萬張表情包鏈接(表情包似乎是CDN緩存的,會失效),在幾乎放棄深度學習后,這些資料也就沒用了。
那年應該是2017年,AI股大熱正是那一年,被鼓吹為“人工智能元年”,可惜截至今天(2019年5月),所謂的AI本質仍然屬於統計學的范疇,屬於有多少人工,就有多少智能的階段。
我買的小愛同學,無法理解上下文內容、基於雲端的語音識別速度慢,准確率也不高,還限制了只有米家生態鏈上的智能設備才能控制,無法DIY,就應用上來說,家里利用率非常低。
至於對硬件感興趣,還得從Arduino說起,在貼吧的Arduino吧知道了這款開源硬件,然后發現DIY硬件竟是如此的簡單,買個溫濕度傳感器模塊,連上三根線(VCC,GND,DATA),給Arduino接通USB到電腦,在Arduino IDE編寫十行左右的代碼並燒錄到Arduino就可以獲取周圍的溫度和濕度,這極大的激發了我對硬件DIY的興趣,試想,我可以給Arduino接入WIFI模塊和其它傳感器模塊,通過語音控制Python服務端與Arduino做交互獲取周圍的溫濕度、控制繼電模塊操作220V燈的亮滅,通過紅外線模塊控制空調、電視等電器等等應用,這簡直太酷了!后來還陸續購入的樹莓派等硬件作為服務端設備,折騰了一年多,開始想着產品化,使自己DIY的工具讓更多人能用上(其實主因還是想着多一條未來能恰飯的路子),最后發現這些終究算是“玩具”,雖然社區龐大,但不管是體積還是性能,都不如專業的單片機芯片,比如實現一個語音喚醒詞識別的算法,利用STM32一款20-30塊的芯片就能跑起來,以Arduino系列的性能,可能需要采購300塊以上的Arduino mega2560才能實現,成本差距太大了!
作為程序員,據前輩的說法,程序員的職業生涯一般只有35歲,很多35歲的程序員要么轉行,要么轉管理崗,因為年紀太大寫不動代碼了,加不動班,熬夜熬不過年輕人,而做硬件的則不一樣,一般是越老越值錢,雖然我對35歲論這點有些嗤之以鼻,但正所謂狡兔三窟,多一條出路總歸是沒錯的,而這一條路也正是我喜歡的,也是未來萬物互聯的歷史趨勢。
我也不忘初心,希望能研發出像賈維斯那樣的智能管家。
一切,就從STM32開始吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM