单板计算机控制舵机,Arduino+舵机制造指尖陀螺机器人

这个项目介绍如何使用Arduino驱动两个舵机制作一个简单装置,模拟手指拨动指尖陀螺使其高速旋转。制作过程包括3D打印配件、木材切割钻孔、电机组装以及编写Arduino程序。通过连接和编程,实现了指尖陀螺的自动旋转功能,提供了一个有趣的DIY创意。
摘要由CSDN通过智能技术生成

e84376a2a1bf4cfe64d7bc90cf3005e7.png

MAKER:Nikus/译:趣无尽 Cherry(转载请注明出处)

这是一个简单到令人发指的机器,它唯一的用途就是帮你去拨动指尖陀螺让它高速旋转……需要用一个 Arduino 驱动舵机,把它们固定好,放置在恰到好处的位置模拟手指的拨动动作。

下面是制作视频:

材料清单

a12f95dc782a3340b5468864ce4205d8.png

指尖陀螺×1

舵机×2

Arduino×1

M10螺丝×2

M10螺帽×2(带2个垫片)

3D打印配件×2

M2螺丝×2

拉链×2

木块×1

3D打印配件

1812434c072af5e91c7068107444f657.png

这里需要打印两个很小配件,如有你没有打印机,你也可以用木材或者塑料来代替。我选择的蓝色的PLA以便与我自己的指尖陀螺相匹配。

3D打印资源请到项目文件库中下载。

切割和钻孔工作

02208fc23c1f1c97534d998deab8310f.png

2177a85d1eebd56a272b36055d8901c6.png

1、首先切割木材。切割出的尺寸可以放下指尖陀螺和电机(你也可以把Arduino放在木材上切割,但没有很大的必要)。

6e869d2d8e75352e1aa980d8293eded4.png

2、为M10钻孔。这个孔是为了固定指尖陀螺的,钻孔时要钻的稍微大一点,以便将螺帽隐藏起来。

f0f16d4eea1b2d437e4c6d62a97ffdd8.png

8b66ebe64dbfe2e0ff5d3105a430c76b.png

3、钻两个孔,用于固定拉链。以便让电机固定到底座上。

8bee67e34d5b03cfa8028936a865ee52.png

b8e24e98f9c9280215c03d7c8787b8f5.png

28a6cf20581b20bdf350bafb6d7cae97.png

4、在木头底座上钻一个深深的孔,将另一个拉链隐藏在底座用于固定另一个电机。

组装

36bb11ab80375583564b3eda82728e54.png

329b63aeeee15761f52a51e78d5757b4.png

1、先将M10螺丝拧入到之前钻的孔中。用螺母拧紧,然后放上垫片。

2、由于指尖陀螺没有盖子,在指尖陀螺上加上螺母和垫片。

281104530a1f7c13ad82b44c4f3bf440.png

3、旋转手臂是由两个3D配件和两个电机组成的。用M2螺丝将大一点的配件与一个电机的底部固定,然后用拉链将小一点的配件与第二个电机的顶部相连。同样使用M2螺丝固定3D打印配件。

50d7f583866a8b60bd8ebab1bfdb017c.png

4、这条手臂用拉链固定在底座上。

安装Arduino

8d6218ff19e853b1da843ab12decca1e.png

这是个非常简单的程序,只需驱动电机向前和向后移动。你不需要安装其他的库。

#include

Servo arm1;

Servo arm2;

void setup() {

arm1.attach(3);

arm2.attach(5);

}

void loop() {

arm2.write(15);

delay(1000);

arm1.write(0);

delay(150);

arm2.write(90);

delay(500);

for(int i = 0; i < 180; i++){

arm1.write(i);

arm2.write(90-i/3);

delay(20);

}

}

连接电机

d1edee39f11f8de909d858ddd109544a.png

3ae06bff2939dceba54981ae397929b6.png

将两个电机连接到 arduino 。请注意,将电机 VCC 连接到 5V ,将电机 GND 连接到 arduino GND ,将信号连接到引脚 3 和 5 。

完成

95ac64ee8e46dfd0494a0e19ec74c07f.png

2f66cf171484e79e18ccdd4d7163514f.png

这台不停旋转的指尖机器人做好了,美中不足的地方期待你的改良方案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MPU6050是一种常用的六轴陀螺仪和加速度计模块,可以用于测量物体的姿态和运动。在Arduino控制舵机使用MPU6050可以实现自动平衡、姿态控制等功能。 要使用MPU6050控制舵机,首先需要连接硬件。将MPU6050模块的SDA引脚连接到Arduino的SDA引脚,SCL引脚连接到Arduino的SCL引脚,VCC引脚连接到Arduino的5V引脚,GND引脚连接到Arduino的GND引脚。然后将舵机的信号线连接到Arduino的一个数字引脚。 接下来,在Arduino中编写代码。首先需要包含Wire库和Servo库,然后初始化MPU6050和舵机对象。在主循环中,读取MPU6050的角度数据,并根据需要控制舵机的位置。 以下是一个简单的示例代码: ``` #include <Wire.h> #include <Servo.h> Servo servo; int servoPin = 9; const int MPU_addr=0x68; // I2C地址 int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ; void setup(){ Wire.begin(); Wire.beginTransmission(MPU_addr); Wire.write(0x6B); // PWR_MGMT_1寄存器 Wire.write(0); // 唤醒MPU-6050 Wire.endTransmission(true); servo.attach(servoPin); } void loop(){ Wire.beginTransmission(MPU_addr); Wire.write(0x3B); // 从0x3B寄存器开始读取14个字节的数据 Wire.endTransmission(false); Wire.requestFrom(MPU_addr,14,true); // 请求14个字节的数据 AcX=Wire.read()<<8|Wire.read(); // 加速度计X轴数据 AcY=Wire.read()<<8|Wire.read(); // 加速度计Y轴数据 AcZ=Wire.read()<<8|Wire.read(); // 加速度计Z轴数据 Tmp=Wire.read()<<8|Wire.read(); // 温度数据 GyX=Wire.read()<<8|Wire.read(); // 陀螺仪X轴数据 GyY=Wire.read()<<8|Wire.read(); // 陀螺仪Y轴数据 GyZ=Wire.read()<<8|Wire.read(); // 陀螺仪Z轴数据 // 根据需要控制舵机的位置 int servoPos = map(GyX, -32768, 32767, 0, 180); servo.write(servoPos); delay(20); } ``` 这段代码通过读取MPU6050的陀螺仪数据,将陀螺仪X轴的值映射到舵机的角度范围,然后控制舵机的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值