基于STM32的六足仿生机器人 -控制系统设计

2 主要原理

2.1 仿生六足机器人行进原理
本论文仿生六足机器人的行进方式主要参考了六足昆虫的三角步态,行进时通常将六只脚分为两组,每组三足呈三角形交替行走以保证重心的稳定。这种步态依靠腿部的前后摆动将身躯前移,虽然为了让重心保持在三角形内,导致腿部跨度小,行进速度也称不上快,但是其稳定性却无可置疑。在下列分析中假定左前、右中、左后为A组足,右前、左中、右后为B组足。
前进的流程,可分解为两个过程,以及三个状态间的转换。假设A组足先动,状态a为初始状态,左三和右三足呈对称形态。状态b为A组足角度较初始状态不变并抬起,B组足组成的重心较初始状态滞后。状态c为B组足角度较初始状态不变并抬起,A组足组成的重心较初始状态滞后。过程x为B组足落地,A组足抬起并恢复初始位置,随后B组足以足尖为支点带动身躯前移。过程y为A组足落地,B组足抬起并恢复初始位置,随后A组以足尖为支点带动身躯前移。控制流程图图如图1,状态图如图2。

图2-1 前进控制流程图

图2-2 前进步态图
2.3 图像传感器数据输出、读取原理
图像传感器的数据输出是在三个输入信号的控制下进行的,这里采用了QVGA模式输出像素。如下图:

图2-5 图像输出行时序图

3 硬件选型

3.1六足机器人控制系统芯片选型
在市面上,可作为控制器的产品主要分为单片机、嵌入式两大类,而实际上其实这两者的界限也挺模糊,有些高性能单片机并不是不能搭载计算机系统,只是效率不高,没有必要罢了,而嵌入式大部分也是基于单片机设计的,也可以说是微型计算机的裁剪版。因此,在此只是大概划分了这两类产品,并介绍其细分种类下不同系列的产品的优劣势。
对于机器人控制和学生市场而言,单片机主要考虑用51单片机,stm32系列单片机和arduino板。51单片机是由ATMEL公司推出的一种8位单片机,它的功能相对比较基础,基于汇编语言跑程序的同时,芯片处理速度慢,导致其运行速度也慢,只能进行一些简单的控制,优点是使用简单,只要将寄存器配置好,载入程序就行,并且比起其他8位单片机,具有乘除法运算,无需调用子程序来实现乘除算法。Stm32系列单片机是ST厂商推出的一款以arm为内核的32位单片机,特点是高性能、低成本、低功耗。其最高72Mhz的工作频率,大大提升了单片机的运行速度,并提供了丰富的外围接口。Stm32系列单片机较51较为复杂,主要在于大量寄存器的配置和使用,也因此可以关掉不需要使用的功能,降低功耗。而arduino板实际上是一种基于AVR单片机设计的开发板,它更多的是提供软件上的支持,而不是硬件上的支持。官方提供了丰富的库函数资源,开发者不需要去了解内部的硬件结构和寄存器的设置,只需要知道端口的作用,就能够避开底层驱动和硬件进行开发。同时在官方的开源社区,也提供了大量、具有不同功能的函数库封装,方便业余爱好者使用。

图3-1 51单片机 图3-2 STM32系列单片机

4 控制系统设计

对于六足机器人而言,主要应用于探索勘测领域。为了能够被控制和检测,并拥有一部分自动探查的能力,采用手机蓝牙实现通讯,并搭载摄像头以获得环境数据。
4.1控制系统硬件设计

图4-1 硬件系统
4.2控制器STM32F103VCT6电路原理图

图4-2 单片机系统原理图
4.4.3 行走功能
六足机器人的行走,实际上就是舵机角度的改变,而舵机角度的改变实际就是控制信号PWM波占空比的改变。显示在程序里,就是对定时器进行配置,然后根据步态不断地改变定时器输出的PWM波的占空比。下列是前进状态下其中一个动作的代码:

加入循环代码后,调整占空比,实现如流水灯的效果,等效于PWM波占空比的改变。

图4-7 PWM占空比控制
4.4.4 拍照功能部分代码
由于使用了带FIFO的摄像头模块,图像传感器传输的数据都被缓存在了FIFO模块中。因此读数据时不需要对时序进行过多的控制,只要读取FIFO中的前76800个像素(QVGA格式)就是所需要的图片。而对于rgb565格式的像素数据,需要用16位的空间来存储。每个PCLK周期只读半个像素,因此需要分别读低8位和高8位的像素数据。读取数据的基本代码如下列所示:

由于没有上位机来,转换数据成图片,暂时使用LCD来读取像素数据,以验证数据的正确性,模拟效果如下图。

图4-8 lcd读取照片数据

5 总结与展望

本次研究,主要实现了:1.六足机器人以三角步态的方式行走:用stm32的定时器输出占空比可变的PWM波,以驱动舵机角度的改变。2.摄像头数据的读取。3.利用超声波模块进行测距避障。4.使用蓝牙对六足机器人进行控制和双向通讯。
主要问题有:1.超声波测距功能在对比较靠近的细长物体的测距时效果很差。2.蓝牙模块能稳定通讯的距离太短了。3.程序效率一般,还有待优化。
在这次设计中,使用了STM32系列的芯片来实现六足机器人的控制。由于第一次使用stm32单片机,繁多的寄存器确实给我带来了不少麻烦。在调试各种功能的过程中,往往会遇到某个寄存器没有使能或者配置错误而导致的失败。最好的解决方法就是仔细查看数据手册里的相关内容和官方所提供的相关库函数的定义,了解更底层的实现原理。

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1164133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

洗衣店小程序源码系统,功能全面,助力洗衣行业升级

温馨提示:文末有资源获取方式一款专业的在线预约小程序源码系统,为洗衣店提供了强大的线上解决方案,不仅能提升运营效率,还能拓展客源,抓住市场机遇。该系统基于稳定的开发组合,功能丰富,特点突…

【大数据毕设推荐】Hadoop+Spark旅游景点数据分析系统Python完整实现 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡如果你遇到具体的…

测试自动化框架维护与升级实操:构建高效测试生态的基石

在软件测试领域,自动化框架是提升效率和质量的关键引擎。随着技术迭代加速,框架的维护与升级从“可选”变为“必需”——忽视它,测试脚本会迅速老化,导致误报率高、维护成本飙升。本文针对测试从业者,系统解析维护策略…

获客难?原圈科技领跑2026赛道实测ROI超300%

核心观点 在AI营销领域,原圈科技凭借其卓越的投资回报率、覆盖全业务链的整合方案及众多行业标杆案例,被普遍视为2026年的市场领跑者。本文将深度剖析其技术实力与成功之道,为企业在生成式营销时代的战略抉择提供参考。 AI营销赛道群雄逐鹿…

基于STM32的两轮自平衡车控制系统设计

第二章 系统设计方案 2.1 需求分析 本系统要求在两轮自平衡小车自平衡的状态下,通过蓝牙无线传输技术,遥控实现两轮自平衡车移动行驶功能。本系统使用STM32F103C8T6作为平衡小车的主控芯片,实现以下功能要求: (1&#…

2026 AI营销榜单揭晓:原圈科技如何成为B2B增长引擎?

📊 核心观点 原圈科技在AI营销领域被普遍视为综合性战略伙伴的杰出代表。它凭借覆盖全链路的综合解决方案、深厚的行业know-how、企业级数据安全保障以及"AI专家"的协同赋能模式,在多个维度下表现突出,为B2B企业提供了将AI营销从成本中心转变…

多用户洗衣小程序源码系统,开启IT服务新篇章

温馨提示:文末有资源获取方式 一款多用户洗衣小程序源码系统,专为IT工作室、网络公司和个体开发者设计,通过一次性投资实现持续盈利。该系统功能完善,特点鲜明,助力您快速进入市场,打造成功的洗衣服务平台。…

基于PLC的循环彩灯的控制

2 循环彩灯自动控制系统的方案研究 2.1 彩灯发光原理分析 目前彩灯大都是以电能进行驱动的一种发光装置,在电能驱动发光过程中,我们常见的有白炽灯,其光源颜色通常为黄色。彩灯也是根据这种原理制作完成的,其可以发出不同颜色的灯…

方法类的倒推过程三

最小方法 = 同一类动作(Action Template),在不同参数条件下多次运行,逐渐长出“方法树”(参数空间的分叉 + 经验化的固化)。 要让它在工程里“自然生长”,关键是把方法拆成两层节点,再加一层“运行痕迹”。 1) 方法节点要分成两种:模板 vs 实例 A) 方法模板节点(Met…

‌测试覆盖率提升的实战技巧与工具‌——软件质量防线的科学构建方法论

‌一、测试覆盖率的核心价值与挑战‌在DevOps持续交付的行业背景下,测试覆盖率已成为衡量软件质量的关键指标。根据2025年ISTQB行业报告,采用覆盖率驱动的团队缺陷逃逸率降低63%,但实践中常面临三大痛点:‌覆盖率高而缺陷捕获率低…

方法类的倒推过程四

既然“最小方法=动作模板 + 不同参数多次运行生成分支”,那方法树的节点构成其实可以反推出来。下面给你一套最小但完整的“方法树节点族谱”,既能支持你现在的执行,也能自然长出经验分支,不会被参数爆炸拖死。 方法树由哪几类节点组成 1) 方法模板节点 MethodTemplate 表…

基于PLC的洗衣机控制系统的设计

2 系统总体方案设计 本设计采用西门子S7-300PLC全自动洗衣机控制,用于现场检查控制,具有短开发周期、低开发成本、可靠性高等特点。通过对控制系统的分析和研究,结合具体实际应用情况进行总体方案设计,主要设计方向为操作简单、使…

Python编程软件有哪些?

Python编程软件的选择直接影响开发效率,从轻量化的文本编辑器到功能全面的集成开发环境,适配不同场景与人群需求。那么Python编程软件有哪些?一起来探讨一下吧。Python是一个广泛使用的编程语言,有多种软件可用于编写和运行 Python 代码。以…

混沌工程在系统稳定性测试中的应用实操

‌一、混沌工程的核心价值与测试转型‌随着分布式系统复杂度飙升,传统测试的局限性日益凸显:‌被动防御缺陷‌:仅验证已知场景,无法覆盖链式故障‌环境差异盲区‌:测试环境与生产环境的可靠性鸿沟‌恢复能力缺失‌&…

纯电动汽车两档ATM变速箱simulink模型,模型实现了两档AMT换挡策略和换挡过程仿真,内...

纯电动汽车两档ATM变速箱simulink模型,模型实现了两档AMT换挡策略和换挡过程仿真,内含详细文档和注释模型,可运行! 两档AMT变速箱在电动车领域是个挺有意思的课题。传统单速变速箱虽然结构简单,但在高速工况下的能耗表…

进阶技巧:在Dash应用中直接使用原生React组件

更多Dash应用开发干货知识、案例,欢迎关注“玩转Dash”微信公众号👇1 简介 大家好我是费老师。作为一个Python框架,我们日常在使用Dash构建各种应用的过程中,主流常见的功能可以利用Dash生态中丰富的组件库、工具库等资源&#xf…

方法类的倒推过程五

最小方法(方法树) = 条件节点集合 + 结果节点集合 其中“动作本体”只是这棵树的名字/标签,不需要再单独长出一堆模板/实例节点。 我把它梳理成一个可直接落地的最小方法树数据模型,并给出“生长规则”和“查找/复用规则”,保证它能自动长、还能控规模。 1) 最小方法树的节…

方法类的倒推过程六

赞同,而且这个定义会让边界更干净:“怎么用方法树”归任务,方法树本身只负责“把动作在不同条件下跑出来的结果结构化沉淀下来”。因此把方法树收敛成你说的三段结构非常合理: 根链:方法首节点 → 条件节点(可以是一串条件,表示逐步细化/量化的参数空间) 叶子:结果节点…

航班化天地往返运输技术

航班化天地往返运输技术1 基本概念与原理航班化天地往返运输技术是指像商业航班一样定期、可靠、低成本地往返于地球表面与太空之间的航天运输系统。这种技术旨在通过可重复使用飞行器,实现地面与轨道间以及轨道与轨道间的运输任务,最终达到按需发射、定…

基于STM32的智能风扇

2方案 2.1温度传感器的选择 我们尝试使用热电偶来检测温度,让其利用测温的特性检测出温度后,把信号通过我们的桥式电路传到数模转换器中,数模转换器继续把模拟信号转换成为数字信号,让单片机处理数字信号控制电扇。 热电偶自身的线…