Difference between revisions of "Open Source Music Player"

From Microduino Wiki
Jump to: navigation, search
(Programming)
 
(7 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
|
 
|
 
==Overview==
 
==Overview==
*Project name:Microduino open source player
+
*Project name: Microduino open source player
*Objective:To read the songs in the SD card.
+
*Objective: To read the songs in the SD card.
 
*Difficulty: Medium
 
*Difficulty: Medium
 
*Time consuming: 2 hours
 
*Time consuming: 2 hours
*Maker:
+
*Maker:
 
*Introduction:
 
*Introduction:
 
**Open source music player is an open source speaker which can read SD card and decode it.
 
**Open source music player is an open source speaker which can read SD card and decode it.
Line 18: Line 18:
 
|-
 
|-
 
|width="50%" valign="top" align="left"|
 
|width="50%" valign="top" align="left"|
===Microduino devices===
+
===Microduino equipment===
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
Line 36: Line 36:
 
|}
 
|}
 
|width="50%" valign="top" align="left"|
 
|width="50%" valign="top" align="left"|
===Other devices===
+
===Other equipment===
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
Line 45: Line 45:
 
|OLED connecting line||1||Connect
 
|OLED connecting line||1||Connect
 
|-
 
|-
|Micro-USB line ||1||Download programs、supply power
+
|Micro-USB line ||1||Download programs, supply power
 
|-
 
|-
 
|Speaker||2||Play audio
 
|Speaker||2||Play audio
Line 67: Line 67:
  
 
==Programs to download==
 
==Programs to download==
*The code of music player Github:'''[https://github.com/Microduino/Simple_player_V2 Simple_Player_v2]'''
+
*The code of music player Github:'''[https://github.com/Microduino/SimplePlayer_Microduino SimplePlayer_Microduino]'''
  
 
==Programming==
 
==Programming==
 
*Stack '''[[Microduino-Core]]''' and '''[[Microduino-USBTTL]]''' together.
 
*Stack '''[[Microduino-Core]]''' and '''[[Microduino-USBTTL]]''' together.
 
** Connect the '''[[Microduino-USBTTL]]''' ready to upload program with a data line.
 
** Connect the '''[[Microduino-USBTTL]]''' ready to upload program with a data line.
**Note:It is best not to put all modules stacked together and then upload.
+
**Note: It is best not to put all modules stacked together and then upload.
*Open Arduino IDE for Microduino, environment, (Reference of the set-up:'''[[AVR Core: Getting Started]]''').
+
*Open Arduino IDE for Microduino, environment, (Reference of the set-up: '''[[AVR Core: Getting Started]]''').
 
*Click'''[Instrument]''', assure the '''board card(Microduino-Core) processor(Atmega328P@16M,5V)''' selected correctly, and select the corresponding '''port number(COMX)'''.
 
*Click'''[Instrument]''', assure the '''board card(Microduino-Core) processor(Atmega328P@16M,5V)''' selected correctly, and select the corresponding '''port number(COMX)'''.
 
*Click'''[File]'''->'''[Open]''', browse to the project program address, and click "'''Simple_player_V2.ino"''' to open program.
 
*Click'''[File]'''->'''[Open]''', browse to the project program address, and click "'''Simple_player_V2.ino"''' to open program.
Line 80: Line 80:
 
==Store audio==
 
==Store audio==
 
*Audio files need to be stored in a container in advance, then the player can play on them. There are two types of storage:
 
*Audio files need to be stored in a container in advance, then the player can play on them. There are two types of storage:
**The module board FLASH:'''[[Microduino-Audio]]''' has boarded the 4MByte FLASH.
+
**The module board FLASH: '''[[Microduino-Audio]]''' has boarded the 4MByte FLASH.
 
***Audio storage method please refer to the following page: '''[https://www.microduino.cn/wiki/index.php/Microduino-Module_Audio #.E5.BC.80.E5.8F.91 Download audio]'''
 
***Audio storage method please refer to the following page: '''[https://www.microduino.cn/wiki/index.php/Microduino-Module_Audio #.E5.BC.80.E5.8F.91 Download audio]'''
 
