硬件介紹
主控芯片用的是100腳的STM32F103VET6,陀螺儀用的是MPU6050,電機驅動用的是TB6612,藍牙是匯承的HC05郵票孔封裝的,WIFI用的USR-WIFI232-S,小車底盤用的是平衡小車之家的某一款帶編碼器的(不是我買的,同學的),電池用的是一節7.2的鎳鎘電池,液晶用的是1.3寸IIC接口的OLED,開關用的是三腳紐子開關,電池接口用的是T插,電阻電容這些用的基本上是0603封裝,編碼器5V降壓用的是ASM1117-5.0,3.3V降壓用的是SP6203,撥碼開關用的是4P貼片式2.54mm角距的,按鍵是兩腳貼片,microusb接口用的是5針 7.2四腳插板牛角母座,超聲波是某寶上幾塊錢爛大街的那種,蜂鳴器是有源的,編碼器是小車底盤自帶的,電池電壓檢測是電阻分壓之后通過電壓跟隨器接入MCU內部AD測量的。 STM32F103VET6主控芯片;兩個microusb口,第一個是MCU的串口1,可作為普通的串口收發數據,通過調節板上BOOT選項,也可將其作為ISP下載程序接口;第二個是SWD硬件仿真接口;藍牙模塊,與MCU的串口2連接;WIFI模塊,與MCU的串口3相連;一塊1.3寸IIC協議的液晶接口;超聲波接口;雙電機驅動;六軸陀螺儀;電池電壓檢測;4個用于調試的LED;4個獨立式按鍵;一組4P的撥碼開關;有源蜂鳴器;兩個6P帶AB相編碼器的電機接口。 如下是電路原理圖:
如下打樣好的PCB:
軟件介紹
這份配套的軟件,模塊分的很清楚。比如藍牙的遙控部分,超聲波部分在完整版的工程里面都是寫好的。最好的辦法就是,參照這個程序,一點一點自己粘貼然后修改底層搭建自己的工程。或者你也可以把自己的電路畫的跟別人的一樣,避免修改別人的底層,這樣你粘貼過來甚至都不用改就能用了。相關推薦:做一個STM32小車很簡單嗎? 如下是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(); //滴答定時器初始化 OLED_Init(); //OLED引腳初始化 OLED_Clear(); //OLED清屏 OLED_First_Line(); //OLED第一行顯示: 賀梓洹畢業設計 LED_Init(); //LED引腳初始化 Speak_Init(); //蜂鳴器引腳初始化 Switch_Init(); //撥碼開關引腳初始化 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
+關注
關注
2257文章
10822瀏覽量
352421 -
電機驅動
+關注
關注
60文章
1162瀏覽量
86278 -
主控芯片
+關注
關注
2文章
179瀏覽量
24477
原文標題:STM32平衡小車,文末附代碼、電路圖等資源獲取方式
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論