制作一个简单的带有3D打印部件的四足蜘蛛机器人

news/2025/3/26 15:05:17/文章来源:https://www.cnblogs.com/linkstu/p/18789831

在这个项目中,我将向您展示如何使用3D打印部件制作一个简单的4腿行走蜘蛛机器人。该设计主要由上下板、臂接插件、腿和伺服支架五个部分组成。机器人的4条腿由4个手臂部分和4个腿部分组成。机器人的运动总共使用了8个业余伺服电机,4个在手臂上,4个在腿上。

在电路方面,首选ESP32板,但该项目可以很容易地控制与Arduino板。ESP板的蓝牙功能是无线通信的首选,并创建了一个简单的应用程序来控制。这款应用程序允许你用简单的命令控制机器人的动作,比如行走、转弯和跳跃。

该项目易于组装和使用,使其成为学生,教师或任何对机器人感兴趣的人的绝佳选择。我们开始吧!

步骤1:将手臂伺服器放在基座上

首先,在组装伺服系统之前,要放在基座上的手臂伺服系统必须调整到90度起始位置。我已经分享了初始位置的基本代码。正如你所看到的,我已经固定了3个伺服电机,让我们一起安装第四个和最后一个伺服电机。

根据伺服电机的类型,伺服底座上的支架可能会保持松弛,在这种情况下,可以借助一些热熔胶使其固定。

本项目使用了8台SG90微型伺服电机(或近似尺寸等效)。

•产品:SG90伺服

•扭矩:2.0kg/cm(4.8V), 2.2kg/cm(6V)

•速度:0.09s/60°(4.8V), 0.08s/60°(6V)

•旋转角度:180°

•工作电压:4.8 ~ 6V

•齿轮:塑料

•Dead band:7us

•重量:10.5克

•外形尺寸:22.8mm × 12.2mm × 28.5mm

步骤2:固定手臂和腿的连接器

在本节中,将由两个独立部分组成的“臂”和“腿”连接器用螺栓和螺母固定在一起。将固定连接器连接到伺服基座上。然后,与连接器成对角角,放置伺服喇叭,拧紧螺丝固定在伺服电机上。

最后,将伺服喇叭的末端固定到使用螺钉的连接器上,没有必要这样做,但固定它可以防止松动。现在手臂是完整的,让我们移动到腿组装。

步骤3:组装腿

在固定要在腿上使用的伺服电机之前,您需要将它们带到60度的起始角度。然后放置支架和支腿部分,用合适的螺钉将支腿部分固定在伺服电机上。

将支腿插入连接器并连接伺服喇叭,使支腿处于直角位置。然后用螺丝固定伺服喇叭。

现在准备其他三条腿,完成组装。现在手臂和腿的组装已经完成,我们可以继续到电路的电源部分。

步骤4:电路的电源

一个7.4伏的电池将是足够的电路,基础部分是设计为一个3S锂电池的大小,但电池在我的车间被损坏,我不得不使用11.1伏的电池。如果你打算使用7.4伏的电池,你可以跳过这一部分。

我把电池放在底座下面,用扎带固定。由于电池更换,我在电源电路中加入了一个电压降压模块。我借助模块上的调节螺丝将电压输出设置为7伏,并连接电池输入。

将模块放在底座上后,让我们继续组装电路板固定的上部底座。机器人的所有部件都组装好了,让我们来看看电路板!

步骤5:电路板

我设计了一个控制16个伺服电机的电路板,可以连接到ESP32板上。和往常一样,我选择pcb方式来打印高质量的电路板。您可以访问此链接订购PCB,电路和Gerber文件:

优先考虑易焊部件,具备基本的焊接知识即可。或者,您可以使用PCBWay的组装服务并订购现成的焊接电路。将所需组件安装在PCB上,并用烙铁和焊丝将其焊接到位。您可以在上传的图像中看到组件的位置。

•4个100uf 25V~16V电源电容

•4x 470uf 25V~16V伺服电机电容器

•1个SB560二极管用于电源

•1个7805CV电源稳压器

•2 x 3 mm-led

•16x 220欧姆伺服电机电阻

•2个330欧姆电阻,用于led

•1个2pin 5mm螺丝端子,用于电源输入

•2.54 ESP32板的母头

•2.54伺服电机连接公头

•做ESP32 Devkit V1开发板

步骤6:伺服电机的连接

我们把它放在机器人上,然后把伺服电机连接起来。以下是伺服电机连接的GPIO引脚:

机器人几乎准备好了,取出ESP32板并将其连接到您的计算机,然后打开共享源代码。现在是时候编写代码了!

步骤7:源代码

在Arduino IDE中打开代码

•首先,需要在Arduino IDE中打开所提供的代码。这将允许我们编辑和上传代码到ESP32板。

在“首选项”中添加ESP32单板的URL

•进入File > Preferences,添加ESP32板管理器URL

•此步骤确保我们可以安装必要的ESP32工具。

安装ESP32单板包

•进入Tools > Board > Board Manager,搜索“ESP32”,单击“Install”。

•此过程将ESP32板支持添加到Arduino IDE中。

包括所需的库

•代码包括两个库:

•用于处理蓝牙通信。

•ESP32Servo.h是一个专门设计用于控制带有ESP32板的伺服电机的库。

通过移动应用程序发送的命令

该应用程序通过蓝牙发送指定的数字来激活生成的命令,如上下行走等。这些数字在应用程序中定义,命令在代码中被解释以触发不同的机器人动作。

定义伺服电机的GPIO引脚

在本节中,我们指定伺服电机连接的GPIO引脚。机器人的每条手臂和腿都由单独的伺服电机控制。

设置移动限制和速度

机器人的动作被定义为手臂和腿的特定限制。这些动作的速度由speed变量控制。

蓝牙连接和数据处理

在循环部分,代码检查是否从蓝牙应用程序接收到任何数据。如果数据可用,则读取数据并将其存储在data变量中。基于这些数据,触发特定的机器人功能。

基于命令触发机器人动作

当接收到命令时,机器人会执行诸如行走-旋转或重置到稳定位置之类的动作。这就是代码的工作原理和要求,现在将代码上传到板子上,然后让我们转到应用程序端。

步骤8:蓝牙控制应用程序

我们将使用MIT App Inventor,这是一个用于开发Android应用程序的免费拖放工具。通过电子邮件登录App Inventor后,上传我创建的App的共享AIA文件。(这里不支持AIA扩展文件作为附件,所以我不得不将文件上传到PCB页面)这样你就可以检查模块并构建自己的Android安装文件,没有任何信任问题。然后你所需要做的就是在你的手机或平板电脑上安装应用程序!

现在我们来谈谈这个app的界面,有一个按钮列出蓝牙设备,在它下面我添加了一个Text Label显示连接状态。最后,我添加了6个按钮来触发机器人的运动功能。在块部分中,有几个条件在一开始就启动蓝牙通信。然后为每个移动按钮创建要发送的数据类型和数据函数。就是这么简单,现在我们有了一个应用程序!现在是控制机器人的时候了!

代码

#includeServo servo_footA;Servo servo_armA;Servo servo_footB;Servo servo_armB;Servo servo_footC;Servo servo_armC;Servo servo_footD;Servo servo_armD;// Connect servos to pinsint srv_footA = 13;int srv_armA = 12;int srv_footB = 15;int srv_armB = 2;int srv_footC = 26;int srv_armC = 25;int srv_footD = 17;int srv_armD = 5;void setup() {servo_footA.attach(srv_footA);servo_armA.attach(srv_armA);servo_footB.attach(srv_footB);servo_armB.attach(srv_armB);servo_footC.attach(srv_footC);servo_armC.attach(srv_armC);servo_footD.attach(srv_footD);servo_armD.attach(srv_armD);// Set mounting positionssetInitialPositions();}void loop() {}void setInitialPositions() {// Leg servos: 60servo_footA.write(60);servo_footB.write(60);servo_footC.write(60);servo_footD.write(60);// Arm servos: 90servo_armA.write(90);servo_armB.write(90);servo_armC.write(90);servo_armD.write(90);}

 

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

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

相关文章

统计学习之数据挖掘(结构数据)

统计学习之数据挖掘(结构数据):降维聚类关联度分析分类神经网络

2024 腾讯游戏安全大赛 mobile 初赛 wp

找关键结构体 https://www.cnblogs.com/revercc/p/17641855.html 找GWORLD https://bbs.kanxue.com/thread-280042.htm可以发现是 TEXT包裹的,utf-16编码,ida alt + b搜索 53 00 65 00 61 00 6D 00 6C 00 65 00 73 00 73 00 54 00 72 00即可网上翻即可找到 GWorld对应地址: 0…

制造业订单处理烦恼多,日事清 OTD 管理为您排忧解难

你是不是经常因为接单和交货时间差太大而焦头烂额?今天我们就结合制造业OTD管理,带您了解如何应用日事清进行订单交付全周期管理。日事清可以帮你设定精细的流程,从接单到发货,清晰可控地帮你解决以上烦心事。在制造业里打拼,每天都得面对各种烦心事,比如订单处理慢、生产…

如何在SSD1306上显示动态表情符号位图

解锁您的SSD1306上充满活力的视觉效果!学习毫不费力地显示动态表情符号位图,并以风格增强您的项目。 在本教程中,我们将通过使用PCBX在线模拟环境在SSD1306 OLED显示器上显示位图图像的过程。本教程将介绍设置PCBX模拟,格式化位图数据,配置显示大小和管理图像延迟。步骤1:…

redis基础数据结构——ZipList

ZipList 基于特殊写法实现的双端链表,由一系列特殊编码的连续内存块组成,可以像deque一样在双端压入/弹出,并且时间复杂度在O(1) 整体ZL结构如下zlbytes(uint32):当前zl总的byte数。 zltail(uint32):尾结点的offset,指向的是最后一个entry的起始地址。 zllen(uint16):记…

day:28 postman——环境变量(依赖,关联接口)

一.接口的环境变量 (1)定义变量 可以将需要填写的值设为变量 变量设置:{{}}(2)添加环境变量 方法一:方法二:(3)查看环境变量(4)选择环境,执行二.依赖接口 先登录接口成功,生成cookie值,才能让后面接口依赖 cookie值是保持会话 查看cookie值方法 方法一:方法二:…

L1.1 技术和产品准备度

L1.1 技术和产品准备度 技术和产品准备度 技术与产品的演进 ​ 上面这张图展示了如何在技术尚未完全成熟时,启动产品开发,以及技术如何随着新需求或洞察逐步演进,并支持产品的更新换代。产品1.0:由先前研发的的技术3支撑,加上“产品开发可以在预期的技术开发成果的基础上提…

从故障响应到客户信赖:华为ITR流程的五大核心步骤与实战案例

华为究竟是如何在与西方巨头的激烈竞争中崭露头角、脱颖而出的呢?答案是:凭借卓越的服务。今天我们来探讨一下华为是如何通过卓越的服务赢得全球市场的。 一、华为的三件大事 华为前高管费敏曾经总结过,华为的业务可以分成三件大事:1. 开发产品:这就是 IPD 流程,负责从有…

提升生产效率的关键: ethercat转TCPIP智能通信

大家好。最近在数据互联互通方面,我们迎来了一个重要的突破。作为生产管理系统的核心组成部分,数据互联互通一直是一个亟待解决的挑战。我们知道,EtherCAT和TCP/IP是两种不同的通信协议,它们之间的互通性一直存在问题。不过,现在有一款新产品值得关注,这款产品能够实现Et…

Trae初体验

Trae(国际版)的Ai搭载Claude-3.7-Sonnet(完全免费且速度很快)和DeepSeek-R1以及V3(不存在服务器繁忙)以及GPT-4o Trae国服的Ai搭载DouBao和DeepSeek。用Claude-3.7-Sonnet 写一个简易的贪吃蛇小游戏:这个贪吃蛇游戏包含以下功能:使用方向键控制蛇的移动 吃到食物会增加长度和…

C# 从零开始使用Layui.Wpf库开发WPF客户端

一、简介最近需要开发一个桌面版的工具软件,之前用得更多的是Winform,作为一个全干工程师,我们也要兼顾下WPF,趁此机会再研究下开源控件库。MaQaQ:Winform真好用(有个HZHControls控件库,值得一看)。 二、准备工作找了下开源控件库,诸如MaterialDesignInXAML、HandyCon…