最終更新日
記事公開日

【Raspberry Pi Pico】UART通信でDFPlayerを制御する

MP3再生モジュール 『DFPlayer mini』は、単体でも使用可能ですが、マイコンを使ったUART(非同期シリアル通信)で制御することも可能です。

今回は、Raspberry Pi Picoを使い、DFPlayerの音を鳴らす方法を紹介します。

配線図

【Raspberry Pi Pico】UART通信でDFPlayerを制御するための配線図

プログラム(MicroPython)

# ハードウェア関連のライブラリを読み込み
import machine

# UART初期設定(UART番号,クロックレート,TXピン:GP4/6Pin,RXピン:GP5/7Pin)
uart = machine.UART(1,baudrate=9600,tx = machine.Pin(4),rx = machine.Pin(5))

# シリアルデータの作成(一曲だけを再生)
sdata = bytearray([0x7E,0xFF,0x06,0x01,0x00,0x00,0x00,0xEF])

# シリアルデータの送信
uart.write(sdata)

短いコードですが、これでmicroSDカードに保存された音声データが一曲再生されます。

技術解説

  • 0x7E:開始コード
  • 0xFF:バージョン情報
  • 0x06:バイト数(開始コード・終了コードを除く)
  • 0x01:コマンド
  • 0x00:フィードバックの有無
  • 0x00:上位ビット
  • 0x00:下位ビット
  • 0xEF:終了コード

基本動作を「コマンド」で設定。

動作オプションを「下位ビット」で指定します。

この2つ以外のパラメーターは基本的に共通です。

曲を指定して再生

  • コマンド:0x03(ダイレクト再生コマンド)
  • 下位ビット:0x03(曲の番号を指定)
sdata = bytearray([0x7E,0xFF,0x06,0x03,0x00,0x00,0x03,0xEF])

リピート再生

  • コマンド:0x11(リピート再生コマンド)
  • 下位ビット:0x01(リピート再生スタート)
sdata = bytearray([0x7E,0xFF,0x06,0x11,0x00,0x00,0x01,0xEF])

リピート再生を止める

  • コマンド:0x11(リピート再生コマンド)
  • 下位ビット:0x00(リピート再生ストップ)
sdata = bytearray([0x7E,0xFF,0x06,0x11,0x00,0x00,0x00,0xEF])

その他

その他、ボリューム調整・音質変更・一時停止・ランダム再生など、色々なコマンドが用意されています。

詳しくは、PDFをご覧ください。

3ページ目の「3.2 .Serial Communication Commands」という項目に、コマンドのパラメーターについて記載されています。

この記事のURLをコピー

メールアドレスは公開されませんのでご安心ください。また、* が付いている欄は必須項目となります。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。

関連情報

運営者プロフィール
コダマ

職業はIT系フリーランス。過去、電子配線業務の経験が10年ある為、はんだづけも得意です。宮崎県在住、30代・2児の父親。