基于Arduino的自弹尤克里里机器人

需要项目源码资料的可以私信我

基于Arduino的自弹尤克里里机器人

  • 一、简介
  • 二、材料清单
  • 三、工具
  • 四、实现过程
    • 步骤1:实物图
    • 步骤2:3D打印部件
    • 步骤3:组装上半部分
    • 步骤4:组装下半部分
    • 步骤5:安装导轨
    • 步骤6:设置皮带和滑轮系统
    • 步骤7:电子设备的连接
    • 步骤8:编写和上传代码
    • 步骤9:校准
    • 步骤10:组装电磁阀
    • 步骤11:最终测试
    • 步骤12:添加曲目
  • 结语

一、简介

在这个充满创意的项目中,我们将一起探索如何使用Arduino Uno微控制器来构建一个可以自主演奏音乐的自弹尤克里里机器人。这是一个结合了3D打印、电子工程和编程的有趣项目,适合所有级别的爱好者。以下是实物图片。

在这里插入图片描述
在这里插入图片描述

二、材料清单

在开始之前,我们需要准备以下材料:

  1. 尤克里里:任何便宜的型号都可以,但最好是女高音型号。
  2. Arduino Uno:作为我们机器人的大脑。
  3. L293D电机驱动盾:用于驱动电磁阀。
  4. 12V电磁阀:8个,用于弹奏琴弦。
  5. Nema 17步进电机:用于控制滑动机构。
  6. TMC2208步进电机驱动器:为步进电机提供精确控制。
  7. 迷你面包板:用于临时连接电子元件。
  8. 150mm MGN9B直线导轨:带滑块,用于构建滑动机构。
  9. GT2 6mm同步带:用于连接步进电机和滑块。
  10. 滑轮和惰轮:用于同步带的张紧。
  11. 微型伺服电机:用于控制拨片。
  12. 12V 10A电源:为整个系统供电。
  13. 22 AWG实心导线:用于连接电子元件。
  14. M3螺母和螺栓:用于组装3D打印部件。
    Arduino控制核心如下图:
    在这里插入图片描述

三、工具

  • 3D打印机:用于打印机器人的外壳和部分机械部件。
  • 烙铁:用于焊接电子元件。
  • 螺丝刀:用于组装机械部件。
  • 万用表:用于测量电压和电流。

四、实现过程

步骤1:实物图

在这里插入图片描述

步骤2:3D打印部件

首先,使用3D打印机打印所需的部件,包括外壳、滑轨支架、步进电机支架、伺服电机支架等。如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于部件过多这里就不展示了,需要3D模型的可以私信我,发你文件。
在这里插入图片描述
然后即可进入打印模型了
在这里插入图片描述
在这里插入图片描述

步骤3:组装上半部分

将直线导轨支架安装在上半部分,并使用M3螺丝固定。然后安装步进电机支架和步进电机。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重复这个过程来将步进电机支架安装在侧面,然后将步进电机滑入到位,面向上方。

步骤4:组装下半部分

对于下半部分,首先安装惰轮支架,然后是另一个导轨支架。接下来,将Arduino和电机盾安装到侧面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最终完成的效果应该与上面显示的图片类似。

步骤5:安装导轨

现在可以将直线导轨放置在尤克里里的主体上。一旦它处于正确的位置,就应该完全紧固导轨支架。

接下来,取下3D打印的伺服电机支架,并将其连接到同步带上。伺服电机支架有特定的槽位用于固定皮带,因此它应该可以轻松地推入到位。

再次检查滑动块是否能够自由地沿直线导轨上下移动,然后将其拧紧到伺服电机支架上,确保其方向正确。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

步骤6:设置皮带和滑轮系统

将惰轮滑轮放置在其支架上,然后将皮带环绕在惰轮滑轮和步进电机轴上。将皮带剪成合适的长度,并将其插入步进电机支架上的另一个槽中。这将允许步进电机上下移动滑动块。
在这里插入图片描述
在这里插入图片描述

步骤7:电子设备的连接

将迷你面包板放置在步进电机旁边,并将TMC2208步进电机驱动器插入中心。现在,为了限制供应给步进电机的电流,我们需要在驱动模块上设置电压参考。

  1. 首先,将驱动器连接到12V电源。
  2. 打开电源并将万用表设置为测量直流电压。
  3. 将黑色探头放在GND引脚上,红色探头放在微小的电位器上。
  4. 在监视万用表读数的同时调整电位器以设置参考电压(VREF)。

⚠️我最终将参考电压设置在大约1V。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

步骤8:编写和上传代码