**SD outside enlarge capacity: Use the '''Shield''' module of the '''[[Microduino-Audio]]''' module to  realize '''MicroSD card dilatation'''.
 
**SD outside enlarge capacity: Use the '''Shield''' module of the '''[[Microduino-Audio]]''' module to  realize '''MicroSD card dilatation'''.
Line 89: Line 89:
 
|-
 
|-
 
|width="50%" valign="top" align="left"|
 
|width="50%" valign="top" align="left"|
*'''Step1:'''
+
*'''Step1: '''
 
*According to the picture 1-1,  fix '''[[Microduino-OLED]]''' on '''Structure-A1''' with '''nylon screw''' and '''nylon nut''' .
 
*According to the picture 1-1,  fix '''[[Microduino-OLED]]''' on '''Structure-A1''' with '''nylon screw''' and '''nylon nut''' .
 
*Note: Pay attention to the installation direction of the OLED display screen, and please take the LOGO '''Microduino''' as a reference,  the LOGO located in the '''positive direction''' saying it installed in the right direction.
 
*Note: Pay attention to the installation direction of the OLED display screen, and please take the LOGO '''Microduino''' as a reference,  the LOGO located in the '''positive direction''' saying it installed in the right direction.
Line 98: Line 98:
 
|-
 
|-
 
|width="50%" valign="top" align="left"|
 
|width="50%" valign="top" align="left"|
*After the installation of the OLED display screen, please put nthe sensor lin access to the interface on the reverse of the OLED.
+
*After the installation of the OLED display screen, please put the sensor line access to the interface on the reverse of the OLED.
 
|width="50%" valign="top" align="left"|
 
|width="50%" valign="top" align="left"|
 
[[File:Musicstep1-2.jpg||450px|center]]
 
[[File:Musicstep1-2.jpg||450px|center]]
Line 105: Line 105:
 
|-
 
|-
 
|width="50%" valign="top" align="left"|
 
|width="50%" valign="top" align="left"|
*'''Step2:'''
+
*'''Step2:'''
 
*According to the picture 2-1, insert '''structure-D1''' into the corresponding interface of the  '''structure-B1'''.
 
*According to the picture 2-1, insert '''structure-D1''' into the corresponding interface of the  '''structure-B1'''.
 
|width="50%" valign="top" align="left"|
 
|width="50%" valign="top" align="left"|
Line 127: Line 127:
 
|-
 
|-
 
|width="50%" valign="top" align="left"|
 
|width="50%" valign="top" align="left"|
*'''Step3:'''
+
*'''Step3:'''
 
*According to the picture 3-1, embed the '''horn''' into the position as shown in the picture, taking care of the installation direction of the '''horn''', the '''horn line''' needing threading to the behind of the '''structure-B1''' in advance.
 
*According to the picture 3-1, embed the '''horn''' into the position as shown in the picture, taking care of the installation direction of the '''horn''', the '''horn line''' needing threading to the behind of the '''structure-B1''' in advance.
 
|width="50%" valign="top" align="left"|
 
|width="50%" valign="top" align="left"|
Line 149: Line 149:
 
|-
 
|-
 
|width="50%" valign="top" align="left"|
 
|width="50%" valign="top" align="left"|
*'''Step4:'''
+
*'''Step4:'''
 
*According to the picture 4-1, turn to the back of the player, stuck '''structure-D2''' with the slot of '''structure-D3'''.
 
*According to the picture 4-1, turn to the back of the player, stuck '''structure-D2''' with the slot of '''structure-D3'''.
 
** Pay attention to the force evenly, avoid too much force to break, and at the same time thread the two '''horn''' line and OLED line out from the hole on the back.
 
** Pay attention to the force evenly, avoid too much force to break, and at the same time thread the two '''horn''' line and OLED line out from the hole on the back.
Line 173: Line 173:
 
|-
 
|-
 
|width="50%" valign="top" align="left"|
 
|width="50%" valign="top" align="left"|
*'''Step5:'''
+
*'''Step5:'''
 
*According to the picture 5-1, insert '''structure-C1''' into the back of the player.
 
*According to the picture 5-1, insert '''structure-C1''' into the back of the player.
 
|width="50%" valign="top" align="left"|
 
