IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于stm32的自动循迹及自动搬运物联网图传小车 -> 正文阅读

[嵌入式]基于stm32的自动循迹及自动搬运物联网图传小车

前言
本着技术本身的原则,写了这篇博客,为尚未接触嵌入式C编程,和正在学习C编程的同学提供一套完整的智能小车方案和学习思路。
本篇介绍的是纯自主开发的单片机智能小车,不同于网上那些,本篇介绍的是集成了红外循迹,超声波测距,机械臂抓取,蓝牙控制,视频图传在内的一套综合应用方案,代码方案可应用于实际项目。
视频演示:【梦飞智能-多功能机械臂小车-哔哩哔哩】 https://b23.tv/2EvpPYa
1.硬件组成
(1)小车主控采用stm32F030c8t6,主频48M,RAM20KB,flash64KB,ARMcortex-M0内核,引出了3路舵机接口用于控制机械臂,4路PWM用于电机控制,4路GPIO用于循迹传感器连接,以及一个超声波传感器接口和一个串口,主板大小只有5cm x 3.5cm左右,非常小巧美观,四个安装孔设计的可直接安装在舵机云台底部,采用USB供电或者5V电源接口供电。
(2)小车驱动板是梦飞自主开发的双LM2596+RZ7889电源和电机驱动一体化设计,电压输入6-15V,5V输出能力达到3A,电机驱动能力达到5A,(注意这个数据,可查查一般驱动板是什么能力)
(3)极简三自由度机械臂,说高级一点这个模块是个机械臂,说简单点就是一个两轴云台+一个爪子,之所以这样做的目的就是方便定位和快速抓取,不用空间逆运算定位物体坐标,对于MCU来讲就是三个PWM控制上下左右和夹取,因此代码实现难度上非常简单,适合初学者。
(4)基于ESP32的视频图传和蓝牙控制方案,这里所讲的是两个模块,ESP32图传模块,以及蓝牙控制模块,ESP32支持HTTP协议获取图传,以及RTSP协议获取图像(这对于学习网络协议非常有意义),蓝牙模块采用串口蓝牙,上位机给蓝牙发送数据,只需串口接收和处理即可
(5)循迹和超声波测距,循迹采用最简单的两路循迹原理,超声波采用市面上最常见的超声波模块,具体不做赘述。
在这里插入图片描述
2.软件实现
重点讲解软件实现原理,整套软件代码基于ucosii架构,采用多任务并行的方式实现,可以将上述硬件分成不同的软件模块进行实现。
(1)基础驱动模块
包括PWM驱动,GPIO,串口这些引脚功能配置,将引脚定义全部采用宏定义方式进行统一管理。更改引脚功能只需要修改宏即可,这种方案是单片机架构中最常用的一种引脚处理方式。
(2)多任务划分
将需要实时处理的模块划分成多个任务,目前设计了串口数据处理任务,超声波测距任务,红外循迹处理任务,按键检测任务,LED显示任务等多个并行任务,其中优先级最高的是串口数据处理任务;
(3)串口数据处理
处理蓝牙发送的实时串口数据,从而执行对应得动作,由于蓝牙数据可能是持续得,我们不能接收一条处理一条,容易造成数据丢失和混乱,因此这里引入了队列得数据结构,将蓝牙数据保存在队列缓存中,通过中断数据接收存入队列,然后在串口数据处理任务中轮询读取队列和处理,保证数据准确和高效处理。
(4)手动控制自动控制实现
如何让不同得功能顺利切换是一套关键策略,本方案中默认采用手动控制模式,通过手机app操作进行小车前后左右控制和机械臂上下左右控制,然后通过app操作给小车下发自动控制指令进入自动控制模式。MCU接收到串口指令时,先保存当前小车控制状态,这里设计了一套小车控制状态得结构体数据,包括小车运动控制参数和状态控制参数,当状态控制参数处于手动控制模式时,小车响应app控制操作,当状态参数处于自动控制模式时,小车响应自动循迹,自动测距和自动抓取得动作,另外控制模式切换也兼容主板上得按键进行手动切换。
(5)自动循迹和自动抓取实现逻辑
自动循迹和自动抓取在同一任务中进行,使用超声波测距进行目标障碍物检测,若前方没有障碍物则正常循迹,若前方出现障碍物,距离达到可夹取范围时,循迹停止,并控制机械臂向下运动到指定位置,夹取目标后再放置到预定位置,放置完之后再继续循迹。从而实现了自动搬运障碍物得操作。
(6)视频图传和手机app控制
视频图传是基于ESP32-CAM实现,采用arduino编程,通过获取摄像头图像然后使用HTTP协议上传,手机端app开启会自动链接摄像头的ip地址从而获取到视频图像,目前使用VGA分辨率实时传输图像和显示可达到25fps,基本能做到实时显示,app配合蓝牙连接和下发指令可实现不同的功能控制。比如需要控制机械臂可以切换到机械臂控制模式,然后使用控制按钮进行控制。
在这里插入图片描述
功能应用场景:
1.视频图传和运动控制,以及手动搬运目标物体
2.自动循迹和自动控制搬运物体到指定位置
3.自动循迹和自动清理垃圾等

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 21:12:15  更:2022-09-24 21:13:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:13:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码