基于stm32的视觉和蓝牙控制F407芯片智能机械臂控制小车

1.项目概述:

本实验是通过手机APP通过蓝牙连接HC-05模块,向HC-05发送数据,HC-05蓝牙模块通过蓝牙接收到来自APP的数据并通过UART串口传输给STM32核心板,然后STM32通过PWM来控制直流电机驱动模块,最后驱动电机。

2.设计要求:

(1)利用stm32组成一个蓝牙小车;

(2)通过蓝牙进行数据传输,控制机械臂小车前进,后退,左转,右转,利用视觉处理让小车自动选择一个有色色块来抓取色块。

3.小车总体设计思路

主要是对该项目的功能进行逐一的分析,将各个模块进行详细说明和功能实现的整个流程进行解释。首先将我们的小车功能分为五大板块,第一个是小车的基础驱动,搭建智能车的基础框架,基础框架搭建好,后续的功能都是基于基础框架的,所有后续的功能实现就会相对的简单;第二个是机械臂的驱动及控制,第三个是该项目的小程序和安卓APP进行小车和机械臂的控制,第四个是ASR-M09C语音识别模块(更新后),最后一个就是视觉智能控制,通过OpenMV来进行视觉的识别,从而实现颜色识别、视觉跟随、形状识别等。之后再添加蓝牙模块,手机通过蓝牙串口发送ABCDE,当主板接受到后根据不同的数据进行前进后退等,舵机的组成:直流电机、减速齿轮组、传感器以及控制电路。

4.各功能模块程序实现原理分析

该系统分为主控板,蓝牙模块,电机驱动模块,电源管理模块,Android控制端等模块,5个舵机,摄像头(openmv)。

1.制作思路

第一步 

组装好机械臂小车,STM32F429核心板与6WD驱动板的接线方式是GND、VCC、PB8、PB9分别接GNC、3.3V、SCL、SDA,小车的两个电机分别接6WD的驱动板的M1和M2。以后连接芯片已经各个模块,如:蓝牙模块用蓝牙串口通信测试连接,并在手机上安装一个蓝牙调试助手帮助手机与蓝牙模块进行连接测试。上电之后蓝牙模块会快速闪灯,显示处于等待状态,用手机蓝牙连接。程序下载的方法有两种:通过串口ISP下载 或者 下载器下载(JLINK、ULINK、STLINK)

  1. 硬件接线
  2. 安装JLINK驱动 --- 我的电脑--管理--设备管理器---通用串行总线控制器---JLINK Driver
  3. 配置KEIL5软件

第二步 烧录程序

烧录程序可以用USB也可以用SWD,如果你和我一样手边只有一个ST-link的话,也可以用杜邦线强行转成SWD,注意这样在Keil的设置里面还是要选择ST-link。在烧录之前有必要了解一下代码的基本逻辑,小车的核心知识就在于基本的原理以及代码实现,有关小车原理部分可以6WD原理图和参考资料里面的文档,控制对象实际上就是小车的角度和速度还有就是电机的转向,代码实现基本上就是按照这个控制思路来编写的,但是以后可以复用代码除了main.c和upstandingcar.c的部分,加以修改实现别的功能。在编写好代码的基础之上增加(.C和.H的文件)

第三步 调节PWD占空比参数

虽然我们时常把调PWD调侃为“玄学工作”,因为各个参数之间存在耦合,所以看着小车在地下疯狂打转,却不知到应该变动PWD哪个参数为好,甚至都不知道应该增大还是减小。其实,只要掌握了正确的调参顺序,理解每个参数对响应的影响机理,就不难调出让人满意的参数。每个不同的参数都会影响每个舵机的摆动方向。

计算的方法是:将0—185分为250份,每份0.74度。

控制所需的PWM宽度为0.5ms—2.5ms,宽度2ms。

2ms÷250=8us;

所以得出:PWM信号 = 1度/8us;

第四步  调节电机的转速

在6WD智能小车扩展板背面设计了6个电机接口,可以支持六路独立电机控制,方便拓展6WD智能小车,4WD智能小车。每一路电机均可独立控制,6路电机可同时输出6种不同的转速,实现独立控制。

6WD扩展板拥有4路带测速码盘电机接口,每一路都可单独测速、控制、调速、停止。我们可以在程序里调节小车的最高速度与最低速度,已经每次增加的速度。

第五步 视觉处理模块

 OpenMV是基于STM32F7/H7系列的视觉图像处理模块,OpenMV摄像头是一款小巧,低功耗,低成本的电路板,能够帮助我们很轻松的完成机器视觉(machine vision) 应用。也可以通过高级语言Python脚本,Python的高级数据结构使你很容易在机器视觉算法中处理复杂的输出。但是,仍然可以完全控制OpenMV,包括IO引脚。也可以很容易的使用外部终端触发拍摄或者或者执行算法,也可以把算法的结果用来控制IO引脚。

版权声明:本文为CSDN博主「StevenXander」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/StevenXander/article/details/122803716

1.项目概述:

本实验是通过手机APP通过蓝牙连接HC-05模块,向HC-05发送数据,HC-05蓝牙模块通过蓝牙接收到来自APP的数据并通过UART串口传输给STM32核心板,然后STM32通过PWM来控制直流电机驱动模块,最后驱动电机。

2.设计要求:

(1)利用stm32组成一个蓝牙小车;

(2)通过蓝牙进行数据传输,控制机械臂小车前进,后退,左转,右转,利用视觉处理让小车自动选择一个有色色块来抓取色块。

3.小车总体设计思路

主要是对该项目的功能进行逐一的分析,将各个模块进行详细说明和功能实现的整个流程进行解释。首先将我们的小车功能分为五大板块,第一个是小车的基础驱动,搭建智能车的基础框架,基础框架搭建好,后续的功能都是基于基础框架的,所有后续的功能实现就会相对的简单;第二个是机械臂的驱动及控制,第三个是该项目的小程序和安卓APP进行小车和机械臂的控制,第四个是ASR-M09C语音识别模块(更新后),最后一个就是视觉智能控制,通过OpenMV来进行视觉的识别,从而实现颜色识别、视觉跟随、形状识别等。之后再添加蓝牙模块,手机通过蓝牙串口发送ABCDE,当主板接受到后根据不同的数据进行前进后退等,舵机的组成:直流电机、减速齿轮组、传感器以及控制电路。

4.各功能模块程序实现原理分析

该系统分为主控板,蓝牙模块,电机驱动模块,电源管理模块,Android控制端等模块,5个舵机,摄像头(openmv)。

1.制作思路

第一步 

组装好机械臂小车,STM32F429核心板与6WD驱动板的接线方式是GND、VCC、PB8、PB9分别接GNC、3.3V、SCL、SDA,小车的两个电机分别接6WD的驱动板的M1和M2。以后连接芯片已经各个模块,如:蓝牙模块用蓝牙串口通信测试连接,并在手机上安装一个蓝牙调试助手帮助手机与蓝牙模块进行连接测试。上电之后蓝牙模块会快速闪灯,显示处于等待状态,用手机蓝牙连接。程序下载的方法有两种:通过串口ISP下载 或者 下载器下载(JLINK、ULINK、STLINK)

  1. 硬件接线
  2. 安装JLINK驱动 --- 我的电脑--管理--设备管理器---通用串行总线控制器---JLINK Driver
  3. 配置KEIL5软件

第二步 烧录程序

烧录程序可以用USB也可以用SWD,如果你和我一样手边只有一个ST-link的话,也可以用杜邦线强行转成SWD,注意这样在Keil的设置里面还是要选择ST-link。在烧录之前有必要了解一下代码的基本逻辑,小车的核心知识就在于基本的原理以及代码实现,有关小车原理部分可以6WD原理图和参考资料里面的文档,控制对象实际上就是小车的角度和速度还有就是电机的转向,代码实现基本上就是按照这个控制思路来编写的,但是以后可以复用代码除了main.c和upstandingcar.c的部分,加以修改实现别的功能。在编写好代码的基础之上增加(.C和.H的文件)

第三步 调节PWD占空比参数

虽然我们时常把调PWD调侃为“玄学工作”,因为各个参数之间存在耦合,所以看着小车在地下疯狂打转,却不知到应该变动PWD哪个参数为好,甚至都不知道应该增大还是减小。其实,只要掌握了正确的调参顺序,理解每个参数对响应的影响机理,就不难调出让人满意的参数。每个不同的参数都会影响每个舵机的摆动方向。

计算的方法是:将0—185分为250份,每份0.74度。

控制所需的PWM宽度为0.5ms—2.5ms,宽度2ms。

2ms÷250=8us;

所以得出:PWM信号 = 1度/8us;

第四步  调节电机的转速

在6WD智能小车扩展板背面设计了6个电机接口,可以支持六路独立电机控制,方便拓展6WD智能小车,4WD智能小车。每一路电机均可独立控制,6路电机可同时输出6种不同的转速,实现独立控制。

6WD扩展板拥有4路带测速码盘电机接口,每一路都可单独测速、控制、调速、停止。我们可以在程序里调节小车的最高速度与最低速度,已经每次增加的速度。

第五步 视觉处理模块

 OpenMV是基于STM32F7/H7系列的视觉图像处理模块,OpenMV摄像头是一款小巧,低功耗,低成本的电路板,能够帮助我们很轻松的完成机器视觉(machine vision) 应用。也可以通过高级语言Python脚本,Python的高级数据结构使你很容易在机器视觉算法中处理复杂的输出。但是,仍然可以完全控制OpenMV,包括IO引脚。也可以很容易的使用外部终端触发拍摄或者或者执行算法,也可以把算法的结果用来控制IO引脚。

版权声明:本文为CSDN博主「StevenXander」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/StevenXander/article/details/122803716

生成海报
点赞 0

StevenXander

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

串口+DMA 数据收发编程实践

更多交流欢迎关注作者抖音号:81849645041 目标 了解DMA 的工作原理,通过配置 STM32F407 芯片的DMA,实现串口 DMA数据收发。 原理 基于USART的数据通讯中采用中断方式