现在介绍该手机遥控十分mimi蓝牙小车V2版本设计 CannonRobot将会拥有的功能如下: 1. 手机遥控小车两轮行走 2. 包括两个手臂,一个头部,共5个舵机 3. 手臂可以接取东西,可以在地上自动爬起来 4. 可以反馈电池电量到手机 5. MP3播放,录音 6. 手机调参软件 7. 支持无头模式、方向盘模式、重力感应模式 8. 运行微型操作系统 9. 惯性导航(待定) 10. 智能语音(待定) 11. 智能避障(待定) 12. 物联网智能家居功能(待定) 硬件组成: 这次的小车将会十分mini,主控芯片采用小钢炮开发板,上面集成了stm32f401,BlueNRG,陀螺仪,加速度计,磁力计,温度计,湿度计,压强计,TF卡槽。电机驱动是TB6612,语音芯片采用WM8978,测距我想采用VL53L0,目前这款芯片现在还未量产。 小车主要是由一块小钢炮开发板、一块PCB板、一块STA350BW语音板、三个舵机、小车支架组成,相关物料见“相关文件”下载。舵机粘在了面板上,将语音板粘在舵机上,喇叭粘在语音板上,所有的接线全是用细线焊接出来的,实在是不好看呢。其中还需要将LED灯拆下,因为语音的IIC使用的是PB3与PB10,并没有使用板子留出的IIC,PB3正好是LED灯的接口,IIC这里需要注意加一个上拉电阻,不加也可以,不过偶尔会出现干扰的情况。 注意:上面的电源模块需要先调好5V电压然后才焊接上去。如果没有使用舵机和语音那么下面的6V电压模块就可以不焊接了。 视频演示: 主要文件: STM32端源码使用KEIL5打开,主要文件及功能如下: 代码运行流程: 整个代码分为两个部分,一个是被操作系统接管的部分,一个是独立与操作系统的部分。独立于操作系统的部分主要是用来控制小车直立,主要是出于实时性的考虑。被操作系统接管的部分,主要是为了享受操作系统带来的便利。 先来看看独立于操作系统的部分,这里主要是由两个中断驱动的,IMU配置为fifo模式,阈值设为6,开启中断,IIC使用DMA传输,开启中断。因此流程为IMU的fifo充满6个12位数据触发外部引脚中断,在中断函数中利用IIC的DMA读取,读取完进入IIC中断,中断函数中处理数据,并进行小车控制。这里的中断不想让操作系统接管,主要原因是为了增强实时性,同时也使得系统变得简单。 (Tips:IMU的IIC频率可以设置为1MHz,IMU的pulling模式读取数据需要将CTRL3_C寄存器中的BDU位置1,不然会有小概率出现错值) 操作系统部分,初始化函数在on_ready();都是直接初始化,蓝牙的初始化在有专门在初始化任务执行,这是因为蓝牙的初始化会有SPI引脚中断,而由于SPI是非可重入函数,这里做了互斥量所以这里SPI中断被操作系统接管了。任务包括:蓝牙接收任务,蓝牙发送任务,音乐播放任务(当无TF不会初始化),音乐播放控制任务(当无TF不会初始化),LED闪烁任务(当有TF时时不会初始化),电压发送函数,主函数任务,SPI中断任务,蓝牙初始化任务,任务的初始化后都有注释。以后也许还会有更多的任务。 蓝牙数据协议: JUMA的蓝牙包将原本20字节的数据变成了1字节的type,1字节长度,18字节的数据。本协议中type发送与接收永远都是1,这里可以理解为数据帧头吧,然后长度的这一字节没有用到,怕不准,因为AndroidSDK发送是1字节type,后面接着数据,长度自动计算出来的,这个并不可靠。然后后面18个字节的数据,第一个字节是数据的ID,因为从APP发送过来的数据类型相当多(目前有7个),所以需要将数据都一一编号,这就是ID的作用了,除了数据ID有宏定义,还有数据的长度,这个主要是用来更加准确解码数据,中间的数据因为类型不同解码方式也不同,在宏定义处有解释,数据最后一位是CkeckSum。 小车控制: 控制采用的传统的PID控制,直立采用PD控制,解算出来的角度乘以P,然后直接用陀螺仪的值乘以D,速度采用PI控制,速度差乘以D,速度的积分乘以I,这里需要将积分限幅限得相当的小,不然前进时需要小车停止,小车会向前运行一段距离然后退回到之前需要停止的点。转向就是其中一个电机加上一定的PWM值,另一个电机减去相同量的PWM值。APP的转向控制分两种情况,一种是普通模式的转向控
2023-08-17 14:18:21 5.04MB 蓝牙小车 电路方案
1
可蓝牙遥控,可蓝牙调速,具体程序分析移步我的主页
2023-03-18 12:27:56 6.3MB stm32 单片机
1
蓝牙小车资料——包含手机端APP,全部源代码,电源管理电路原理图加PCB
2023-03-09 14:51:01 7.51MB 蓝牙 智能车
1
该代码能实现蓝牙小车的自动循迹和通过小车上的按键切换为蓝牙模式,且可以遇到黑线自动切换为循迹模式。
2023-02-27 17:21:06 9KB 蓝牙小车
1
mixly蓝牙小车代码,简单好理解,容易上手,根据自己小车的特点再进行相应的速度调整。
2023-02-16 14:47:28 11KB mixly 蓝牙 小车
1
主控使用的是STM32,调用库函数实验,蓝牙串口仿真需要自行安装虚拟串口(VSPD等,波特率9600),仿真文件使用的是Proteus8.9版本。
1
一款蓝牙小车的安卓版本APP,比较好用 STM32 51蓝牙
2022-11-10 01:26:16 436KB APP 嵌入式
1
采用按钮和遥杆两种方式通过蓝牙发送指令
2022-10-14 19:07:18 6KB appinventor wxbit 蓝牙小车
1
摇杆的源码是抄网上的,改了一部分,实现自己要的功能,忘记出处了(对作者说SORRY). 定时发送摇杆的位置,转弯力度,动力大小等给小车的蓝牙,四个马达驱动(TB40多块钱那种)。Android Studio 1.3.2直接编译,高手勿入,我也是新手。安卓版本好像是4.X. ---一时兴起弄的。现在传上来赚点分啦。没分就32089167 企鹅。
2022-09-05 23:51:57 10.02MB 小车 安卓摇杆 源程序
1
能够实现蓝牙收发的app,使用摇杆进行操控蓝牙设备,可以看到蓝牙接收的信息,能够使用最新的AS运行!如果想要一个蓝牙操控小车的app,这个非常适合你!
2022-09-05 23:35:28 12.94MB 蓝牙 蓝牙小车 蓝牙操控ap
1