基于STM32F103C8芯片的蓝牙遥控器

使用软件:嘉立创EDA(专业版)

                 Keil uVision5

一、3D模型

遥控外壳上部分

遥控上部分主要有两个PS5遥控杆;一个0.96OLED;一个电源开关;一个指示灯;7个按键开孔。
遥控外壳上部分

遥控外壳下部分

遥控上部分主要有电池盒安装孔;电池盒对接孔;程序下载口;PCB板固定孔
遥控外壳下部分

电池盒

电池盒部分:UPS升压电源固定孔;;预留充电口;电池盒固定孔;
电池盒

3D模型

3D模型

二、电路原理

立创EDA上的元件与封装现有的直接拿来用;
没有的也只是画了个2D图形;
原理图01
原理图02

三、电气元器件介绍

UPS升压电源(3A)作用:充电;提供5V;
考虑实用性在嘉立创开源广场找了个

UPS升压电源(3A)

UPS升压电源(3A)
USB转TTL作用:调试STM32串口;调试设置蓝牙;

CH340G
电池盒作用:安装电池——并联
电池盒
蓝牙模块作用:近距离通信
蓝牙模块
0.96OLED 作用:信息显示
0.96OLED
锂电池作用:提供3.7V
锂电池
按键作用:控制方向;控制信息显示;
按键
PS2遥控杆作用:控制方向
PS2遥控杆

四、安装总结

五、程序设计

1.电池电压监控:OLED显示电压电量;
当电池电量小于10%时,OLED显示欠压(字较大些)并一秒一闪;
2.左PS2遥控杆实现左旋转右旋转;
右PS2遥控杆实现前后左右运动;OLED显示当前运动状态;
3.上下左右按键实现前后左右运动;OLED显示当前运动状态;
ABC按键;OLED显示当前模式;
A按键实现确认;
B按键实现上下翻页;
C按键实现页内移动;
4.蓝牙模块进行数据通信;OLED显示当前是否连接;
WIFI符号–有(已连接);WIFI符号–无(未连接)
蓝牙模块依据,OLED显示并选择的当前模式发送不同的代码;
5.目标模式:可控制4轮车;
平衡车;
四旋翼;
小船;等

六、代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你好!以下是一个基于STM32的蓝牙遥控器代码示例,使用USART2作为蓝牙串口通信接口: ```c #include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #define USART2_TX_PIN GPIO_Pin_2 #define USART2_RX_PIN GPIO_Pin_3 void USART2_Init() { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); GPIO_InitStructure.GPIO_Pin = USART2_TX_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = USART2_RX_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART2, &USART_InitStructure); USART_Cmd(USART2, ENABLE); } void USART2_PutChar(char c) { while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET) ; USART_SendData(USART2, c); } void USART2_PutString(char *str) { while (*str) USART2_PutChar(*str++); } char USART2_GetChar() { while (USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET) ; return USART_ReceiveData(USART2); } int main() { USART2_Init(); char receivedData; while (1) { receivedData = USART2_GetChar(); // 在此处添加你的代码,根据接收到的数据执行相应的操作 // 示例:将接收到的数据原样发送回去 USART2_PutChar(receivedData); } } ``` 这段代码初始化了USART2作为蓝牙串口通信接口,并提供了发送和接收数据的函数。你可以在`main`函数中添加你自己的逻辑来处理接收到的数据,执行相应的遥控操作。 请注意,具体的实现可能因你使用的具体硬件和蓝牙模块而有所不同。你需要根据实际情况进行适当的修改和调整。希望对你有所帮助!如果有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃突兔兔突秃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值