在校期間,為了參加電子比賽,我曾使用飛思卡爾K60、意法半導體STM32、宏晶STC12作為控制晶片,製作了多輛兩輪自平衡小車。
後來,好多同學和網友都表示想製作一輛自己的兩輪自平衡小車,並且向我請教製作方法。我發現他們中有一部分是8051內核單片機的初學者,苦於ARM內核的晶片上手難度大,又沒有通俗易懂的指導資料,再加上單獨製作成本高,製作計劃容易中途而廢。
我開始思索著能否為小夥伴們做些什麼,萌生了使用簡單的8051內核單片機製作為初學者而生的兩輪自平衡小車的念頭,於是製作出了MWbalancedSTC15的雛形。
幾經迭代,MWbalancedSTC15兩輪自平衡小車已經推進到第二版,基本功能已經完善。後續我將為大家介紹我設計兩輪自平衡小車的教程和一些思路。
今天主要介紹兩輪自平衡小車的硬體原理。
MWbalancedSTC15是什麼?
MWbalancedSTC15是一款為初學而生的可二次開發的開源兩輪自平衡小車。
代號MWbalancedSTC15的命名遵循「MW+xxx」的方式,MW為大寫,是Miaow的縮寫,balanced為小寫,意為「平衡的」,STC15為系統所用的控制晶片型號。
兩輪自平衡小車硬體組成:
* 控制晶片:IAP15W4K61S4【STC增強型51單片機,跟STC89C51一樣簡單易用】
* 姿態傳感器:MPU6050 【內置三軸加速度傳感器+三軸陀螺儀】
* 無線通信協議:藍牙SPP-C 【可用於手機藍牙遙控】
* 有線通信協議:CP2102
* 電機驅動:TB6612FNG
* 外部接口:Mirco-USB接口
* 電機:直流減速電機
* 車輪:65mm
* 電池:2000mAh大電流鋰電池
板載預留接口,增加開發性和娛樂性:
MWbalanced原理圖設計簡介
單片機最小系統
單片機選擇宏晶公司IAP15W4K61S4,它體積小(LQFP48),工作電壓寬(2.5V-5.5V),具有豐富的外設模塊,適合製作兩輪自平衡小車。
我們選擇IAP15W4K61S4作為主控晶片是有一些原因的:
一是IAP15W4K61S4是51單片機中的戰鬥機,性能滿足系統需求。
IAP15W4K61S4是STC生產的單時鐘/機器周期(1T)的增強型8051單片機,4K字節SRAM,5個16位定時器,6路15位高精度PWM,主頻能達到33.1776M。IAP15W4K61S4採用STC-Y5超高速CPU內核,在相同時鐘頻率下,速度比傳統8051快7~12倍,速度也比STC早期的1T系列單片機(如STC12/11/10系列)的速度快20%。
二是IAP15W4K61S4始終還是51單片機,簡單易學,降低學習門檻。
眾多學校開設單片機課程都是以51單片機作為講解對象,為此,大部分同學都是以「用8051單片機點亮個LED燈」的方式踏上了學習單片機這條路的。IAP15W4K61S4是STC生產的單時鐘/機器周期(1T)的增強型8051單片機,但萬變不離其宗,IAP15W4K61S4始終還只是8051單片機,容易入門的特點仍在。
我們選用STC的IAP系列單片機,而不用STC系列單片機,還有個原因是考慮到後續需要改寫Bootloader,實現無線更新固件的功能等。
STC的IAP系列單片機,和STC系列單片機的不同之處在於,整顆MCU的Flash空間,用戶可在自己的程序中進行改寫,開發用戶自己的ISP程序。例如改寫用戶bootloader,實現無線升級固件等功能。
它的主要外設包括:
1. PWM :6路15位硬體PWM+2路CCP的16位;
2. UART:4組;
3. ADC:8路10位高速ADC;
3. 定時器:共7個定時器,5個16位可重裝載定時器/計數器,2路CCP還可再實現2個定時器;
5. IO口:最多提供62個GPIO;
6. 內部存儲器資源包括: 61k程序Flash,4kSRAM。
此外,IAP15W4K61S4內部還集成了時鐘電路、內部高可靠復位電路以及看門狗電路等。下圖顯示該單片機的內部資源情況。
由於該單片機內已經包含了時鐘和復位電路,所以單片機的最小系統電路非常簡潔。
系統電源
系統採用的動力源是定製的大電流鋰電池,電池組充滿電壓達8.4V。而系統的部分晶片需要5V供電,部分晶片需要3.3V供電,所以需要電源轉換電路。MWbalanced採用的是晶片LM2940-5.0和ASM1117-3.3。
姿態傳感器
MWbalanced採用的是當下很火的的MPU6050陀螺儀加速度計一體晶片,成本不超過15元,對兩輪自平衡小車來說,它的精度和性能綽綽有餘了,MPU6050在這個價位裡面幾乎是佔有絕對的性價比優勢。首先,它將陀螺儀和加速計封裝在一起,通過IIC總線給出六個維度的ADC值;其次,晶片本身提供一個IIC從接口,供用戶接第三方的IIC器件,一般選擇是接一個電子羅盤,如HMC5883L,構成一個9軸的輸出的姿態模組。現在MPU9150已經喪心病狂的把電子羅盤功能也整合在片上了,但是要買60+元。最後,這顆晶片內部集成了一個DMP(Digital Motion Processor)處理器,能直接硬體解算四元數。這讓姿態解算不再是難事,跳過這個障礙後,就連路人都能做兩輪自平衡小車了。
電機驅動電路
由於小車需要兩組電機,因此也需要兩組H橋驅動電路。我們選用電機驅動晶片 TB6612FNG組成了電機驅動電路。一塊TB6612FNG驅動晶片內置了兩組H橋電路。
每一路電機為了能夠實現控制速度和正反轉,都分別需要一路PWM信號和兩路GPIO控制喔。
USB-Serial協議轉換
因為考慮到不是每位小夥伴手上都有USB-TTL下載模塊的,而且市面上的USB-TTL模塊質量參差不齊,質量差的還會導致電腦藍屏。於是,MWbalancdSTC15板載USB-TTL下載電路,通過一根安卓手機標配的Micro-USB線,就可以輕易簡單地進行固件更新和調試參數。如此簡單的操作步驟,想來隨便從大街拉個路人過來應該都可以完成。
藍牙透傳模塊
為了讓小車能跟上智能機泛濫的步伐,同時也是為了增加它的適應性和降低成本的考慮,我們在原來的基礎上增加了藍牙透傳SPP-C模塊,硬體焊盤上兼容藍牙2.1技術。
藍牙協議是很複雜的,要想去接觸並試圖一步一步的寫出來,在我現有的時間下,幾乎不太可能了。而將藍牙透明傳輸成串口,這就很好的將小車與安卓設備對接了,可以直接在安卓設備上面開發遙控app或者上位機。這想想也有點小激動呢,於是,我們真的這麼幹了,也成功了。
今天的硬體原理部分就到此,敬請期待下一講。
順便插個廣告:MWbalancedSTC15兩輪自平衡小車當前正在電子發燒友網眾籌,感謝大家的支持轉發,讓我們一起把51單片機也能玩high!
長按二維碼識別直達眾籌頁面