|
STM32 兩輪車 雙輪自平衡車 藍(lán)牙遙控 智能競(jìng)速小車全套資料
這是我 之前做的平衡小車,要做到平衡控制主要還是得理解它的運(yùn)動(dòng)狀態(tài)。
底盤(pán)鈑金3D圖及加工說(shuō)明:
厚度 3mm
鋁板
表面噴砂氧化本色處理
折彎后要保證和3D模型相同
00 - 原理圖及PCB
01 - 運(yùn)動(dòng)控制MCU源代碼(STM32F103RCT6)
02 - 姿態(tài)解算MCU源代碼(STM32F103C8T6)
03 - 安卓藍(lán)牙遙控器APK及源碼
04 - 整體BOM表格
05 - PCB BOM表格
06 - 上層和中層亞克力3D圖及CAD圖
0.png (56.19 KB, 下載次數(shù): 105)
下載附件
2018-11-17 02:12 上傳
Altium Designer畫(huà)的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.png (55.21 KB, 下載次數(shù): 96)
下載附件
2018-11-17 02:13 上傳
0.png (11.92 KB, 下載次數(shù): 104)
下載附件
2018-11-17 02:13 上傳
單片機(jī)源程序如下:
- /* main.c file
- 編譯環(huán)境:MDK-Lite Version: 4.23
- 測(cè)試: 本程序已在第七實(shí)驗(yàn)室的mini IMU上完成測(cè)試
- 功能:
- 1.初始化各個(gè)傳感器,
- 2.運(yùn)行姿態(tài)解算和高度測(cè)量
- 3.將解算的姿態(tài)和各個(gè)傳感器的輸出上傳到 MiniIMU AHRS 測(cè)試軟件
- 4.響應(yīng) PC發(fā)送的命令
- ------------------------------------*/
- /*----------------------------------------------------------------
- 修改備忘:
- 1/去掉氣壓傳感器數(shù)據(jù)接口
- 2/保持幀格式
- 3/數(shù)據(jù)輸出頻率調(diào)整為20hz
- 4/調(diào)整機(jī)頭方向
- 5/保留陀螺儀標(biāo)零偏
- 6/去掉UART1數(shù)據(jù)輸出
- 7/只輸出姿態(tài)數(shù)據(jù)結(jié)算幀
- 8/在數(shù)據(jù)融合時(shí)去掉磁力計(jì)的影響
- 9/上電數(shù)據(jù)即可用,不用等待
- ----------------------------------------------------------------*/
- #include "common.h" //包含所有的驅(qū)動(dòng) 頭文件
- //上傳數(shù)據(jù)的狀態(tài)機(jī)
- #define REIMU 0x01 //上傳解算的姿態(tài)數(shù)據(jù)
- #define REMOV 0x02 //上傳傳感器的輸出
- #define REHMC 0x03 //上傳磁力計(jì)的標(biāo)定值
- #define Upload_Speed 100 //數(shù)據(jù)上傳速度 單位 Hz
- #define upload_time (1000000/Upload_Speed) //計(jì)算上傳的時(shí)間。單位為us
- int16_t ax, ay, az;
- int16_t gx, gy, gz;
- int16_t hx, hy, hz;
- int32_t Temperature = 0, Pressure = 0, Altitude = 0;
- uint32_t system_micrsecond;
- int16_t hmcvalue[3];
- u8 state= REIMU; //發(fā)送特定幀 的狀態(tài)機(jī)
- /**************************實(shí)現(xiàn)函數(shù)********************************************
- *函數(shù)原型: int main(void)
- *功 能: 主程序
- *******************************************************************************/
- int main(void)
- {
- int16_t Math_hz=0;
- unsigned char PC_comm; //PC 命令關(guān)鍵字節(jié)
- float ypr[3]; // yaw pitch roll
- /* 配置系統(tǒng)時(shí)鐘為72M 使用外部8M晶體+PLL*/
- //SystemInit();
- delay_init(72); //延時(shí)初始化
- Initial_LED_GPIO(); //初始化STM32-SDK板子上的LED接口
- Initial_PWMLED();
- Initial_UART2(115200L);
- load_config(); //從flash中讀取配置信息 -->eeprom.c
- IIC_Init(); //初始化I2C接口
- delay_ms(300); //等待器件上電
- //UART1_Put_String("Initialize...\r\n");
- IMU_init(); //初始化IMU和傳感器
- system_micrsecond=micros();
- while(1){ //主循環(huán)
-
- //delay_ms(1); //延時(shí),不要算那么快。
- IMU_getYawPitchRoll(ypr); //姿態(tài)更新
- Math_hz++; //解算次數(shù) ++
- //-------------上位機(jī)------------------------------
- //是否到了更新 上位機(jī)的時(shí)間了?
- if((micros()-system_micrsecond)>upload_time){
- switch(state){
- case REIMU:
- UART2_ReportIMU((int16_t)(ypr[0]*10.0),(int16_t)(ypr[1]*10.0),
- (int16_t)(ypr[2]*10.0),Altitude/10,Temperature,Pressure/10,Math_hz*Upload_Speed);
- Math_hz=0;
- // state = REMOV; //更改狀態(tài)。
- break;
- case REMOV:
- MPU6050_getlastMotion6(&ax, &ay, &az, &gx, &gy, &gz);
- HMC58X3_getlastValues(&hx,&hy,&hz);
- UART2_ReportMotion(ax,ay,az,gx,gy,gz,hx,hy,hz);
- state = REIMU;
- if(HMC5883_calib)state = REHMC; //需要發(fā)送當(dāng)前磁力計(jì)標(biāo)定值
- break;
- default:
- UART2_ReportHMC(HMC5883_maxx,HMC5883_maxy,HMC5883_maxz,
- HMC5883_minx,HMC5883_miny,HMC5883_minz,0);//發(fā)送標(biāo)定值
- state = REIMU;
- break;
- }//switch(state)
- system_micrsecond=micros(); //取系統(tǒng)時(shí)間 單位 us
- LED_Change(); //LED1改變亮度
- }
- //--------------------------------------------------
- //處理PC發(fā)送來(lái)的命令
- if((PC_comm=UART2_CommandRoute())!=0xff)
- {
- switch(PC_comm){ //檢查命令標(biāo)識(shí)
- case Gyro_init: MPU6050_InitGyro_Offset(); break; //讀取陀螺儀零偏
- case High_init: break; //氣壓高度 清零
- case HMC_calib_begin: HMC5883L_Start_Calib(); break; //開(kāi)始磁力計(jì)標(biāo)定
- case HMC_calib: HMC5883L_Save_Calib(); break; //保存磁力計(jì)標(biāo)定
- }
- }// 處理PC 發(fā)送的命令
- }//主循環(huán) while(1) 結(jié)束
- } //main
- //------------------End of File----------------------------
復(fù)制代碼
所有資料51hei提供下載:
STM32 兩輪車 雙輪自平衡車 藍(lán)牙遙控 智能競(jìng)速小車全套資料.rar
(15.28 MB, 下載次數(shù): 90)
2018-11-17 02:15 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|