硬件介紹
主控芯片用的是100腳的STM32F103VET6,陀螺儀用的是MPU6050,電機(jī)驅(qū)動(dòng)用的是TB6612,藍(lán)牙是匯承的HC05郵票孔封裝的,WIFI用的USR-WIFI232-S,小車(chē)底盤(pán)用的是平衡小車(chē)之家的某一款帶編碼器的(不是我買(mǎi)的,同學(xué)的),電池用的是一節(jié)7.2的鎳鎘電池,液晶用的是1.3寸IIC接口的OLED,開(kāi)關(guān)用的是三腳紐子開(kāi)關(guān),電池接口用的是T插,電阻電容這些用的基本上是0603封裝,編碼器5V降壓用的是ASM1117-5.0,3.3V降壓用的是SP6203,撥碼開(kāi)關(guān)用的是4P貼片式2.54mm角距的,按鍵是兩腳貼片,microusb接口用的是5針 7.2四腳插板牛角母座,超聲波是某寶上幾塊錢(qián)爛大街的那種,蜂鳴器是有源的,編碼器是小車(chē)底盤(pán)自帶的,電池電壓檢測(cè)是電阻分壓之后通過(guò)電壓跟隨器接入MCU內(nèi)部AD測(cè)量的。 STM32F103VET6主控芯片;兩個(gè)microusb口,第一個(gè)是MCU的串口1,可作為普通的串口收發(fā)數(shù)據(jù),通過(guò)調(diào)節(jié)板上BOOT選項(xiàng),也可將其作為ISP下載程序接口;第二個(gè)是SWD硬件仿真接口;藍(lán)牙模塊,與MCU的串口2連接;WIFI模塊,與MCU的串口3相連;一塊1.3寸IIC協(xié)議的液晶接口;超聲波接口;雙電機(jī)驅(qū)動(dòng);六軸陀螺儀;電池電壓檢測(cè);4個(gè)用于調(diào)試的LED;4個(gè)獨(dú)立式按鍵;一組4P的撥碼開(kāi)關(guān);有源蜂鳴器;兩個(gè)6P帶AB相編碼器的電機(jī)接口。 如下是電路原理圖:
如下打樣好的PCB:
軟件介紹
這份配套的軟件,模塊分的很清楚。比如藍(lán)牙的遙控部分,超聲波部分在完整版的工程里面都是寫(xiě)好的。最好的辦法就是,參照這個(gè)程序,一點(diǎn)一點(diǎn)自己粘貼然后修改底層搭建自己的工程。或者你也可以把自己的電路畫(huà)的跟別人的一樣,避免修改別人的底層,這樣你粘貼過(guò)來(lái)甚至都不用改就能用了。相關(guān)推薦:做一個(gè)STM32小車(chē)很簡(jiǎn)單嗎? 如下是main.c代碼:
#include"stm32f10x.h"#include "stdio.h"#include "systic.h"#include "OLED.h"#include "MPU6050.h"#include "LED.h"#include "Buzzer.h"#include "Switch.h"#include "Key.h"#include "Motor.h"#include "USART.h"#include "TIM.h" uint32_t Main_Count = 0;uint8_t Key_num = 0;uint32_t Test;uint8_t Temp[20]; int main(void){ USART_NVIC_Configuration(); // 配置串口中斷 USART_Config(); // 配置串口 SysTick_Init(); //滴答定時(shí)器初始化 OLED_Init(); //OLED引腳初始化 OLED_Clear(); //OLED清屏 OLED_First_Line(); //OLED第一行顯示: 賀梓洹畢業(yè)設(shè)計(jì) LED_Init(); //LED引腳初始化 Speak_Init(); //蜂鳴器引腳初始化 Switch_Init(); //撥碼開(kāi)關(guān)引腳初始化 Key_Init(); //按鍵引腳初始化 MPU6050_Init(); PWM_Init(7199,0); TIM_Config();// Speak=1;// Delay_s(1);// Speak=0;while(1) {// KeyScan(); // if(Key1_Count==1)// {// Key1_Count=0;// kp=kp+3;// }// OLED_ShowNum(0,6,Key1_Count,6,16);//顯示ASCII字符的碼值// OLED_ShowNum(0,4,Key2_Count,6,16);//顯示ASCII字符的碼值// OLED_ShowNum(0,6,Key3_Count,3,16);//顯示ASCII字符的碼值// OLED_ShowNum(103,6,Key4_Count,3,16);//顯示ASCII字符的碼值// Delay_ms(5);// OLED_ShowNum(103,6,Key4_Count,3,16);//顯示ASCII字符的碼值 // LED2=0;// LED3=0;// LED4=0;// Speak=0;// Delay_s(1);//// LED1=1;// LED2=1;// LED3=1;// LED4=1;// Speak=1;// Delay_s(1); // READ_MPU6050();// Kalman_Filter(Data_6050.Acc_X , Data_6050.Gryo_Y); //// //GyroX++;// OLED_ShowNum(103,2,Data_6050.Acc_X,3,16);//顯示ASCII字符的碼值 //// //GyroY++;// OLED_ShowNum(103,4,Data_6050.Gryo_Y,3,16);//顯示ASCII字符的碼值 //// //GyroZ++;// OLED_ShowNum(103,6,angle,3,16);//顯示ASCII字符的碼值 // Delay_ms(100); }}
-
STM32
+關(guān)注
關(guān)注
2264文章
10854瀏覽量
354291 -
電機(jī)驅(qū)動(dòng)
+關(guān)注
關(guān)注
60文章
1193瀏覽量
86553 -
主控芯片
+關(guān)注
關(guān)注
2文章
186瀏覽量
24578
原文標(biāo)題:STM32平衡小車(chē),文末附代碼、電路圖等資源獲取方式
文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論