STM32野火开源平衡小车(八)之蓝牙控制

野火开源平衡车官网板块

https://www.firebbs.cn/forum.php?mod=forumdisplay&fid=129&page=1

参考资料

暂无

参考视频(这个群主讲的不错)

https://www.bilibili.com/video/BV1j7411z7uX

硬件平台

开发平台

KEIL5, STM32F103X主控,程序用的SWD下载(啥下载器都行,能下载进去就好,用串口下载也是可以的)

开发(一) 

蓝牙

对应RX->PC11, TX- >PC10

但是特么的 103RB只有3个串口  还好可以 重映射

PC10和11用到部分影射

用大鱼电子的APP控制 ,下面的为手机app发送的控制指令

定义 前后左右 当收到不同信息时控制车车

串口发送处理

中断中添加

转向环修改下

main函数这边

我这边车车没电了 先冲回儿再回来

充了3小时 满电了 继续

名字初始应该叫C04啥来着(不是HC04) 蜜月是1234

有点问题,我串口收不到数据(点灯法灯没变)

今天先休息下

 

问题发现, 没有配置优先级

我之前一直以为不配置NVIC优先级是按硬件序号来排的,现在才明白配置了才能正常用

 

中断有问题, 能进入中断,但获得的数据不对,但我用串口1连电脑,是正常接到的

发现问题了

 我这边用的不是手机,而是电脑

所以 要发送hex的,而不是ASCII码

我这边OK了

 

接下来可能调一调 为什么上电的时候 电机有时候会猛转不受控制了

 

蓝牙控制展示视频: 最后翻车了 还好有加入翻车停转功能, 过去把开关关掉再拿起来就好

https://www.bilibili.com/video/av884298074

 

1~8讲代码

链接:https://pan.baidu.com/s/1UOCezulDi394chRHvSFHAQ 
提取码:nymb

 

声明:该设计资料转自lb8820265网友分享,仅供学习参考,不可用于商业用途。 继电路城之前该小车资料, 手机遥控蓝牙平衡小车V1资料全部开源(https://www.cirmall.com/circuit/6201/detail?3), 现介绍该蓝牙平衡小车V1.1(BlueNRG+虚拟摇杆)开源设计(https://www.cirmall.com/circuit/6202/detail?3)。 前面介绍了基于CC2541的蓝牙模块平衡小车,之前BlueNRG由于损坏所以才采用CC2541,这次又得到了一块BlueNRG,现在集齐三块ST的模组可以召唤神龙了,之前预留了BlueNRG的6个接口,所以只需要直接将扩展板插在传感器板上就可以了,然后再增加一点高度。 这里主要是虚拟的摇杆的实现,详细“相关文件”下载 视频演示: CC2541模块厂家已经写好相关代码使其变成一个透传模块,而BlueNRG是需要自己写好代码的,不过好在ST已经有了例程,而且也是使用STM32F4来驱动,这就大大的方便了开发,BlueNRG相关工具和软件下载地址:https://www.st.com/web/en/catalog/tools/PF261442点击最下面download。 进入X-CUBE-BLE1\Projects\Multi\Applications\SampleApp,这是一个简单的使用蓝牙对话的例程,可以直接烧到STM32F411板子中查看效果,打开手机蓝牙搜索,可以搜索到BlueNRG_Chat的蓝牙,连接就后可以发送和接收数据了,查看工程中的代码也是十分简单的,有详细的注释,初始化之后,就是两个函数HCI_Process()与User_Process(),第一个函数用来处理各种事件,第二个是用户函数里面是一个监听按键并发送的函数。 数据的收取主要是在ample_service.c中case EVT_BLUE_GATT_ATTRIBUTE_MODIFIED:和case EVT_BLUE_GATT_NOTIFICATION:两个事件中,第一个用来接收数据,第二个用来接收通知信息。 另一个重要的改进是添加了虚拟摇杆,可以在虚拟摇杆与SEEKBAR之间切换,同时简化了界面,如下图所示: 更新:修复复杂环境下搜索BLE崩溃BUG, 采用JUMA SDKAndroid源代码:https://github.com/flyloong/NUCLEO_Balance_Car_Android STM32F411源代码:https://github.com/flyloong/NUCLEO_Balance_Car_STM32
声明:该设计资料转自lb8820265网友分享,仅供学习参考,不可用于商业用途。 手机遥控蓝牙平衡小车概述: 蓝牙平衡玩具小车,具有的功能有:手机APP虚拟遥感控制模式,自动行走避障模式,碰撞自动后退,倒下自动停止,预警模式,跳舞模式,说话,语音表情,压强播报,温度播报,湿度播报,前方障碍物距离播报,PC上位机无线调参,示波器显示,3D姿态显示。是集趣味性,智能性,易操作性,可研究性于一体的蓝牙平衡小车。 视频演示: 采用的硬件如下: 处理器: Nucleo STM32F411核心板 传感器模块: Nucleo IKS01A1(包括陀螺仪,加速度计,磁力计,温度计,湿度计,压强计) 蓝牙模块: CC2541 蓝牙4.0模块 无线模块: NRF24L01+模块 电机驱动模块: BT6612模块 测距模块: 夏普2Y0A21红外测距模块 舵机: SG90模拟舵机 语音模块: SYN6658语音模块 电池: 狮子11.1V 2200mAh 电源: LM2596电源模块 电机: 诗凯支架自带,3530直流减速电机 光电编码器: 电机自带,13440线每轮转,AB相输出 手机: 魅族MX3 上位机接收端: MSP430G2553核心板 电脑: 这个随意 整个系统的硬件拆解图图下图所示: 整个系统可大致分为4个部分,分别是:小车部分,上位机接收机,PC上位机,安卓手机控制端。 4个部分的关系如下图所示: 其中以平衡小车为中心,能将信息通过无线发送给上位机接收端,上位机接收端再将数据通过串口的形式发送给PC上位机。同时上位机亦可以发送调参与控制指令给上位机接收端,上位机接收端再将信息发送给平衡小车。安卓APP也能通过蓝牙传输信息给CC2541模块,将信息通过串口的形式发送给平衡小车进行控制。 编写的软件如下: 小车: 采用IAR7.3编写 上位机接收端: 采用CCS5.1编写 上位机: 采用VC6.0 MFC编写 手机APP: 采用Android studio 1.2.2编写 手机APP 之前的帖子已经讲了,如何实现蓝牙4.0的收发,那么接下来就是通信协议的制定与界面的编辑了, 下图是手机APP的截图: PC上位机端 上位机采用VC6.0编写,PC上位机主要是用来进行参数调整、虚拟示波器显示波形、3D姿态显示。下图是上位机截图。采用MSComm串口控件进行数据的发送与接收。能够进行端口扫描,并连接串口,实现数据发送,错误显示,实现了4个整形数字与4个浮点数的调整,并且能够读取系统的原始数据,显示发送状态,且能够显示信号强弱,同时能够进行示波器显示,调节显示间隔。 由于采用的是NRF24L01+带数据的ACK模式进行数据传输,所以上位机不发送数据的时候,小车并不会发送回来,所以上位机能够掌握显示数据的间隔。示波器采用的IPlot控件,能够实现4个数据波形显示,且能够让任意一组数据显示、实现轴的缩放、在顶端显示数值。3D姿态显示采用的是OpenGL库,画出小车模型,设置为半透明,能实时清晰的显示小车的姿态。 PC上位机示波器显示紧挨着3D姿态显示亲热照! 蓝牙平衡玩具小车全家福!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值