原諒我起這么猛的標題,但看完,你不會來打我的。 如果此項目有朋友已經做過,可以越過不看。 回歸正題,平衡小車,這個開源項目已經出來很多年了,雖然是一個比較基礎的項目,但也牽扯到方方面面的知識, 單片機程序開發、硬件 電路設計、焊接手法等。 在許多朋友咨詢信盈達小編, 電子設計入門,該選什么項目時,小編都會首推這個。 那么,如果一個新手,或者對電子設計興趣但有不知道從何下手時,看這篇文章就對了。 我將平衡小車分為三種技術路線,不同的技術路線都可以實現完成平衡小車,不同的路線,針對不同的基礎的人群,難度都不同。 1、模塊拼接+手工焊接布線 1.1 車架 1.2 電路如何設計? 有了車架,還差電路部分,如何設計? 為了讓大家快速熟悉平衡小車的系統電路,加快開發速度。 第一條路線,我們采用模塊化的設計方式。 也就是,電路部分都采用模塊,將各個模塊電路連接起來即可完成電路設計。 那么需要哪些模塊電路呢? 單片機最小系統:這個是用來寫入程序的。 電機驅動:用來驅動電機;單片機IO電流不夠,不足以驅動電機。 姿態傳感器:MPU6050(用來獲取小車姿態數據,來保持平衡)。 電源模塊:用來做電源升降壓,給各個單元電路(單片機、電機驅動MPU6050)供電。 電池:給整個系統供電。 無線模塊:用來做遙控,控制小車移動行走。 1.3 手工焊接 將各個系統模塊化之后,根據電路原理圖,要進行的就是,手工焊接。 針對完全不熟悉的朋友而言,更推薦此種方式,此種方式能讓我們更快速且有效的去搭建起電路,并去驗證我們的電路。 畢竟PCB的繪制以及腐蝕都是需要時間的,更加不說那些對PCB設計不熟悉的朋友了。 手工焊接,需要一塊和車架板差不多大小的洞洞板,方便我們的板子后面安裝在車上。 手工焊接和PCB設計一樣,需要考慮各個模塊以及元件的布局。也就是各個模塊的擺放位置。 模塊位置的擺放正確與否,能讓我們少走錫,少布跳線。 能讓我們省去許多精力,到底能多省。 用烙鐵去體會! 2、模塊+PCB繪制 第二條路線,模塊化+PCB繪制。 同樣的,第二條路線也采用模塊化設計,但與第一條不同的是,在于不再使用洞洞板焊接,但此種方法路線,針對于基礎較好,對PCB繪制以及一些單片機基本電路較為熟悉的朋友。 當然,用第一種方法完成平衡小車的設計之后,可以采用第二種方法進行進階學習,可以通過此方法來學習或加強PCB設計。 畢竟,別人的電路板,哪有自己設計的香。 本質上,此種方法路線與第一種沒有什么不同。省去了人工焊接布線,使用機器布線,再通過自我腐蝕或發廠打樣制作。來完成整個電路板的設計。 3、集成化主板 第三條路線:集成化主板。 同樣的,第三條路線都可以作為第一條、第二條的進階學習之路。 想要完成集成化主板的設計,需要對單片機系統以及外圍電路非常熟悉,能進行自我電路設計,包括一些基本的電源電路等。 當然,網上也有許多電路可以進行參考,畢竟做的人特別多。 我也為大家準備了一套完整的電路和程序。 下圖就是我們信盈達工程師設計的主板和小車。 4、程序設計思路 講完了三種硬件搭建路線之后,需要談論的應該是程序部分了。 我為大家已經準備好了各個“單詞”,只要大家學會拼即可。 如何做? 在資料包中,我準備好了MPU6050測試、電機驅動測試、藍牙測試程序。 我們可以通過程序對單個模塊電路進行測試,一步一步的移植拼接。 比如: 第一步,先測試MPU6050程序,通過測試程序正確讀取出6050數據。 第二步,單獨再調試單片機和電機,單片機程序是否能正確控制電機驅動,使得電機正反轉、加減速。 第三步,以MPU6050程序為基礎,將電機轉動程序加入其中,并添加PID控制函數,以6050數據為閉環入口參數,調節PID參數,計算出控制PWM,來控制電機轉動,保持小車車身平衡。 課程咨詢:C語言,單片機,Linux電路設計,PCB軟件測試,python,JAVA,C++,QT等課程培訓提升,面授線上學習,有需要加18025267692(微信) 第四部,小車控制平衡后,對藍牙測試程序進行單獨測試,并將藍牙控制信號輸入到PID控制函數中,作為速度環和轉向環的一個控制變量,來達到控制小車前后左右移動的效果。 以上,是小車程序的整體設計思路。 5、最后 最后,想要表明一點,關于平衡小車設計,說來簡單且粗暴,但實施起來,需要花費的時間和精力不言而喻。 因為其涵蓋軟硬件設計,對于新手而言,工作量確實較高,但等完成之后,回過頭再看,腦子里覺得沒什么工作量。 但手上卻多了各種技術活。
|