设计和制造这把微型小提琴是一种有趣的方式来尝试从头开始构建我自己的微控制器开发板,正如我一直想做的那样。所以我将在这里记录整个过程,从 PCB 设计到微控制器编程。
第一步是根据我希望我的小提琴具有的功能选择我要使用的微控制器。我需要至少一个用于压电蜂鸣器的 PWM 引脚和另外两个用于 LED 和按钮的数字引脚,因此 ATtiny85 非常适合。
电路原理图相当简单。ATtiny85 控制两个 LED 和一个压电蜂鸣器,我还添加了一个用于在歌曲之间切换的按钮。整个电路由 3.7V 锂聚合物电池供电。
我想让PCB尽可能小,以便能够将其用作徽章,因此我找到了最小的微控制器封装(MLF-20)。
作为一个额外的功能,我还将小提琴的琴弦连接到微控制器的模拟输入,以便通过用导电材料触摸琴弦来实际演奏小提琴。
我使用 Eagle CAD 来设计我的 PCB,当我需要自定义 PCB 轮廓时,Gordon Williams 的SVG 到 Eagle 转换器始终是我的首选工具。我在 Inkscape 中绘制了小提琴的轮廓,然后使用此工具将其转换为 Eagle 脚本。
为了获得小提琴 F 孔的透光效果,我将侧视 LED 放置在 PCB 背面,并使用Top和Restrict层去除该区域的铜和阻焊层。
这些是我从JLCPCB订购的 PCB 。丝印非常详细,我认为哑光黑色阻焊层非常适合小提琴!这次我忘了删除订单号,但是JLCPCB在订购 PCB 时可以选择这样做。
如果您也想订购,我已将 Gerber 文件和 Eagle CAD 文件添加到此Github 存储库。
PCB 比我能找到的最小的锂聚合物电池大一点,所以我可以把电池藏在小提琴的背面。我没有使用经典的 LiPo JST 连接器,因为它与其他组件相比非常大,所以我焊接了 2mm 引脚。
我见过其他人用来增强 LED 透光效果的一个很好的技巧是用黑色热胶覆盖它们。
第一步是刻录引导加载程序,为此,我使用了这个内核和一个 USBTinyISP 编程器。
完整的程序可以在这里找到,我将在下面解释主要功能。
我使用了一些由Robson Couto翻译成代码的 Arduino 乐谱,您可以在此处找到。Arduino Tone 库与 ATtiny 微控制器不兼容,因此我使用Tim Eckel的TimerFreeTone库作为替代方案。
由于歌曲(音符和持续时间的数组)对于 ATtiny85 的数据存储器来说太大了,我使用 PROGMEM 将它们存储在程序存储器中(这意味着我还必须使用特殊函数来访问数组,例如pgm_read_word_near )。
根据按下按钮的时间长短,程序在 4 种功能之间切换:
自由式功能从连接到琴弦的引脚读取模拟值并将它们映射到一系列频率,因此当琴弦被导电物体触摸时,就会播放音符。
我期待在未来的迭代中改进一些事情:
希望你喜欢我的项目!如果您有任何问题,请发表评论。^^
更新
我在小提琴上焊接了一些琴弦,并添加了一个由膨胀 PVC 制成的小琴桥。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !