让你的3D打印机播放音乐

7,294

40

13

简介:让3D打印机播放音乐

关于:你好,我的名字是Toglefritz。那显然不是我的真名;我的真名是斯科特,但在网上我用笔名托格弗里茨。我喜欢做东西,我喜欢和别人分享我的工作。我…

如果您拥有或使用过3D打印机,您无疑知道,除非您的打印机配备了“静音”步进驱动程序,否则3D打印机可以制作一整套。。。有趣的操作时发出噪音。


在这个教学表中,我们将使所有这些随机的噪音服务于一个更高的目的。通过利用声学科学和巧妙的时机,我们将让你的3D打印机播放一段小曲子.很酷的事情是,我们将执行这个升级不添加任何硬件到您的打印机-甚至没有扬声器!

我们将利用一种古老的方法来播放音乐,使用步进电机使它们以特定的频率振动。做了一些修改马林鱼固件,你的3D打印机可以在打印开始前播放一首可爱的歌曲。

补给

相当多的工作我们将在这个Instructable中做的是在运行在3D打印机控制器上的固件(Marlin)的代码。因此,您将需要的供应清单,使这个惊人的升级您的打印机是相当温和的。

一台Creality Ender 3 3D打印机

在这个教程中,我使用的是真实感末影3。然而,您可以采用本Instructable中使用的技术,使几乎任何3D打印机为您播放音乐,只要它运行马林固件。不过,在打印机控制器上闪烁新的音乐增强固件的细节可能与本Instructable中的步骤不同。

一个USBasp AVR程序员

USBasp程序员是一个工具,在这个Instructable中,用来在Ender 3控制板上闪光引导加载程序。如果你手头没有,你也可以使用Arduino Uno来刷新引导加载程序。我在这个指导表的第7步中写了一些说明。

通常情况下,USBasp程序员自带一个10针(2x5)头。Ender 3控制板使用六针(2x3) ISP头进行编程。所以你还需要一个10针到6针的USBasp适配器。幸运的是,许多供应商都将此适配器包含在程序员中。

步骤1:访问末端3控制器

好吧,我们开始吧。为了启动这个项目,我们需要打开Ender 3控制盒,露出里面的控制器板。首先,,您必须在打开控制器盒前拔掉3D打印机的插头.控制板上有几个螺丝端子,基本上是暴露的电线,从电源,你真的不想开始这个项目,令人讨厌的冲击。这应该是一段有趣的时光。

总共有三颗螺钉将控制器盒盖固定。我们需要来回滑动构建平台一点来访问所有三个螺丝。首先,拔下打印机插头后,慢慢地将搭建平台一直滑到机器的后面,这样它就不会挡住下面控制盒前面的两个螺丝。使用内六角钥匙,拆卸盖子前面的两个螺丝。

然后,慢慢地把平台一路滑到机器的前面。这将允许您访问第三个也是最后一个螺丝在盒子的背面。

卸下最后一个螺钉后,将盖子从控制箱顶部提起,暂时放在一边。不过,不要太匆忙地提起盖子,因为盖子下面有一个风扇,连接到控制板的电线也不长。

控制器接线参考

我们实际上不会从控制器板上拔下任何东西。但是,为了防止在我们对电路板进行编程时意外拔掉某些插头,这里提供了一些参考资料,以便您可以将它的来源放回原处。

步骤2:将引导加载程序闪存到控制板上

Creality Ender 3内部的控制板未附带引导加载程序,因此Arduino IDE将无法对该板进行编程。因此,在我们能够使用Arduino IDE闪存新固件之前,我们需要在主板上闪存引导加载程序。引导加载程序是一种软件,它告诉控制板如何与Arduino IDE通信。

连接USBasp编程器

首先要做的是将USBasp程序员连接到Ender 3控制器。末底端3控制板有一个板载ISP头,这是板可能是如何在工厂编程。如果你看一下板的前面,你会发现2x3引脚ISP头就在USB端口旁边。

ISP报头的方向很重要。这并不是说如果你弄错了,你的打印机会爆炸,但是如果USBasp编程程序插错了,刷新固件将无法工作。如果您查看十针到六针适配器,您会发现其中一个角针标记为GND

这个GNDISP头上的引脚是最靠近电路板边缘和最靠近电路板的引脚表1标题(带有彩色电缆的标题)。下图可能比书面说明更有用,用于在ISP头上定位接地引脚。

知道两者的位置GND引脚是,使用这些引脚作为基准点,将USBasp程序员插到Ender 3控制板。

Flash引导装载程序

连接USBasp程序员后,跳转到Arduino IDE。首先,我们需要告诉IDE我们使用的是什么类型的程序员。去工具>程序员选择USBasp

接下来,我们需要告诉ArduinoIDE我们要处理的是哪种类型的板。在这种情况下,Ender 3控制板基于Sanguino板。这种类型的板不是ArduinoIDE中预定义的板,因此我们需要首先将其安装到board manager中。从去文件>偏好. 然后,在额外的董事会管理器url字段,输入下面的URL:

https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json

好啊关闭“首选项”对话框。那么,去工具>>董事会的经理

然后搜索" Sanguino "然后安装电路板。

现在桑吉诺板装好了,回到工具>然后选择Sanguino,它现在将出现在列表中。

我们需要提供Arduino IDE的最后一点信息是Ender 3控制板使用的处理器类型。要做到这一点,请进入工具>加工机选择ATmega1284或ATmega128P(16MHz)

现在,我们终于可以将引导加载程序flash到Ender 3控制器上了。去工具>刻录引导加载程序.当流程成功时,您应该在显示的底部看到一条确认消息。

步骤3:刷新音乐马林鱼固件

好的!我们刚刚在Ender 3控制器上闪过的引导加载程序将使我们能够从Arduino IDE上闪过新的固件到板上。对于这个项目,我们使用了一个修改版本的Marlin固件。你可以从GitHub仓库下载该项目的固件:

https://github.com/Toglefritz/Musical_Marlin

从GitHub下载存储库后,打开Marlin。在Arduino IDE中。IDE将自动打开剩余的Musical_Marlin固件文件(有一大堆文件)。

因为我们将使用USBasp编程器而不是USB端口刷新固件,所以我们需要上传固件的方式与您使用Arduino IDE时可能使用的方式略有不同。去素描>上传使用程序员.这个命令将告诉Arduino IDE使用USBasp程序员将代码闪存到控制器上,而不是USB端口上,这是工具栏上的箭头按钮所做的。

之后,代码将上传,Arduino IDE将在窗口底部显示状态更新,就像通过USB上传固件一样。

理解代码

如果你只想继续,听你的Ender 3播放一首优美的歌曲,你可以跳到下一节,这将解释如何使用固件添加的自定义LCD菜单来播放一首曲子。

把音乐翻译成g代码

事实证明,3D打印机并不是用来播放音乐的。Ender 3 3D打印机内部的控制器本质上只是一个g代码解释器。因此,这个项目的关键是将音符翻译成G-code。

什么是便条?

在解释乐谱如何被翻译成g代码之前,我们首先需要理解一个音符代表了什么。音符编码两种信息:频率和持续时间。

首先,音符表示音调频率。音乐中的每个字母(A、B、C、D、E、F、G,加上它们的各种单位/尖锐度)被定义为以Hz为单位的声音频率。这个存储库中有一个电子表格,列出了一个音阶的三个八度音阶的频率。

第二,音符表示播放每个音调的持续时间。不同类型的音符(如四分之一音符、八分之一音符、半音符等)的持续时间根据歌曲的节奏而有所不同。节奏以每分钟的节拍表示。例如,《时间的塞尔达陶笛》中的风暴之歌的节奏为每分钟160拍。虽然音乐家不会这样看待音符(因为他们不是机器),但节奏给出了弹奏每个音符的绝对时间长度。在风暴之歌的例子中,每个节拍持续0.00625分钟。

把音乐翻译成g代码

我们希望从音乐中生成的G代码是用于线性移动的G0命令。此命令接受两个主要参数。首先,移动一个(或mroe,但在本例中只有一个)轴的距离和进给速度。例如,G0 X5 F100表示“以100 mm/min的速度移动X轴+5 mm”。我们的目标是将音符频率映射到进给速度,将音符持续时间映射到距离。

注意频率对进给速度的影响

第一个挑战是将给定轴每毫米步数的频率(Hz)转换为进给率(mm/min)。对于Ender 3,X轴的每毫米步长值为80;这是一个基于3D打印机设计的固定值。

首先,音符的频率(Hz)等于步进者的目标步速(stepper second)。例如,C4(中音C)的频率为261.6256 Hz。如果步进器每秒走261.6256步,它就会以C4音的方式振动。我们可以很容易地将这个步长频率转换为每分钟的步长,以匹配freedrate(毫米/分钟)的时间尺度。261.6256步/秒* 60秒/分钟= 15697.536步/分钟。

其次,对于步数/分钟值,我们可以根据x轴每毫米的步数值(80)计算出轴在一分钟内所走的距离。换句话说,如果步奏者“演奏”一个C4的音符,一分钟内将走多少距离。1597.536步/分钟÷ 80步/毫米= 196.2192毫米/分钟。所以,当X-stepper“播放”C4时,它的移动速度是196.2192毫米/分钟。这是C4的进给速度!

注意持续时间到距离
创建刀位点

因此,将频率到进给速度和持续时间到距离的计算结合起来,我们可以创建一个G代码命令,使步进电机发出C4四分之一音符。唯一需要注意的是,我们将进给速度四舍五入,这样它就没有十进制值。

G0 X1.22637 F196

将一组注释串在一起还需要一个G代码。我们需要将打印机设置为使用相对定位,而不是绝对定位,以便在发出更多命令时,打印机将继续移动。我们可以使用“M305 X1”命令设置相对定位。

给马林添加歌曲

所以,上面的部分,是相当深入的杂草,描述了把音乐翻译成g代码。我们怎么把这个加到马林身上?我为这个项目选择的方法是在LCD界面中添加自定义命令来播放歌曲。这其实很简单。在Marlin固件代码中,可以在configuration_adv.h文件中创建自定义LCD命令。在那里,有一个用于#define CUSTOM_USER_MENUS的部分。通过注释掉不同的行,如#define USER_DESC_1 "Play a scale",我们可以向LCD菜单添加额外的项目。

每个菜单项有两个部分。名称列在#define USER_DESC_1“Play a scale”等行中“。每个菜单项执行一组自定义的G代码命令。这些都列在名称正下方的行中。因此,我们将获取表示希望打印机播放的歌曲的cutsom G代码,并将其添加到自定义菜单项中。例如,下面的G代码将播放塞尔达的风暴之歌。此存储库中的电子表格中描述了将这首歌曲转换为G代码的过程。

#定义用户代码2"G17\nM350 X1\nG91\nG0 X0.6875 F220\nG0 X0.81875 F262\nG0 X1.6375 F131\nG0 X0.6875 F220
\nG0 X0.81875 F262\nG0 X1.6375 F131\nG0 X4.63125 F494\nG0 X1.6375 F524\nG0 X1.54375 F494\nG0 X1.6375 F524
\nG0 X1.54375 F494\nG0 X1.54375 F494\nG0 X1.F392\nG0 X4.125 F330\nG0 X20.0625\nG0 F28752.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 4 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nG0X0.81875 F262\nG0 X0.91875 F294
\nG0 X4.125 F330\nG0 X2.0625 F330\nG0 X4.125 F220“

当我们选择自定义命令时,打印机将“播放”风暴之歌。

第四步:把盖子盖上

现在我们已经完成了Ender 3控制器的编程,我们可以将盖子放回原位。这很容易,因为我们将只执行与步骤1相反的步骤。首先将构建平台一直向前滑动,以便可以重新插入盖子背面的单个螺钉。第二,全面推进构建平台将y拧到后面,然后重新插入前面的两个螺钉。

好的,工作完成了。

第五步:播放音乐

我们刚刚完成的Marlin自定义版本在控制板上闪烁,可在LCD显示屏上启用一组自定义命令来播放歌曲。要访问菜单,只需按LCD控制器上的拨号键,然后导航至自定义命令

然后,您可以选择要播放的歌曲之一。自定义Marlin固件中包含三首歌曲(撰写本文时)。因为我最近玩《狂野的气息》玩得很开心,所以我决定去塞尔达系列的几首歌。在本教程的后面一步中,我提供了创建您自己的音乐的文档。

  • 扮演一个规模
    这首歌其实不是一首歌。它在测试中起着重要的作用。
  • 《时间的塞尔达陶笛》中的风暴之歌
  • 来自塞尔达陶笛的格鲁多山谷
  • 《时间的塞尔达陶笛》中的迷失森林

笔记

这三首歌曲,加上音阶,占据了控制器上几乎所有的可用存储空间,因此如果您想添加其他歌曲,您需要删除其中一首已经存在的歌曲。

第六步:附录A:用Arduino Uno编程Ender 3控制器

如果您没有或不想购买USBasp编程器,您也可以使用Arduino Uno(或任何其他Arduino板,只要您相应地调整引脚),将引导加载程序和固件闪存到Ender 3控制器。

将Arduino Uno连接至Ender 3控制器

我们已经了解到,为了将引导加载程序闪存到Ender 3控制板上,我们需要使用位于USB端口旁边的六针ISP头。如果你看一下Arduino Uno,你会发现一个相同的ISP头,这次位于USB端口板的另一侧,旁边写着“Arduino.org”。为了使用Arduino Uno对Ender 3控制器进行编程,我们需要将这两个ISP头连接在一起。下表和图表显示了需要进行的连接。

Ender 3 ISP引脚 Arduino Uno ISP引脚
味噌 味噌
5伏 5伏
SCK SCK
莫西人 莫西人
重置 10
GND GND

Flash引导装载程序

然后,像平常一样将Arduino Uno连接到您的计算机。Arduino IDE附带了一个示例草图,允许Arduino充当ISP程序员。要查找此示例草图,请导航到文件>例子>11.阿杜伊诺伊斯>阿杜伊诺伊斯

然后,将ArduinoISP的草图上传到Arduino Uno上,打开音乐马林鱼固件

接下来,我们需要告诉ArduinoIDE,我们正在使用Arduino作为程序员。要执行此操作,请转到工具>程序员:>Arduino是ISP

最后,要刻录引导加载程序,请转到工具>刻录引导加载程序.这将把引导加载程序flash到Ender 3控制器上。

在此之后,您可以按照这个指导表的其余部分来将Musical Marlin固件闪存到控制板上。

第七步:附录B:编写自己的音乐翻译

我为这首可指导歌曲创作了一组塞尔达歌曲,因为我的灵感来源于我最近在《野性的呼吸》中的所有乐趣,而且塞尔达《时间的陶笛》的配乐非常容易辨认。但是,你也可以编写自己的G代码音乐。

此项目的存储库(https://github.com/Toglefritz/Musical_Marlin)包含一个目录,其中包含用于将注释转换为G代码的两个电子表格。编写自己的G代码音乐最简单的方法是从复制其中一个文件开始。

1)设定节奏

输入的第一个信息是歌曲每分钟的节拍。通常可以通过搜索谷歌找到这些信息。

2) 输入注释

“音符音调”列包含按顺序组成歌曲的音符列表。这个专栏相当简单。只需填写乐谱上的音符即可。

休息时请输入“r”。

3)输入音符长度

最后,在“注释持续时间”列中,我们将输入表示每个注释持续时间的十进制值:

  • 十六分之一= 0.25
  • 8注= 0.5
  • 四分音符= 1
  • 半音符= 2
  • 全注= 4(4/4时间签名)

dsf

4) 将G代码复制到固件(或单独的G代码文件)

在Ender 3中输入用于播放你想要的歌曲的所有音符和持续时间后,有一个单元格(F5),它获取所有独立的g代码音符,并将它们构建成一个列表,中间有新的行。还有两个命令添加到列表的前面:

  • M17:启用步进电机电源
  • M350 X1:将x轴微步分辨率设置为全步(这使得马达声音更大,对于3D打印机播放音乐是件好事)
  • G91:设置相对定位

然后,将G-code命令列表复制到Marlin固件的CUSTOM_USER_MENUs部分中:

/**执行自定义GCode的用户定义菜单项定义自定义用户菜单

步骤8:附录C:从SD卡加载音乐

对于这个项目,我认为编写自定义末影3固件来让歌曲选择显示在LCD上会很有趣。然而,这并不是将g代码音乐加载到打印机上的唯一方法。也可以把歌曲放在打印机的SD卡上,然后像正常的打印工作一样加载它们。

向VS代码添加G代码语法支持

当手工编写G代码(或者至少手工复制和粘贴G代码)时,有一个支持语法高亮显示等功能以帮助避免错误的环境是很有用的。有许多文本编辑器可用于此目的,但这里我们将使用VisualStudio代码。

要使VS代码能够识别并突出显示G代码,请首先前往扩展存储区。

然后,下载应用工程与设计的G-Code语法扩展。

创建G代码文件

VS code中添加了对G-code的支持,请跳转到电子表格,找到要转换为G-code的歌曲,以便3D打印机播放。从单元格F5复制字符串化的G代码。

然后,将此G代码粘贴到Visual Studio代码中。

为了转换为Marlin固件,G代码中有/n换行符。在VS代码中,对这些换行符进行查找和替换,以将它们替换为新行(就像按enter键一样)。

要在查找和替换界面中输入新行,请按CTRL + enter。

节省刀位点

然后,将你的末影3的SD卡以某种方式插入到你的电脑中,用.gcode文件扩展名将文件从VS Code保存到它中。

播放音乐

现在您的音乐g代码已经加载到SD卡上,您可以像在SD卡上运行打印作业一样播放它(毕竟,打印作业也是g代码文件)。只需从SD卡上的文件列表中选择你想播放的歌曲。

音频挑战2020

亚军
音频挑战2020

第一个分享

    建议

    • 时钟速度的挑战

      时钟速度的挑战
    • 玩具及游戏比赛

      玩具及游戏比赛
    • 大挑战vs小挑战

      大挑战vs小挑战

    13评论

    0
    约西亚米勒

    2个月前

    这太疯狂了!我喜欢这个!

    0
    trueskillhrs

    7个月前

    我猜你们已经意识到这个了,但是以防你们不知道这个网站使用了你们的教学方法,逐字逐句,逐图逐图,并把它缩短了一点。只是觉得有点逊,他们甚至没有链接到你的指导手册,尽管他们提到你的名字是斯科特,哈哈。不管怎样,这是链接……
    https://www.cxsw3d.com/xingyezixun/24-4282.html

    0
    托布科夫

    10个月前

    很棒的主意!

    但自定义固件真的需要flash吗?是什么阻止我从SD执行.gcode文件,而不是添加一个单独的菜单,并使用控制板上宝贵的存储空间?

    1.
    Toglefritz

    9个月前回复

    嘿,托布考。你说得很好。我将歌曲添加到固件中,因为我认为将歌曲添加到LCD菜单会很有趣,但您当然可以将G代码保存到文件中并播放音乐,就像从SD卡打印模型一样。事实上,我为任何想尝试这种替代技术的人添加了一个新的步骤。

    0
    nathanphippsoneill

    问题10个月前

    神奇的东西!我想开始做这个,但我想知道是否我将需要重置我的打印机后,我烧bootloader或....??

    1.
    Toglefritz

    10个月前

    当固件完成上传至电路板时,控制器将自动复位。这就是为什么Arduino连接包括到复位引脚的连接。因此,您无需担心手动重新启动3D打印机。

    1.
    奥斯特拉克

    10个月前

    这真的很酷,让我想起了我看到的一个视频,4个软盘驱动器在播放《歌剧魅影》。你的文档也很好。
    我让它在我的二重唱2中工作。我制作了一个gcode文件(在二重奏中,您可以将其用作宏),命令的格式就像您的打印机正在打印一样。我还将播放这首歌(第二行)的频率从1x微步改为8x,这首歌对我很管用,YMMV。最后一行是将微步设置回正常,我的正常设置是256x,不带插值,如果您想使用此设置,并且您的打印机不同,请更改它。我还添加了G28(home),因为我的打印机希望我在通过M350命令后返回home。我删除了M17,因为reprap没有它。
    迷失的森林:

    G91
    M350 x8 y8 z8 e8 i0
    G28
    G0 X0.91667 F220
    G0 X1.375 F330
    G0 X3.08333 F370
    G0 X0.91667 F220
    G0 X1.375 F330
    G0 X3.08333 F370
    G0 X1.0916666667 F262
    G0 X1.375 F330
    G0 X1.5416666667 F370
    G0 X2.05833333333333 F494
    G0 X3.666667 F440
    G0 X1.5416666667 F370
    G0 X1.63333 F392
    G0 X1.5416666667 F370
    G0 X1.225 F294
    G0 X4.11666666666667 F247
    G0 X0.0625 F15
    G0 X0.91667 F220
    G0 X1.02916667 F247
    G0 X1.225 F294
    G0 X6.175 F247
    G0 X1.0916666667 F262
    G0 X1.375 F330
    G0 X3.08333 F370
    G0 X1.0916666667 F262
    G0 X1.375 F330
    G0 X3.08333 F370
    G0 X1.0916666667 F262
    G0 X1.375 F330
    G0 X1.5416666667 F370
    G0 X2.05833333333333 F494
    G0 X3.666667 F440
    G0 X1.5416666667 F370
    G0 X1.63333 F392
    G0 X2.05833333333333 F494
    G0 X1.5416666667 F370
    G0 X4.9 F294
    G0 X0.0625 F15
    G0 X1.5416666667 F370
    G0 X1.225 F294
    G0 X0.91667 F220
    G0 X6.175 F247
    G0 X0.91667 F220
    M350 X256 Y256 Z256 E256 I0

    风暴之歌:

    G91
    M350 x8 y8 z8 e8 i0
    G28
    G0 X0.6875 F220
    G0 X0.81875 F262
    G0 X1.6375 F131
    G0 X0.6875 F220
    G0 X0.81875 F262
    G0 X1.6375 F131
    G0 X4.63125 F494
    G0 X1.6375 F524
    G0 X1.54375 F494
    G0 X1.6375 F524
    G0 X1.54375 F494
    G0 X1.225 F392
    G0 X4.125 F330
    G0 X2.0625 F330
    G0 X1.375 F220
    G0 X0.81875 F262
    G0 X0.91875 F294
    G0 X6.1875 F330
    G0 X2.0625 F330
    G0 X1.375 F220
    G0 X0.81875 F262
    G0 X0.91875 F294
    G0 X4.63125 F247
    G0 X0.6875 F220
    G0 X0.81875 F262
    G0 X5.5 F440
    G0 X0.6875 F220
    G0 X0.81875 F262
    G0 X5.5 F440
    G0 X4.63125 F494
    G0 X1.6375 F524
    G0 X1.54375 F494
    G0 X1.6375 F524
    G0 X1.54375 F494
    G0 X1.225 F392
    G0 X4.125 F330
    G0 X2.0625 F330
    G0 X1.375 F220
    G0 X0.81875 F262
    G0 X0.91875 F294
    G0 X4.125 F330
    G0 X2.0625 F330
    G0 X4.125 F220
    M350 X256 Y256 Z256 E256 I0

    Gerudo谷:

    G91
    M350 x8 y8 z8 e8 i0
    G28
    G0 X0.0234375 F15
    G0 X0.30625 F196
    G0 X0.409375 F262
    G0 X0.4859375 F311
    G0 X1.546875 F330
    G0 X0.30625 F196
    G0 X0.409375 F262
    G0 X0.4859375 F311
    G0 X1.03125 F330
    G0 X2.0625 F330
    G0 X0.0234375 F15
    G0 X0.34375 F220
    G0 X0.4328125 F277
    G0 X0.4859375 F311
    G0 X1.546875 F330
    G0 X0.34375 F220
    G0 X0.4328125 F277
    G0 X0.4859375 F311
    G0 X1.03125 F330
    G0 X2.0625 F330
    G0 X0.0234375 F15
    G0 X0.30625 F196
    G0 X0.3859375 F247
    G0 X0.4328125 F277
    G0 X1.4578125 F311
    G0 X0.30625 F196
    G0 X0.3859375 F247
    G0 X0.4328125 F277
    G0 X2.915625 F311
    G0 X0.0234375 F15
    G0 X0.4328125 F277
    G0 X0.4859375 F311
    G0 X0.4328125 F277
    G0 X1.73125 F277
    G0 X0.1875 F15
    G0 X0.0234375 F15
    G0 X0.515625 F330
    G0 X0.6125 F392
    G0 X0.515625 F330
    G0 X5.83125 F311
    G0 X0.046875 F15
    G0 X0.6125 F196
    G0 X0.30625 F196
    G0 X1.546875 F330
    G0 X1.4578125 F311
    G0 X0.4328125 F277
    G0 X0.865625 F277
    G0 X0.6125 F196
    G0 X1.54375 F247
    G0 X0.3859375 F247
    G0 X0.4328125 F277
    G0 X0.3859375 F247
    G0 X0.34375 F220
    G0 X2.75 F220
    G0 X0.046875 F15
    G0 X0.6125 F196
    G0 X0.30625 F196
    G0 X1.4578125 F311
    G0 X1.2984375 F277
    G0 X0.3859375 F247
    G0 X0.771875 F247
    G0 X0.6875 F220
    G0 X1.225 F196
    G0 X0.34375 F220
    G0 X0.3859375 F247
    G0 X0.34375 F220
    G0 X0.30625 F196
    G0 X2.45 F196
    G0 X0.046875 F15
    G0 X0.6125 F196
    G0 X0.30625 F196
    G0 X1.546875 F330
    G0 X1.4578125 F311
    G0 X0.4328125 F277
    G0 X0.865625 F277
    G0 X0.6125 F196
    G0 X1.54375 F247
    G0 X0.3859375 F247
    G0 X0.4328125 F277
    G0 X0.3859375 F247
    G0 X0.34375 F220
    G0 X1.03125 F220
    G0 X0.6125 F196
    M350 X256 Y256 Z256 E256 I0

    塞尔达的摇篮曲:

    G91
    M350 x8 y8 z8 e8 i0
    G28
    G0 X10 F370
    G0 X5.94594594594595 F440
    G0 X8.91891891891892 F330
    G0 X1.98648648648649 F294
    G0 X2.22972972972973 F330
    G0 X10 F370
    G0 X5.94594594594595 F440
    G0 X13.3783783783784 F330
    G0 X10 F370\nG0 x5.94594594595 F440
    G0 X17.8378378378378 F660
    G0 X7.94594594594595 F588
    G0 X11.8918919 F440
    G0 X-2.64864864864865 F392
    G0 X-2.5 F370
    G0 F330 x - 8.91891891891892
    G0 F294 x - 1.98648648648649
    G0 X-2.22972972973 F330
    G0 10倍F370
    G0 X-5.94594594594595 F440
    G0 F330 x - 8.91891891891892
    F15 G0 x - 0.202702702702703
    G0 10倍F370
    G0 X-5.94594594594595 F440
    G0 F330 x - 13.3783783783784
    G0 10倍F370
    G0 X-5.94594594594595 F440
    G0 X-17.8378378378378 F660
    G0 X-7.94594594594595 F588
    G0 X-17.8378378378378 F440
    M350 X256 Y256 Z256 E256 I0

    0
    技术摇滚1

    10个月前

    这听起来很有趣。只是想澄清一下。。。所以,这将只是播放一首歌曲,而它移动步进电机的节奏,还是这将播放一首歌曲,而它打印出来的东西?

    0
    Toglefritz

    10个月前的答复

    当打印零件时,它不能工作。这种技术通过以特定的速度移动步进来创造一个音调,并通过特定的距离来控制音调的长度。我确实玩了一些想法,做一些类似声波的设计,基本上是在构建板上做挤压,同时步进播放。问题是Marlin(或者一般的g代码)不允许两个轴以不同的进给速度同时移动。你基本上需要两个控制器来完成。

    0
    jessyratfink

    10个月前

    OMG,是的,这太棒了。我爱他们所有人,尤其是迷失的森林。那首歌总让我觉得我要去旅行了。: D

    0
    camilooo

    10个月前

    干得好!