14934| 7
|
[入门] 国外小姐姐利用ATtiny85做了一把迷你PCB小提琴 |
这周和大家分享一个国外小姐姐利用ATtiny85做一把迷你PCB小提琴的项目, 正文用到的材料
1、电路原理图和PCB设计第一步是根据我想让小提琴具备的功能来选择将要使用的微控制器。 我需要至少一个PWM引脚用于压电蜂鸣器,另外两个数字引脚用于LED和按钮,所以ATtiny85是最合适的。 电路原理图电路原理图相当简单。ATtiny85控制两个LED灯和一个压电蜂鸣器,我还加了一个按钮,用于切换歌曲。整个电路由一节3.7V锂电池供电。 我想把PCB做得越小越好,为了能把它当做徽章使用,所以我找到了最微小的微控制器封装(MLF-20)。 作为一个额外的功能,我还将小提琴的琴弦连接到了微控制器的模拟输入端,目的是为了能够真正用导电材料触摸琴弦来演奏小提琴。 PCB设计我使用Eagle CAD来设计我的PCB,当我需要定制PCB轮廓时,Gordon Williams的SVG到Eagle转换器一直是我的首选工具。我在Inkscape中描摹了一把小提琴的轮廓,然后用这个工具将其转换为Eagle脚本。 为了获得小提琴F孔的透光效果,我在PCB背面放置了侧视LED,并使用Top和Restrict层去除该区域的铜和焊接掩模。 这是我从JLCPCB订购的PCB。丝网印刷非常细致,我认为哑光黑色的焊接掩膜非常适合小提琴!我这次忘了去掉订单号,但JLCPCB在订购PCB时可以选择这样做。 如果你也想订购的话,我已经把Gerber文件和Eagle CAD文件添加到了这个Github仓库里。 PCB只是比我能找到的最小的lidianci大一点,所以我可以把电池藏在小提琴的背面。我没有使用经典的LiPo JST连接器,因为它与其他元件的对比非常巨大,所以我用2mm的引脚代替焊接。 我看到别人用一个很好的技巧来增强LED的发光效果,那就是用黑色热胶覆盖它们。 2、为ATtiny85编程第一步是烧写bootloader,为此,我使用了这个核心和一个USBTinyISP编程器。 完整的程序可以在这里找到,我将在下面解释主要的功能。 我使用了一些由Robson Couto翻译成代码的Arduino曲谱,你可以在这里找到。Arduino Tone库与ATtiny微控制器不兼容,所以我使用了Tim Eckel的TimerFreeTone库作为替代。 由于歌曲(音符和持续时间的数组)对于ATtiny85的数据存储器来说太大了,我使用PROGMEM将它们存储在程序存储器中代替(这意味着我还必须使用特殊的函数来访问数组,如pgm_read_word_near)。 根据按下按钮的时间长短,程序会在4个功能之间切换:
freestyle功能从连接到琴弦的针脚上读取模拟值,并将其映射到频率范围内,所以当琴弦被导电的东西触碰时,就会弹出一个音符。 完工!我期待着在未来的迭代中改进一些东西:
希望大家喜欢这个精致的小项目! |
326.75 KB, 下载次数: 62
售价: 20 创造力 [记录]
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed