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引脚。

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

  1. B40 - 基于STM32单片机的电热蚊香蓝牙控制系统

    任务 本项目进行智能电热蚊香器系统的设计与开发,将STM32开发板作为一个微控制器,结合蓝牙技术,通过手机APP软件对电热蚊香器进行灵活的控制,使电热蚊香器的功能更加人性化,更加符合当代人们对家用电器 ...

  2. 基于STM32的最简易蓝牙遥控小车

    基于STM32的最简易蓝牙遥控小车 硬件准备 硬件连接 STM32cubeMX配置 代码部分 视频演示 本篇博客主要针对的读者为有一定单片机基础,但是第一次自制蓝牙遥控小车的小白同学,所用物件型号选择 ...

  3. 基于SSVEP-EOG的混合BCI用于机械臂控制

    点击上面"脑机接口社区"关注我们 更多技术干货第一时间送达 操作机械臂过程 利用脑机接口控制机械臂可以改善重度运动障碍者的生活质量.机器人手臂控制在完成一系列动作的复杂任务时仍然存 ...

  4. 基于matlab 宗晓萍,基于ADAMS和MATLAB的机械臂控制仿真

    基于ADAMS和MATLAB的机械臂控制仿真 宗晓萍;李月月 [期刊名称]<微计算机信息> [年(卷),期]2009(000)035 [摘要]运用多体系统动力学分析软件ADAMS建立虚拟模 ...

  5. 【从零开始的ROS四轴机械臂控制】(六)- 逻辑控制节点

    [从零开始的ROS四轴机械臂控制(六)] 九.逻辑控制节点 1.运动控制方法 (1)逆向运动学 (2)反馈控制 2.各节点之间的联系 3.相关程序 (1)img_process节点 (2)arm_co ...

  6. 对于STM32F103控制的三轴机械臂基本功能测试-关节转动控制

    ➤01 机械臂调试 1.简介 对于 基于STM32对于三轴机械臂控制器设计 的设计已经进行了如下的调试: 对于STM32F103三轴机械臂控制器进行基本功能测试-关节角度读取 对于STM32F103三 ...

  7. 【从零开始的ROS四轴机械臂控制】(五)- 构建运动控制服务

    [从零开始的ROS四轴机械臂控制(五)] 八.运动控制节点 1.定义服务GoToPosition.srv 2.修改CMakeLists.txt 3.修改package.xml 4.构建包 5.arm_ ...

  8. 三关节机械臂控制命令修改

    ▌01 机械控制臂 1.简介 在 调试机械臂一体化控制电路:STM32F103控制器初步调试 对于 三轴机械臂的 的控制,最初版本采用了 简易调试命令组合. 这个命令是为了付方便最初的调试与测试机械臂 ...

  9. 基于Arduino的PS2机械臂遥控小车(L298N)傻瓜教程

    基于Arduino的PS2机械臂遥控小车(L298N)傻瓜教程 1.材料 L298N.Arduino板.数据线.舵机(SG90).机械臂.亚克力板.电机.PS2.杜邦线.电池(7.4V).螺丝. 2. ...

最新文章

  1. iOS 快速定位到系统设置界面
  2. JavaWeb 入门篇(1)Maven创建Web项目 Idea配置tomcat
  3. rust(63)-全局静态变量
  4. python发邮件11002_Python学习笔记(二)——数字类型的运算及其输入与格式化输出...
  5. SVN cleanup 反复失败解决办法
  6. JavaScript从入门到放弃 - (一)构造函数和原型
  7. 删除链表的中间节点 Java实现_【链表问题】删除单链表的中间节点
  8. html中文本框冒号对齐,html5 冒号分隔符对齐的实现,
  9. 【Interfacenavigation】按钮(29)
  10. NeatUpload 同时选择并上传多个文件
  11. sql查询、删除重复相同数据的语句或只保留一条数据
  12. 30分钟学会shapely空间几何分析
  13. 个人开发者如何免费打造属于自己的微信小程序
  14. 腾讯企业邮箱开发(非官方开发文档方式
  15. Excel中查找字符串的相关问题---重点推荐
  16. 【vue.js】+云存储(实现图片上传功能)
  17. 软通动力、海辉、文思以及金融外包
  18. plc 编程 c语言编程实例,PLC面向对象编程和梯形图编程,谁OUT了?
  19. C语言结构体-火车票查询程序
  20. 关于激光打标机矢量图下载的说明

热门文章

  1. 【时间序列分析】12. ARMA(1,1)模型
  2. 1、STM32开发-环境搭建-Keil5安装
  3. 帝国ECMS教程:上一篇下一篇自定义综合代码
  4. 串联电阻和并联电阻的计算方法
  5. MySQL定时任务删除数据
  6. 如何通过QA质量管理提高软件质量?
  7. 如何快速构建论文初稿
  8. MATLAB箱型图异常值/离群值处理(箱型图红色加号)
  9. Deepin + Veket 双Linux U盘随身系统
  10. 跨境追踪(ReID)多粒度网络(MGN)详解及代码实现(2)