×

带有Arduino、乐高和3D打印部件的DIY双足机器人

消耗积分:0 | 格式:zip | 大小:0.20 MB | 2023-06-27

欲望都市

分享资料个

描述

介绍

多年来,制造能够模仿人类行走的双足机器人一直是科学家、制造商和发明家关注的焦点。事实上,双足机器人是具有提供运动的铰接腿机构的移动机器人。与轮式机器人相比,它们可以上楼并越过障碍物,尽管速度较慢。由于关节数量多且在行走过程中保持稳定性,构建仿人双足机器人一直很困难。如果你没有正向、逆向运动学和控制工程的学术知识,那绝对没有问题。在本教程中,我们将使用乐高组件、Arduino 板和一些现成的电气组件制作一个有趣且易于构建的双足机器人(图 A)。这些说明是按照您可以在家中制作的方式准备的。

图 A - 双足机器人的一般视图

在这个项目中,双足机器人使用了一种有趣的机械机构,该机构仅使用一个直流齿轮电机模拟人类行走。结果非常有趣。

在本教程中,我们将使用 Lego Technic 零件制作 Biped 机器人的身体结构和腿部机构。然后,一个直流齿轮电机将通过锥齿轮和正齿轮系驱动支腿机构(图 B)。

 
pYYBAGOlEquAdZwbAAFyoSvS888696.jpg
图 B – 车身结构、电子设备和齿轮电机的组合
 

在下一步中,我们将添加一个 Arduino Nano 作为 Biped 的大脑。Arduino Nano 使用小型强大的微处理器,使其适用于轻量和小型项目(图 C)。

 
poYBAGNVnkOAEIfHAAJ6Xu0KBTE831.jpg
图 C - Arduino Nano 板
 

各种现成的电机、传感器和屏蔽可以轻松连接到 Arduino 板。此功能使我们能够使用 Biped 执行各种任务。例如,您可以通过对 Arduino 板进行编程来告诉 Biped 来回移动和跳舞。

材料

 
poYBAGOlEriAX98oAAIZLOyufbk790.jpg
图 D – 电子和机电元件
 
  • 1x TT 齿轮马达
  • 1x 3D 打印齿轮电机外壳
  • 1x 面包板,迷你尺寸
  • 1x Arduino Nano
  • 1x Neo Pixel LED 环
  • 1 个电源插孔
  • 1x 3D 打印乐高兼容联轴器
  • 1x L298N 迷你电机驱动器
  • 1 个按钮
  • 1x M3 x 30 机械螺丝
  • 2x M3 x 25 机械螺丝
  • 公对公跳线
 
pYYBAGOlEr2AJgdVAAHM-TFKqKE653.jpg
图 E - Lego Technic 组件
 
  • 框架,5x7 模块
  • 双锥齿轮,36齿
  • 锥齿轮,12 齿
  • 梁,9 模块
  • 梁,5 模块
  • 梁,3 模块
  • 角梁,3x5 模块
  • 衬套,1 个模块
  • 车轴,8 模块
  • 角块 2, 180°
  • 双十字块,3模块
  • 带十字孔的横梁,2 模块
  • 带挡块的轴,4 模块
  • 梁,3 模块
  • 车轴,2 模块
  • 带摩擦/轴的连接销,2 模块
  • 带轴的连接器销,2 个模块
  • 管,2 模块
  • 带衬套的连接器销钉,3 个模块
  • 带摩擦的连接器销,3 模块
  • 带摩擦力的连接销,2 模块
  • 带轴孔的轴连接器
  • 角块 1, 0°

机械零件的组装

让我们开始组装 Biped 的身体结构和腿部机构。

 
pYYBAGOlEsGACAYTAAFY0yIsKdU299.jpg
图 F - 四连杆机构和平行四边形机构
 
 

3D打印零件

Lego Technic 组件仅与 LEGO 齿轮马达匹配。为了将动力从现成的齿轮电机的轴传输到乐高齿轮或车轴,我们需要打印齿轮电机的外壳和联轴器。外壳将用作齿轮电机和乐高技术梁之间的接口或适配器。联轴器将齿轮电机轴连接到乐高技术轴。这些 3D 打印部件称为乐高兼容外壳(图 G 和图 H)。我们还创建了正面背面机器人的身体覆盖物。后盖看起来像氧气胶囊,保护电子部分。前盖的作用类似于盔甲(图一)。请下载 3D 文件并使用您的 3D 打印机打印电机外壳、乐高兼容联轴器和盖子,或使用附近的创客空间中的那些。

 
poYBAGOlEsiASo_BAAECImYH1Us821.jpg
图 G - 3D 打印乐高兼容电机外壳
 
 
pYYBAGOlEsyAZrkWAAENxQ-pKMQ258.jpg
图 H - LEGO 兼容齿轮电机的一般视图
 
 
poYBAGOlEtCAYNWjAAFKU8AjYl8365.jpg
图 I - 3D 打印的前后车身盖
 

确保正确实现图 J 中所示的电路原理图,这样您就不会最终损坏您的 Arduino 板和电机驱动器。

 

 
poYBAGOlEtyADGlMAAET6sHMZxg962.jpg
图 J - 电路示意图
 
 

编程

您可以拿起乐高积木,让您的想象力发挥无限。当然,编码也是您可以享受很多乐趣并最具创造力的部分。您可以转到 Arduino IDE 并编写自己的代码来告诉 Biped 做什么。但是现在,让我们从这段代码开始。

#include 
#define PIXELSPIN A1 // Which pin on the Arduino is connected to the NeoPixels?
#define NUMPIXELS 8  // How many NeoPixels are attached to the Arduino?
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);
#define M1 A4
#define M12 A5
#define button A3
int buttonNew;
int buttonOld = 1;
int Motorstate = 0;
void setup() {
// Initialize Arduino pins to outputs
pinMode(M1, OUTPUT);
pinMode(M12, OUTPUT);
pinMode(button, INPUT_PULLUP);
// This initializes the NeoPixel library.
pixels.begin();
for (int i = 0; i < 9; i++) {
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255.
pixels.setPixelColor(i, pixels.Color(0, 0, 0));
// This sends the updated pixel color to the hardware.
pixels.show();
}
}
void loop() {
buttonNew = digitalRead(button);
if (buttonOld == 0 && buttonNew == 1) {
if (Motorstate == 0)
{
// bright blue color.
pixels.setPixelColor(1, pixels.Color(0, 0, 250));
pixels.setPixelColor(2, pixels.Color(0, 0, 250));
pixels.setPixelColor(3, pixels.Color(0, 0, 250));
pixels.setPixelColor(5, pixels.Color(0, 0, 250));
pixels.setPixelColor(6, pixels.Color(0, 0, 250));
pixels.setPixelColor(7, pixels.Color(0, 0, 250));
pixels.show();
// Motor run.
digitalWrite(M1, HIGH);
digitalWrite(M12, LOW);
delay(1000);
digitalWrite(M12, HIGH);
digitalWrite(M1, LOW);
delay(1000);
Motorstate = 1;
} else {
for (int i = 1 ; i < 8 ; i++)
{
pixels.setPixelColor(1, pixels.Color(0, 0, 0)); // Neopixel off.
pixels.show();
}
// Motor stop.
digitalWrite(M1, HIGH);
digitalWrite(M12, HIGH);
Motorstate = 0;
}
}
buttonOld = buttonNew;
}

运行你的 Biped

 

请通过下面的评论告诉我们您对本教程的看法。您的反馈将帮助我们改进未来的工作。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !