在这个项目中,设计并制造了一个可以自主演奏音乐的自弹尤克里里机器人!

材料:
基于 Arduino Uno 微控制器!

其他部件
- 尤克里里 (任何便宜的型号都可以)
- Arduino Uno
- L293D 电机驱动器扩展罩
- 8× 12V 电磁阀
- Nema 17 步进机
- TMC2208 步进驱动器
- 迷你面包板
- 150 毫米 MGN9B 直线导轨,带块
- GT2 6mm 同步带
- 滑轮和惰轮
- 微型伺服
- 12V 10A 电源
- 实心线 (22 AWG)
- M3 具体细节
辅助工具
- 3D 打印机
- 烙铁
- 螺丝刀
- 万用表
第 1 步:3D 打印
第一步是 3D 打印所需的部件。我建议先打印** shell_bottom.stl** 和 shell_top.stl ,因为它们是以下安装组件连接的基础:
- rail_mount.stl (×2)
- idler_holder.stl
- stepper_mount.stl
然后可以打印拾取机构的零件( servo_mount.stl 、 pick.stl )。
机器人的另一端基于 solenoid_cage.stl 。它通过 2× neck_mount.stl 连接到尤克里里琴上。然后您将需要 4× plunger_center.stl 和 4× plunger_side.stl ,但这可能会根据使用的螺线管数量及其布局而变化。
*附件:3D模型资料.7z
第 2 步:3D 打印组件
打印部件时需要注意的重要事项:
大多数女高音尤克里里应该有一个足够相似的设计,以便贝壳件能够正确地适应,但情况可能并非总是如此,所以这些部分可能需要稍微修改一下,以适应你的乐器。



第 3 步:上半部分组装
首先将线性导轨支架放在上半部分,然后用 M3 螺钉固定。外壳的底部有一个槽,用于拧紧 M3 螺母。

重复此过程,将步进器安装座安装在侧面,然后将步进器面朝上滑入到位。

第 4 步:下半部分组装
对于下半部分,首先安装惰轮支架,然后安装另一个导轨支架。接下来,将带有电机护罩的 Arduino 连接到侧面。

最终结果应与上面显示的图片相似。

第 5 步:安装滑轨
现在,线性导轨可以安装在尤克里里琴的琴身上。一旦它处于正确的位置,就应该将导轨支架完全拧紧。

接下来,拿起 3D 打印的伺服支架并将其连接到正时皮带上。伺服安装座具有用于固定皮带的特定插槽,因此它应该很容易推入到位。
仔细检查滑块是否在线性导轨上自由上下移动,然后将伺服安装座拧到上面,确保其方向正确。

第 6 步:皮带和皮带轮系统
将惰轮放在其支架上,然后将皮带绕在它和步进轴上。将皮带剪成合适的长度,然后将其插入步进器支架上的另一个插槽中。这将允许步进器上下移动滑块。

第 7 步:安装电子元件
将微型试验板放在步进电机旁边,并将TMC2208步进驱动器插入中心。现在,为了限制提供给步进电机的电流,我们需要在驱动器模块上设置电压参考。

- 首先,将驱动器连接到 12V 电源。
- 打开电源并设置万用表以测量直流电压。
- 将黑色探针放在 GND 引脚上,将红色探针放在微型电位计上。
- 在监控万用表读数的同时调整电位计,以设置参考电压 (VREF)
我最终将参考电压设置为1V 左右。

对于与 Arduino 的其余连接:
- M1A 、 M1B 、 M2A 、M2B 连接到步进电机
- VIO 焊接到电机扩展板上的 5V 输出上
- DIR 、STEP 和 ENABLE 连接到您选择的 Arduino 数字引脚,用于向驱动程序发送信号
- 应连接接地


第 8 步:步进和伺服代码
现在是时候让机械装置动起来了!

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

完成后,将微型舵机连接到 Arduino 并运行 servo.ino 代码以验证其操作。
*附件:servo.7z
*附件:stepper.7z
第 9 步:滑块校准
如果两个部分都正常工作,您现在可以通过将伺服器安装到滑块上来组合它们,并合并前面的两段代码

伺服电机就位后,您可能需要调整并确定伺服电机的正确角度。
第 10 步:位置校准
这部分稍微困难一些,可能需要一些反复试验。
为了让机器人拨动琴弦,找到每根琴弦的位置并将其放入代码中,以便拨片轻轻地放在四根琴弦中每根琴弦的一侧。后面部分的代码可能会对此有所帮助(删除不必要的部分)。

第 11 步:安装螺线管组件
完成后,打印螺线管笼(如果尚未打印),然后按照上图所示的模式插入螺线管(先将电线穿过)。对于每个螺线管,将一根电线接地,另一根电线连接到 arduino 扩展板上的电机输入之一。

将柱塞拧入螺线管末端,然后使用笼式支架将笼子连接到尤克里里琴的颈部。验证柱塞是否正确压紧琴弦,并在必要时重新对齐。

第 12 步:将所有组件放在一起

根据设置,要使所有内容正常工作可能需要多次尝试。在本节中,包含了一些可以帮助完成此过程的脚本。
每次要记住的测试过程:
- 插入 12V 电源。
- 连接 Arduino。
- 将滑块移动到起始位置。

第 13 步:选择要播放的音乐

我在 ukulele.ino 的草图中放了几首不同的歌曲,所以一定要全部尝试一下!
第 14 步:完成!
现在,构建已大功告成,可以试试自行演奏音乐了。

作者:zeroshot
来源:https://www.instructables.com/Self-playing-Ukulele-Robot-Using-Arduino/