对于连接到Arduino的其余部分:

  1. M1A、M1B、M2A、M2B连接到步进电机。
  2. VIO焊接到电机盾上的5V输出。
  3. DIR、STEP和ENABLE连接到你选择的Arduino数字引脚,并用于向驱动器发送信号。
  4. 应该连接地线。

在这里插入图片描述
在这里插入图片描述

步骤9:校准

现在是时候让机械装置动起来了!

通过将滑块移至尽可能靠近步进电机的位置来重置滑块的位置。然后上传使用Accelstepper库的stepper.ino代码,以测试其运动(你可能需要调整限制以确保滑块具有完整的运动范围)。

完成之后,将微型伺服电机连接到Arduino并运行servo.ino代码以验证其操作。
以上代码私信我可以获取!!!!
在这里插入图片描述
在这里插入图片描述

尤克里里测试视频

步骤10:组装电磁阀

安装电磁阀并连接到Arduino,确保它们可以正确地弹奏琴弦。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

步骤11:最终测试

根据你的设置,让一切正常工作可能需要几次尝试。我在本节中包含了一些脚本,这些脚本可以帮助此过程。

每次测试过程要记住:

  1. 插入12V电源。
  2. 连接Arduino。
  3. 将滑块移动到起始位置。

将所有部件组装在一起,并进行最终测试。见下视频:
在这里插入图片描述
在这里插入图片描述

步骤12:添加曲目

在代码中添加不同的曲目,让机器人演奏。
在这里插入图片描述
见视频:

尤克里里完成

结语

通过这个项目,你不仅能够学习到如何使用Arduino和3D打印技术,还能够体验到创造一个能够演奏音乐的机器人的乐趣。这是一个极好的实践项目,可以激发你的创造力和技术能力。

希望你喜欢这个项目,并在构建过程中找到乐趣!如果你有任何问题或需要帮助,欢迎在评论区交流。

作者:Svan.


注意:本博文为不得在未经本人同意进行转载或者二次创作,违者必究!!!

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

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

相关文章

1. 如何在服务器上租GPU跑实验 (以AutoDL为例) - 深度学习·科研实践·从0到1

目录 前言 1. 在AutoDL上注册账号 2. 在算力市场选择GPU 3. 创建实例 4. 控制台-容器实例界面(核心) 4.1 无卡模式(常用) 5. 帮助文档 前言 好记性不如烂笔头,本专栏将详细记录下本人学习深度学习工程实践&…

程序一毛,人生九牛

Welcome 大家好,欢迎来到瑾芳玉洁的博客! 😑励志开源分享诗和代码,三餐却无汤,顿顿都被噎。 😭有幸结识那个值得被认真、被珍惜、被捧在手掌心的女孩,不出意外被敷衍、被唾弃、被埋在了垃圾堆。…

ADRC线性跟踪微分器TD详细测试(Simulink 算法框图+CODESYS ST+博途SCL完整源代码)

1、ADRC线性跟踪微分器 ADRC线性跟踪微分器(ST+SCL语言)_adrc算法在博途编程中scl语言-CSDN博客文章浏览阅读784次。本文介绍了ADRC线性跟踪微分器的算法和源代码,包括在SMART PLC和H5U平台上的实现。文章提供了ST和SCL语言的详细代码,并讨论了跟踪微分器在自动控制中的作用…

Vue3动态导入后端路由

动态获取文件 // modules就是一个map,文件路径作为key,文件对象作为value const modulesimport.meta.glob(../views/**/*.vue)获取到的modules对象如下: 添加动态路由 import {createRouter, createWebHashHistory} from vue-routerconst m…

AutoGen实现多代理—AI Agentic Design Patterns with AutoGen(二)

1. AutoGen顺序对话在客户入职案例上的应用 如图,客户入职前会经历三个阶段,一个代理收集客户的信息,一个代理收集客户的感兴趣话题,一个代理根据前两个代理的基础信息与客户代理对话,产生聊天信息。 本节实验的地址&…

Cilium + ebpf 系列文章-什么是ebpf?(一)

前言: 这篇非常非常干,很有可能读不懂。 这里非常非常推荐,建议使用Cilium官网的lab来辅助学习!!!Resources Library - IsovalentExplore Isovalents Resource Library, your one-stop destination for ins…

【蚂蚁HR-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

240929-CGAN条件生成对抗网络

240929-CGAN条件生成对抗网络 前面我们学习了GAN(240925-GAN生成对抗网络-CSDN博客)和DCGAN(240929-DCGAN生成漫画头像-CSDN博客),接下来继续来看CGAN(Conditional GAN)条件生成对抗网络。 流…

实习问题(配置文件获取参数)

Java中用SpringBoot框架,当我们要获取配置文件yml里的参数时,用Value注解获取 如果配置文件中没有srvSealUploadPath这个参数的话,可以用Value("${srvSealUploadPath:data/idoc/temp}"),这个的意思是,如果配…

【华为HCIP实战课程一】OSPF相关基础介绍及基础配置,网络工程师必修

一、OSPF介绍 开放式最短路径优先协议OSPF(Open Shortest Path First),IPv4使用的OSPFv2,针对IPv6使用OSPFv3协议。 二、为什么需要OSPF OSPF出现之前,网络广泛使用RIP路由协议,RIP由于最大16跳数限制无法适应大型网络,RIP是基于距离矢量算法的路由协议,应用在大型网…

PG数据库的Jsonb全文检索查询

1.操作键值对 PostgreSQL 对 jsonb 类型的筛选查询可以使用 -> 或者 ->> 操作符。 -> 操作符用于通过 JSON 对象中的键来获取对应的值。->> 操作符可以将获取到的值提取出来转化为字符串类型。 例如,下面是一个包含 jsonb 类型字段的表&#x…

状态模式原理剖析

《状态模式原理剖析》 状态模式(State Pattern) 是一种行为设计模式,它允许对象在其内部状态改变时改变其行为。换句话说,当对象状态发生变化时,它的行为也会随之变化。 通过状态模式,可以消除通过 if-else…

计241 作业2:C程序设计初步

问题 A: C语言实验——计算AB&#xff08;顺序结构&#xff09; 思路讲解: 这个直接计算ab就好&#xff0c;没有什么困难的&#xff0c;用来熟悉环境最适合不过 代码实现: #include<stdio.h>int main() {int a,b;scanf("%d %d",&a,&b);printf("…

[JavaEE] IP协议

目录 一、 IP协议 1.1 基本概念 1.2 协议头格式 1.3 特殊IP 二、 地址管理 2.1 网段划分 2.2 CIDR(Classless Interdomain Routing) 2.3 私有IP地址和公网IP地址 2.4 NAT(Network Address Translation)-网络地址转换 2.5 路由选择 三、数据链路层 3.1 认识以太网 3…

监控易监测对象及指标之:全面监控Sybase_New数据库

随着企业数据量的不断增长和业务的复杂化&#xff0c;数据库的稳定性和性能成为了保障业务连续性的关键因素。Sybase_New数据库作为众多企业选择的数据管理解决方案&#xff0c;其稳定性和性能对于企业的运营至关重要。 为了确保Sybase_New数据库的稳定运行和高效性能&#xff…

【CSS in Depth 2 精译_042】6.4 CSS 中的堆叠上下文与 z-index(下)——深入理解堆叠上下文

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09;第二章 相对单位&#xff08;已完结&#xff09;第三章 文档流与盒模型&#xff08;已完结&#xff09;第四章 Flexbox 布局&#xff08;已…

Adobe Photoshop 2024 v25.12 (macOS, Windows) 发布下载 - 照片和设计软件

Adobe Photoshop 2024 v25.12 (macOS, Windows) - 照片和设计软件 Acrobat、After Effects、Animate、Audition、Bridge、Character Animator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、Lightroom Classic、Media Encoder、Photoshop、Premiere Pro、Adobe XD…

【unity进阶知识3】封装一个事件管理系统

前言 框架的事件系统主要负责高效的方法调用与数据传递&#xff0c;实现各功能之间的解耦&#xff0c;通常在调用某个实例的方法时&#xff0c;必须先获得这个实例的引用或者新实例化一个对象&#xff0c;低耦合度的框架结构希望程序本身不去关注被调用的方法所依托的实例对象…

收银系统源码-ERP进销存解决方案

收银系统目前已经成为门店日常经营的必备软件工具&#xff0c;功能一般需涵盖线下门店收银&#xff0c;ERP进销存、线上商城等。一套好的ERP进销存模块也能很大程度帮助门店经营管理门店。 ERP进销存功能涵盖了商品的采购、销售、调拨、盘点、库存管理、资金管理等全链路管理&…

对话总结:Scale AI的创始人兼CEO Alex Wang

AI的三大支柱 计算:主要由大公司如NVIDIA推动。算法:顶尖实验室如OpenAI主导。数据:Scale致力于推动数据进展。前沿数据的重要性 与人类智能相比较,前沿数据是AI发展的关键。互联网数据是机器与人类合作的结果。语言模型的发展 第一阶段:原始的Transformer论文和GPT的小规…