資料包:
0.png (46.28 KB, 下載次數: 66)
下載附件
2018-8-2 01:07 上傳
實物照片:
0.jpg (69.93 KB, 下載次數: 75)
下載附件
2018-8-2 01:08 上傳
0.jpg (23.51 KB, 下載次數: 55)
下載附件
2018-8-2 01:08 上傳
功能及說明 - 兩路直流電機驅動,可調速和正反轉控制。
- 兩路正交編碼器接口,可用于電機速度反饋。
- 1路USB轉串口,用于電路的參數設定。
- 6軸運動處理器件MPU6050,可用于平衡小車的開發(fā)。
- 藍牙4.0接口模塊,可通過手機上的app(TTC-BLE)對電機進行加速、減速、正反轉控制。
- DC12V供電。
- 1個USB指示燈、1個藍牙模塊指示燈、2個用戶指示燈(用戶程序控制)。
- 1個輕觸開關,供用戶程序使用。
本模塊采用DC12V供電,供電接口有2針2.54端子,并配有船型手動電源開關。 2、USB接口: USB接口為USB轉串口,選擇的芯片為CH340E,串口連接到單片機的USART0口,供用戶程序使用,并帶有LED指示燈。 3、單片機調試口和boot設定: GD32F330CBT6單片機采用的SWD調試口,開發(fā)環(huán)境MDK或IAR,開發(fā)工具為ST-LINK V2,資料中的程序兩種開發(fā)環(huán)境都支持。電路中將BOOT0腳引出,可通過跳線開關去選擇單片機的啟動程序地址,可通過跳線選擇BOOT0腳后,用USART0對用戶程序進行升級,具體操作參見單片機的數據手冊。 4、電機驅動電路 本電路中具有2路電機驅動接口,同時可以接2路正交編碼器,可對電機轉速和方向實時反饋;驅動芯片采用RZ7889,一款 DC 雙向馬達驅動電路,它適用于玩具等類的電機驅動、自動閥門電機驅動、電磁門鎖驅動等。它有兩個邏輯輸入端子用來控制電機前進、后退及制動。該電路具有良好的抗干擾性,微小的待機電流、低的輸出內阻,同時,他還具有內置二極管能釋放感性負載的反向沖擊電流。工作電壓3-15V。電機驅動用到單片機的TIMER15和TIMER16,編碼器檢測用到單片機的TIMER1和TIMER2,具體操作參見程序。 5、6軸運動傳感器電路 MPU-6050是世界上第一款集成 6 軸MotionTracking設備。它集成了3軸MEMS陀螺儀,3軸MEMS加速度計。 MPU-6050也可以通過其I2C接口連接非慣性的數字傳感器,比如壓力傳感器。MPU-6050對陀螺儀和加速度計分別用了三個16位的ADC,將其測量的模擬量轉化為可輸出的數字量。為了精確跟蹤快速和慢速的運動,傳感器的測量范圍都是用戶可控的,陀螺儀可測范圍為±250, ±500, ±1000, ±2000°/秒( dps),加速度計可測范圍為±2, ±4,±8, ±16g。 可以采用本電路中的6軸運動傳感器和2路直流電機控制做兩輪平衡小車的開發(fā)。 6、藍牙接口 藍牙接口采用的是深圳市昇潤科技有限公司的HY-254101 V1藍牙4.0模塊。使用簡單,無需任何藍牙協議棧應用經驗。支持藍牙主機、藍牙從機、藍牙主從一體,共 3 種版本。用戶接口使用通用串口設計,全雙工雙向通訊,最低波特率支持 9600bps。通過AT命令對模塊進行控制,再配上手機端的TCC-BLE軟件可以和模塊進行實時通信控制。模塊的詳細資料參照附件中資料。 7、狀態(tài)指示: 本模塊供有4個LED指示燈,分別是2個用戶程序控制用指示燈、CH340E驅動指示燈、藍牙模塊指示燈。
單片機源程序如下:
- #include "gd32f3x0.h"
- #include "systick.h"
- #include <stdio.h>
- #include "config.h"
- unsigned char rtemp[6] = {'1','2','3','4','5','6'};
- unsigned char pbuf[20];
- signed short temper;
- signed short ax,ay,az;
- signed short gx,gy,gz;
- /************************************************************************
- ** 函 數 名: main
- ** 功能描述: 主函數
- ** 輸入參數: 無
- ** 輸出參數: 無
- ** 返 回 值: 無
- ** 作 者: 王超
- ** 日 期: 2018.4
- **------------------------------------------------------------------------
- ** 修 改:
- ** 修改日期:
- *************************************************************************/
- void Rcu_Periph_Clk_Init(void)
- {
- rcu_periph_clock_enable(RCU_GPIOA);
- rcu_periph_clock_enable(RCU_GPIOB);
- rcu_periph_clock_enable(RCU_GPIOC);
- rcu_periph_clock_enable(RCU_GPIOD);
- rcu_periph_clock_enable(RCU_GPIOF);
- rcu_periph_clock_enable(RCU_USART0);
- rcu_periph_clock_enable(RCU_USART1);
- rcu_periph_clock_enable(RCU_TIMER15);
- rcu_periph_clock_enable(RCU_TIMER16);
- rcu_periph_clock_enable(RCU_TIMER1);
- rcu_periph_clock_enable(RCU_TIMER2);
- rcu_periph_clock_enable(RCU_TIMER5);
- }
- /************************************************************************
- ** 函 數 名: UserGpio_Config
- ** 功能描述: IO口初始化
- ** 輸入參數: 無
- ** 輸出參數: 無
- ** 返 回 值: 無
- ** 作 者: 王超
- ** 日 期: 2018.4
- **------------------------------------------------------------------------
- ** 修 改:
- ** 修改日期:
- *************************************************************************/
- void UserGpio_Config(void)
- {
- gpio_mode_set(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_4);//KEY
- gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_5);//STA2 LED
- gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5);
- gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_6);//STA1 LED
- gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6);
-
- //MOTO 互補PWM 死區(qū)
- gpio_af_set(GPIOB, GPIO_AF_2, GPIO_PIN_6);
- gpio_af_set(GPIOB, GPIO_AF_2, GPIO_PIN_7);
- gpio_af_set(GPIOB, GPIO_AF_2, GPIO_PIN_8);
- gpio_af_set(GPIOB, GPIO_AF_2, GPIO_PIN_9);
- gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_6);
- gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_6);
- gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_7);
- gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_7);
- gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_8);
- gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_8);
- gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_9);
- gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_9);
- //MOTO 編碼器
- gpio_af_set(GPIOB, GPIO_AF_1, GPIO_PIN_4);
- gpio_af_set(GPIOB, GPIO_AF_1, GPIO_PIN_5);
- gpio_af_set(GPIOB, GPIO_AF_2, GPIO_PIN_3);
- gpio_af_set(GPIOA, GPIO_AF_2, GPIO_PIN_15);
- gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_15);
- gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_3);
- gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_4);
- gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_5);
- }
- /************************************************************************
- ** 函 數 名: main
- ** 功能描述: 主函數
- ** 輸入參數: 無
- ** 輸出參數: 無
- ** 返 回 值: 無
- ** 作 者: 王超
- ** 日 期: 2018.4
- **------------------------------------------------------------------------
- ** 修 改:
- ** 修改日期:
- *************************************************************************/
- int main(void)
- {
- systick_config();
- Rcu_Periph_Clk_Init();
-
- UserGpio_Config();
- // Usart0_Init();//USART0初始化
- // printf("USART0 Init successfully!");
-
- MotoCtrlPwmInit();
- Encoder_M1_Init();
- Encoder_M2_Init();
- Timer5_Init();
-
- MPU_Init();
- delay_1ms(20);
- temper = MPU_Get_Temperature();
-
- Bluetooth_Init();
- //BluetoothATCmdSend("AT\r\n");
-
- while(1)
- {
-
- //MPU_Get_Accelerometer(&ax,&ay,&az);
- //MPU_Get_Gyroscope(&gx,&gy,&gz);
- //temper = TIMER_CNT(TIMER2);
- //temper = MPU_Get_Temperature();
- }
- }
- /************************************************************************
- ** 函 數 名: Delay_us
- ** 功能描述: us級延時
- ** 輸入參數: us 延時時間
- ** 輸出參數: 無
- ** 返 回 值: 無
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載(內含原理圖與pcb及gd32單片機源碼等全套開發(fā)資料):
藍牙接口的2路直流電機驅動板.zip
(14.85 MB, 下載次數: 71)
2018-8-1 10:30 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|