|
首先說一下硬件用的哪些:主控芯片用的是100腳的STM32F103VET6,陀螺儀用的是MPU6050,電機驅動用的是TB6612,藍牙是匯承的HC05郵票孔封裝的,WIFI用的是濟南有人科技的USR-WIFI232-S,小車底盤用的是平衡小車之家的某一款帶編碼器的(不是我買的,同學的),電池用的是一節(jié)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,可作為普通的串口收發(fā)數據,通過調節(jié)板上BOOT選項,也可將其作為ISP下載程序接口;第二個是SWD硬件仿真接口;藍牙模塊,與MCU的串口2連接;WIFI模塊,與MCU的串口3相連;一塊1.3寸IIC協(xié)議的液晶接口;超聲波接口;雙電機驅動;六軸陀螺儀;電池電壓檢測;4個用于調試的LED;4個獨立式按鍵;一組4P的撥碼開關;有源蜂鳴器;兩個6P帶AB相編碼器的電機接口。
再說一下硬件配套的軟件:這份配套的軟件,也算是我一點一點黏貼拼湊實測出來的,模塊分的很清楚。再來說一下個人的感覺吧,網上資料一大堆,但是大多都是只有程序,沒有對應的較為完整電路原理圖。很少見到軟硬件全部開源并且能夠對應的資料。所以就帶來這樣一個后果,我們用別人的程序,我們自己畫的電路。舉個例子,某寶上賣這個的程序我看過,個人覺得,如果不搭配他的硬件,想用自己的硬件而直接把他的軟件工程拿過來修改的話,很煩很亂基本上是扯淡。因為里面東西牽涉太多,你第一次做并不知道哪些是無關緊要哪些是必不可少的,比如藍牙的遙控部分,超聲波部分啊等等這些在他完整版的工程里面都是寫好的,再者我們肯定是先調直立環(huán),然后在調試速度環(huán)和方向環(huán),所以你把他完整版的工程拿過來用,你告訴我怎么刪減或者怎么注釋掉速度環(huán)、方向環(huán)和一些錦上添花的功能模塊呢?還有很多地方都是寄存器直接配置,我完全看不懂不知道怎么修改,一頭霧水。所以最好的辦法就是,參照別人的程序,一點一點自己粘貼然后修改底層搭建自己的工程。或者你也可以把自己的電路畫的跟別人的一樣,避免修改別人的底層,這樣你粘貼過來甚至都不用改就能用了。PS:我分享出來的是配套的硬件+軟件,毫不夸張的說,直接把我這個PCB送去打樣回來焊接好,程序燒寫進去,調下參數就應該可以簡單直立了。
最后簡單展示一下分享的資源,至于源文件全部在附件可下載。最后希望可以幫助到真正需要的人。
這是電路原理圖:
原理圖.png (149.16 KB, 下載次數: 178)
下載附件
原理圖
2018-8-16 13:27 上傳
這是PCB圖:
2D視圖下PCB圖.png (146.94 KB, 下載次數: 157)
下載附件
2018-8-16 13:28 上傳
這是打樣好的PCB:
PCB實物圖.PNG (3.99 MB, 下載次數: 155)
下載附件
PCB實物圖
2018-8-16 13:30 上傳
這是程序框架圖:
源碼截圖.png (144.06 KB, 下載次數: 136)
下載附件
源程序框架圖
2018-8-16 13:33 上傳
這是最后搭建好的實物圖:
實物效果圖.png (699.52 KB, 下載次數: 143)
下載附件
實物效果圖
2018-8-16 13:35 上傳
源程序:
- /* Includes ------------------------------------------------------------------*/
- #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"
- /* define---------------------------------------------------------------------*/
- 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第一行顯示: 賀梓洹畢業(yè)設計
- 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);
- }
- }
復制代碼
以下是源文件:
電路原理圖:
平衡車原理圖.zip
(77.55 KB, 下載次數: 556)
2018-8-16 09:41 上傳
點擊文件名下載附件
原理圖 下載積分: 黑幣 -5
PCB圖:
平衡車PCB.zip
(11.55 MB, 下載次數: 483)
2018-8-16 13:45 上傳
點擊文件名下載附件
PCB 下載積分: 黑幣 -5
BOM表:
平衡車元器件清單表.pdf
(90.52 KB, 下載次數: 445)
2018-8-16 13:41 上傳
點擊文件名下載附件
BOM表 下載積分: 黑幣 -5
源程序:
自平衡小車源程序.rar
(408.3 KB, 下載次數: 614)
2018-8-16 19:08 上傳
點擊文件名下載附件
源程序 下載積分: 黑幣 -5
|
評分
-
查看全部評分
|