在本篇文章中,我们将主要介绍如何基于ATtiny85制作数字音乐盒,该设备可以播放以MIDI格式存储在内存卡中的音乐:

音符听起来像一个破破的音乐盒或大键琴,有四个通道,所以最多可以同时播放四个音符。我的示范音乐弹奏的是D小调的巴赫赋格曲;以下是播放的声音:midiplayer.mp3。

您可以轻松地对其进行编程,以便从Music Box Maniacs等网站播放您喜欢的任何MIDI音乐盒曲调,您可以将其用作电子贺卡、音乐求婚戒指盒、电子门铃的基础,或任何其他基于音乐的项目。

项目介绍

这个项目开始于我发现Music Box Maniacs,这是一个提供曲调的网站,你可以打印成纸条,用于各种机械音乐盒。这些曲调也可以作为MIDI文件下载,我认为编写一个程序将MIDI格式转换为我之前的Digital Music Box [Updated]项目所需的二进制数字格式会很有趣。使用MIDI文件格式的描述我写了一个转换器程序(在Lisp中),但后来意识到我可以不需要中间的转换步骤,而是制作一个可直接从微控制器的闪存中读取MIDI文件的音乐盒项目。这还有一个优点,即它将删除我原始程序的32音符范围限制,该限制将编码为32位数字中的位位置。

我的MIDI转换器处理MIDI格式的一个子集,适合在Music Box Maniacs网站上播放音乐盒曲调,我用它的几个曲调测试了它。但是,我不确定它将如何处理一般的MIDI文件。

电路

该电路与我之前的音乐盒相同,如果在解析MIDI代码时出现错误,则会添加一个错误指示灯以提供反馈。 LED闪烁的次数告诉您MIDI格式在何处发生错误。

PWM输出通过电解电容直接馈入8Ω扬声器,以去除DC。扬声器的电感滤除了波形的高频成分:

电源线上的10μF电容使ATtiny85能够应对音乐引起的电流尖峰。

更多内容请参考以下链接:https://www.yiboard.com/thread-1034-1-1.html

基于ATtiny85制作MIDI数字音乐盒相关推荐

  1. stc89c51单片机音乐盒系统设计_基于单片机STC89C52的数字音乐盒设计

    基于单片机STC89C52的数字音乐盒设计 1基于单片机 STC89C52 的数字音乐盒设计一. 引言1.1 设计的目的通过课程设计,让学生熟悉单片机微机应用系统开发.研制的过程,软硬件设计的工作方法 ...

  2. stc89c51单片机音乐盒系统设计_基于单片机数字音乐盒的设计与实现(附PCB,电路图,程序)...

    基于单片机数字音乐盒的设计与实现(附PCB,电路图,程序)(开题报告,中期检查表,毕业论文18000字) 摘要 传统的音乐盒多是机械音乐盒,其工作原理是通过齿轮带动一个带有铁钉的铁桶转动,铁桶上的铁钉 ...

  3. 菲涅耳计算全息图matlab,基于Matlab的计算全息图的制作与数字再现的研究

    基于Matlab的计算全息图的制作与数字再现的研究 应用Matlab语言,结合博奇型计算全息的编码方法,利用计算机分别绘制了菲涅耳全息图和傅里叶变换全息图,实现了计算全息图的快速制作,讨论了制作计算全 ...

  4. 基于嵌入式或单片机的音乐盒制作

    源码地址:​​​​​​​​​​​​​​基于嵌入式或单片机的音乐盒制作.zip-嵌入式文档类资源-CSDN下载 开发环境:proteus .keil for c51 项目文档目录: 本设计是一个基于C5 ...

  5. 基于ATtiny85轻松制作一款智能手表

    这是基于ATtiny85系列的简约手表系列中的第三款.该款手表通过在微型64x48 OLED显示屏上绘制模拟的手表来显示时间.它使用独立的晶振控制的低功耗RTC芯片来保持每月几秒钟的时间,并在不显示时 ...

  6. 电子琴节奏包制作_制作MIDI电子音乐离不开的三件“法宝”

    现在越来越多的年轻人开始对MIDI制作感兴趣,特别是随着电脑的高速发展,原来离普通人很遥远的专业设备可以用软件代替,这无疑是音乐爱好者的福音,体验一下自己当音乐制作人的乐趣吧! 那么什么是MIDI呢? ...

  7. 电子琴节奏包制作_制作MIDI电子音乐需要准备些什么?

    现在越来越多的年轻人开始对MIDI制作感兴趣,特别是随着电脑的高速发展,原来离普通人很遥远的专业设备可以用软件代替,这无疑是音乐爱好者的福音,体验一下自己当音乐制作人的乐趣吧! 那么什么是MIDI呢? ...

  8. html音频从10秒播放至30秒,基于Arduino制作SD卡音乐播放器

    一.项目介绍 前面用ATtiny85制作SD卡音乐播放器,本次主要利用Arduino UNO 和SD卡制作音乐播放器.这个播放器不需要添加多余的模块,只需要SD读卡器和Arduino UNO开发板就可 ...

  9. php产品效果图,jQuery_基于JQuery制作的产品广告效果,效果图.如下: 动画效果介绍 - phpStudy...

    基于JQuery制作的产品广告效果 效果图.如下: 动画效果介绍:这组广告效果是打开页面后图片会自动播放,从1-5共计5张图片,如果属标放到右下角的1.2.3.4.5列表上,可以自由进行切换到自己想看 ...

  10. python猜数字1001untitled_如何利用Matlab GUI制作猜数字游戏

    第二堂课布置了一个Mission Impossible:如何利用Matlab GUI制作猜数字游戏 这个任务对很多人来说会非常困难,首先要面对的是 Matlab GUI的机制,这是完全未知的机制,在面 ...

最新文章

  1. 使用Relay部署编译ONNX模型
  2. kubernetes资源对象之security context
  3. Perfect service(树形dp)
  4. 【Groovy】Groovy 脚本调用 ( 命令行执行 Groovy 脚本并传入参数 | 获取 Groovy 脚本执行参数 )
  5. BRCM5.02编译五: fatal error: uuid/uuid.h: No such file or directory compilation terminated
  6. 代码对比工具,我就用这 6 个!
  7. VMware10.0.4下 CentOS 6.5 cmake安装 MySQL 5.5.32
  8. 一些常见http状态码
  9. codebrag审核代码工具安装配置
  10. 十大经典排序算法动画与解析,看我就够了!(配代码完全版)
  11. py函数两个返回值_Python 函数为什么会默认返回 None?
  12. 用c语言编程参赛信息查询,确定参赛者名单(C语言实现)
  13. 没错!Python杀死了Excel!
  14. 从CUBIC/BBR的TCP ACK失速说起
  15. ORB feature to FAST,定向快速旋转简报
  16. ORACLE对字符串去空格处理(trim)
  17. 计算三维空间中点到三角形平面的最短距离
  18. 前端进行身份证验证(详细)
  19. 《人人都是产品经理》——第二章笔记(上)
  20. 安卓应用加固壳判断java厂商_使用frida来hook加固的Android应用的java层

热门文章

  1. oracle自增序列创建
  2. FLASH寿命问题说明
  3. python中将一个numpy数组转为str,写入文件时会自动换行
  4. 《做难而正确的事》有感
  5. 网易云易盾发布多国家多语种内容安全服务,助力中国互联网出海
  6. Ubuntu 切换中文目录为英文目录
  7. php视图编辑,word中最适合查看编辑排版效果的视图是什么
  8. 运行metamascara时出现的一些错误
  9. 80端口有什么用,80端口被禁用怎么解决
  10. mysqldump关于--set-gtid-purged=OFF的使用