|width="50%" valign="top" align="left"|
Line 198: Line 198:
 
|-
 
|-
 
|width="50%" valign="top" align="left"|
 
|width="50%" valign="top" align="left"|
*'''Step6:'''
+
*'''Step6:'''
 
*According to the picture 6-1, connect the OLED line to the IIC interface(There are SCL,SDA near the interface)on the left of the baseboard of the '''[[Microduino-Cube-S1]]'''.
 
*According to the picture 6-1, connect the OLED line to the IIC interface(There are SCL,SDA near the interface)on the left of the baseboard of the '''[[Microduino-Cube-S1]]'''.
 
*Then connect the two '''horn''' lines to the audio interface in the '''[[Microduino-Amplifier]]'''module.
 
*Then connect the two '''horn''' lines to the audio interface in the '''[[Microduino-Amplifier]]'''module.
Line 243: Line 243:
 
*The following code can set the thumbwheel switch threshold
 
*The following code can set the thumbwheel switch threshold
 
<source lang = "cpp">
 
<source lang = "cpp">
#define PUSH_BUTTON    50
+
#define PUSH_BUTTON    50            //If the threshold value is invalid, please try these thresholds  50
#define LEFT_BUTTON    100
+
#define LEFT_BUTTON    100                                                                               150 
#define RIGHT_BUTTON  200
+
#define RIGHT_BUTTON  200                                                                               250 
 
</source>
 
</source>
*In the event of:The volume can only be increased and can’t be reduced, the number of the song can only be increased and can’t be reduced, or on the contrary.
+
*In the event of: The volume can only be increased and can't be reduced, the number of the song can only be increased and can't be reduced, or on the contrary.
 
Cause:The thumbwheel switches threshold setting is not reasonable in the "userDef.h".
 
Cause:The thumbwheel switches threshold setting is not reasonable in the "userDef.h".
 
