基于ESP8266的四足机器人的设计

第二章 四足机器人的实现原理及硬件设计

2.1 四足机器人的相关技术分析
2.1.1需求分析
本设计要求采用ESP8266串口WiFi模块进行指令编译和接收,要求通信模块与网络模块连接成功,机器人才能接收命令指令,经过MCU处理,再通过PWM Servo舵机驱动板模块PCA9685来调节舵机转动的角度值,从而完成预定或指定的动作,比如前进后退,左右移动和左右平移等等,最后环节再加上一个超声波避障。
2.1.2系统实现框架
为实现上述功能需求,如图2.1所示系统框架图,在移动操作端进行指令的输入,通过无线局域网WiFi模块的接收,经过MCU处理指令信息,从而驱动PWMservo的输出来控制各个舵机的转动的幅度值。

图2.1系统框架图

2.1.3实现原理分析
本次设计的四足机器人使用8个舵机,每2个舵机组成一个运动的肢足,运动的方式是靠舵机接收PWM信号来对相应的肢足进行运动控制,而每个肢足它组成的2个舵机PWM信号值进行配合变成相应的运动状态,根据要求的运动姿势来发送PWM信号给各个肢足,从而实现一个完整的运动控制。四足机器人的前后运动,左右运动及左右平移运动会在第五章整体测试与调试中进行详细的解析。

2.2 硬件系统概述
一个现代制造的机器的运转缺少不了硬件和软件,但每一个机器组成成分最多的就是硬件,硬件及外辅助支架的组成相当于机器的器官和骨架,它可以提供强劲有力、高效稳定的运转条件,此次关于四足机器人的设计也是如此。

2.3 系统结构设计
2.3.1 系统各模块结构概述
(1)结构支架
有可选方案如下:
1.塑料3D打印支架结构。
2.椴木支架结构。
对比两种支架材料,虽然塑料的3D打印支架具有良好的实用性、稳定性和观赏性,自己没有相关的3D打印设备,而且价格较高。反观普通的椴木板。即使椴木支架易松动损坏,但也可以提供短期的稳定效果,又考虑到设计成本及现有设备材料,以及设计实验的初衷,决定用椴木作为结构支架。
(2)MCU控制端模块
由于此次四足机器人的设计采用的是ESP8266WiFi模块,局域网的无线连接,它支持手机、平板、电脑的连接控制,在很大方面展示了物联网的控制平台兼容性,相比电脑和平板,为方便此次设计,采用了移动手机作为操作控制端。
(3)电源模块
能源是每一个机器运转的前提条件,此次设计可用5.0V-12.0V电源作为动力,有两种电源方案选择:
1.锂电池
优点:质量偏轻,自放电率低,高储存能量密度。
缺点:厚度偏厚,成本高。
2.聚合物锂电池
优点:容量大,质量轻,厚度薄,价格便宜。
缺点:极片受潮容易发生气鼓,对环境要求高。
综上所述及设计目的功能需求,在此选择7.4V聚合物锂电池来作为电源。(如下图2.2所示)

图2.2聚合物锂电池

第三章 软件设计与实现

3.1软件概述
上章节介绍了硬件模块的组成,硬件之外便是软件的组成部分了,又分有系统软件和应用软件等,此次是软件设为源代码编程,经过开发环境编译处理后形成执行指令,源代码部分涉及了javascript的局域网Web网页的应用,即控制四足机器人的操作端,本次软件设计重点偏向于在辅助应用下进行四足机器人主要的运动控制的源代码修改设计。
3.1.1软件开发平台
在此,ESP8266模块可以支持多种编程模式,这显示了它的兼容性和实用方便性,以下是对其开发平台的参考及建议:
(1).使用AT指令进行操作:这是最常见的方式,使用PC端的串口助手配合简单的指令就可以实现,也可以配合单片机发送指令使用。
(2).LUA语言编程:这是一种单独ESP8266编程的方式,可以不依靠单片机和串口调试软件,直接把程序编写到ESP8266内部。
(3).Arduino开发环境编程:这个接触过Arduino的都会比较熟悉。可以直接在Arduino IDE的环境下进行代码烧录,使用Arduino的开发方式进行开发,其相关资料也比较多。
综上所述,个人比较推荐Arduino 开发环境编程,因为比较容易接受与理解,arduino现在已经非常的成熟了,是一个非常成熟的解决方案了,相关资料也比较多,更适合作为这次设计的软件开发平台。(软件开发平台如图3.1、3.2所示)

图3.1 arduino开发平台
图3.2 代码编辑界面
3.1.2开发环境的配置
在Arduino开发环境中,由于设计中用到的是ESP8266开发板模块,在原来的开发板管理器是没有的,需要自己手动输入搜索添加的,操作过程下如图3.3、3.4、3.5所示。
1.在编辑界面中,点开工具,单击开“发板:‘XXX’”,展示右边界面,双机“开发板管理器”,如图3.3开发环境配置示意图所示;

图3.3 开发环境配置示意图

第四章 四足机器人的测试与调试

4.1系统功能测试
4.1.1检测元器件
在进行整体搭建设计之前,需要对各个元器件进行质量检测,检测环节包括单独检测、部分检测和整体检测,同时包含电路接口和连接准确性的排查检测。在这个环节尤为重要,它可以为整体的构建提供有效可靠的基础,从平时实验可知,运用到数量较大的元件时,应增加该元件的实际数量,由此来解决低概率故障性的发生,确保设计如期进行。
4.1.2整体运行检测调试
按照设计的目的,在完成所有硬件和支架检测后,进行软件的写入和调试,这是设计中最后,也是最关键的一部分。保证由单个肢足运动到整体的运动动作的可行性和连贯性,从而达到预期的机械运动效果。
四足机器人的运动可以比作一个团队合作的成果,而一个团队队员的分工合作起着绝对性的作用,四足机器人的各个肢足通过有序的PWM信号值调节,从而形成四足机器人连贯的运动动作。接下来对对各个运动状态以图画演示和文字描述,含部分代码示例,详细代码参见附录。
1.开机复位及指令复位状态(如图4.1所示)
//开机复位
int Servo_Act_0 [ ] PROGMEM = { 140, 30, 140, 40, 40, 150, 40, 140, 1000 };
//指令复位
int Servo_Prg_8_Step = 2;
int Servo_Prg_8 [][ALLMATRIX] PROGMEM = {
{ 70, 90, 90, 130, 120, 90, 90, 70, 1000 },
{ 140, 30, 140, 40, 40, 150, 40, 140, 1000 },
};

图4.1 开机复位状态示意图

2.站立状态(如图4.2所示)
int Servo_Prg_8_Step = 1;
int Servo_Prg_8 [][ALLMATRIX] PROGMEM = {
// 3, 14, 13, 12, 0, 1, 2, 15, ms
{ 90, 90, 90, 90, 90, 90, 90, 90, 500 }, //
{ 70, 90, 90, 130, 130, 90, 90, 70, 500 }, // 起立
};

图4.2 站立状态示意图

第五章 超声波避障设计及有关故障分析

5.1超声波模块避障功能测试
在完成上述基本步态的测试后,接下来接入超声波模块进行超声波避障测试,主要执行代码如下所示;
case 8: // 超声波避障左转运动
do{
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
server.handleClient();
if(Servo_PROGRAM!=8)break;
shichang = pulseIn(echoPin,HIGH);
juli = shichang / 58;
if(juli < 20){
digitalWrite(ledPin,HIGH);//如果距离小于20厘米点亮LED灯
Servo_PROGRAM_Run(Servo_Prg_6, Servo_Prg_6_Step);//执行左转
}
else{
digitalWrite(ledPin,LOW);//LED灯灭
Servo_PROGRAM_Run(Servo_Prg_2, Servo_Prg_2_Step); //前进
}
Serial.print(juli);//向串口输出检测到的距离,测试调试时使用
Serial.println(“cm”);
}
while(1);
break;
一般情况下,我们取声波在空气传播的速度大约为343米/秒,转换厘米单位为34,300厘米/秒。作一下单位换算,34,300除以1,000,000厘米/微秒。即为:0.0343厘米/微秒,再换一个角度,1/(0.0343 厘米/微秒)即:29.15 微秒/厘米。所以每291.5微秒表示10CM的距离。1厘米就是29.15微秒。从发送到接收到回波,声波走过的距离为实际的2倍,所以实际距离就是1厘米对应58.3微秒,实际上整个测距过程是测的发出声波到收到回波的时间,程序里测量时间单位是us,换成距离cm,要除以58。
当四足机器人进入避障模式后,进入do-while循环,server.handleClient();实时更新,检测是否有新指令输入,如果有执行if(Servo_PROGRAM!=8)break语句,否则继续执行循环,if(Servo_PROGRAM!=8)break;判断进入循环后是否还有其他指令,保证其他指令的同一优先级,以便跳出超声波自动避障的循环,进入下一运动指令。在前进过程中检测到面前存在障碍物时,即juli<20cm时,机器人将停止向前运动,进行左转,等待新的juli数据值,juli>20cm就前进,否则继续左转,以此保证机器人不会撞到障碍物。在这里还有一种避障转向步骤,就是当检测到面前存在障碍物时,即juli<20cm时,先执行后退再左转,最后前进。
实际测试效果如下图5.1前进状态示意图、5.2检测状态示意图、5.3避障左转状态示意图所示;

图5.1 前进状态示意图

图5.2 检测状态示意图

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

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

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

相关文章

AI产学研一体化平台:让硬核技术不再“纸上谈兵”

提到AI&#xff0c;很多人想到的是实验室里的论文、复杂的公式&#xff0c;或是企业里“用不上、用不好”的尴尬——高校的前沿技术躺在硬盘里&#xff0c;企业急需的解决方案找不到门路&#xff0c;学生学的AI知识和产业实际脱节。而AI产学研一体化平台&#xff0c;就是解决这…

2026网络安全入门第一天,零基础该看什么书?这篇指南为你指路!

# 网络安全入门第一天&#xff0c;零基础该看什么书&#xff1f;这篇指南为你指路&#xff01; 网络安全入门第一天&#xff0c;零基础该看什么书&#xff1f;这篇指南为你指路&#xff01; 各位网络安全的新朋友们&#xff0c;大家好&#xff01;&#x1f310; 如果你对网络…

工厂实施MES系统,需要注意哪些问题?

​在做完一家电子工厂的MES项目并且上线以后&#xff0c;我也终于明白为什么MES系统的集中度很低了。因为每个工厂的情况会非常不同&#xff0c;比如&#xff1a;管理的思路不同&#xff0c;货品的价值有高低&#xff0c;是否有物联网设备&#xff1f;是否需要通过MES控制&…

基于单片机水产育苗系统设计(有完整资料)

资料查找方式&#xff1a;特纳斯电子&#xff08;电子校园网&#xff09;&#xff1a;搜索下面编号即可编号&#xff1a;T3042410M设计简介&#xff1a;本设计是基于STM32的基于单片机水产育苗系统设计&#xff0c;主要实现以下功能&#xff1a;通过温度传感器检测水中温度。通…

关于解决电脑磁盘上有一个锁+一个警告的解决方法

前言&#xff1a;如果是有一个锁加一个感叹号的话&#xff08;就像笔者这个电脑一样&#xff0c;其实可以不用管&#xff0c;因为对电脑没啥影响&#xff0c;但是要是只有一个锁的话就不要看这个文章了&#xff0c;需要请专业人士&#xff0c;只有一个锁说明已经开启了BitLocke…

接口自动化测试之 pytest 接口关联框架封装

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快一般情况下&#xff0c;我们是通过一个yaml文件进行关联实现在根目录下新建一个文件yaml&#xff0c;通过上述conftest.py文件实现全局变量的更新:1.首先需要建立一…

基于STM32的智能门锁系统的设计

第二章 整体方案设计 2.1 需求分析 搭建简单的智能门锁系统作品&#xff0c;需要相应的硬件与软件结合&#xff0c;本设计基于STM32的智能门锁系统主要实现的功能要求有&#xff1a; (1)显示屏显示操作界面&#xff1b; (2)使用者可以通过设置按键进入管理界面&#xff0c;可以…

基于单片机的太阳能驱动的智能百叶窗(有完整资料)

资料查找方式&#xff1a;特纳斯电子&#xff08;电子校园网&#xff09;&#xff1a;搜索下面编号即可编号&#xff1a;T3122407C设计简介&#xff1a;本设计是基于单片机的太阳能驱动的智能百叶窗&#xff0c;主要实现以下功能&#xff1a;通过光敏电阻检测光照值 通过步进电…

《P3200 [HNOI2009] 有趣的数列》

题目描述我们称一个长度为 2n 的数列是有趣的&#xff0c;当且仅当该数列满足以下三个条件&#xff1a;它是从 1∼2n 共 2n 个整数的一个排列 {an​}n12n​&#xff1b;所有的奇数项满足 a1​<a3​<⋯<a2n−1​&#xff0c;所有的偶数项满足 a2​<a4​<⋯<a2…

Belkin发布全新屏幕保护产品系列并推出“日常磨损更换计划”,全面提升设备日常防护水平

• Belkin发布七款全新屏幕保护膜&#xff0c;搭载专有Nano-Titan™技术&#xff0c;显著增强对日常跌落与刮擦的防护能力 • 全新“日常磨损更换计划”让消费者在产品更换方面更加安心无忧 • 消费者现可通过Screen Skinz实现屏幕保护膜的个性化定制 作为一家深耕消费电子领域…

接口自动化测试知识总结

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快1. 什么是接口测试顾名思义&#xff0c;接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以…

三分钟带你看懂AI大模型(图文教程)

不废话&#xff0c;直接上干货—— 什么是模型&#xff1f; 通俗地讲&#xff0c;模型是一个基于神经网络构建好的处理器&#xff0c;比如函数yF(x)&#xff0c;它能够根据输入x&#xff0c;产生相应的预测y或者输出内容y。什么是训练&#xff1f; 通过输入数据并监督输出结果来…

《CF1278F Cards》

题目描述 考虑如下实验。有一副共 m 张牌的牌堆&#xff0c;且恰好有一张是小丑牌。你将进行 n 次如下操作&#xff1a;将牌堆洗牌&#xff0c;从牌堆顶端抽出一张牌&#xff0c;查看后再放回牌堆。 设 x 表示在本次实验中你抽到小丑牌的次数。假设每次洗牌后&#xff0c;所有…

积木报表重磅更新:移动报表功能全面支持,跨设备无缝对接

在移动互联网时代&#xff0c;移动办公已成为企业数字化转型的重要趋势。然而&#xff0c;传统的报表系统往往只能在 PC 端使用&#xff0c;外出办公、现场数据采集、移动审批等场景下&#xff0c;数据查看和填报受到极大限制。如何打破设备限制&#xff0c;让报表随时随地可访…

【2026年最新网络安全就业方向】网络安全专业的学生毕业后可以从事什么样的工作?

岗位一&#xff1a;渗透测试。 模拟黑客攻击&#xff0c;利用黑客技术&#xff0c;挖掘漏洞&#xff0c;提出修复建议。有些的大厂&#xff0c;例如奇安信&#xff0c;会把渗透岗位分为红蓝两方&#xff0c;对候选人的技术要求比较高&#xff0c;大部分刚入行的新人&#xff0…

普源数字万用表示值不准/开机异常的7种解决方法

普源数字万用表作为电子测量中的常用工具&#xff0c;若出现示值不准或开机异常&#xff0c;会影响测量精度和效率。本文总结了7种常见问题的解决方法&#xff0c;帮助用户快速排查故障&#xff0c;恢复仪器正常功能。检查电池电量与接触 问题&#xff1a;电池电量不足或接触不…

自动化测试基础知识总结

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快自动化测试是指利用自动化工具和脚本&#xff0c;模拟人工操作进行软件测试的过程。它在软件开发中扮演着非常重要的角色&#xff0c;可以提高测试效率、降低成本、…

区块链 Web3 项目开发

区块链 Web3 项目的开发在 2026 年已经进入了“生产力时代”。与早期追求炒作不同&#xff0c;现在的开发更强调实用性&#xff08;Utility-First&#xff09;、合规性以及与 AI 智能体&#xff08;AI Agent&#xff09;的深度融合。以下是区块链 Web3 项目开发的标准流程与核心…

AbMole丨VcMMAE:从CD20到HER2,赋能多靶点ADC开发的通用平台

VcMMAE&#xff08;MC-VC-PAB-MMAE&#xff0c;AbMole&#xff0c;M9216&#xff09;是抗体偶联物&#xff08;ADC&#xff09;研究中的关键组件&#xff0c;由微管抑制剂MMAE&#xff08;单甲基奥瑞他汀E&#xff0c;Monomethyl auristatin E&#xff0c;AbMole&#xff0c;M3…

Launch Template 和 ALB、Target Group、Auto Scaling Group 是什么关系?

一、Launch Template 的作用是什么&#xff1f; 一句话定义&#xff08;面试版&#xff09; Launch Template 是 EC2 实例的标准化启动配置&#xff0c;用来告诉 Auto Scaling“新实例该如何创建和配置”。 Launch Template 具体解决什么问题&#xff1f; Auto Scaling 不会“复…