Stránka 1 z 2

40X2 a DFplayer mini

Napsal: 24 bře 2018, 16:59
od Pepa z depa
Zdravím všechny Picaxáře.
Mám 40X2 - výstup C.2 přes odpor 1k na pin2 - rX DFPlayeru mini. Je tam ještě "pár" součástek okolo, ty nejsou momentálně důležité.
Podle tohohle dokumentu je kus kódu dole.
http://www.picaxe.cz/dfplayer-mini-ovla ... ym-portem/

Po zavolání podprogramu "DFplay" to soubor 05 to sice přehraje, ale nevim proč.
Taky bych tam někam potřeboval zařadit hned na začátek povel pro nastavení hlasitosti (třeba na 2? - ta hlasitost co je tam nastavená mi silně nevyhovuje).
To dopočítávání kontrolního součtu jsem nějak nepochopil. Je možné ho nějak vypnout/ignorovat? V horším případě dopočítat? :oops:

Ideálně potřebuju podprogram, který postupně :
1) podle hodnoty (1 - 19) v proměnné ( třeba bx ) nastaví hlasitost " bx ".
2) podle hodnoty (1 - 99) v proměnné ( třeba by ) spustí soubor "by".

Mohl by mne někdo prosím nakopnout správným směrem?

Kód: Vybrat vše

 
 DFplay:
 
 symbol TXBAUD=T9600_8
  setfreq m8    'Hodinovy kmitocet 8MHz abychom mohli pouzivat 9600Bd
    pause 1000     'Po nabehu napajeni pockame 0,5s 
	
	serout C.2,TXBAUD,($7E, $FF, $06, $09, $00, $00, $02, $FE, $F0, $EF)   'nastavi SD kartu
	 pause 1000	 
    serout C.2,TXBAUD,($7E, $FF, $06, $03, $00, $00, $05, $FE, $F3, $EF)    'spusti soubor 05
     pause 1000			
    setfreq m4
    pause 400
return

Re: 40X2 a DFplayer mini

Napsal: 25 bře 2018, 14:00
od DavidO
Pepa z depa píše: 24 bře 2018, 16:59 Po zavolání podprogramu "DFplay" to soubor 05 to sice přehraje, ale nevim proč.
Vždyť to je v tom vzorovém kódu přímo napsané v komentáři: 'spusti soubor 05
Pepa z depa píše: 24 bře 2018, 16:59 Taky bych tam někam potřeboval zařadit hned na začátek povel pro nastavení hlasitosti (třeba na 2? - ta hlasitost co je tam nastavená mi silně nevyhovuje).
Příkaz $06, viz dokumentace, která je ke stažení např. na snailshop.cz (odkaz z článku s příkladem)
Pepa z depa píše: 24 bře 2018, 16:59 To dopočítávání kontrolního součtu jsem nějak nepochopil. Je možné ho nějak vypnout/ignorovat?
:lol:
Ne.
Pepa z depa píše: 24 bře 2018, 16:59 V horším případě dopočítat? :oops:
No, jako, abych tak celkově řekl, ... přečetl jste si ten článek o DFplayer celý? Tam to je přece napsané ve formátu příkazu a pak ještě v sekci "Jak jsme testovali":
"Abychom se vyhnuli neustálému ručnímu dopočítávání kontrolního součtu, použijeme podprogram CmdOut, který udělá práci za nás."
Pepa z depa píše: 24 bře 2018, 16:59 Mohl by mne někdo prosím nakopnout správným směrem?
http://www.picaxe.cz/dfplayer-mini-ovla ... ym-portem/
http://www.snailshop.cz/audio-mp3/1646- ... avace.html rozkliknout "ke stažení"
Ale jinak na to už existuje mechanizace ;) :
Snapshot 2008-01-04 08-52-54.img_assist_custom.gif
Snapshot 2008-01-04 08-52-54.img_assist_custom.gif (26.15 KiB) Zobrazeno 7708 x

Re: 40X2 a DFplayer mini

Napsal: 25 bře 2018, 21:44
od Pepa z depa
Diky Davide za odpověď (i). Takovej stroj bych občas potřeboval...
Už jsem konečně pochopil ten kontrolní součet :oops: A prokousávám se tím ostatním.

Mám dotaz:
Protože proměnné z návodu mám obsazené, přepsal jsem to na ty, co mám volné (v kódu ta "zaREMovaná" část ;) ) a nechce mi to fungovat. Co tam mám blbě?

Kód: Vybrat vše

' Variables

symbol buffirst=27	'command buffer first byte
symbol ver=b27
symbol len=b26
symbol cmd=b25
symbol feedback=b24
symbol para1=b23
symbol para2=b22
symbol param16=w11
symbol buffchks=21	'command bufer last byte for chksum calc
symbol chksumhi=b21
symbol chksumlo=b20
symbol chksum16=w10
symbol buflast=19		'command buffer last byte

#rem
symbol buffirst=27    'command buffer first byte
symbol ver=b37
symbol len=b36
symbol cmd=b35
symbol feedback=b34
symbol para1=b33
symbol para2=b32
symbol param16=w16
symbol buffchks=21    'command bufer last byte for chksum calc
symbol chksumhi=b31
symbol chksumlo=b30
symbol chksum16=w15
symbol buflast=19        'command buffer last byte
#endrem

Re: 40X2 a DFplayer mini

Napsal: 26 bře 2018, 10:50
od Pepa z depa
Tak přepsal jsem ty "moje" proměnné a funguje to.

Tenhle kód dole (nastavení hlasitosti) funguje pouze když ho zařadím před začátek přehrávání. V datašítu píšou něco o posloupnosti: start / určení sD nebo USB disku / nastavení hlasitosti / začátek přehrávání.

