返回信息流版里还有活人么……
日本这边马上就要期末考了,每逢期末考就不想复习,想玩点有的没的。
掏出了以前队友给我做的一个无刷电机机构,给他做成了一个播放器。
具体效果可以看这里:
蝶恋:https://www.bilibili.com/video/av86115134/
童话镇:
https://www.bilibili.com/video/av86118781/
原理不难,与无源蜂鸣器演奏音乐差不多。
电机使用SVPWM驱动,SVPWM频率是20K,以200-800HZ的频率改变电压矢量来使电机发生震动,就可以产生对应频率的音符。再用每分钟80拍(或者其他拍数)的速度来改变音符,就可以产生旋律。
再加上实现相应的升八度(频率*2)、降八度(/2)、升半音(*1.059)、降半音(/1.059)、延长、八分拍、16分拍什么的……其实音乐一窍不通,都是对着简谱现查的。
简谱的输入规则的话,查了一下,网上有人写过一个功能已经实现得差不多的软件
根据他定好的规则,看着简谱把简谱输入成文本,可以先在他的软件里听听看
我自己写了个py脚本,根据他的简谱文本规则翻译成我单片机中方便处理的结构,
比如
童话镇在单片机的乐谱:
uint16_t Music_Song[]={0x1803,0x1802,0x1801,0x806,0x1801,0x1802,0x1803,0x1805,0x1803,0x1802,0x1801,0x806,0x806,0x805,0x403,0x800,0x1f01,0xf07,0x806,0x805,0x806,0x1801,0x1801,0x1805,0x1803,0x1f03,0x1f02,0x1801,0x1801,0x1801,0x806,0x407,0x800,0x1f03,0x1f02,0x1803,0x1802,0x1803,0x1805,0x1806,0x1805,0x1f05,0x1805,0x1f03,0x1f06,0x1805,0x1f04,0x1f05,0x1f04,0x1f05,0x1f04,0x1403,0x800,0x1f02,0x1f03,0x1804,0x1803,0x1802,0xf00,0xf06,0x1803,0x1f02,0x1f01,0x1f01,0x1f01,0x1f01,0x1f02,0xf07,0x807,0xf07,0xf07,0x807,0xf06,0xf06,0x807,0x407};
后来又想着既然电机都可以演奏音乐了,是不是可以发出人的声音?
又尝试了一下,用电脑录制了个1秒的音频(不敢录太久,怕单片机装不下),
直接在matlab中采样了一下。matlab是4W8的采样率,因为人说话声音大概在200-1000之间,所以我手动把采样率降成了2000。
后来实验发现,2000的采样率在matlab中听起来还行,在电机上就十分模糊,电机大概3000的采样率才能勉强听出,后来改成的9000的采样率,效果还行。
录音效果:https://www.bilibili.com/video/av86125533/
说的是おはよ(O ha yo),电机的震动不够强,还用了个外置扬声器(手动狗头),考验听力的时候到了
源码有兴趣的可以看看:https://github.com/Ncerzzk/Brushless_Foc
音乐播放主要在(mylib/music_and_voice.c 和 foc.c中)
这是一条镜像帖。来源:北邮人论坛 / smartcar / #368同步于 2020/2/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Smartcar机器人发帖
用无刷电机来演奏歌曲、录音
Ncer
2020/2/1镜像同步14 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
黄学长太强了,膜拜学习
【 在 Ncer (战战兢兢,如临深渊,如履薄冰) 的大作中提到: 】
: 版里还有活人么……
: 日本这边马上就要期末考了,每逢期末考就不想复习,想玩点有的没的。
: ...................