- LiTime Speicher und Akkus         
Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 46

Thema: Internetradio

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Es geht voran. Den HDMI Analog Adapter habe ich storniert. Die Audioausgabe erfolgt jetzt per ~14 EUR Speedlink USB Stick (Meldet sich als C-Media an), welchen ich noch hinten in meinem NAS stecken hatte. Der Ton ist frei von Knacksern und spielt seit heute Morgen stabil durch. Ich habe noch einen anderen USB Stick probiert (von Medion, mit Lautsprechern bei, etwa 4EUR von ebay), dieser erzeugt nicht ganz so guten Sound. Dadurch, dass er aktiv ist (für die Lautsprecher einen Verstärker integriert hat), ist er eh nicht für den Anschluß an den Line-In Eingang der HiFi - Anlage geeignet.

    Um die Tonausgabe über den USB-Sound-Stick zu schicken, habe ich die /etc/mpd.conf angepasst:

    Code:
    audio_output {
            type            "alsa"
            name            "My ALSA Device"
            auto_resample   "no"
            device          "hw:1,0"        # optional
            format          "44100:16:2"    # optional
            mixer_device    "default"       # optional
            mixer_control   "PCM"           # optional
            mixer_index     "0"             # optional
    }
    sowie

    Code:
    mixer_type                      "software"
    Die Software habe ich um ein paar Befehle erweitert. Die mpd Initialisierung erfolgt jetzt per BASH Script, dass lässt sich schneller anpassen.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  2. #12
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Das hört sich ja schon richtig cool an
    Ein Radio würde mir auch gut gefallen....habe im Moment auch das "Problem", dass ich den Fernseher und meine HD-Box anhaben müsste um Radio zu hören. Eventuell steige ich auch mal auf ein Raspberry Pi als Radio um. Von den Möglichkeiten her bietet das natürlich um einiges mehr.
    Kannst du damit auch die Radiosendung aufnehmen? Gibt es da eine entsprechende Funktion?
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Die Idee mit dem USB Adapter kam mir heute Morgen nach dem Aufwachen. Es lohnt sich also manchmal doch eine Nacht darüber zu schlafen. Die Bestellung des HDMI Adapters konnte ich noch rechtzeitig stornieren, was mit einer freundlichen Bestätigungsmail quittiert wurde.

    Gute Frage, das habe ich nicht probiert. Es gibt aber für den mpd einige Plugins. Man kann auch die Ausgabe per RAW Daten an ein Device schicken. Aber auch das habe ich nicht getestet. Radioaufnahmen mache ich mit dem Phonostar Player Plus am PC.

    Jetzt stöbere ich erstmal durchs Wiki und entscheide, wie weit ich da aushole. Eine 2GB SD-Karte habe ich schon bereit liegen. Bin ja mal gespannt, ob alles darauf passt, wenn man es neu macht. Den Artikel selbst werde ich frühestens Morgen angehen, da ich dafür dann doch etwas mehr Ruhe brauche und heute Abend bin ich schon gesellschaftlich verpflichtet.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  4. #14
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Zitat Zitat von peterfido Beitrag anzeigen
    Die Idee mit dem USB Adapter kam mir heute Morgen nach dem Aufwachen. Es lohnt sich also manchmal doch eine Nacht darüber zu schlafen. Die Bestellung des HDMI Adapters konnte ich noch rechtzeitig stornieren, was mit einer freundlichen Bestätigungsmail quittiert wurde.

    Gute Frage, das habe ich nicht probiert. Es gibt aber für den mpd einige Plugins. Man kann auch die Ausgabe per RAW Daten an ein Device schicken. Aber auch das habe ich nicht getestet. Radioaufnahmen mache ich mit dem Phonostar Player Plus am PC.

    Jetzt stöbere ich erstmal durchs Wiki und entscheide, wie weit ich da aushole. Eine 2GB SD-Karte habe ich schon bereit liegen. Bin ja mal gespannt, ob alles darauf passt, wenn man es neu macht. Den Artikel selbst werde ich frühestens Morgen angehen, da ich dafür dann doch etwas mehr Ruhe brauche und heute Abend bin ich schon gesellschaftlich verpflichtet.
    Keine Eile!
    Ja so eine Mütze Schlaf wirkt manchmal wahre Wunder. Mir sind auch schon oft Lösungen für diverse Probleme mitten in der Nacht oder auf der Arbeit wenn ich gerade nicht daran gedacht habe, eingefallen.
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  5. #15
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    So, der Wiki Artikel ist erstmal fertig. Jetzt lass ich mich überraschen, was da noch geändert wird.
    Damit nichts verloren geht, stelle ich jetzt hier auch nochmal die aktuellen Quellcodes ein.

    empfangen
    Code:
    // Kompilieren mit: GCC /var/scripte/empfangen.c -o /var/scripte/empfangen
    
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <termios.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <time.h>
    
    
    #define BAUDRATE B19200
    char MODEMDEVICE[]= "/dev/ttyAMA0";                        // Schnittstelle
    
    /*
    Sx          x=0 aktuellen Sender neu abspielen Nach Stop oder zum neu puffern, x>49 Sender x-48 abspielen
    Bx          x=0 abspielen stoppen, x=1 mpd neu starten
    Px            x=0 einen Senderplatz zurück x=1 einen Senderplatz hoch
    Tx            Taste x am Gerät gedrückt
    resetreset     Reboot des Raspi
    */
    char eingang[255]="";
    char d[1]="";
    int anzahl=0;
        
    int laenge=0;
    int logg=0;
    int    fd;                // File descriptor
    int sender;
    int lautst=95;
    long int time_back;
    long int time_ok;
    
    struct    termios newtio={};
    
    unsigned char eingangleer()                            //Eingangstring leeren
    {
        int i;
        for(i=0; i < laenge; i++){
            eingang[i] = 0;
        }
      laenge=0;    
    }
    
    unsigned char platzlautsenden()                        //Lautstärke und Senderplatz auf den kleinen Zahlen ausgeben
    {                                                    //Lautstärke 100% und Senderplatz 3 wird zu 100:03
        char nummer[3];
        int i=0;
        char befehl[255]="";
    
        sprintf(nummer,"%d",lautst);
        strcpy(befehl,"/var/scripte/senden 2");
        if (strlen(nummer)<3){
            strcat(befehl,"0");
        }
        if (strlen(nummer)<2){
            strcat(befehl,"0");
        }
        strcat(befehl,nummer);
        strcat(befehl,":");
        i=sender;
        if(i>99){                                        //Die Anzeige ist 2-Stellig
            i=99;
        }
        sprintf(nummer,"%d",i);
        if (strlen(nummer)<2){
            strcat(befehl,"0");
        }
        strcat(befehl,nummer);
        system(befehl);
    }
    
    unsigned char radioein()                            //gewählten Platz in der Playlist abspielen
    { 
        char nummer[3];
        char befehl[255]="";
    
        sprintf(nummer,"%d",sender);
        strcpy(befehl,"mpc -q play ");
        strcat(befehl,nummer);
        system(befehl);
        platzlautsenden();
    }
    
    unsigned char initmpd()                                //Schnittstelle parametrieren und öffnen
    {
        char befehl[30]="";
        char s[2]="";
        lautst=95;
        system("/var/scripte/radio2.sh");                //InitScript für mpd
        sleep(1);
        system("mpc playlist > /tmp/mpdlist");            //Playlist zwischenspeichern
        sleep(1);
        FILE *f;
        char Text[300]="";
        char Text1[70]="";
        char Text2[7]="volume";
        f = fopen("/tmp/mpdlist","r");
        anzahl=0;                                            //Anzahl Einträge der Senderliste zählen
        if(f!=NULL){
            fgets(Text, sizeof(Text), f);
            if(strlen(Text)<2){
                fclose(f);
                return;
            }else{
                anzahl=1;
                while( fgets(Text, sizeof(Text), f) !=0 ){
                    if(strlen(Text)>2){
                        anzahl++;
                    }
                    if(anzahl>199){                            //Nicht mehr wie 200
                        break;
                    }
                }
            }
            fclose(f);
        }
        strcpy(befehl,"/var/scripte/senden 6");                //kleine Symbole im Display anzeigen lassen
        s[0]=208;                                            //Antennensymbol + FM anzeigen, als Zeichen für Bereit
        strcat(befehl,s);
        system(befehl);
        strcpy(befehl,"/var/scripte/senden 7");                
        s[0]=130;                                            //Stereo anzeigen
        strcat(befehl,s);
        system(befehl);    
    }
    
    unsigned char abspielen()                                //Wiedergabe fortsetzen. Ist noch nichts abgespielt worden, Platz 1 abspielen
    {
        if (anzahl>0){
            if (sender==0){
                sender=1;
            }else{ if(sender>anzahl){
                sender=anzahl;
                }
                radioein();
            }
        }
    }
    
    unsigned char platzplus()                                //Senderplatz um 1 erhöhen
    {                                                        //Bei weniger Sendern in Liste auf Platz 1 zurück
        if (anzahl>0){
            sender++;                                    
            if (sender>anzahl){                            
                sender=1;
            }
            radioein();
        }    
    }
    
    unsigned char platzminus()                                //Senderplatz um 1 verringern
    {                                                        //Bei 0 auf letzten Platz springen
        if (anzahl>0){
            sender--;                                    
            if (sender<1){                                
                sender=anzahl;
            }
            radioein();
        }    
    }
    
    unsigned char lautsetzen()                                //Lautstärke einstellen
    {
        char nummer[3];
        char befehl[255]="";
    
        sprintf(nummer,"%d",lautst);
        strcpy(befehl,"mpc -q volume ");
        strcat(befehl,nummer);
        system(befehl);
        platzlautsenden();
    }
    
    unsigned char lauter()                                    //Senderplatz um 5 Prozentpunkte erhöhen
    {
        if (lautst<96){
            lautst+=5;                                    
            lautsetzen();
        }    
    }
    
    unsigned char leiser()                                    //Senderplatz um 5 Prozentpunkte verringern
    {
        if (lautst>5){
            lautst-=5;                                    
        }else{
            lautst=0;
        }
        lautsetzen();
    }
    
    unsigned char radioaus()                                //Wiedergabe anhalten
    {
        system("mpc -q stop");
        system("/var/scripte/senden 45");
        sleep(1);
    }
    
    unsigned char auswerten()                                //Angekommene Daten auswerten
    { int i;    
      int fd1;
      int zeile;
      char ret;
      char farbe[6]="";
      
      /* Zum Schreiben öffnen */
        if ((strcmp(eingang,"resetreset") ==0 )){
            system("reboot");
        }
        if (eingang[0] == 83){                              // S
            zeile=eingang[1]-48;                            //Werte von 48-255 = 207 mögliche Sender, wird auf 200 limitiert
            if (zeile == 0){                                // bei 0 einfach weiter abspielen oder Platz 1 beginnen
                abspielen();
            }else if (zeile<=anzahl){
                sender=zeile;
                radioein();
            }
          }
        if (eingang[0] == 84){                              // T
            if (eingang[1]>49&&eingang[1]<57){                //Wert soweit OK, Taste 1 = Powertaste und wird vom AVR ausgewertet
                if (eingang[1]==50){                        //2 - OK Taste
                    abspielen();
                }
                if (eingang[1]==51){                        //3 - Wippe rechts
                    lauter();    
                }
                if (eingang[1]==52){                        //4 - BACK Taste
                    radioaus();
                }
                if (eingang[1]==53){                        //5 - Menü Taste
                    system("/var/scripte/senden");
                }
                if (eingang[1]==54){                        //6 - Wippe hoch
                    platzplus();
                }
                if (eingang[1]==55){                        //7 - Wippe links
                    leiser();
                }
                if (eingang[1]==56){                        //8 - Wippe runter
                    platzminus();
                }
            }
        }
        if (eingang[0] == 80){                              // P
            if (eingang[1]==49){                             //1
                platzplus();
            }else{
                platzminus();
            }
          }
        if (eingang[0] == 66){                              // B
            if (eingang[1]==48){                             //0 Wiedergabe stoppen
                radioaus();
            }
            if (eingang[1]==49){                             //1 mpd zurücksetzen
                initmpd();
            }
        }
        eingangleer();
     }
    
    unsigned char receive()                                    //Zeichen empfangen
    {
        int res;
        unsigned char buffer;
    
        res = read(fd, &buffer, 1);
        return buffer;
    }
    
    int init()                                                //Schnittstelle parametrieren und öffnen
    {
        //O_RDONLY, O_WRONLY or O_RDWR -
        //O_NDELAY (geht weiter, wenn keine Daten da sind und gibt "-1" zurueck)
        // man 2 open fuer mehr Infos - see "man 2 open" for more info
        // O_NOCTTY No ControllTeleType 
    
        fd = open(MODEMDEVICE, O_RDONLY | O_NOCTTY);
        if (fd < 0){
            printf("Fehler beim oeffnen von %s\n", MODEMDEVICE);
            exit(-1);
        }
        memset(&newtio, 0, sizeof(newtio));
        newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD;    //setzt die neuen Porteinstellungen
        newtio.c_iflag = IGNPAR;
        newtio.c_oflag = 0;
        newtio.c_lflag = 0;         /* set input mode (non-canonical, no echo, ...) */
        newtio.c_cc[VTIME] = 0;     /* inter-character timer unused */
        newtio.c_cc[VMIN] = 1;    /* blocking read until 1 chars received */
    
        tcflush(fd, TCIFLUSH);
        tcsetattr(fd, TCSANOW, &newtio);
        return fd;
    }
    
    int main(int argc, char** argv)        //Programmstart
    {
        char c;
         init();                            //Schnittstelle parametrieren und öffnen
        sleep(5);                         //warten bis mpd gestartet ist
         initmpd();                        //mpd auf definierten Zustand bringen
        while (1)
            {
            c=receive();                //Zeichen holen
            if((c==13)){                //CR als Abschluß einer Zeile
                auswerten();        
            }else if(c>13&&c<128){        //Alles von ASCii 14 bis 127 wird akzetpiert
                eingang[laenge]=c;        
                laenge++;                
                if (laenge >254){        //Bei 254 Zeichen im Puffer wird automatisch ausgewertet
                    auswerten();
                }
            }
        } 
        close (fd);
        return 0;
    }
    senden
    Code:
    // Kompilieren mit: GCC /var/scripte/senden.c -o /var/scripte/senden
     
    //#include <iostream>
    //using namespace std;
    #include <sys/types.h>                        //nicht benötigtes scheint keinen Platz zu verschwenden...
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <termios.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <time.h>
    
    #define BAUDRATE B19200
    char MODEMDEVICE[]= "/dev/ttyAMA0";    // !!!
    
    int    fd;                // File descriptor
    struct    termios newtio={};
    
    unsigned char send(char c)
    {
        int res=write(fd, &c, 1);
        if (res<0) printf("Fehler beim Senden\n");
        return res;
    }
    
    int init()                                                //Schnittstelle parametrieren und öffnen
    {
        /*** Init ***/
        
        //O_RDONLY, O_WRONLY or O_RDWR -
        //O_NDELAY (geht weiter, wenn keine Daten da sind und gibt "-1" zurueck)
        // man 2 open fuer mehr Infos - see "man 2 open" for more info
        // O_NOCTTY No ControllTeleType 
        fd = open(MODEMDEVICE, O_WRONLY | O_NOCTTY);
        if (fd < 0){
            printf("Fehler beim oeffnen von %s\n", MODEMDEVICE);
            exit(-1);
        }
        memset(&newtio, 0, sizeof(newtio));
        newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD;    //setzt die neuen Porteinstellungen
        newtio.c_iflag = IGNPAR;
        newtio.c_oflag = 0;
        newtio.c_lflag = 0;         /* set input mode (non-canonical, no echo, ...) */
        newtio.c_cc[VTIME] = 0;     /* inter-character timer unused */
        newtio.c_cc[VMIN] = 1;    /* blocking read until 1 chars received */
    
        tcflush(fd, TCIFLUSH);
        tcsetattr(fd, TCSANOW, &newtio);
        return fd;
    }
    int einmal()                                //Sucht bereits laufende Instanzen und zählt diese
    {
        int i=0;
        int anzahl=0;
        int laenge=0;
        char *ptr;
        FILE *in;
        extern FILE *popen();
        char buff[30];
    
        if(!(in = popen("pidof senden", "r"))){
            exit(1);
        }
        
        fgets(buff, sizeof(buff), in);
        pclose(in);
        laenge=strlen(buff);
        for(i=0;i<laenge;i++)
        {
            if(buff[i]==' ') anzahl++;
        }
        return anzahl;    
    }
    
    
    int main(int argc, char** argv)                                            //Programmstart
    {
        char vBuf[100]="",*pBuf;
        char buffer [100]="";
        char buffer1 [100]="";
        int i=0;
        int anzahl;
        anzahl=einmal();
        if (anzahl>0){
            anzahl++;
            sleep(anzahl);
        }
         init();
        if (argc == 1) {                                                    //Wenn nichts angegeben, dann Uhrzeit und Datum senden
            time_t rawtime;
            
            struct tm * timeinfo;
            time ( &rawtime );
            timeinfo = localtime ( &rawtime );
            strftime (buffer,80,"U%H:%M:%S",timeinfo);                        //Uhh:mm:ss
            pBuf=buffer;
            strcat(pBuf,"\r");
            while(pBuf && *pBuf)                                            //Zeichen einzeln senden
                send(*pBuf++);
    
            strftime (buffer,80,"D%d.%m.%y",timeinfo);                        //Dtt.mm.yy
            pBuf=buffer;
            strcat(pBuf,"\r");
            sleep(1);
            while(pBuf && *pBuf)                                            //Zeichen einzeln senden
                send(*pBuf++);
        }else{                                                                //Sonst Parameter einlesen und senden    
            if(strlen(argv[1])>75){                                            //Puffer im AVR ist auf 80 gestellt
                strncpy(buffer,argv[1],76);                
                buffer[76]='\0';
            }else{
                strcpy(buffer,argv[1]);
                if (argc >2){
                    for (i=2;i<argc;i++){
                        if(strlen(buffer)+strlen(argv[i])>75){
                            strcat(buffer," ");                                
                            strncat(buffer,argv[i],(76-strlen(buffer)));
                            buffer[76]='\0';
                            break;                                            //exit for in c...
                        }else{
                            strcat(buffer," ");
                            strcat(buffer,argv[i]);
                        }
                    }
                }
            }
            int o=0;                                                    //Umlaute anpassen, ASCii 195 verwerfen
            for(i=0;i<strlen(buffer);i++){
                buffer1[o]=buffer[i];
                if (buffer1[o]==164){                                    //ä
                    buffer1[o]= 228;
                }
                if (buffer1[o]==188){                                    //ü
                    buffer1[o]= 252;
                }
                if (buffer1[o]==182){                                    //ö
                    buffer1[o]= 246;
                }
                if (buffer1[o]==132){                                    //Ä
                    buffer1[o]= 196;
                }
                if (buffer1[o]==156){                                    //Ü
                    buffer1[o]= 220;
                }
                if (buffer1[o]==150){                                    //Ö
                    buffer1[o]= 214;
                }
                if (buffer1[o]==159){                                    //ß
                    buffer1[o]= 223;
                }
                if (buffer1[o]==138){                                    //&
                    buffer1[o]= 38;
                }
                if (buffer1[o] != 195){                                    //Initialisierung Umlaut
                    o++;
                }
            }
            pBuf=buffer1;
            strcat(pBuf,"\r");                                                //CR (ASCii13) anfügen, damit der AVR auswertet        
            while(pBuf && *pBuf){                                            //Zeichen einzeln senden
                send(*pBuf++);
            }
        } 
        close (fd);
        return 0;
    }
    mpcout (Der Überwacher)
    Code:
    // Kompilieren mit: GCC /var/scripte/mpcout.c -o /var/scripte/mpcout
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    
    char Textalt[75]="";
    int anzahl=0;
    
    int wachhund()                                //Sucht bereits laufende Instanzen und zählt diese
    {
        char *ptr;
        FILE *in;
        extern FILE *popen();
        char buff[30];
    
        if(!(in = popen("pidof mpd", "r"))){
            exit(1);
        }
        
        fgets(buff, sizeof(buff), in);
        pclose(in);
        anzahl=(strlen(buff));
    }
    
    unsigned char aktualisieren()
    {     
        int i=0;    
        int o=0;
        char befehl[255]="";
        FILE *f;
    
        if(!(f = popen("mpc current", "r"))){
            exit(1);
        }
        char Text[300]="";
        char Text1[75]="";
        fgets(Text, sizeof(Text), f);
        fclose(f);
        if(strlen(Text)<2){
            strcpy(Text1,"");
            if((strcmp(Text1, Textalt)) != 0){
                strcpy(Textalt, Text1);
                system("/var/scripte/senden 0");
                system("/var/scripte/senden 45");
            }
        }else{
            o=0;
            for (i=0;i<strlen(Text);i++){
                if (Text[i]==38){                                //&
                    Text1[o]=138;                                //+
                }else{
                    Text1[o]=Text[i];
                }
                o++;
                if (o>74){
                    break;
                }
            }
            Text1[o]='\0';
            if((strcmp(Text1, Textalt)) != 0){
                strcpy(Textalt, Text1);
                    strcpy(befehl,"/var/scripte/senden '1");    // \" funktioniert nicht, ' schon
                    strcat(befehl,Text1);
                    strcat(befehl,"'");
                    system(befehl);
                    system("/var/scripte/senden 44");
            }
        }
    }
    
    int main(int argc, char** argv)
    {    
        while (1)
            {     sleep(2);
                anzahl=0;
                wachhund();
                if (anzahl <2){
                    system("/var/scripte/radio2.sh");
                }
                aktualisieren();
        } 
        return 0;
    }
    radio2.sh (Initialisert den mpd)
    Code:
    #!/bin/bash 
    #
    # Radio starten
    #
    # 
    /etc/init.d/mpd restart     #Versetzt den mpd in einen definierten Zustand
    mpc -q clear                #Nicht nötig, wenn man kein Status File nutzt, schadet aber auch nicht, wenn man keines nutzt...
    mpc -q load radiosender        #lädt die von uns erstellte Playlist
    mpc -q volume 95            #setzt die Lautstärke auf 95 %
    exit 0
    autostart.sh (wird von rc.local aufgerufen)
    Code:
    #!/bin/bash
    #
    # Autostart
    #
    # 
    
    ##sound
    amixer cset numid=3 1 
    amixer -c 0 cset numid=2 on,off
    amixer set PCM 95%
    aplay /var/sounds/start.wav
    nice -1 /var/scripte/empfangen &
    nice -1 /var/scripte/mpcout &
    Geändert von peterfido (27.08.2012 um 20:05 Uhr)
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  6. #16
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Nach dem neuesten Update (apt-get update && apt-get upgrade) vom 18.09.2012 sind die Audioaussetzer am analogen Anschluß verwschwunden. Allerdings hört man den Raspi über den Anschluß noch arbeiten, also leises Pulsen. Weiter kommt ein lautes Knacken (auch wenn per "mpc volume 10" die Lautstärke auf gering gesetzt wurde) durch den Anschluß, wenn man den mpd stoppt. Ist also nicht so für den Anschluß an die Hifianlage geeignet. Über eine USB-Soundkarte hat sich, soweit icht das beobachten konnte, nichts geändert.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  7. #17
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Wie ist den der Sound so?
    Ist die Qualität gut?
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  8. #18
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Wenn man laut hört, sind die Nebengeräusche gering. Stellt man allerdings die Lautstärke des Raspi niedrig ein und dafür den Verstärker hoch, dann stören die Nebengeräusche doch. Dieses allerdings, wie gesagt, über den analogen Ausgang. Per USB Soundkarte ist die Qualität wesentlich besser als per Analogausgang, hat sich aber mit dem Update für mich nicht verändert. Per HDMI übrigens auch.

    Ich bin übrigens grad nur am PC, da ich das Backup zurück auf die SD-Karte spiele, denn das gestern aktualisierte System hat sich eben zum 2. Mal aufgehangen. Zuerst war es heute morgen nicht erreichbar und eben gerade ist im Wohnzimmer das Radio ausgegangen und auch die Weboberfläche war nicht mehr erreichbar. Davor lief der Raspi über eine Woche ohne Neustart durch. Da mit dem "alten" System alles lief, spiele ich es grad zurück. Der Raspi im Schlafzimmer (Radiowecker-Projekt) läuft seit gestern noch durch. Wenn sich da nichts ändert, bleibt dort das aktualisierte System drauf.

    Der Raspi im Wohnzimmer war mein erster und ich habe da viel dran getestet. Den im Schlafzimmer hatte ich komplett neu aufgesetzt, als ich den Wiki-Eintrag erstellte. Möglich, dass sich irgendein Modul, welches nur auf Wohnzimmer-Raspi installiert ist, nicht mit den Neuerungen von gestern verträgt.

    Allerdings weichen auch die Programme voneinander ab. Im Schlafzimmer ist ein anderes Gehäuse und vor allem Display verbaut, so dass sich die Ansteuerung und Auswertung der Daten vom AVR unterscheidet. Im Schlafzimmer ist der AVR der Chef und überwacher. Sollte mal die Internetverbindung nicht stehen, wird zuerst versucht eine MP3 abzuspielen. Scheitert auch dieses (wird erkannt, wenn der Raspi sich nicht meldet), dann wird einfach ein Summer aktiviert, also in jedem Fall versucht, der Weckpflicht nachzukommen. Einzig bei Stromausfall bleibt das Gerät stumm. Das ist dann aber auch nicht soo schlimm, denn zusätzlich weckt noch ein Handy, welches seit dem Kauf des Smartphones plötzlich übrig war...

    Der dritte Raspi im Arbeitszimmer, welcher Radio über den analogen Ausgang ausgibt, läuft seit dem Einschalten heute Mittag mit dem aktualisiertem System durch. Diesen nutze ich zu Test- und Bastelzwecken.

    Die Wohn- und Schlafzimmer-Raspis sind Model B Revision 1 (0002). Der dritte ist Model B Revision 2 (0004).
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  9. #19
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Seit dem 1.1. stimmen die Adressen für ffn nicht mehr. Dafür läuft bei mir im Arbeitszimmer ein 3. Raspi zuverlässig mit akzeptablem Klang per Line.Out ohne Knackser seit der Raspbian Version vom September (Oder war es doch schon Oktober??).

    Ich versuche gerade günstig ein LCD zu "schießen" um dann per LCD4Linux dieses Display anzusteuern. Zur Zeit steuere ich den 3. Raspi per Webbrowser oder SSH. Wenn das Display fertig ist, kommt evtl. eine Fernbedienung dazu. Diese wird dann per AtTiny 2313 ausgewertet und sendet nur die empfangenen Codes an den Raspi. Das sind aber mittelfristige Projekte, da noch zwei mit höherer Priorität anstehen. Wobei die Fernbedienung (die Empfängerschaltung) nur noch zusammengebaut werden muss, da ich schon 2 davon einsetze.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  10. #20
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Hey,

    schau mal hier:

    http://kampis-elektroecke.de/?page_id=2631

    Wäre das keine schöne alternative zu einem LCD?
    Den kannst du wohl auch direkt mittels USB versorgen.
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test