Themabewertung:
  • 3 Bewertung(en) - 3.67 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Ein minimales Internetradio für alte und neue Raspberrys
#61
In #51 steht aber:  

FILE *text = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep title:", "r");

und bei Dir im Screenshot lese ich das:

FILE *text = popen("echo \"next\" | nc 127.0.0.1 9294 -N | grep title:", "r");

[Bild: attachment.php?thumbnail=56123]

Next ist das Kommando zum Umschalten auf den nächsten Sender (das geht so: system("echo \"next\" | nc 127.0.0.1 9294 -N"); ) und nicht Abfragen der Metadaten des Radiosenders! Alles klar? ;-) Gute Nacht & schlafe gut Martin.

Gruß
Bernhard
(der noch ein bisschen aufbleibt)
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#62
Hallo Bernhard,

danke, da hab' gestern Abend vor lauter Bäumen den Wald nicht mehr gesehen. Smiley26

Ich habe das nun abgeändert, aber mit mäßigem Erfolg!

Informationen zur angewählten Station bekomme ich praktisch nie, die Informationen zum laufenden Titel kommen nur manchmal.

Ich muss mir mal eine Minimalversion basteln, um zu schauen, ob die Informationen tatsächlich nicht kommen oder ob diese nur durch das einfärben der Bildschirmfenster 'übertüncht' werden.


Grüße

Martin
Zitieren
#63
Und wieder ein Update des minimalen iRadio Internetradios.

 
.zip   iRadio.zip (Größe: 439,69 KB / Downloads: 28)  Update: 19.18.2018 - Einspielen einer neuen Senderliste und der WiFi-Zugangsdaten per USB-Stick (FAT32 formatiert)


Mit den kleinen Änderungen ist es nun nicht mehr nötig die Senderlisten und WiFi-Daten direkt auf /boot oder per SSH zu aktualisieren. 
Ein mit FAT32 formatierter USB-Stick, auf dem die Senderliste (playlist.m3u) und die WiFi-Zugangsdaten (wpa_supplicant.conf) im Rootverzeichis liegen, reicht zum Update aus. Bei jedem Systemstart wird geschaut ob ein solcher USB-Stick angeschlossen ist, wenn ja und eine neue Senderliste bzw. WiFi-Daten vorhanden sind, werden diese ins System verschoben und ein Neustart ausgelöst. 

Auch ist es möglich aufgezeichnete Sendungen auf den USB-Stick auf- und diese per Eintrag in der Playlist ab-zuspielen. Somit wäre ein kompletter Offline-Betrieb eines alten Radios möglich. Man könnte also mit mehreren Dateien verschiedene Sender und somit eine ganze Senderlandschaft anno 19xx simulieren.

Obwohl ich alle Pakete und Skripte mit meinen vielen Internetradios auf Pi-Basis, allen gänigen Raspbian-Images und mehreren USB-Sticks problemlos getestet habe, übernehme ich keine Garantie das wirklich alle möglichen USB-Sticks auf dieser Welt funktionieren. Das Radio wird defaultmäßig mit dem gpiod gestartet der auf Tasteraktionen an den GPIOs lauscht und eine Programmumschaltung realisiert, der Soucecode liegt in gpiod.c und kann beliebig angepasst und erweitert werden. In gui.cxx ist der Democode einer kleinen FLTK-GUI für Touchscreens. Auch hier sind beliebige Änderungen und Anpassung an eigene Geräte ausdrücklich gewünscht. Die passenden Treiber für euer Touchscreen sowie die jeweilige Bibliothek für eine grafische Oberflächen (ncurses, FLTK, QT...) die Ihr nehmen wollt, müsst Ihr natürlich über das Paketsystem selbst einspielen. Das habe ich nicht ins Installationsskript mit aufgenommen, es soll ja jeder selbst entscheiden können wie er sein Minimalsystem erweitert und welche Zusatzmodule , Displays und Bibliotheken er installieren will.

Viel Spaß beim Basteln und Grüße
Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#64
Hallo Bernhard,
danke für das Update und die vielen Tips und Hilfen im Verlauf dieses Threads.

Ein Hinweis von mir, weil ich Probleme mit dem Scalieren der Fonts im FLTK hatte.
Damit das funktioniert, muss das Paket "libghc-x11-xft-dev" installiert sein  

Code:
sudo apt-get install libghc-x11-xft-dev

und das Kommando "configure" mit dem Parameter "--enable-xft" getartet werden.

Code:
sudo ./configure --enable-xft

Gruß aus KIel
Holger
Zitieren
#65
das ist eine große Erleichterung. Danke Bernhard!
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#66
Hallo zusammen,

so, nun habe ich mir eine Minimalversion gebastelt.
Siehe da, die Informationen kommen!
Offensichtlich spuckt mir hier 'curses.h' in die Suppe.
   

Auch ist schön zu sehen, dass BBC4 und BBC2 keine Titelinformationen übertragen.

Das ist der aktuelle Code dazu:
   

Nun werde ich eben die Oberfläche ohne 'curses.h' mit den Escape-Sequenzen basteln müssen.

Da dieses Frontend eigentlich nur dazu dienen soll, die Funktion der Softwareinstallation zu testen, kann ich mit den Einschränkungen, welche mir 'stdio.h' auferlegt, leben.
Außerdem als erster Ausflug nach C gedacht.


Grüße

Martin
Zitieren
#67
(19.11.2018, 23:03)Radiobastler schrieb: Nun werde ich eben die Oberfläche ohne 'curses.h' mit den Escape-Sequenzen basteln müssen.

Hallo Martin,

warum wirst Du das müssen? Was veranlasst Dich zu glauben das ncurses keine Strings auf der Oberfläche darstellen kann? Ich habe jetzt hier keine Probleme damit und den Fehler in deinem Programm weiter oben habe ich dir ja genannt. Das Einlesen von fopen hat auch rein gar nichts mit ncurses zu tun. Wo also steckt jetzt das Problem in der Umsetzung, poste mal den Problemcode (bitte aber nicht als Screenshot, das kann man schlecht in einen Editor kopieren).

Übrigens auch die BBC Programme senden die Infos. Du musst aber den Stream erst anlaufen lassen und die MetaDaten immer und immer zyklisch von VLC holen und anzeigen lassen. Das macht dein Programm nicht! Es wird nur einmal das Kommando zum Umschalten gesendet und dann fragst du einmalig nach den MetaDaten. Je nach Stream stehen die aber erst wenige Sekunden nach der Umschaltung bereit, deshalb gut und gerne jede Sekunde in einer Schleife die Infos holen und deine GUI aktualisieren. Deine switch/case Sache ist so nicht ganz in Ordnung! Auch könnte und sollte man die Tastaturabfrage mit der Ansteuerung von VLC und das holen der Infos und die GUI Aktualisierung in unterschiedliche Threads packen sodass die Anwendung reaktionsfreudig bleibt und kurze Antwortzeiten liefert. Du siehst dein Konsolenprogramm bietet noch viel interessantes und lehrreiches Potential. Ich würde da jetzt dranbleiben und das unbedingt so umsetzen wie es ursprünglich geplant war. Mache keine Kompromisse in der GUI und nimm weiter ncurses, glaub mir die Erfahrungen die du noch machen wirst sind Gold wert!

Gruß Bernhard.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#68
Hallo Bernhard,

anbei die beiden Codes.

Zunächst der augenscheinlich funktionierende Code, dieser ist allerdings noch ohne 'schmückendes Beiwerk' (Menü).
Allerdings ist mir aufgefallen, dass selbst nach drei Sekunden Wartezeit noch nicht alle gewünschten Informationen da sind.
Oftmals fehlen dann noch die Informationen zum aktuell gespielten Titel, diese kann ich aber dann mit der 'I'-Taste abrufen.


Code:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main()
{
  char station[70];
  char titel[70];
  char laut[70];
  char Zeichen;

  while (Zeichen != 'q')
  {
    Zeichen=getchar();
    switch(Zeichen)
    {
    case 'V':
    case 'v':
            system("echo \"prev\" | nc 127.0.0.1 9294 -N");
            sleep(3);
            FILE *text = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep title:", "r");
           fgets(station,70,text);
          pclose(text);
            FILE *text1 = popen ("echo \"info\" | nc 127.0.0.1 9294 -N | grep now_playing:", "r");
            fgets(titel,70,text1);
            pclose(text1);
            printf("Sation: %s",station);
            printf("\nTitel: %s",titel);
            break;
    case 'N':
    case 'n':
            system("echo \"next\" | nc 127.0.0.1 9294 -N");
            sleep(3);
            FILE *text2 = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep title", "r");
            fgets(station,70,text2);
            pclose(text2);
            FILE *text3 = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep now_playing:", "r");
            fgets(titel,70,text3);
            pclose(text3);
            printf("Station: %s",station);
            printf("\nTitel: %s",titel);
            break;
    case '-':
            printf("");
            FILE *text4 = popen("echo \"voldown 2\" | nc 127.0.0.1 9294 -N | grep audio", "r");
            fgets(laut,70,text4);
            pclose(text4);
            printf("\nLautstärke: %s",laut);
            break;
    case '+':
            printf("");
            FILE *text5 = popen("echo \"volup 2\" | nc 127.0.0.1 9294 -N | grep audio", "r");
            fgets(laut,70,text5);
            pclose(text5);
            printf("\nLautstärke: %s",laut);
            break;
    case 'P':
    case 'p':
            system("echo \"stop\" | nc 127.0.0.1 9294 -N");
            break;
    case 'W':
    case 'w':
            system("echo \"play\" | nc 127.0.0.1 9294 -N");
            break;
    case 'I':
    case 'i':
            ;
            FILE *text6 = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep title:", "r");
            fgets(station,70,text6);
            pclose(text6);
            FILE *text7 = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep now_playing:", "r");
            fgets(titel,70,text7);
            pclose(text7);
            printf("Station: %s",station);
            printf("\nTitel: %s",titel);
            break;
    } //Ende der Case-Verzweigung
  } //Ende der while-Schleife
 return 0;
}

und hier der Code, welcher nicht das gewünschte Ergebnis liefert:

Code:
/* Frontend V5 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <unistd.h>
#include <curses.h>
//#include <iostream>

void zeichne_neu() {
initscr ();
start_color();
init_pair(1,COLOR_YELLOW,COLOR_BLUE);
init_pair(2,COLOR_GREEN,COLOR_BLUE);
init_pair(3,COLOR_RED,COLOR_BLUE);
init_pair(4,COLOR_CYAN,COLOR_BLUE);
init_pair(5,COLOR_BLUE,COLOR_BLUE);
attrset(A_BOLD|COLOR_PAIR(2));
keypad (stdscr, TRUE);
noecho();
//Bildschirm füllen
int Zeile, Spalte;
for( Zeile = 0; Zeile < 20; Zeile++ )
{
  for( Spalte = 0; Spalte < 81; Spalte++ )
  {
  mvprintw(Zeile,Spalte," ");
  }
}
mvprintw(2,15,"Textbasiertes Frontend für Internetradio");
attrset(A_BOLD|COLOR_PAIR(3));
mvprintw(5,10,"q:");
attrset(A_BOLD|COLOR_PAIR(1));
mvprintw(5,13,"Beenden");
attrset(A_BOLD|COLOR_PAIR(3));
mvprintw(7,10,"+:");
attrset(A_BOLD|COLOR_PAIR(1));
mvprintw(7,13,"Lauter");
attrset(A_BOLD|COLOR_PAIR(3));
mvprintw(9,10,"-:");
attrset(A_BOLD|COLOR_PAIR(1));
mvprintw(9,13,"Leiser");
attrset(A_BOLD|COLOR_PAIR(3));
mvprintw(11,10,"N:");
attrset(A_BOLD|COLOR_PAIR(1));
mvprintw(11,13,"Nächster Sender");
attrset(A_BOLD|COLOR_PAIR(3));
mvprintw(13,10,"V:");
attrset(A_BOLD|COLOR_PAIR(1));
mvprintw(13,13,"Vorheriger Sender");
attrset(A_BOLD|COLOR_PAIR(3));
mvprintw(15,10,"P:");
attrset(A_BOLD|COLOR_PAIR(1));
mvprintw(15,13,"Pause");
attrset(A_BOLD|COLOR_PAIR(3));
mvprintw(17,10,"W:");
attrset(A_BOLD|COLOR_PAIR(1));
mvprintw(17,13,"Weiter");
attrset(A_BOLD|COLOR_PAIR(4));
endwin();
}



int main (void) {
int c;
char now[72];
char station[70];
initscr ();
start_color();
int Zeile, Spalte;
attrset(A_BOLD|COLOR_PAIR(4));
for( Zeile = 20; Zeile < 26; Zeile++ )
{
  for( Spalte = 0; Spalte < 81; Spalte++ )
  {
  mvprintw(Zeile,Spalte," ");
  }
}
zeichne_neu();
while ((c = getch ()) != 'q') {
  switch (c) {
  case 'v':
  case 'V':
    mvprintw (20,10,"                                        ");
    mvprintw (20,10,"Gewählte Funktion: Vorheriger Sender");
    system("echo \"prev\" | nc 127.0.0.1 9294 -N");
    sleep(1);
    zeichne_neu;
    sleep(3);
    FILE *text2 = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep title:", "r");
    fgets(station,70,text2);
    pclose(text2);
    mvprintw (22,1,"Station: %s ",station);
    refresh;
    //mvprintw (22,10,station);
    //zeichne_neu();
    break;
  case 'N':
  case 'n':
    mvprintw (20,10,"                                        ");
    mvprintw (20,10,"Gewählte Funktion: Nächster Sender");
    system("echo \"next\" | nc 127.0.0.1 9294 -N");
    sleep(1);
    zeichne_neu;
    sleep(3);
    mvprintw (22,1,"                                                ");
    FILE *text = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep title:", "r");
    fgets(station,70,text);
    //mvprintw (22,10,now);
    pclose(text);
    //rmSubstr(now,"now_playing");
    mvprintw (22,1,"Station: %s",station);
    refresh;
    //mvprintw (22,10,station);
    //zeichne_neu();
    break;
  case 'I':
  case 'i':
    mvprintw (23,10,"                                        ");
    FILE *text1 = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep now_playing:", "r");
    fgets(now,72,text1);
    pclose(text1);
    //mvprintw (22,10,"                                           ");
    zeichne_neu;
    mvprintw (23,1,"Titel: %s ",now);
    refresh;
    break;
  case '+':
    mvprintw (20,10,"                                         ");
    mvprintw (20,10,"Gewählte Funktion: Lauter");
    system("echo \"volup 2\" | nc 127.0.0.1 9294 -N ");
    zeichne_neu();
    break;
  case '-':
    mvprintw (20,10,"                                         ");
    mvprintw (20,10,"Gewählte Funktion: Leiser");
    system("echo \"voldown 2\" | nc 127.0.0.1 9294 -N");
    zeichne_neu();
    break;
  case 'P':
  case 'p':
    mvprintw (20,10,"                                         ");
    mvprintw (20,10,"Gewählte Funktion: Pause");
    //Hier folgt Funktionsaufruf 'Pause'
    system("echo \"stop\" | nc 127.0.0.1 9294 -N");
    zeichne_neu();
    break;
  case 'W':
  case 'w':
    mvprintw (20,10,"                                         ");
    mvprintw (20,10,"Gewählte Funktion: Weiter");
    //Hier folgt Funktionsaufruf 'Weiter'
    system("echo \"play\" | nc 127.0.0.1 9294 -N");
    zeichne_neu();
    break;
  }
}
endwin ();
return 0;
}

Ich muss mich wohl noch intensiv mit dem Buch von Dennis Ritchie (Programmieren in C) beschäftigen.


Viele Grüße

Martin
Zitieren
#69
Hallo Martin,

ich denke das von Dir bereits gekaufte Buch "Linux-Unix-Programmierung" von Jürgen Wolf dürfte hier erstmal ausreichen. Das Problem in deinem Programm besteht in der Ablauffolge und auch immer noch im Zeichnen und Aktualisieren der GUI. NCurses ist nicht das Problem, sondern rein die zeitliche Reihenfolge wie Du die Befehle einsetzt. Mir ist auch klar was Du mit den sleep-Anwendungen machen wolltest, aber so ist das verkehrt. Generell musst Du jetzt an deiner Programmstruktur arbeiten und die einzelnen Teilaufgaben besser bzw. überhaupt delegieren. Das wird bei jedem späteren Programm für ein Internetradio mit Benutzeroberfläche oder Display nötig.

Da Du das weiter oben im Post genannte Buch hast, lese bitte mal Kapitel 10 - Threads durch!

Schreibe dann bitte mal ein Überungsprogramm (ganz ohne ncuses, also direkt in Konsole) in dem
Du zwei ganz einfache Threads in der main() aufmachst.

Der eine Thread schreibt in die Konsole "Ich bin Thread 1.".
Mit dem zeiten Thread schreibst Du in die Konsole "Ich bin Thread 2.".

Die Aufgabe dürfte kein Problem werden, im Buch ist ja Beispielcode dabei.

Erstmal bis hier hin! Wenn Du das gepackt hast, nehmen wir dein ncurses Programm auseinander. Vielleicht sollten wir generell mal darüber nachdenken unsere "Programmierübungen" egal ob zu ncurses oder zu FLTK, QT oder was noch kommen mag, in zwei unterschiedliche Diskussionsrunden zu legen. Dann könnten hier in "Ein minimales Internetradio für .... Raspberrys" nur
die neuen Archive und Fehlerkorrekturen zum iRadio liegen und alles andere wird in einem Nachbarthread behandelt. @Moderation: ginge das? Sonst machen wir ab hier inhaltlich einen Fork.

Viele Grüße
Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#70
Hier eine neue Version vom iRadio-Paket für alte und neue Raspberrys.


.zip   iRadio01122018.zip (Größe: 699,39 KB / Downloads: 31)  - 01.12.2018: wiringPi als zusätzliche Bibliothek hinzugefügt, zusätzlich Code für Umschaltung der Internetradiossender mit einem Drehencoder 



Möchte man neben der BCM2835 Bibliothek auch wiringPi benutzen, so kann man diese Bibliothek optional installieren.

In einem Konsolenfenster wechselt man ins Verzeichnis iRadio/wiringPi .
Dort führt man zur Installation den Befehl sudo ./build aus.

Möchte man anstelle der Senderumschaltung per Tasten lieber eine Umschaltung per Drehencoder, so führt man (!) nach dem Installerscript des iRadios (!) den Buildvorgang für wiringPi aus. Zusätzlich übersetzt man das Drehreglerprogramm so: 

gcc rotary.c -o gpiod -lwiringPi

Danach noch das neu erzeugte Programm gpiod nach /usr/bin kopieren und die alte Version überschreiben. ACHTUNG: Läuft schon ein gpiod-Prozess muß dieser vor dem Kopieren per sudo killall gpiod gestopt werden!
Nach dem nächsten Neustart des Radios ist die Umschaltung per Drehregler ohne weitere Modifikation an den Startdateien aktiv. 

Möchte man wieder auf Tastensteuerung umschalten, dann einfach in einem Konsolenfenster im iRadio-Verzeichnis eingeben:

gcc gpiod.c -o gpiod -lbcm2835

Danach noch das neu erzeugte Programm gpiod nach /usr/bin kopieren und die alte Version überschreiben. ACHTUNG: Läuft schon ein gpiod-Prozess muß dieser vor dem Kopieren per sudo killall gpiod gestopt werden!
Nach einem Neustart ist wieder alles beim Alten.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#71
Danke Bernhard! Das erspart mir den zusätzlichen attiny! Werde es schnellstmöglich testen!

PS: wie kann ich eigentlich eine iRadio Version updaten? Muss etwas deinstalliert werden? Ordner gelöscht? Überinstallieren? Oder die SD-Karte neu imagen und von vorne anfangen?
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#72
Hallo Jupp,

drüberinstallieren mit sudo-Rechten reicht aus. Also iRadio-Ordner ersetzen und nochmal mit sudo das Installerskript aufrufen. Da werden dann alle Komponenten durch die aus dem neuen Paket aktualisiert. Aber bedenke auch immer noch ein Backup-Image eines alten funktionierenden Radios anzulegen. Sollte mal eine neue Softwarekomponente Probleme machen (siehe VLC-Bug), kann man immer noch auf die alten Sachen zurückgreifen und ggf. das Problem analysieren und händisch updaten.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#73
Bernhard, auf welche PIN's leg ich den Encoder? Geht ein Keyes-Modul mit pull-up Widerständen?
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#74
Hallo Jupp, 

der Drehregler sollte so angeschlossen werden:

[Bild: attachment.php?thumbnail=56548]

Raspberry Pi                       Rotary Encoder Module
3.3V                                          ‘+’
GND                                         GND
GPIO0                                       DT
GPIO1                                       CLK

Ich glaube dein Modul hat laut Internet einen 5V Pin oder? Schließe den aber bitte nur an die 3.3V an, der Pi verträgt eigentlich keine 5V an seinen Eingängen.

GPIO0 (nach wiringPi-Zählung) ist der Pin 11 bzw. GPIO17/GPIO_GEN0
GPIO1 (nach wiringPi-Zählung) ist der Pin 12 bzw. GPIO18/GPIO_GEN1

Diese verdammten unterschiedlichen Zählweisen je nach Bibliothek sind einfach Mist, schaue am Besten oben auf das Bild, das ist wohl am unmissverständlichsten.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#75
genauso hatte ich es angeklemmt aber keine Reaktion beim Drehen. An Pin10 und Pin11 reagiert ein Taster gegen Masse und schaltet die playlist. Der Bildschirm meldet "Command Line Interface initialized", das ist neu.
Ich hab wohl was falsch bei der Installation gemacht.

Edit: gpiod wurde nicht kopiert. Meldung: "Text file busy"
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#76
gpiod gekillt, Datei kopiert, Neustart -> geht!!
Gruß,
Jupp
-----------------------------

was du baust ist immer mit dir verbunden
(Lego)

Einsamkeit ist nur ein Mangel an Technologie
(@beetlebum)
Zitieren
#77
Ja klar, wenn der gpiod für die Tastenabfrage schon läuft klappt das nicht mit kopieren. Danke für den Hinweis. Okay, dann kille gpiod erstmal mit

sudo killall gpiod

und kopiere dann mit root-Rechten die neue gpiod Version für die Encoderabfrage drauf! Das sollte dann gehen!
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#78
Es gibt mal wieder ein Update des iRadio Paketes.


.zip   iRadio06122018.zip (Größe: 707,51 KB / Downloads: 27)  

06.12.2018: 
- Neben der bcm2835, wird jetzt auch die wiringPI-Bibliothek direkt aus dem Installerskript gebaut.
- Defaultmäßig startet das Internetradio mit Tastensteuerung und ohne Displaysupport
- über sudo ./install_Drehencoder.sh wird von der Tastensteuerung auf Drehencodersteuerung umgeschaltet (Rückweg über sudo ./install_Tastensteuerung.sh)
- Displayunterstützung für I2C- LCD Module (I2C-Adresse: 0x27, 20x4 Zeichen) wird durch sudo ./install_I2CDisplay20x4-sh aktiviert

   

- über den Democode des Displaydaemonen können auch andere LCD Module mit 16x2 Zeichen und anderer I2C-Adresse unterstützt werden. Einfach Code abändern, über sudo ./install_I2CDisplay20x4.sh wird der Daemon neu gebaut und installiert

- i2ctools werden automatisch aus dem Netz installiert, so kann zum Beispiel die Adresse eines I2C Busteilnehmers mittels i2cdetect -y 1 ermittelt werden
- Systemauslastung weiter reduziert, wichtig für Ur-Raspberrys

Die aktuelle iRadio-Version wurde auf dem letzten und auch dem aktuellsten Raspbian-Image getestet und läuft dort ohne Probleme in allen Imageversionen.

Update eines alten Raspbian auf die aktuelle Version ist mittels 

sudo apt-get update
sudo apt-get dist-upgrade

möglich. Das iRadio Paket kann einfach über das Standard-Verzeichnis /home/pi/iRadio überkopiert und mittels sudo ./install.sh aktualisiert werden.
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#79
Danke für das Nikolausgeschenk, Bernhard!
Grüße aus Wassenberg,
Norbert.
Zitieren
#80
Danke Bernhard für diese Mühe. Wenn ich in den Weihnachtsferien Zeit habe werde ich das mal testen.

Gruß
Oliver
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Neue Erfahrungen mit FL2K und AM Stereo/Mono Semir 2 257 20.03.2024, 22:40
Letzter Beitrag: Semir
  Huth E72 Internetradio mit ESP32 saarfranzose 10 1.785 12.05.2023, 14:49
Letzter Beitrag: saarfranzose
  Ein Internetradio Bausatz von PIMORONI Bernhard45 200 81.586 06.06.2022, 19:17
Letzter Beitrag: Reparateur
  Stereo Decoder fuer alte Radios- Export radio-volker 4 1.397 08.03.2022, 19:30
Letzter Beitrag: radio-volker
  Dementia III ESP32 Internetradio mit Simulation saarfranzose 9 2.806 21.01.2022, 23:14
Letzter Beitrag: saarfranzose

Gehe zu: