74 lines
1.9 KiB
Python
74 lines
1.9 KiB
Python
from microbit import *
|
|
|
|
|
|
class QJ00X_MP3:
|
|
def __init__(self, mp3_rx=pin2, mp3_tx=pin16, volume=0x16, mode=0x01):
|
|
uart.init(rx=mp3_rx, tx=mp3_tx, baudrate=9600)
|
|
self.set_eq(1)
|
|
self.set_vol(volume)
|
|
self.set_mode(mode)
|
|
self.pause()
|
|
|
|
def _send_cmd(self, length, cmd, data_high=None, data_low=None):
|
|
uart.write(b"\x7E")
|
|
uart.write(bytes([length]))
|
|
uart.write(bytes([cmd]))
|
|
if data_high != None:
|
|
uart.write(bytes([data_high]))
|
|
if data_low != None:
|
|
uart.write(bytes([data_low]))
|
|
uart.write(b"\xEF")
|
|
sleep(200)
|
|
|
|
# 下一曲
|
|
def next_track(self):
|
|
self._send_cmd(0x02, 0x03)
|
|
|
|
# 上一曲
|
|
def prev_track(self):
|
|
self._send_cmd(0x02, 0x04)
|
|
|
|
# 选择曲目
|
|
def sel_track(self, track_index):
|
|
self._send_cmd(0x03, track_index)
|
|
|
|
# 音量+
|
|
def inc_vol(self):
|
|
self._send_cmd(0x02, 0x05)
|
|
|
|
# 音量-
|
|
def dec_vol(self):
|
|
self._send_cmd(0x02, 0x06)
|
|
|
|
# 设置音量
|
|
def set_vol(self, volume):
|
|
self._send_cmd(0x03, 0x31, data_high=volume)
|
|
|
|
# 设置音效
|
|
def set_eq(self, equalizer):
|
|
self._send_cmd(0x03, 0x32, data_high=equalizer)
|
|
|
|
# 设置播放设备
|
|
def set_mode(self, mode):
|
|
self._send_cmd(0x03, 0x35, data_high=mode)
|
|
|
|
# 播放
|
|
def play(self):
|
|
self._send_cmd(0x02, 0x01)
|
|
|
|
# 终止播放
|
|
def pause(self):
|
|
self._send_cmd(0x02, 0x02)
|
|
|
|
# 设置文件夹播放
|
|
def set_folder(self, folder_index, music_index):
|
|
self._send_cmd(0x04, 0x42, data_high=folder_index, data_low=music_index)
|
|
|
|
# 设置曲目播放
|
|
def playFileByIndexNumber(self, music_index):
|
|
self._send_cmd(0x04, 0x41, data_high=0x00, data_low=music_index)
|
|
|
|
# 设置循环
|
|
def set_loop(self, mode):
|
|
self._send_cmd(0x03, 0x33, data_high=mode)
|