{|class="wikitable"
 
{|class="wikitable"

Latest revision as of 06:19, 30 September 2016

Overview

  • Project name: Microduino open source player
  • Objective: To read the songs in the SD card.
  • Difficulty: Medium
  • Time consuming: 2 hours
  • Maker:
  • Introduction:
    • Open source music player is an open source speaker which can read SD card and decode it.
    • Appearance concise, simple button design, OLED screen display, easy to use.
    • This system is fully realized by Microduino, and the user can experience the fun of manual DIY.


Bill of materials

Microduino equipment

Module Number Function
Microduino-Core 1 Core-board
Microduino-USBTTL 1 Download programs
Microduino-Audio(with shield) 1 Decode,store music files
Microduino-Amplifier 1 Attack release
Microduino-OLED 1 Display
Microduino-Cube-S1 1 The OLED interface of extension board

Other equipment

Module Number Function
Fixed plate 1 Fix structure
OLED connecting line 1 Connect
Micro-USB line 1 Download programs, supply power
Speaker 2 Play audio
MicroSD card(optional) 1 Store music files
M2 Nylon screw 8 To fix
M2 Nylon stud 4 To fix
M2 Nylon nut 8 To fix
Musicmaterial1.jpg
Musicmaterial2.jpg

Programs to download

Programming

  • Stack Microduino-Core and Microduino-USBTTL together.
    • Connect the Microduino-USBTTL ready to upload program with a data line.
    • Note: It is best not to put all modules stacked together and then upload.
  • Open Arduino IDE for Microduino, environment, (Reference of the set-up: AVR Core: Getting Started).
  • Click[Instrument], assure the board card(Microduino-Core) processor(Atmega328P@16M,5V) selected correctly, and select the corresponding port number(COMX).
  • Click[File]->[Open], browse to the project program address, and click "Simple_player_V2.ino" to open program.
  • After all these items are correct, click the button "→"to download the program to the development board.

Store audio

  • Audio files need to be stored in a container in advance, then the player can play on them. There are two types of storage:

Steps of the set-up

  • Step1:
  • According to the picture 1-1, fix Microduino-OLED on Structure-A1 with nylon screw and nylon nut .
  • Note: Pay attention to the installation direction of the OLED display screen, and please take the LOGO Microduino as a reference, the LOGO located in the positive direction saying it installed in the right direction.
Musicstep1-1.jpg
  • After the installation of the OLED display screen, please put the sensor line access to the interface on the reverse of the OLED.
Musicstep1-2.jpg
  • Step2:
  • According to the picture 2-1, insert structure-D1 into the corresponding interface of the structure-B1.
Musicstep2-1.jpg
  • According to the picture 2-2, insert structure-C2 into the corresponding interface of the structure-B1.
Musicstep2-2.jpg
  • After step2, the player skeleton forms.
Musicstep2-3.jpg
  • Step3:
  • According to the picture 3-1, embed the horn into the position as shown in the picture, taking care of the installation direction of the horn, the horn line needing threading to the behind of the structure-B1 in advance.
Musicstep3-1.jpg
  • According to the picture 3-2, splice the structure-A1 installed with OLED display screen to the front of the player skeleton, then put the structure-D3 into the slot in structure-A1 and structure-B1.
Musicstep3-2.jpg
  • After step3, the front of the player has been assembled.
Musicstep3-3.jpg
  • Step4:
  • According to the picture 4-1, turn to the back of the player, stuck structure-D2 with the slot of structure-D3.
    • Pay attention to the force evenly, avoid too much force to break, and at the same time thread the two horn line and OLED line out from the hole on the back.
Musicstep4-1.jpg
  • According to the picture 4-2, fix the baseboard of the Microduino-Cube-S1 on the structure-C2 with nylon screw, nylon stud and nylon nut.
Musicstep4-2.jpg
  • After step4, the construction picture is as follow:
Musicstep4-3.jpg
  • Step5:
  • According to the picture 5-1, insert structure-C1 into the back of the player.
Musicstep5-1.jpg
  • According to the picture 5-2, stick structure-D4 to the corner of the structure-C1, and at the same time thread the two horn lines and OLED line out from the hole in the structure-C1.
Musicstep5-2.jpg
Musicstep5-3.jpg
  • Step6:
  • According to the picture 6-1, connect the OLED line to the IIC interface(There are SCL,SDA near the interface)on the left of the baseboard of the Microduino-Cube-S1.
  • Then connect the two horn lines to the audio interface in the Microduino-Amplifiermodule.
Musicstep6-1.jpg
  • Now open source music player has been set up completely.
Musicstep6-2.jpg

Operating instruction

Player power supply

  • According to the following picture, connect the USB power supply line to the USB interface in the baseboard of the Microduino-Cube-S1.
    • USB power supply can use computer USB port, USB charger, mobile power supply, and other forms.
Musicpower.jpg

Players use

  • There is a thumb wheel switch in the shield module of the Microduino-Audio, and you can control music playing through this switch. The method is as follow:
The use way of the thumb wheel switch Function
Click on the wheel Music play and pause switch
Long press on the wheel Play mode switch, such as looping, single play, etc.
Left dial the wheel once Switch to playing the last one
Right dial the wheel once Switch to playing the next one
Left long dial the wheel The volume reduces
Right long dial the wheel The volume increases
  • Player energized the default is the first song in the SD card selected, and in a suspended state, can press a allocated round to start playing music.
  • The volume range of the player is 0~30. The bigger the number is, the bigger the volume is. Player chooses the volume 20 by default.

Code instruction

  • The "userDef.h" is our configuration file.
  • The following code can set the thumbwheel switch threshold
#define PUSH_BUTTON    50             //If the threshold value is invalid, please try these thresholds   50
#define LEFT_BUTTON    100                                                                               150   
#define RIGHT_BUTTON   200                                                                               250
  • In the event of: The volume can only be increased and can't be reduced, the number of the song can only be increased and can't be reduced, or on the contrary.

Cause:The thumbwheel switches threshold setting is not reasonable in the "userDef.h".

The action of the thumbwheel A6 measured voltage(V) The corresponding code(voltage/5*1023) Threshold setting
Default 3.3 675.18 >600
Downward 0 0 0~50
Towards the left 1.6 327.36 150~400
Towards the right 2.6 531.96 450~600

Please change the threshold in the "userDef.h" to the actual using value of the thumbwheel.

Video