Pokud chci měnit hlasitost v průběhu přehrávání, tak ten kód nefunguje - co je tam špatně ?

Kód: Vybrat vše

nastav hlasitost:

setfreq m8	'Hodinový kmitočet 8MHz abychom mohli používat 9600Bd
	pause 8000 	'počkáme 4s 

Main:
	'hlasitost /podle hodnoty promenne b6/
	cmd=$06
	para1=01
	para2=b6
	gosub CmdOut
	pause 1000
	
		
setfreq m4      'Přepnutí na 4MHz
	
return

CmdOut:
	'Spočítáme kontrolní součet
	chksum16=0
	bptr=buffirst
	do 
		chksum16=chksum16-@bptrdec
	loop while bptr>buffchks
	'Odešleme data
	bptr=buffirst
	serout C.2,TXBAUD,($7E, @bptrdec, @bptrdec, @bptrdec, @bptrdec, @bptrdec, @bptrdec, @bptrdec, @bptrdec, $EF)
return

Re: 40X2 a DFplayer mini

Napsal: 26 bře 2018, 19:09
od Vladimir66
Hosi. Hosi...
- prikazy se mohou posilat BEZ checksum !! viz. 3.2 v manualu (osobne vyzkouseno a pouzivam na Arduinu)
- striktne doporucuji pouzivat nazev file "0001abcde.mp3 /ctyrciselny prefix filename funguje to ve vice rezimech i v Advertu viz manual 3.6.8
- prehraje to spustu formatu MP3 (WAVy musi byt v presnych parametrech a nezjistil jsem rozdil v rychlosti nacteni MP3 vs WAV)
-soubory na PC seradit podle jmena a zkopirovat na cistou flashku/SD , protoze pokud zadas prikaz NEXT, tak se nacte dalsi FAT zaznam (nikoliv podle nazvu jmena souboru), takze je idealni zkopirovat od 0001 vyse a pak nic nemazat.

-Vlada

Re: 40X2 a DFplayer mini

Napsal: 26 bře 2018, 20:58
od DavidO
Vida, to je zajímavé. Já jsem totiž ten datasheet četl přes Pepou z depou zmiňovaný článek, popisující modul DFPlayer Mini a odkazující na Snail Instruments, kde je nalinkovaný jako DFPlayerMiniManual.pdf. Ten tvůj ale popisuje modul FN-M16P, zřejmě je jedno klonem druhého (a to oboje může být něco jiného, než má Pepa z depa ve skutečnosti), což může a nemusí být stejně ovládané. No a protože v DFPlayer Mini datasheetu se explicitně o vypuštění checksumu nikde nepíše a všechny příklady jsou s tím checksumem, tak mě nenapadlo, že by se checksum nemusel posílat. Pokud to tedy je stejný modul.

Ale ... když tak čtu ten datasheet DFPlayerMiniManual.pdf, stejně mi tam ty checksumy neseděj, např. na konci 3.1 (str.3) posílají 7E FF 06 09 00 00 04 FF DD EF ale ať koukám, jak koukám, nevidím, jak z těch posílaných dat spočetli checksum FFDD. Což by mě vedlo na to, že checksum se jednoduše ignoruje :-)

Jenže ... v datasheetu s !!! od Vládi se na konci 3.1 taky uvádí příklad, 7E FF 06 09 00 00 02 FF F0 EF, a ani tady nevím, jak ten checksum spočítali. Jen o pár řádků dál píšou Checksum (2 bytes) = 0xFFFF–(CMD + Feedback + Para_MSB + Para_LSB) + 1 a to mi pro tenhle příklad vychází FFF5 a ne FFF0. Tak teď teda fakt už nevym :( buď je blbě datasheet, nebo se checksum ignoruje, nebo jsem blbej já, protože jsem něco přehlédl...

Re: 40X2 a DFplayer mini

Napsal: 26 bře 2018, 21:06
od DavidO
Vladimir66 píše: 26 bře 2018, 19:09 -soubory na PC seradit podle jmena a zkopirovat na cistou flashku/SD , protoze pokud zadas prikaz NEXT, tak se nacte dalsi FAT zaznam (nikoliv podle nazvu jmena souboru), takze je idealni zkopirovat od 0001 vyse a pak nic nemazat.
Místo tohohle postupu s úspěchem už leta používám "FAT Sorter". Projekt už bohužel nežije, ale v archivu to pořád je a funguje i download: FatSorter-1.0.4.zip.

Re: 40X2 a DFplayer mini

Napsal: 27 bře 2018, 08:16
od Pepa z depa
Díky za odpovědi.
Já nemám problém s přehráním souborů. Mám je na sDčku přesně jak píše Vláďa. Mně to prostě nechce v průběhu přehrávání změnit hlasitost. Nicméně ten manuál co postnul Vláďa je už třetí, kterej vidim. Ale tenhle je nejpodrobnější, tak snad z něj něco pochytím :D

Re: 40X2 a DFplayer mini

Napsal: 27 bře 2018, 09:30
od DavidO
A nehodil by se ti třeba i tenhle datasheet? Je to sice od jiného modulu, ale datasheet má víc stránek, než ten Vláďův. Nebo tenhle, ten jich má dokonce víc než dvakrát tolik :D

Re: 40X2 a DFplayer mini

Napsal: 27 bře 2018, 10:24
od Pepa z depa
Ten první je od jinýho modulu a to co potřebuju - příkazy - tam zrovna moc detailně nejsou - v tom Vláďovym je to lepší.
U toho druhýho ten odkaz nefunguje.