工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

PiBot:Arduino駆動の精密ピアノ演奏ロボット

必要な部品と材料

部品数量
Arduino 1011
74HC595 シフトレジスタ11
IRFZ44N NチャネルMOSFET88
12Vバッテリー(カーバッテリー等)2
コンデンサ 100µF11
配線用ワイヤー多数
ブレッドボード/ユニバーサル基板11
8ピンICソケット11
抵抗 10kΩ(MOSFETゲート用推奨)88
ダイオード 1N4007(フライホイール用推奨)88

必要な工具

使用ソフトウェア・サービス

プロジェクト概要

きっかけ

幼少期に自動演奏ピアノを見て以来の夢。特別な理由はなく、「ただ作りたかった」から始まりました。

システム概要

88個のソレノイドでピアノの鍵盤を物理的に押下します。Arduino Mega 2枚(約$80)ではなく、安価なArduino Uno 1枚と11個の74HC595シフトレジスタで88出力を制御。PCからシリアルでビット列を送信し、Arduinoがシフトレジスタ経由でMOSFETを駆動、ソレノイドを動作させます。MIDIファイルは事前にビット列へ変換します。

ハードウェア詳細

中国製ソレノイドは12V仕様だが推力不足で、24V駆動で実用化。88個同時駆動の大電流にはカーバッテリーを採用。シフトレジスタ+MOSFET基板を11枚作成し、プラスチックプレートにソレノイドを固定(当初はホットグルー、後に耐熱150℃の両面テープに変更)。

回路図はArduino公式ShiftOutチュートリアルの例2と同等。MOSFETゲートにプルダウン抵抗なしで動作確認済み(5Vで開、4V以下で閉)。

ソフトウェア処理フロー

  1. MIDIファイルを入手
  2. オンラインツールでテキスト化(時刻、Note On/Off、ノート番号、ベロシティ等)
  3. Pythonスクリプトで11セットの8ビットデータ(タイムスタンプ付き)に変換
  4. Processingでシリアル送信(テンポ倍率調整可能)
  5. Arduinoが受信し、シフトレジスタへ順次出力

注:Processingは右→左へ送信(物理ピアノは左→右)のため、ビット順を反転しています。

トラブルシューティング

ソースコード

Python変換スクリプト、Processing送信コード、Arduinoスケッチが提供されています。PythonコードはMIDIテキストを解析し、11×8ビットの時系列データを生成。Processingは遅延計算しながらシリアル送信。Arduinoは「888f」でラッチ開始、「999f」でラッチ終了のプロトコルで受信。

回路図

全体回路図はSchematicsセクション参照。Arduino公式ShiftOut図をベースに、LED部分をMOSFETゲートへ置き換えた構成です。

製造プロセス

  1. Bluetooth 制御 Raspberry Pi ロボットに音声フィードバックを追加して構築
  2. Arduino & Raspberry Pi でインターネット制御ビデオストリーミングロボットを構築
  3. Pythonで作るWi-Fi制御Raspberry Piロボット - ステップバイステップガイド
  4. ラズベリーパイとNode-REDでAlexaからLEDを制御する - 簡単ステップバイステップガイド
  5. Arduinoでアイアンマンを自作:部品・センサー・手順ガイド
  6. ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
  7. DIY Arduino加湿器コントローラー:リレーを用いた安全な高電圧制御
  8. Arduino Nanoで音声制御ロボットを自作
  9. MobBob:Arduino製ロボットをAndroidスマホでシームレスに制御
  10. ゲーム用カスタムArduinoジョイスティックハンドルの製作
  11. Arduino 101で作る万歩計:DHT11温湿度センサー&LCD表示付き