硬件介紹
主控芯片用的是100腳的STM32F103VET6,陀螺儀用的是MPU6050,電機(jī)驅(qū)動(dòng)用的是TB6612,藍(lán)牙是匯承的HC05郵票孔封裝的,WIFI用的USR-WIFI232-S,小車底盤用的是平衡小車之家的某一款帶編碼器的(不是我買的,同學(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四腳插板牛角母座,超聲波是某寶上幾塊錢爛大街的那種,蜂鳴器是有源的,編碼器是小車底盤自帶的,電池電壓檢測(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)牙的遙控部分,超聲波部分在完整版的工程里面都是寫好的。最好的辦法就是,參照這個(gè)程序,一點(diǎn)一點(diǎn)自己粘貼然后修改底層搭建自己的工程。或者你也可以把自己的電路畫的跟別人的一樣,避免修改別人的底層,這樣你粘貼過(guò)來(lái)甚至都不用改就能用了。相關(guān)推薦:做一個(gè)STM32小車很簡(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); }}
獲取相關(guān)資源
請(qǐng)通過(guò)此小程序的在線客服,聯(lián)系獲取。
原文標(biāo)題:STM32平衡小車,文末附代碼、電路圖等資源獲取方式
文章出處:【微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
pcb
+關(guān)注
關(guān)注
4326文章
23170瀏覽量
400109 -
編碼器
+關(guān)注
關(guān)注
45文章
3673瀏覽量
135286 -
STM32
+關(guān)注
關(guān)注
2272文章
10925瀏覽量
357710 -
主控芯片
+關(guān)注
關(guān)注
2文章
201瀏覽量
24779
原文標(biāo)題:STM32平衡小車,文末附代碼、電路圖等資源獲取方式
文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何做一個(gè)hpm6750evk2的bootloader?
用THS3001電流反饋運(yùn)放做一個(gè)簡(jiǎn)單同向放大5倍時(shí),顯示過(guò)載保護(hù)的原因 ?
用OPA657做一個(gè)最簡(jiǎn)單的同相放大電路,輸出異常的原因?
第13章-循跡功能 STM32智能小車循跡教程 PID循跡算法分析
![第13章-循跡功能 <b class='flag-5'>STM32</b>智能<b class='flag-5'>小車</b>循跡教程 PID循跡算法分析](https://file1.elecfans.com/web2/M00/03/DE/wKgaoma-0pmAR3CNAApyrE_srdI256.png)
用OPA129搭了一個(gè)很簡(jiǎn)單的正向放大電路,電路不工作的原因?
19.3-星曈科技 openmv Hopenmv發(fā)送五個(gè)uchar Openmv+STM32F103C8T6視覺(jué)巡線小車 STM32循跡小車系列教程
![19.3-星曈科技 openmv Hopenmv發(fā)送五<b class='flag-5'>個(gè)</b>uchar Openmv+<b class='flag-5'>STM32</b>F103C8T6視覺(jué)巡線<b class='flag-5'>小車</b> <b class='flag-5'>STM32</b>循跡<b class='flag-5'>小車</b>系列教程](https://file1.elecfans.com/web2/M00/03/DF/wKgaoma-11WAeNKnAARmh75k2yc492.png)
19.4-STM32接收數(shù)據(jù)-狀態(tài)顯示在屏幕 openMV尋跡與小車控制 Openmv+STM32F103C8T6視覺(jué)巡線小車
![19.4-<b class='flag-5'>STM32</b>接收數(shù)據(jù)-狀態(tài)顯示在屏幕 openMV尋跡與<b class='flag-5'>小車</b>控制 Openmv+<b class='flag-5'>STM32</b>F103C8T6視覺(jué)巡線<b class='flag-5'>小車</b>](https://file1.elecfans.com/web2/M00/03/DF/wKgaoma-16iAactHAAL5m8eVl1M471.png)
20.3-使用兩個(gè)通道進(jìn)行電磁循跡 智能車競(jìng)賽 電磁桿原理圖 電磁循跡小車 STM32電磁小車 電磁循跡算法
![20.3-使用兩<b class='flag-5'>個(gè)</b>通道進(jìn)行電磁循跡 智能<b class='flag-5'>車</b>競(jìng)賽 電磁桿原理圖 電磁循跡<b class='flag-5'>小車</b> <b class='flag-5'>STM32</b>電磁<b class='flag-5'>小車</b> 電磁循跡算法](https://file1.elecfans.com/web2/M00/02/F9/wKgZoma-8POAIgCCAAR1IORoZDg608.png)
20.2-電磁桿在磁軌道的測(cè)試 零基礎(chǔ)入門智能車競(jìng)賽 STM32電磁小車
![20.2-電磁桿在磁軌道的測(cè)試 零基礎(chǔ)入門智能<b class='flag-5'>車</b>競(jìng)賽 <b class='flag-5'>STM32</b>電磁<b class='flag-5'>小車</b>](https://file1.elecfans.com/web2/M00/02/F9/wKgZoma-8JuAQBFFAAcDbc4hsWI992.png)
第七章-V1.5 STM32超聲波測(cè)距STM32F103C8t6超聲波避障小車 超聲波避障模塊 STM32超聲波測(cè)距
![第七章-V1.5 <b class='flag-5'>STM32</b>超聲波測(cè)距<b class='flag-5'>STM32</b>F103C8t6超聲波避障<b class='flag-5'>小車</b> 超聲波避障模塊 <b class='flag-5'>STM32</b>超聲波測(cè)距](https://file1.elecfans.com/web2/M00/01/DD/wKgZoma4ch2AFCJBAAEKyDFszYU903.png)
評(píng)論