Skip to content

YoutechA320U/autoypiano

Repository files navigation

autoypiano

ESP32 & RaspberryPi & MachiKania typeM & Arduino用自動演奏トイピアノプログラム。ノートNo.77~101まで、ノートON,ノートOFFのみ対応。

概要

このプログラムは、UARTとI2Cでソレノイド25個を制御しトイピアノを自動演奏します。

Picture Picture PicturePicture

開発環境

RaspberryPi 3B+: Raspbian stretch, Python3.7
ESP32-DevKitC: MicroPython
MachiKania typeM: KM-1301
Arduino:ArduinoIDE

インストールが必要なライブラリ

Python3.7:pyserial, smbus, argparse, Python-RtMidi
MicroPython:machine
Arduino:Adafruit_MCP23017, MIDI
ArduinoLeonardo:Adafruit_MCP23017, MIDIUSB,
ESP32:Arduino-BLE-MIDI

必要な部品

部品名 型番など 数量
トイピアノ KAWAI ミニピアノ P-25 (ローズレッド) 1
RaspberryPi 3B+
ESP32-DevKitC
MachiKania typeM
④Arduinoシリーズ1つ
M5Stack ①~⑤いずれか1
DIN-5ソケット(メス) KDJ103-5など 1
2.1mm標準DCジャック 2DC0005D100など 1
1/4Wカーボン抵抗 220Ω 1
270Ω 1
470Ω 50
スイッチングダイオード 1N1418など 1
ショットキーダイオード 1S4 25
フォトカプラ TLP785 1
トランジスタ 2SC2655 25
I/Oエキスパンダ MCP23017 2
ソレノイド H10-0630-PUSH-12など12V1.2W程度のもの 25
ACアダプター AD-D120P200など12V2A程度のもの 1

回路図

SS

使い方

RaspberryPiがautoypiano-pi.py、ESP32(MIcroPython)がautoypiano-micro.py、MachiKania typeMがTOYPIANO.BAS、ArduinoLeonardo以外がautoypiano.ino、ArduinoLeonardo USB-MIDI対応がautoypiano_usb.ino、M5StackがM5autoypiano.ino、ESP32(Arduino系) BLE-MIDI対応(※試験的)がESP32_BLE_autoypiano.inoです。

RaspberryPiはUARTを有効にしてMIDI用に設定を変更し、I2Cを有効にしてから実行してください。

Arduino系は最大同時発音数が設定されています(デフォルトで4)

備考

電源の出力が足りないと複数のソレノイドを同時にONできません。ソレノイドによって必要な電源の出力は変わります。また、トランジスタやソレノイドに負担がかかるのであまり長時間ソレノイドをONのままにしないでください。

USB-MIDI、BLE-MIDI対応版は通常のMIDI-INも使用可能です。

autoypiano.inoautoypiano_usb.inoがMIDI1.0準拠です。それ以外のプログラムはソフト、シーケンサによっては正常に動作しない可能性があります。全てaplaymidiコマンドでは動作を確認しています。

参考コード・資料

履歴

[2018/12/7] - 初回リリース
[2018/12/29] - 部品表作りました
[2018/12/29] - MachiKaniaに対応
[2019/08/08] - Arduino,ArduinoLeonardo,M5Stackに対応
[2019/11/15] - 発音数制限を追加(Arduino系のみ)
[2020/03/24] - BLE-MIDIに対応(ESP32のみ、試験的)
[2020/04/01] - 仮想MIDIポート版を追加(RaspberryPi用)
[2023/04/30] - ノートオフ条件で3バイト目は見ないよう変更。ノートオンベロシティ0でもノートオフするよう修正(Arduino系のみ)。