由3D打印的基于Arduino的Theo Jansen风格章鱼机器人
扫描二维码
随时随地手机看文章
大家好!在这个项目中,我将向你展示一个惊人的八足机器人在章鱼的风格!它完全由3d打印部件制成,并以Jansen机制为灵感的酷机制移动。两个简单的直流电机为腿提供动力,使它们以平稳和平衡的方式移动。采用简单的红外传感器电路和控制器对机器人进行控制。我将通过组装3D块一步一步地开始项目,就像一个拼图,所以让我们开始吧!
步骤1:3D零件和硬件
该项目共由79件3D零件组成,但不要害怕,主要零件共55件,厚度约为3毫米。其余24件为夹垫圈3D零件。我用Bamboo Lab A1进行了标准的打印,即中等质量,所有部件的打印时间约为6小时。
我在打印零件时避免使用单一的颜色,我的目的是为了确保您在组装时可以轻松区分接头和主要零件。一开始我是用一种颜色打印完成组装的,后来我意识到观众或读者很难区分零件,所以我希望不同颜色的零件能让你在组装时更容易。
在3D部件的组装过程中,使用了2块简单的直流齿轮电机作为硬件,通常作为一组车轮出售,在创客中非常受欢迎。从技术上讲,它通常在5至6伏的范围内运行,转速约为200至255 RPM。
此外,在装配过程中总共使用了18个螺栓和4个螺母。尺寸如下:
•M3 12MM螺栓8个(底座、顶部、侧面)
•M3 25MM螺栓4个(直流电机用)
•M3螺母4个(直流电机用)
•M3 20MM螺栓2个(轴驱动用)
•M3 16MM螺栓2个(轴驱动用)
•2个M2 12MM螺栓(用于轴-mtr)
步骤2:组装机箱
在本节中,我们将首先组装底盘。首先,使用M3 12MM螺栓将左右侧模型固定在底座模型上。但是,在没有完全拧紧任何一侧的螺栓的情况下,放置上部模型,并通过拧紧所有螺栓完成组装。
步骤3:安装直流减速电机
在本节中,我们将安装直流齿轮电机,首先,在左右两侧的螺栓输入端插入4个M3 25MM螺栓。然后放置命名为ax -mtr的模型。仍然在直流电机轴上。将直流电机安装到机箱自带的M3 25MM螺栓上,使用M3螺母紧固。在包含轴传动部件的模型文件中插入带有长轴的轴部件。转到电机(轴-mtr型号),用M2 12MM螺钉拧紧固定。现在我们可以进行腿部组装了。
第四步:连接双腿
这部分总共需要8个Leg (Leg .stl)部件,每边4个。为了连接第一个腿(即图片中紫色的那些,第一个连接到电机上的),连接模型称为inks_1。使用STL。这些有一个较短的轴。如图所示,将连接部件插入到腿部件中,并使用夹子夹子垫圈。STL固定它们。
接下来是联合模型inks_2。STL用于连接第二支腿(即图像中墨绿色的部分,将与紫色支腿重叠的部分)。这些有一个较长的轴。如图所示,将连接部分插入腿部,并使用夹紧垫圈。STL固定夹子。
最后,在连接部分之后,我们总共有8条腿,现在将紫色腿(靠近电机并具有较短轴的腿)放在底部,深绿色腿(具有较长轴的腿)放在顶部(以便它们重叠)。然后放置较长的主斧。STL型在轴孔上方,轴主较短。STL模型在井孔下方。腿现在准备插入到底盘!在下一步,我们将组装腿底盘。
第五步:在底盘上放置和组装支腿
事实上,以书面形式解释这一节可能有点复杂,所以我在一些共享图像中添加了标记,以使其更容易。
在底盘的两侧,有两个方形安装孔的轴-主。我们之前附在腿上的STL部件。插入主轴。STL零件进入这些孔如图所示,并插入腿到底盘。与此同时,您应该从油墨中插入带有圆形孔的部分。STL部件中的紫色支腿连接到电机轴上。墨绿色腿上有圆孔的部分在这个位置应该保持自由,在后面的步骤插入。然后以同样的方式将第二支腿插入底盘。
将紫色部件(inks_1.stl)附在电机轴上后,将圆形轴分离器部件插入轴驱动中。STL放入电机轴上,底部有紫色的部分。从包含轴驱动部件的模型文件中放置短轴轴部件。仍在先前固定的电机轴上,用M3 20MM螺栓固定。
现在将墨绿色支腿中带圆形孔的支腿部件放置在短轴轴上,然后将带中心孔的圆形垫圈放置在轴驱上,用M3 16MM螺栓固定。STL模型文件。
最后,连接夹子洗涤器。STL部件到轴主的两端。底盘顶部和底部的STL部件。至此,机器人的3D部件组装完成!
步骤6 .电路
现在机器人的3D部件已经完成,我们可以看一下电路。实际上,你可以用Arduino板和电机驱动屏蔽来创建电路,但在这个项目中,我将使用我自己设计的二合一电路板。我在以前的项目中使用了这个电路板,我的追随者非常欣赏它。
所以我做了一些更新,并在PCBWay项目页面上分享了最终版本。该板设计简单但非常高效,它结合了电机驱动器和微控制器,使涉及电机的项目变得容易。在设计PCB原型时,我注意选择容易找到和可焊接的组件。
该板基本上由三个主要组件组成,一个ATmega328P,一个L293D电机驱动器,我使用了一个CH341芯片,便于通过USB编程。只是,CH341 USB芯片似乎有点难以焊接。但使用一个简单的烙铁,应用少量的焊料在PCB上的焊盘上,芯片将被安装,然后对准芯片腿正确,完成与烙铁的焊接。如果您没有焊接经验,您可以使用PCBWay的组装板服务,他们会给您发送一个即用型板。
在这些图片中,我分享了一张Bill of Materials的图片和一张Designator的图片,上面显示了部件的位置。
该电路使用红外遥控器和接收器进行无线控制。红外遥控器和接收器是一个非常实用和简单的产品,适合机器人和爱好DIY应用。它通常以二合一套装的形式出售。
通常工具包包括:
•远程控制器(约。21个按钮)
•38khz 1838B红外接收模块
•跨接电缆
此外,还选用了一块3S 7.4伏锂离子电池为电路供电。只需将电机和红外传感器按如下方式连接到电路上,然后将电路板和电池插入机器人。
•电机A1 =数字2
•电机A2 =数字4
•电机B1 =数字11
•电机B2 =数字10
•IR引脚=数字12
现在机器人的机构和电路都完成了,是时候给它编程了!
步骤7:源代码
在转到主源代码之前,我们需要找出遥控器上的按钮发送哪些命令,即HEX值。下载附件中我分享的红外遥控命令查找器代码,用Arduino IDE打开。
在这段代码和主代码中,我们使用了一个IR库,首先我们需要安装IR库,并确保您已经安装了2.6.0版本的库。但正如您在图像中看到的那样,您可以通过使用Arduino IDE库工具搜索IRremote来轻松安装库。
然后定义连接红外接收器的引脚,并将代码上传到板上。然后打开串行监视器并按下您将在遥控器上使用的按钮,您将看到屏幕上按钮的命令。记住要记下这些命令,因为它们将在下一步中使用。
如果您已经收到了控制器的命令,那么我们可以转到主代码(Motor_Control_IR_Code)。下载代码,用Arduino IDE打开,做如下修改:
•更新电机连接的引脚
•更新红外接收器传感器连接的引脚
•更新从遥控器接收到的HEX值
•loop()函数处理从红外(IR)遥控器接收的命令,并相应地控制电机。
•红外信号检测:从红外传感器读取和处理命令。
•避免重复命令:如果连续收到相同的命令,则忽略该命令,只处理新的命令。
•命令匹配与电机控制:将接收到的命令与预定义的HEX值进行匹配,并执行相应的电机功能:
•FWRD:马达向前移动
•BKWD:马达向后移动
•左:电机左转
•右:马达右转
•STOP:电机停止
•红外接收机复位:红外接收机复位,为下一个信号做好准备。
•错误处理和定时:当传感器繁忙时,应用小延迟,确保稳定运行。
如果一切准备就绪,将代码上传到板上,如果您使用的是我设计的印刷电路板,则需要选择板作为Arduino UNO.
代码
#include
#define irPin 12
IRrecv irrecv(irPin);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
Serial.print("Command Received: ");
Serial.println(results.value, HEX);
irrecv.resume();
}
}
本文编译自hackster.io