【点击上方“蓝色字”关注DF创客社区,一起成为科技狂人】
▲ 文末有完整视频
最近在想做一件特别的礼物,看到朋友买实体相册当礼物,我就想能不能在实体相册上做一些创新,比如增加一些互动?
翻看相册里的照片,照片时常让我想起过去的岁月,感动的往往不是变化的事物,而是定格在照片里的那些不变的瞬间。
每个瞬间都有一个故事,为何我们不让照片自己讲述故事呢?
所以制作语音专辑的想法一直在我脑海里回荡,在看到DFRobot推出的Firebeetle M0主板之后,突然发现这款主板可以实现我的想法。
我先解释一下为什么说是正好,Firebeetle M0主板的主芯片采用了ATSAMD21G18 ARM Cortex M0+高性能32位处理器,而且还带有数模转换DAC,也就是说我可以通过MCU软件解析音频文件,并播放声音。
主板还集成了16MB SPI Flash,可以虚拟出一个12MB的U盘用于数据存储。也就是说我可以通过USB直接把音频文件存到Flash里。我算了一下,一个单声道的WAV文件大概可以存5分钟,足够讲几个故事了。
有了必要的GPIO作为按钮输入,Firebeetle M0主板就可以完成我的工作。
下面就Firebeetle M0主板进行详细介绍:
我买了一本漂亮的 16 英寸自粘层压相册,封面是 Childe Hassam 的《海边》。
选定的组件
零件清单:
FIT0625 两节AA电池盒带开关(安装一对AA电池)1
FIT0192 36mm 直径 8 欧姆 1W 扬声器 1 个
DFR0119-O 3W迷你音频功放板 1
DFR0039 SMD按钮 5件
DFR0652 Firebeetle M0主板 1块
FIT0752 0.4mm耐高温焊丝(白色) 1卷
16 英寸自粘层压相册
准备工具:
FIT0456 十字/一字两用螺丝刀 1件
KIT0077 基础焊接工具套装(含焊接所需的烙铁、钳子、镊子等) 1套
FIT0641 USB Type-C 数据线 1条
1 卷双面胶带
1 台电脑
所用软件:
1.Arduino IDE编程环境
2. Audacity 音频转换软件
3.voice_album.ino代码
制作步骤:1.安装Arduino IDE和Firebeetle M0主板SDK,并测试开发环境
在使用 Firebeetle M0 主板之前,首先需要下载并安装 Arduino IDE 开发环境来测试 Firebeetle M0 主板。从 Arduino 官方网站 [1] 下载最新版本的 IDE 开发环境。有关使用 Arduino IDE 的介绍,请参见此处 [2]。
IDE安装完成后,打开IDE,下载并安装Firebeetle M0主板的SDK。
单击文件 -> 首选项
在Preferences界面,点击Additional Boards Manager URLs最左边的窗口图标,会弹出输入URL的窗口。
将以下链接地址复制到新弹出的对话框中
点击OK保存Firebeetle M0主板SDK的URL地址
在“首选项”界面点击“确定”按钮,保存配置。
点击工具 -> 论坛 -> 论坛管理器
此时您可以看到 Firebeetle SAMD Board SDK。单击 Install 以安装 SDK。
安装完成后我们在Board界面可以看到Firebeetle M0主板的选项,我们选择Firebeetle M0
将Firebeetle M0主板通过USB线连接到电脑,可以看到操作系统发现了一个新的COM口,在Port菜单中选择新的COM口。
为了验证主板是否可以工作,让我们运行一个简单的示例程序来使主板第 13 针上的 LED 闪烁。
点击左上角箭头按钮,LED闪烁程序将被编译并烧录到主板,烧录过程中主板13脚LED快速闪烁,当IDE左下角显示Done uploading时,程序下载完成。
我们可以看到主板13脚位的绿色LED灯以一秒亮一秒灭的节奏闪烁,代表主板是好的,开发环境已经搭建完毕。
2. 使用烙铁焊接硬件
将音频功放、扬声器和5个按钮焊接在一起。按钮连接线长约15厘米。
接线图
3. 挑选照片,讲述照片背后的故事,并准备音频文件
我们挑选照片,准备好要讲述的故事,用手机录下五个故事的音频文件,注意声音要大一些,以提高信噪比。
如果检查无误,我们就把这些文件传输到PC上,一般都是.m4a文件,然后我们给这些文件重新命名,因为程序中5个键的编号是从0到4,所以我们的文件名也是从0到4。
这些文件是压缩的双通道文件,我们需要将它们转换为Firebeetle M0主板可以使用软件音频解码的WAV单声道文件。
我们利用开源免费音频软件Audacity将m4a文件转换为单声道的WAV文件。下载地址:
Audacity软件安装完成后,我们还需要下载一个免费的ffmpeg-win-2.2.2.exe插件#lamewindl
ffmpeg-win-2.2.2.exe安装完成后,在Audacity软件中点击菜单编辑->首选项
点击Libraries -> FFmpegLibrary -> Location,选择FFmpeg的安装路径,点击OK
点击Audacity软件文件->打开,打开刚刚录制的0.m4a文件,点击音轨上方的下拉按钮,选择Split Stereo to Mono,分离出单声道。
点击某个频道的静音按钮即可将该频道静音,并选择 44100Hz 作为项目速率。
点击文件 -> 导出 -> 导出为 WAV,导出 WAV 文件
编码选择无符号8位PCM格式,保存为0.wav文件
使用上述方法将其他 4 个 .m4a 文件转换为 .wav 文件
将Firebeetle M0主板通过USB线连接到电脑,双击侧面的RST按钮,主板上的RGB灯变绿,电脑上弹出一个U盘。将准备好的五个.wav文件复制到这个U盘中。复制速度比普通U盘慢,需要耐心等待。
复制完成后我们点击RST按钮进入编程模式。
4.将音频专辑代码下载到Firebeetle M0主板
现在打开 Arduino IDE,单击 Sketch -> Include Library -> Add .ZIP Librar 并在附加的代码文件中选择 AudioZero.zip 音频库。音频库现已成功添加。
在Arduino IDE中点击File -> Open打开voice_album.ino,点击Ipload按钮将语音相册程序下载到Firebeetle M0主板
参考代码:
// voice album project
// 代码比较长,为方便阅读,暂时不展示出来了,有需要的可以看文末
如果测试显示按下5个按钮都能播放相应的歌曲,则软件和电路部分已经完成,接下来我们需要将电路安装到专辑中。
5. 将电路组装到相册中
相册共有三颗螺丝,为了方便安装按钮,我们把最下面的螺丝卸了。
相册首页
对于相册最后一页的螺丝,我们只需要卸下最下面的一个
我们用镊子把纽扣线穿过书轴
安装好按键,连接好电路部分后,安装相册的螺丝
使用双面胶带将电池盒,Firebeetle M0主板,扬声器固定在相册上。
将照片放入相册
至此,一张DIY语音专辑就制作完成了,你想尝试制作自己的语音专辑吗?
▲ 完整视频
参考
[1]
Arduino官方:
[2]
有关 Arduino IDE 的介绍,请参见此处:%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B
首次发表于 DF Maker 社区: