Odeslat nové téma Odpovědět na téma  [ Příspěvků: 64 ]  Přejít na stránku 1, 2, 3, 4, 5  Další
Autor Zpráva
PříspěvekNapsal: úte 20.06.2017 15:28 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.4.2010
Příspěvky: 10493
Bydliště: Nový Bydžov ČR
Obrázky: 14
V jiným vlákně jsem popsal zabudování no EX telemetrie Jeti do Prism7. Tahle telemetrie má chybový stavy hlášený jedním volitelným písmenem morse abecedy. Morzeovku jsem se nikdy nenaučil a kdo si má taky pamatovat, co který písmeno je za telemetrickej alarm. Tak mě napadlo dekódovat z piezo pískače morse značky pomocí Adruina a na hlášky použít DFPlayer. To jsou destičky za pár kaček. Dekodéry morse s arduinem už na netu jsou, převážně s výstupem na dvouřádkový LCD displeje. Takže by stačilo vykuchat LCD a trochu upravit kam půjde zdekódovaný znak. DFPlayer je destička 20 x 20 mm na který je sokl na mikroSD kartu. Je na ní MP3 přehrávač, výstup L + R signálu, společný výstup se řízením hlasitosti na malý reproduktor a řízení buď přes tlačítka a nebo po sériové lince RS232 TTL. Přes tlačítka je možno ovládat asi 16 základních funkcí jako hlasitost, přehrávání, stop, další, předchozí atd. Po sériové lince jde také zvolit adresář a soubor na SD kartě, který se bude přehrávat. Takže stačí na SD kartu nahrát hlasový hlášky telemetrie a podle písmena z morse dekodéru přehrávat konkrétní hlášku.
Morse dekodér na Arduinu Pro Mini s výstupem na LCD displej mám už vyzkoušenej. DFPlayer taky, na kartu jsem nahrnul asi 30 MP3 písniček a Arduino vybírá po 10 sekundách přehrávání vždy další. Teď bych to potřeboval provázat, ovšem je problém. Je to podstatně složitější, než jsou příklady v různých příručkách pro začátečníky a nějak to nezvládám. :cry:
Nenašla by se náhodou nějaká dobrá duše, která by mi s tím pomohla?
Jinak s tím DFPlayerem by se třeba dalo bez problémů udělat ozvučení různých modelů, záleželo by jen na tom, co se nahraje na SD kartu. Přehrávání jednotlivých MP3 je možné bez jakékoliv mezery a tak by s tím šlo udělat i změnu otáček u spalovacího motoru. :)
Jirka


Nahoru
 Profil Soukromé album {RCalbum.cz}  
 
 
PříspěvekNapsal: úte 20.06.2017 16:06 
Mazák
Mazák

Registrován: 30.8.2011
Příspěvky: 5331
Bydliště: Plzeň, CZ
Obrázky: 0
Furt si myslim ze mnohem rozumnejsi by bylo zpracovani alarmu rovnou z telemetrie :-D

ad provazani - ty hodlas provozovat dve arduina nebo to chces nacpat do jednoho ? Vejde se to do pameti ?

_________________
coptery@FrSky X9E, 3.4m Go-3,EPP Spartan,SkySurfX8,SE.5,MPX Extra 300s@Jeti DC-16


Nahoru
 Profil Soukromé album  
 
PříspěvekNapsal: úte 20.06.2017 16:12 
Mazák
Mazák

Registrován: 30.8.2011
Příspěvky: 5331
Bydliště: Plzeň, CZ
Obrázky: 0
aha. DFPlayer je samostatny a ovladany po UARTu. To by melo byt trivka.

Nafot / namaluj zapojeni a dej nekam nejake zdrojaky at se na to da kouknout

_________________
coptery@FrSky X9E, 3.4m Go-3,EPP Spartan,SkySurfX8,SE.5,MPX Extra 300s@Jeti DC-16


Nahoru
 Profil Soukromé album  
 
PříspěvekNapsal: úte 20.06.2017 22:21 
Mecenáš serveru
Mecenáš serveru
Uživatelský avatar

Registrován: 8.7.2011
Příspěvky: 6960
Bydliště: Písek, ČR
Souhlas s Amperem. Cílem je převést A na B.
S tou morseovkou je to převod A na C a následně C na B.
I když, pokud už to "C" (morseovku) máš, chápu že to svádí udělat převod C na B, ale čisté řešení to není.
Tohle je jenom můj názor na první pohled, třeba je tam nějaká hlubší myšlenka nebo fajnovost, kteroujsem nepostřehnul. Jenom se mi zdá, že ta morseovka by měla buď být jako konečný produkt, a pokud ne, tak jako meziprodukt je to zbytečný...

_________________
FrSky Horus, letadla, heli+koptéry.
http://rc.ludl.cz


Nahoru
 Profil  
 
PříspěvekNapsal: stř 21.06.2017 0:22 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.4.2010
Příspěvky: 10493
Bydliště: Nový Bydžov ČR
Obrázky: 14
Hloubat v Jeti telemetrii, na to se necejtím. On mě úplně stačí Wiring a můžu použít dekodér morse i řízení playeru co už jsou napsaný.
V tom ne exovým Jeti se dají všem alarmům přidělit písmena morse A až Z. U DFPlayeru se soubory MP3 nebo WAW ukládají do adresáře pojmenovaným 01 - 99 a v každým adresáři je možno umístit soubory 001 - 255. Takže stačí odečíst od zdetekovanýho morse znaku 65 a mám číslo souboru, co se přehraje.
Zkoušel jsem různý způsoby ovládání DFPlayeru. Při použití již napsaných knihoven je problém, jak se stále zjišťuje stav přehrávače je slyšet rušení od sériový komunikace. Tak jsem použil jen co nejjednodušší ovládání bez knihoven, kdy se jen dá příkaz, co přehrát a stav se nekontroluje po sériový lince, ale čeká se na HW signál Busy, kterej hlásí, že se přehrává, nebo se dohrálo. Kontroly jestli je karta SD karta zasunutá či ne si myslím, že jsou zbytečný.
Tohle je prográmek, splácanej z několika na netu s kterým testuju přehrání souborů 001 až 010 v adresáři 01. Pro kontrolu se na PC serial monitor vypisujou názvy souborů:
Kód:
// Příklad použití DFPlayeru s microSD
// s adresáři 01-99, s názvy souborů 001.mp3-255.mp3)
// Na SD kartě jsou soubory (001.mp3, 002.mp3, až 010.mp3
// v adresáři "01".
//
const byte pinRX = 10;          // definice pin RX DFPlayeru 
const byte pinTX = 11;          // definice pin TX   -"-
const byte pinBusy = 12;        // definice pin Busy  -"- 
const byte Volume = 0x28;      // nastavení hlasitosti DFPLayeru - v rozsahu: 0x00-0x30 - default=0x30 

#include "SoftwareSerial.h"                   // knihovna software serial port
SoftwareSerial mySerial(pinRX, pinTX);  // RX, TX definice 

void setup () { 
        Serial.begin(110200);            // rychlost s PC
        mySerial.begin(9600);            // rychlost s DFPlayer   
        pinMode(pinBusy, INPUT);         // init Busy pin pro DFPlayer (LO: hraje / HI: nehraje) 
        Serial.println();
        Serial.println(F("DFPlayer Mini Demo"));
        Serial.println(F("Inicializace DFPlayeru"));
        dfpExecute(0x3F, 0x00, 0x00);    // odešli inicializační parametry DFPlayeru 
        while (mySerial.available()<10)  // Počkej, dokud nebudou přijaty inicializační parametry (10 bajtů) 
        delay(20);                       // 20 ms zpoždění mezi příkazy
        dfpExecute(0x06,0x00,Volume); // odešli hlasitost DL=0x00-0x30, 
        delay(20);                       // 20 ms zpoždění mezi příkazy 
         Serial.println(F("DFPlayer Mini online."));
             }                         // konec Setup 

void loop () {                          // hlavní smyčka
        const byte nfiles = 10;           // počet mp3 na SD kartě 
        static byte ifile = 1;           // číslo mp3 pro příště 
        if (digitalRead(pinBusy) == HIGH) {       // Pokud se nepřehrává, přehrajte další
            delay(500);                              // zpoždění 
            Serial.print("Prehravani MP3, nazev: ");  // výpis hlášky na PC
            Serial.println(ifile);                  // výpis čísla mp3 
            dfpExecute(0x0F,0x01,ifile);      // přehraj (0x0F) soubor [ifile] z adresáře "01" 
            ifile++;                          // další soubor
       if (ifile > nfiles) {                  // pokud je ifile vyšší než počet mp3 v adresáři
                            ifile = 1;        // tak začni znova od 1.
                            delay(3000);      // zpoždění před opakováním
                           } 
              } 


// --- Spusit příkaz DFPlayer se dvěma parametry (číslo adresáře a souboru)---
void dfpExecute(byte CMD, byte Par1, byte Par2)  // parametry (0x0F,0x01,ifile)
{   
  # define Start_Byte   0x7E 
  # define Version_Byte  0xFF 
  # define Command_Length 0x06 
  # define Acknowledge  0x00   
  # define End_Byte    0xEF 
  //
  // Kontrolní suma (2 byte) 
  uint16_t checksum = -(Version_Byte + Command_Length + CMD + Acknowledge + Par1 + Par2); 
  //
  // Vytvoření příkazového řádku 
  uint8_t Command_line[10] = { Start_Byte, Version_Byte, Command_Length, CMD, Acknowledge, 
         Par1, Par2, highByte(checksum), lowByte(checksum), End_Byte}; 
  //
  // Odeslání příkazového řádku do DFPlayeru 
  for (byte i=0; i<10; i++) mySerial.write( Command_line[i]); 


Ten dekodér morse musím dát jinam, je to moc velký. Odzkoušený mám tohle. Ale musí se to dost vykuchat, v podstatě celá obsluha displeje musí ven.
Jirka


Nahoru
 Profil Soukromé album {RCalbum.cz}  
 
PříspěvekNapsal: stř 21.06.2017 6:09 
Mazák
Mazák

Registrován: 30.8.2011
Příspěvky: 5331
Bydliště: Plzeň, CZ
Obrázky: 0
Dobry a co je za problém :D ?

_________________
coptery@FrSky X9E, 3.4m Go-3,EPP Spartan,SkySurfX8,SE.5,MPX Extra 300s@Jeti DC-16


Nahoru
 Profil Soukromé album  
 
PříspěvekNapsal: stř 21.06.2017 7:49 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.4.2010
Příspěvky: 10493
Bydliště: Nový Bydžov ČR
Obrázky: 14
Ta úprava CW dekodéru. Chtěl jsem udělat mezikrok aby odchycený znaky šly místo na LCD na PC serial monitor a nějak se mi nedaří. Třeba přemejšlím, zda budou stačit časovače. Jak to je? Když používám v ovládání playeru Serial a Software serial, tak to jsou dva časovače, to chodí. Ale nedokážu v tom CW dekodéru nalýzt, kolik časovačů potřebuje na dekódování. AT328 má dva 8 bitový a jeden 16 bitovej časovač a netuším, jak se používají a přiřazují. V nejhorším se dá zrušit komunikace na PC a jeden časovač vyšetřit, tedy jestli to jde a pomůže.
Zkusím si ještě pohrát s kucháním CW dekodéru a když zabřednu, tak Ti pošlu kam jsem se dostal. Ono je to pro mě dost těžký, některý programový řádky jsou mi záhadou a v dokumentaci, co mám jsem k tomu nic nenašel.
Jirka


Nahoru
 Profil Soukromé album {RCalbum.cz}  
 
PříspěvekNapsal: stř 21.06.2017 8:07 
Mazák
Mazák

Registrován: 30.8.2011
Příspěvky: 5331
Bydliště: Plzeň, CZ
Obrázky: 0
CW dekoder prece nepouziva hw uart tak pouzij ten a vyhod uplne software serial.

_________________
coptery@FrSky X9E, 3.4m Go-3,EPP Spartan,SkySurfX8,SE.5,MPX Extra 300s@Jeti DC-16


Nahoru
 Profil Soukromé album  
 
PříspěvekNapsal: stř 21.06.2017 8:21 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.4.2010
Příspěvky: 10493
Bydliště: Nový Bydžov ČR
Obrázky: 14
Ale používá, je tam přes serial nastavování dekodéru. Ale to by se teoreticky taky mohlo odzkoušet a potom vykuchat. Zatím nevím, ten dekodér s Goertzel Algoritmem vůbec nechápu, jak to funguje.
Jirka


Nahoru
 Profil Soukromé album {RCalbum.cz}  
 
PříspěvekNapsal: stř 21.06.2017 8:35 
Mazák
Mazák

Registrován: 30.8.2011
Příspěvky: 5331
Bydliště: Plzeň, CZ
Obrázky: 0
Myslim ze mnohem rozumnejsi by bylo pracovat fakt s tou telemetrii :-D

_________________
coptery@FrSky X9E, 3.4m Go-3,EPP Spartan,SkySurfX8,SE.5,MPX Extra 300s@Jeti DC-16


Nahoru
 Profil Soukromé album  
 
PříspěvekNapsal: stř 21.06.2017 15:40 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.4.2010
Příspěvky: 10493
Bydliště: Nový Bydžov ČR
Obrázky: 14
Ten prográmek, co jsem dával včera se chová nějak divně. Sice to přehrává soubory 001.MP3 až 010.MP3 ale třeba 001 až 003 trvají jen 2-3 sekundy. Pak se 004 a 005 přehrajou celý a pak jsou zase další zkrácený na 2-3 sekundy. A je to zcela nahodilý. Jako kdyby to blbě četlo výstup Busy z DFPlayeru. Když to hraje je na Busy 0,846V, to je na Arduino dost divná úroveň Low. Pokud nehraje, tak je na Busy cca 3,4V. Zkusil jsem na Mega Pro předefinovat Busy na port 13 a pak 8 a je to furt stejný. Nojo, ale ono to nereaguje správně ani když ten vstup Bysy do Mega Pro připojím přímo na GND nebo VCC. Ampére, nevidíš prosím tě v tom programu nějakou chybu? Mě nic nenapadá...
No blbý čtení portu a ty bys chtěl, abych se šťoural v protokolu telemetrie. :oops:
Díky
Jirka


Přílohy:
DFPlayer.jpg
DFPlayer.jpg
[ 288.08 KiB | Zobrazeno 8192 krát ]

Nahoru
 Profil Soukromé album {RCalbum.cz}  
 
PříspěvekNapsal: stř 21.06.2017 15:47 
Mazák
Mazák

Registrován: 30.8.2011
Příspěvky: 5331
Bydliště: Plzeň, CZ
Obrázky: 0
nestiham ale pokud mas jen propojene vstupy dratama tak je mozne ze to plave. Zkusil bych to stahnout na logickou nulu pres pulldown odpor

http://www.resistorguide.com/pull-up-re ... -resistor/

_________________
coptery@FrSky X9E, 3.4m Go-3,EPP Spartan,SkySurfX8,SE.5,MPX Extra 300s@Jeti DC-16


Nahoru
 Profil Soukromé album  
 
PříspěvekNapsal: stř 21.06.2017 16:28 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.4.2010
Příspěvky: 10493
Bydliště: Nový Bydžov ČR
Obrázky: 14
Zkusil jsem Busy stáhnout do země 1k odporem. Low spadla na 0,66V ale žádná změna, furt to zkracuje nahodile některý MP3.
Jirka


Nahoru
 Profil Soukromé album {RCalbum.cz}  
 
PříspěvekNapsal: stř 21.06.2017 16:58 
Mazák
Mazák

Registrován: 30.8.2011
Příspěvky: 5331
Bydliště: Plzeň, CZ
Obrázky: 0
tak to nevim, musel bych se do toho ponorit poradne a aktualne nemam cas ani dodelat SE.5 (i kdyz si rikam ze kdybych secetl cas na vsechny prispevky tak uz mam zaletnuto 2x )

_________________
coptery@FrSky X9E, 3.4m Go-3,EPP Spartan,SkySurfX8,SE.5,MPX Extra 300s@Jeti DC-16


Nahoru
 Profil Soukromé album  
 
PříspěvekNapsal: stř 21.06.2017 18:06 
Mazák
Mazák
Uživatelský avatar

Registrován: 22.4.2010
Příspěvky: 10493
Bydliště: Nový Bydžov ČR
Obrázky: 14
Tak jsem to našel. Nějakej problém s časováním snímání Busy, stačilo přemístit pauzu na konec Loop. Pokud je míň než cca 25mS tak to blbne. Zajímavý, ta divná úroveň Low na to nemá vliv.
Kód:
void loop () {                          // hlavní smyčka
        if (digitalRead(pinDfpBusy) == HIGH) {       // Pokud se nepřehrává, přehrajte další
//            delay(300);                              // zpoždění 
            Serial.print("Prehravani MP3 nazev: ");  // výpis hlášky na PC
            Serial.println(ifile);                  // výpis čísla mp3 
            dfpExecute(0x0F,0x01,ifile);      // přehraj (0x0F) soubor [ifile] z adresáře "01" 
            ifile++;                          // další soubor
       if (ifile > nfiles) {                  // pokud je ifile vyšší než počet mp3 v adresáři
                            ifile = 1;        // tak začni znova od 1.
         Serial.println(F("Novy cyklus"));
                            delay(2000);      // zpoždění před opakováním
                           } 
         delay(300);           
              } 

Ten CW dekodér bude horší. :roll:
Jirka


Nahoru
 Profil Soukromé album {RCalbum.cz}  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 64 ]  Přejít na stránku 1, 2, 3, 4, 5  Další

 


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 7 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  

 

  Powered by phpBB® Forum Software © phpBB Group  Český překlad – phpBB.cz 

 

NAVRCHOLU.cz