Arduino sound system.

Regulatory, sterowniki, serwa, pakiety itp.
Awatar użytkownika
Sławek
Site Admin
Posty: 14530
Rejestracja: 21 gru 2011, 22:12
Has thanked: 15 times
Been thanked: 21 times

Re: Arduino sound system.

Post autor: Sławek »

Dobra, przyszedł wzmacniacz wiec zrobiłem testy :

1. soft jest przygotowany pod apkę lotniczą gdzie jest jeden kierunek obrotów - 0 jest na dole a u góry maks obrotów - u nas 0 jest w środku a na dole maks do tyłu, góra maks do przodu - ale to nie problem
2. ściągnąłem pliki wav z wątku twórcy i wgrałem na kartę - efekt jest taki, że po zmianie wychylenia drążka trzeba odczekać aż zakończy się odtwarzanie dotychczasowego pliku i dopiero odtwarzany jest kolejny co powoduje brak proporcjonalności dźwięku w stosunku do wychylenia drążka - wynika to z tego, że pliki są za długie, trzeba robić krótkie pliki jak to jest w TBS
3. aby dźwięk był płynny trzeba zastosować więcej plików przejściowych lub wygładzić przejścia poprzez wyciszenie - to jeszcze do potestowania i popracowania nad tym
4. przy wzmacniaczu na TDA2030 (18W) jest stosunkowo cicho, ale prawdopodobnie wynika to z niskiego napiecia (zasiliłem z 5V z adruino) - potem zrobię próbę na 12V - ew. za mały głośnik, bo użyłem Visaton BF 32 - podepnę większy i sprawdzę
5. generalnie wymaga to dużej przeróbki i optymalizacji ale baza jakaś jest do dalszych prac
P522117820150522000347.JPG
Pozdr
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Awatar użytkownika
Maxu30
Kierowca
Posty: 2825
Rejestracja: 14 lis 2013, 10:46
Been thanked: 3 times

Re: Arduino sound system.

Post autor: Maxu30 »

Długo jeszcze?

Awatar użytkownika
Sławek
Site Admin
Posty: 14530
Rejestracja: 21 gru 2011, 22:12
Has thanked: 15 times
Been thanked: 21 times

Re: Arduino sound system.

Post autor: Sławek »

:D


Awatar użytkownika
wajha1983
Kierowca
Posty: 4882
Rejestracja: 10 lis 2013, 16:21
Has thanked: 16 times
Been thanked: 10 times

Re: Arduino sound system.

Post autor: wajha1983 »

spox

Awatar użytkownika
luki
Kierowca
Posty: 1630
Rejestracja: 03 lip 2012, 15:18

Re: Arduino sound system.

Post autor: luki »

Mi dziś pat nie dostarczył wzmacniacza wiec dopiero powalczę w niedzielę .Powiedz Sławku jak przerobiłeś scratch pod apkę przód ,tył i 0. Super ,że wyszło coś z tego i postaram się podszlifować pliki wav i zobaczymy co z tego wyjdzie w realu .Dzięki Sławku.

Awatar użytkownika
Sławek
Site Admin
Posty: 14530
Rejestracja: 21 gru 2011, 22:12
Has thanked: 15 times
Been thanked: 21 times

Re: Arduino sound system.

Post autor: Sławek »

Wrzucę później jak włączę kompa :)

Awatar użytkownika
Sławek
Site Admin
Posty: 14530
Rejestracja: 21 gru 2011, 22:12
Has thanked: 15 times
Been thanked: 21 times

Re: Arduino sound system.

Post autor: Sławek »

luki pisze:Mi dziś pat nie dostarczył wzmacniacza wiec dopiero powalczę w niedzielę .Powiedz Sławku jak przerobiłeś scratch pod apkę przód ,tył i 0. Super ,że wyszło coś z tego i postaram się podszlifować pliki wav i zobaczymy co z tego wyjdzie w realu .Dzięki Sławku.
Sorry, zapomniałem wczoraj wrzucić :oops:

Kod: Zaznacz cały

  #include <SD.h>                      // need to include the SD library
  #define SD_ChipSelectPin 4  //using digital pin 4 on arduino nano 328, can use other pins
  #include <TMRpcm.h>           //  also need to include this library...
  #include <SPI.h>
  
  TMRpcm tmrpcm;   // create an object for use in this sketch
  
  unsigned long time = 0;
  int numLoop = 0;
  int throttle = 0;
  int prevThrottle = 0;
  int currThrottle = 0;
  int playingSound = 0;
  
  //RC scale
  int rc_pin = 2;
  unsigned long duration;
  unsigned long prevDuration;
  
  
  void setup(){
    tmrpcm.speakerPin = 9; //5,6,11 or 46 on Mega, 9 on Uno, Nano, etc
    Serial.begin(9600);
    if (!SD.begin(SD_ChipSelectPin)) {  // see if the card is present and can be initialized:
      Serial.println("SD fail");  
      return;   // don't do anything more if not
    }
    else{   
      Serial.println("SD ok");   
    }
 
}
  
  void loop(){  
  
    //Read throttel value
   ++numLoop;
    if (numLoop == 30000){
        noInterrupts();
        duration = pulseIn(rc_pin, HIGH);
        interrupts();
        
        numLoop = 0;
        Serial.println(duration);

        Serial.println(currThrottle);
        //Set new throttle value
/*        
     if(duration <= 990){
        currThrottle = 0;
     };

*/
     if((duration > 1500) && (duration <= 1549)){
        currThrottle = 1;
     };
      if((duration > 1550) && (duration <= 1599)){
        currThrottle = 2;
      };
      if((duration > 1600) && (duration <= 1649)){
        currThrottle = 3;
      };
      if((duration > 1650) && (duration <= 1699)){
        currThrottle = 4;
      };
      if((duration > 1700) && (duration <= 1749)){
        currThrottle = 5;
      };
      if((duration > 1750) && (duration <= 1799)){
        currThrottle = 6;
      };
      if(duration > 1800){
        currThrottle = 7;
      };
    
      //If currThrottle != prevThrottle set start playing new file
      if(currThrottle != prevThrottle){
        
        if((currThrottle == 0) && (prevThrottle > 0)){
            tmrpcm.play("shut.wav");
             Serial.println("shut.wav)");
             while(tmrpcm.isPlaying()){}
             prevThrottle = currThrottle;
        }
        if(currThrottle == 1){
             if(currThrottle > prevThrottle){
             tmrpcm.play("start.wav");
             Serial.println("start.wav");
             while(tmrpcm.isPlaying()){}
             }
             playingSound = 1;
             prevThrottle = currThrottle;
        }
        if(currThrottle == 2){
          tmrpcm.play("1.wav");
          Serial.println("1.wav");
          prevThrottle = currThrottle;
          playingSound = 1;
        }
        if(currThrottle == 3){
          tmrpcm.play("2.wav");
          Serial.println("2.wav");
          prevThrottle = currThrottle;
          playingSound = 2;
        }
        if(currThrottle == 4){
          tmrpcm.play("3.wav");
          Serial.println("3.wav");
          prevThrottle = currThrottle;
          playingSound = 3;
        }
         if(currThrottle == 5){
          tmrpcm.play("4.wav");
          Serial.println("4.wav");
          prevThrottle = currThrottle;
          playingSound = 4;
        }
         if(currThrottle == 6){
          tmrpcm.play("5.wav");
          Serial.println("5.wav");
          prevThrottle = currThrottle;
          playingSound = 5;
         }
         if(currThrottle == 7){
          tmrpcm.play("6.wav");
          Serial.println("6.wav");
          prevThrottle = currThrottle;
          playingSound = 6;
        }
    }
    // Serial.println(tmrpcm.isPlaying());
     if((currThrottle = prevThrottle) && (tmrpcm.isPlaying() == 0)){
    
        if(playingSound == 1){
          tmrpcm.play("1.wav");
          Serial.println("again 1.wav");
          prevThrottle = currThrottle;
        }
        if(playingSound == 2){
          tmrpcm.stopPlayback();
          tmrpcm.play("2.wav");
          Serial.println("again 2.wav");
          prevThrottle = currThrottle;
        }
        if(playingSound == 3){
          tmrpcm.stopPlayback();
          tmrpcm.play("3.wav");
          Serial.println("again 3.wav");
          prevThrottle = currThrottle;
        }
         if(playingSound == 4){
          tmrpcm.stopPlayback();
          tmrpcm.play("4.wav");
          Serial.println("again 4.wav");
          prevThrottle = currThrottle;
         }
         if(playingSound == 5){
          tmrpcm.stopPlayback();
          tmrpcm.play("5.wav");
          Serial.println("again 5.wav");
          prevThrottle = currThrottle;
         }
         if(playingSound == 6){
          tmrpcm.stopPlayback();
          tmrpcm.play("6.wav");
          Serial.println("again 6.wav");
          prevThrottle = currThrottle;
        }
     }
  }
}

Awatar użytkownika
luki
Kierowca
Posty: 1630
Rejestracja: 03 lip 2012, 15:18

Re: Arduino sound system.

Post autor: luki »

System działa po niżej link z pracy ,pliki nie są przygotowane więc trzeba popracować nad płynnymi przejściami i dodać z 3-4 pliki wav (przejściowe). Problemy jakie napotkałem to konieczność zastosowania filtra przed wzmacniaczem a wyjściem z Arduino ,lipny wzmacniacz klasa D chyba największa bolączka tego układu to brak modulacji plików wav (przyspieszania) ale to wszystko mamy jak to w moim przypadku było tylko za 7 funtów więc czy warto coś takiego zbudować wybierzcie sobie sami ,jak wspomniał Sławek baza jest znakomita,a jak wiadomo to tylko drogi dodatek .



Awatar użytkownika
Sławek
Site Admin
Posty: 14530
Rejestracja: 21 gru 2011, 22:12
Has thanked: 15 times
Been thanked: 21 times

Re: Arduino sound system.

Post autor: Sławek »

@luki , i jak tam postępy ?

Awatar użytkownika
luki
Kierowca
Posty: 1630
Rejestracja: 03 lip 2012, 15:18

Re: Arduino sound system.

Post autor: luki »

Powrócę do tematu jak ogarnę samodzielne pisanie scratchów ,w którym jestem właśnie w trakcie ,platforma Arduino to ciekawe pole do popisu ,o które można oprzeć całą elektronikę Rc.

ODPOWIEDZ