项目简介
本项目名为ELSA,是一个基于Arduino和Python的机器人演奏系统。该系统借助Arduino控制机器人演奏长笛,通过Python脚本与Arduino进行串行通信,可实现MIDI文件的解析与播放、音符测试以及即兴演奏等功能,结合了硬件控制和软件算法,为用户带来独特的音乐互动体验。
项目的主要特性和功能
- 音符测试:用户能利用Arduino和Python脚本,测试机器人演奏不同音符时的指法配置,并保存相关设置。
- MIDI文件播放:系统可解析MIDI文件,通过Arduino控制机器人演奏对应的旋律。
- 即兴演奏:支持用户通过Python脚本控制机器人进行实时演奏。
- 硬件控制:通过Arduino控制机器人的手指动作和气流,实现精确的音符演奏。
安装使用步骤
安装依赖库和工具
为运行本项目,需安装以下依赖库和工具:
1. Arduino IDE:用于上传代码到Arduino设备。
2. Python 3.x:用于运行Python脚本。
3. pyserial库:用于Python与Arduino之间的串行通信。
4. MIDI解析库:用于解析MIDI文件(如mido
库)。
运行项目
- 下载并解压项目文件,确保所有文件在同一目录下。
- 上传Arduino代码:
- 打开Arduino IDE,加载
fingers_test.ino
、old_protocol.ino
或new_protocol.ino
文件。 - 将代码上传到Arduino设备。
- 打开Arduino IDE,加载
- 运行Python脚本:
- 打开终端或命令行工具,导航到项目目录。
- 运行
python finger_test.py
进行音符测试。 - 运行
python play_midi.py
播放MIDI文件。 - 运行
python main.py
进行即兴演奏。
- 按照提示操作:根据脚本提示,输入相应的指令或选择MIDI文件进行播放。
注意事项
- 硬件连接:确保Arduino设备与计算机通过USB正确连接,且机器人硬件设备(如手指和气流控制装置)已正确安装。
- 串行通信设置:在Python脚本中,确保串行通信的端口和波特率设置正确。
- MIDI文件格式:确保MIDI文件格式正确,且文件路径在脚本中正确指定。
- 调试与优化:若遇到音符演奏不准确的问题,请参考
TODO
列表中的调试建议进行优化。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】