1.舵機云臺
功能實現:STM32F103單片機芯片調整云臺的傾斜角度,使其保持水平
1.jpg (662.96 KB, 下載次數: 123)
下載附件
3D打印的兩軸云臺模型
2019-7-21 15:20 上傳
3D打印的兩軸云臺模型
2.MPU6050傳感器測量傾斜角度
3.OLED顯示傳感器狀態(三軸角度)
2.jpg (669.86 KB, 下載次數: 99)
下載附件
OLED/MPU6050
2019-7-21 15:20 上傳
4.使用STM32F103C8T6系統板
3.jpg (769.67 KB, 下載次數: 104)
下載附件
STM32F103C8T6
2019-7-21 15:20 上傳
云臺水平狀態(約0度)
5.云臺狀態展示
4.jpg (716.84 KB, 下載次數: 96)
下載附件
云臺水平狀態(約0度)
2019-7-21 15:20 上傳
5.jpg (726.63 KB, 下載次數: 114)
下載附件
45度角調整(MPU6050為-45度)
2019-7-21 15:20 上傳
45度角調整(MPU6050為-45度)
6.主函數如下
- #include "stm32f10x.h"
- #include "delay.h"
- #include "usart.h"
- #include "ioi2c.h"
- #include "MPU6050.h"
- #include "pwm_output.h"
- #include "oled.h"
- int main(void)
- {
- float Pitch,Roll,Yaw;
-
- delay_init();
- IIC_Init();
- NVIC_Configuration();
- uart_init(9600); //串口顯示
- DMP_Init(); //DMP初始化
- TIM_Init(); //定時器初始化
- delay_ms(8000);
- OLED_Init(); //OLED初始化
- OLED_Clear();
-
- delay_ms(10000);
- OLED_Clear(); //OLED清屏
-
- //界面顯示
- OLED_ShowCHinese(16,0,1);
- OLED_ShowCHinese(30,0,2);
- OLED_ShowCHinese(44,0,3);
- OLED_ShowCHinese(58,0,4);
- OLED_ShowCHinese(72,0,5);
- OLED_ShowCHinese(86,0,6);
- OLED_ShowCHinese(100,0,7);
-
- OLED_ShowChar(0,3,'X',13);
- OLED_ShowChar(0,5,'Y',13);
- OLED_ShowChar(0,7,'Z',13);
-
- OLED_ShowChar(14,3,':',13);
- OLED_ShowChar(14,5,':',13);
- OLED_ShowChar(14,7,':',13);
- OLED_ShowChar(56,3,'.',13);
- OLED_ShowChar(56,5,'.',13);
- OLED_ShowChar(56,7,'.',13);
-
- //不斷讀取MPU6050數據
- while(1)
- {
- MPU_DMP_GET_DATA(&Pitch,&Roll,&Yaw); //獲取角度值
-
- if(Pitch<0)
- {
- OLED_ShowChar(28,3,'-',13);
- Pitch=-Pitch;
- OLED_ShowNum(36,3,(int)Pitch,3,13); //x軸
- OLED_ShowNum(62,3,(int)(Pitch*10)%10,1,13);
- TIM_SetCompare1(TIM3,180+Pitch);
- }
- else
- {
- OLED_ShowChar(28,3,' ',13);
- OLED_ShowNum(36,3,Pitch,3,13);
- OLED_ShowNum(62,3,(int)(Pitch*10)%10,1,13);
- TIM_SetCompare1(TIM3,180-Pitch);
- }
-
- if(Roll<0)
- {
- OLED_ShowChar(28,5,'-',13);
- Roll=-Roll;
- OLED_ShowNum(36,5,(int)Roll,3,13); //y軸
- OLED_ShowNum(62,5,(int)(Roll*10)%10,1,13);
- }
- else
- {
- OLED_ShowChar(28,5,' ',13);
- OLED_ShowNum(36,5,(int)Roll,3,13);
- OLED_ShowNum(62,5,(int)(Roll*10)%10,1,13);
- }
-
- if(Yaw<0)
- {
- OLED_ShowChar(28,7,'-',13);
- Yaw=-Yaw;
- OLED_ShowNum(36,7,(int)Yaw,3,13); //z軸
- OLED_ShowNum(62,7,(int)(Yaw*10)%10,1,13);
- TIM_SetCompare4(TIM3,180+Yaw);
- }
- else
- {
- OLED_ShowChar(28,7,' ',13);
- OLED_ShowNum(36,7,(int)Yaw,3,13);
- OLED_ShowNum(62,7,(int)(Yaw*10)%10,1,13);
- TIM_SetCompare4(TIM3,180-Yaw);
- }
- }
- }
復制代碼 全部程序51hei下載地址:
舵機云臺.7z
(250.03 KB, 下載次數: 526)
2019-7-21 15:14 上傳
點擊文件名下載附件
完整代碼 下載積分: 黑幣 -5
|