回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【Arduino 动手做】眼部机构 inMoov 机器人 简单

头像 驴友花雕 2025.07.06 5 0

眼部机构 inMoov 机器人
哇。当你玩得开心时,时间过得飞快。这个网站是关于我在空闲时间构建的东西。过去 2 年在工作和私人生活中非常紧张。现在我决定减少工作,将更多时间投入到构建机器人中,并首先完成我的 inMoov 机器人。
在地板上的碰撞和所有破碎的碎片之后,机器人处于我在上一篇帖子之前离开的相同状态。首先要做的是完成我的 inMoov 机器人的 Eye Mechanism。

在 inMoov 机器人 (www.inMoov.fr) 的设计中,您可以添加小型相机。在这个阶段,我还不想使用这些,所以我将使用一块圆形的 3D 打印塑料来覆盖眼睛的孔。我还想让 inMoov 机器人保持目前的机器人状态。所以我懒得让眼睛尽可能逼真。
我在我的 YouTube 频道上制作了一段构建视频。

inMoov Eye mechanism build

Eye 机构有一些小零件。在下图中,您可以看到标准件。

零件很合身。唯一不能直接拟合的是 EyeHingeCurve。可能是因为我在他的设计中使用了 Gael Langevin 以外的其他伺服器。我不得不用刀调整铰链

最后的 eye Mechanism。
在 Youtube 视频中,我在 arduino 中使用了一个小的测试代码来移动眼睛。您可以使用此代码来测试自己的 servo。在此示例中,伺服器连接到引脚 22 和 24 上的 Arduino Mega。请根据您的需要更改该值。

00.jpg
01.jpg
02.jpg
03.jpg

项目代码

代码
/* Based on the Sweep example
 by BARRAGAN <http://barraganstudio.com>
 This example code is in the public domain.

modified 8 Nov 2013
 by Scott Fitzgerald
 http://arduino.cc/en/Tutorial/Sweep

Modified to control Eye mechanism inMoov robot (With Arduino Mega)
 https://swanrobotics.com
 */

#include <Servo.h>

Servo horServo; // Horizontal servo (left tot right)
 Servo verServo; // Vertical servo (Up and down)

// Change these settings to your own setup and preferences.
 int horServoPin = 22;
 int horMaxLeft = 60; // Maximum servo position Left
 int horMid = 90; // Middle servo position horizontal
 int horMaxRight = 120; // Maximum servo position Right
 int horStep = 1; // Step size for position horizontal

int verServoPin = 24;
 int verMaxUp = 45; // Maximum servo position Up
 int verMid = 65; // Middle servo position vertical
 int verMaxDown = 95; // Maximum servo position Down
 int verStep = 1; // Step size for position vertical

int delaySpeed = 500; // time between the movement
 int pos = 0; // variable to store the servo position
 int positionwait = 5; // variable to wait for the servo to reach the position

void setup()
 {
 horServo.attach(22); // attaches the servo on horzontal pin
 verServo.attach(24); // attaches the servo on vertical pin

horServo.write(horMid); // Put horizontal servo in neutral position
 verServo.write(verMid); // Put vertical servo in neutral position
 }

void loop()
 {

// Look right
 for(pos = horMid; pos <= horMaxRight; pos += horStep)
 {
 horServo.write(pos);
 delay(positionwait);
 }
 delay(delaySpeed);

// Look left
 for(pos = horMaxRight; pos>=horMaxLeft; pos-=horStep)
 {
 horServo.write(pos);
 delay(positionwait);
 }
 delay(delaySpeed);

// Look neutral
 for(pos = horMaxLeft; pos<=horMid; pos+=horStep)
 {
 horServo.write(pos);
 delay(positionwait);
 }
 delay(delaySpeed);

// Look Up
 for(pos = verMid; pos <= verMaxDown; pos += verStep)
 {
 verServo.write(pos);
 delay(positionwait);
 }
 delay(delaySpeed);

// Look down
 for(pos = verMaxDown; pos>=verMaxUp; pos-=verStep)
 {
 verServo.write(pos);
 delay(positionwait);
 }
 delay(delaySpeed);

//Look neutral
 for(pos = verMaxUp; pos <= verMid; pos += verStep)
 {
 verServo.write(pos);
 delay(positionwait);
 }
 delay(delaySpeed);
 }

【Arduino 动手做】眼部机构 inMoov 机器人
项目链接:https://swanrobotics.com/eye-mechanism-inmoov-robot/
项目作者:SwanRobotics
参考资料:https://inmoov.fr/
项目视频 :https://www.youtube.com/watch?v=MoSU2P5_Svo
项目代码:https://www.youtube.com/watch?v=MoSU2P5_Svo

00183-.gif

评论

user-avatar
icon 他的勋章
    展开更多