@@ -925,7 +925,6 @@ def loop(self, songNo):
925
925
926
926
:param int songNo: 歌曲编号,类型为数字
927
927
"""
928
- #
929
928
var = bytearray ([0xFF , 0x06 , 0x08 , 0x00 , 0x00 , songNo ])
930
929
self ._cmdWrite (var )
931
930
@@ -970,6 +969,116 @@ def resetDevice(self):
970
969
var = bytearray ([0xFF , 0x06 , 0x0C , 0x00 , 0x00 , 0x00 ])
971
970
self ._cmdWrite (var )
972
971
972
+ class MP3_ (object ):
973
+ """
974
+ MP3模块
975
+ WT2003H4-16S
976
+ 2022.01.20
977
+ """
978
+ def __init__ (self , tx = - 1 , rx = - 1 , uart_num = 1 ):
979
+ self .uart = UART (uart_num , 9600 , stop = 2 , tx = tx , rx = rx )
980
+ self ._vol = 15
981
+ self .is_paused = False
982
+ self .set_output_mode (1 )
983
+ self .volume (15 )
984
+
985
+ def _cmdWrite (self , cmd ):
986
+ sum = 0
987
+ len = 0
988
+ for i in cmd :
989
+ sum += i
990
+ len += 1
991
+
992
+ len += 2
993
+ sum += len
994
+ sum = sum & 0xff
995
+
996
+ pakage = [0x7E , len ]
997
+ pakage += cmd
998
+ pakage += ([sum , 0xEF ])
999
+ self .uart .write (bytearray (pakage ))
1000
+ # print(len)
1001
+ # print(pakage)
1002
+ sleep_ms (100 )
1003
+
1004
+ def play_song (self , num ):
1005
+ """
1006
+ 播放歌曲
1007
+ :param int num: 歌曲编号,类型为数字
1008
+ """
1009
+ # var = [0xA0, (num >> 8) & 0xff, num & 0xff]
1010
+ var = [0xA2 , (num >> 8 ) & 0xff , num & 0xff ]
1011
+ self ._cmdWrite (var )
1012
+
1013
+ def set_output_mode (self , mode ):
1014
+ """设置音频输出模式:0:speaker 1: DAC"""
1015
+ var = [0xB6 , mode ]
1016
+ self ._cmdWrite (var )
1017
+
1018
+ def set_play_mode (self , mode ):
1019
+ """指定播放模式"""
1020
+ var = [0xAF , mode ]
1021
+ self ._cmdWrite (var )
1022
+
1023
+ def pause (self ):
1024
+ """暂停播放"""
1025
+ if self .is_paused == False :
1026
+ self .is_paused = True
1027
+ var = [0xAA ]
1028
+ self ._cmdWrite (var )
1029
+
1030
+ def stop (self ):
1031
+ """停止播放"""
1032
+ var = [0xAB ]
1033
+ self ._cmdWrite (var )
1034
+
1035
+ def play (self ):
1036
+ """
1037
+ 播放,用于暂停后的继续播放
1038
+ """
1039
+ if self .is_paused :
1040
+ self .is_paused = False
1041
+ var = [0xAA ]
1042
+ self ._cmdWrite (var )
1043
+
1044
+ def playNext (self ):
1045
+ """播下一首"""
1046
+ var = [0xAC ]
1047
+ self ._cmdWrite (var )
1048
+
1049
+ def playPrev (self ):
1050
+ """播上一首"""
1051
+ var = [0xAD ]
1052
+ self ._cmdWrite (var )
1053
+
1054
+ def volume (self , vol ):
1055
+ """设置音量"""
1056
+ # 音量 0~30
1057
+ self ._vol = vol
1058
+ var = [0xAE , vol ]
1059
+ self ._cmdWrite (var )
1060
+ while True :
1061
+ if (self .uart .any ()):
1062
+ buff = self .uart .read (2 )
1063
+ # print(buff)
1064
+ break
1065
+
1066
+ def song_num (self ):
1067
+ """查询 SD 卡内音乐文件总数"""
1068
+ var = [0xC5 ]
1069
+ self ._cmdWrite (var )
1070
+ while True :
1071
+ if (self .uart .any ()):
1072
+ buff = self .uart .read (3 )
1073
+ num = (buff [1 ] << 8 ) + buff [2 ]
1074
+ if (buff [0 ]== 197 ):
1075
+ # print('song_num:')
1076
+ # print(num)
1077
+ return num
1078
+ else :
1079
+ return 0
1080
+
1081
+
973
1082
974
1083
class OLEDBit (framebuf .FrameBuffer ):
975
1084
"""
0 commit comments