|
本作品設(shè)計(jì)的是小型四軸飛行器,采用一體化的設(shè)計(jì)思路,就是機(jī)身和處理器板作為一個(gè)整體,小型四軸器的處理器使用STM32F103芯片,傳感器使用MPU6050,接收板使用STM32F4 Discovery開發(fā)板,使用IIC總線的方式與處理器連接;遙控板上面使用NRF24L01無線芯片,通過上位機(jī)利用自己定義的協(xié)議來完成小型四軸飛行器的姿態(tài)顯示和控制;采用空心杯電機(jī)和兩對正反槳,電池使用4.1V的鋰電池;整個(gè)系統(tǒng)的電源控制部分采用662K穩(wěn)壓芯片,這樣可以確保供電的穩(wěn)定性,保證系統(tǒng)穩(wěn)定可靠的運(yùn)行。
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
單片機(jī)源程序如下:
- /* Includes ------------------------------------------------------------------*/
- #include "stm32f10x.h"
- #include "BSP/BSP.H"
- #include "app/uart/uart1.h"
- #include "app/rc/rc.h"
- #include "BSP/ultrasonic.H"
- #include "bsp/tim.h"
- //#include "STM32_I2C.h"
- /*
- TIM3
- TIM1
- */
- extern void i2cInit(void);
- //#define CLI() __set_PRIMASK(1)
- //#define SEI() __set_PRIMASK(0)
- ////////////////////////////////////////////////////////////////////////////////
- //extern void Tim7_Init(u16 period_num);//用于精確延時(shí)
- void SYS_INIT(void)
- {
- //MCO_INIT(); //時(shí)鐘輸出初始化 2.4G 時(shí)鐘
- //LED_INIT(); //LED初始化
- //LED_FLASH(); //LED閃亮
- Tim3_Init(500); //1000=1MS,500=0.5MS
- //Tim7_Init(500); //1000=1MS,500=0.5MS
-
- Moto_Init(); //電機(jī)初始化
- //Uart1_Init(500000);
- Spi2_Init();
- Nvic_Init(); //中斷初始化
- Nrf24l01_Init(MODEL_TX2,40);
- if(Nrf24l01_Check()) Uart1_Put_String("FLY_NRF24L01 IS OK !\r\n");
- else Uart1_Put_String("FLY_NRF24L01 IS NOT OK !\r\n");
- i2cInit(); //I2c初始化
- MPU6050_Init();
- //Ultrasonic_Init();
- ADC1_Init();//電壓檢測初始化
- FLASH_Unlock();//模擬EEROM初始化
- EE_INIT();
- EE_READ_ACC_OFFSET();
- EE_READ_GYRO_OFFSET();
- EE_READ_PID();
- }
- ////////////////////////////////////////////////////////////////////////////////
- int main(void)
- {
- SYS_INIT_OK=0;
- SYS_INIT();
- SYS_INIT_OK=1;
- while (1)
- {
-
- }
- }
- ////////////////////////////////////////////////////////////////////////////////
復(fù)制代碼
所有資料51hei提供下載:
程序源碼.7z
(279.18 KB, 下載次數(shù): 56)
2019-6-3 04:49 上傳
點(diǎn)擊文件名下載附件
硬件設(shè)計(jì).zip
(819.17 KB, 下載次數(shù): 49)
2019-6-2 19:07 上傳
點(diǎn)擊文件名下載附件
|
評分
-
查看全部評分
|