Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Fragen und Antworten zum Nachbau - ESP8266/ESP32 Webradio
#41
(13.08.2017, 12:21)klamm schrieb: Eventuell noch ne Lautstärkereglung mit so einem Regler.

Hattest Du die NF-Verstärker von oben bestellt? Wenn ja dann brauchst Du keinen weiteren Regler, der NF-Verstärkerbaustein hat ja schon einen auf dem Bord.
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
#42
Guten Tag,
nee da steh ich im regen...zu viel in englisch.

Mit Steckernetzteil 7 Volt 1A funzt das powerboard super. (Selbst Umgewickelt von 12V auf 7V )
Durch die 7Volt braucht der Spannungsregler nur noch 0,3 Watt etwa verbraten, vorher 3,5 Watt.
Und das Bord startet ohne USB ohne Probleme.

mfg Bernd

   
Zitieren
#43
Hallo Bernd,

sieht super aus. Nun dann mache ich nochmal den nächsten Schritt. Um quasi eine Programmliste zu "simulieren" habe ich eine neue Headerdatei angelegt ("Programmliste.h"). Darin gibt es eine Klasse "Radiostation". Normalerweise schreibt man die Klassendeklaration in eine Header, die Definition in einer cpp-Datei. Der besseren Übersicht wegen hier alles in der Programmliste.h. Wer will kann Klassendeklaration/definition selbst in separate Dateien legen.


Code:
//Maximale Anzahl der Programme in der Programmliste
#define MAXPROG 32

class Radiostation{
 public:
     Radiostation(char* n, char* h, char* p) {
       this->prog_name = n;
       this->host = h;
       this->pfad = p;
     }

     char* get_Programmname() {
       return this->prog_name;
     }

     char* get_Host() {
       return this->host;
     }

     char* get_Pfad() {
       return this->pfad;
     }
 private:
    char* prog_name;
    char* host;
    char* pfad;
};


Radiostation* stationen[MAXPROG];

void lese_Programmliste() {

stationen[0] = new Radiostation("Chante France\0","stream1.evasionfm.com\0","/Chante_France\0");
stationen[1] = new Radiostation("DLF\0","st01.dlf.de\0","/dlf/01/56/ogg/stream.ogg\0");
stationen[2] = new Radiostation("DLF Kultur\0","st02.dlf.de\0","/dlf/02/104/ogg/stream.ogg\0");
// ... bis MAXPROG-1 möglich
stationen[31] = new Radiostation("DLF Nova\0","st03.dlf.de\0","/dlf/03/104/ogg/stream.ogg\0");


}

Im Ersten Teil werden neben der Klasse "Radiostation" auch 32-Programmplätze definiert, also ein Array mit Pointern auf je eine Instanz einer Radiostation. Unten in der Funktion lese_Programmliste() werden ein paar der Programmspeicher gefüllt.  Eine neue Radiostation wird mit new Radiostation("Stationsname\0","Hostserver\0","Pfad_auf_dem_Server\0") angelegt. Der Zeiger auf diese Radiostation geht dann auf einen Speicherplatz. Achtung die Werte sind alle Nullterminiert!

Im neuen Testprogramm wird in setup() die Funktion lese_Programmliste() aufgerufen. Später könnte in dieser Funktion wirklich eine Programmliste aus einem Flash-Filesystem des Kontrollers geladen werden.

Das neue Testprogramm hat zusätzlich die Variable int iProgrammnummer bekommen. Der Wert dieser Variable repräsentiert den aktuell eingestellten Programmplatz. Zusätzlich in UpdateDisplay() wird das Display angewiesen Programmnummer und Programmnamen auszugeben.

Hier das neue Testprogramm:
Code:
// Bibliotheken einbinden
#include <WiFiClient.h>
#include <WiFi.h>
#include <Adafruit_VS1053.h>
#include <LiquidCrystal_I2C.h>
#include "Programmliste.h"

// Zugangsdaten zum WLAN
char* ssid     = "xxx";
const char* password = "xxx";

// Webstream DLF: http://st01.dlf.de/dlf/01/56/ogg/stream.ogg
char* programmname;
char* hostrechner = "st01.dlf.de";
char* pfad = "/dlf/01/56/ogg/stream.ogg";
int httpPort = 80;
int encoder0Pos = 0;

// Anschlussschema des VS1053-DSP
#define VS1053_CS     17   // VS1053 Chip Select Pin
#define VS1053_DCS     16   // VS1053 Data/Command Select Pin
#define VS1053_DREQ    34  // VS1053 Data request
#define VS1053_MOSI    25  // VS1053 MOSI
#define VS1053_MISO    26  // VS1053 MISO
#define VS1053_CLK     32   // VS1053 Clock Pin
#define VS1053_RESET   27   // VS1053 reset pin (-1 unbelegt)

// LCD
#define DISPLAY_SDA_PIN 21
#define DISPLAY_SCL_PIN 22

#define DISPLAY_X 16
#define DISPLAY_Y 2

//#define DISPLAY_I2C_ADRESSE 0x27
#define DISPLAY_I2C_ADRESSE 0x3f

//LiquidCrystal_I2C lcd(0x3F, DISPLAY_X, DISPLAY_Y);
LiquidCrystal_I2C lcd(DISPLAY_I2C_ADRESSE, DISPLAY_X, DISPLAY_Y);

// Dekoderinstanz erstellen
Adafruit_VS1053 VS1053Dekoder = Adafruit_VS1053(VS1053_MOSI, VS1053_MISO, VS1053_CLK, VS1053_RESET, VS1053_CS, VS1053_DCS, VS1053_DREQ);


// MP3 Datenpuffer
uint8_t mp3buff[32];

// Einen WiFi-Client für HTTP/TCP-Verbindungen erstellen
WiFiClient client;

// Aktuell eingeschaltetes Programm
int iProgrammnummer = 0;

void setup() {
 Serial.begin(115200); // Serielle Console für Fehlersuche

 lese_Programmliste();
 if (stationen[iProgrammnummer] != NULL) {
   programmname = stationen[iProgrammnummer]->get_Programmname();
   hostrechner = stationen[iProgrammnummer]->get_Host();
   pfad = stationen[iProgrammnummer]->get_Pfad();
 }

 Wire.begin(DISPLAY_SDA_PIN, DISPLAY_SCL_PIN);
 lcd.begin(DISPLAY_X, DISPLAY_Y);
 lcd.init();
 lcd.backlight();

 if (! VS1053Dekoder.begin())
 { // initialisiere VS1053-Dekoder
   Serial.println(F("Kein VS1053-DSP-Dekoder gefunden"));
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("BOOT: VS1053 FAIL");
   while (1) delay(10);
 }

 Serial.println(F("VS1053-DSP-Dekoder gefunden"));
 // Einstellung Standardlaustärke (links, rechts)
 VS1053Dekoder.setVolume(7, 7);

 // WIFI-Client initialisieren
 Serial.print("Verbinde mit Netzwerk-SSID "); Serial.println(ssid);
 WiFi.begin(ssid, password);
 while (WiFi.status() != WL_CONNECTED) {
   delay(500);
   Serial.print(".");
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("BOOT: WLAN...");
 }

 Serial.print("WIFI-Verbindung hergestellt. ");
 Serial.println("IP-Adresse: ");  Serial.println(WiFi.localIP());
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("BOOT: WLAN OK");
 lcd.setCursor(0, 1);
 lcd.print(WiFi.localIP());
 delay(3000);

 Serial.print("Verbinde zum Audiostream: ");  Serial.println(hostrechner);

 if (!client.connect(hostrechner, httpPort)) {
   Serial.println("Verbindung fehlgeschlagen!");
   return;
 }

 // URI zur Anfrage erzeugen
 Serial.print("Verbindung steht, stelle Anfrage-URL: ");
 Serial.println(pfad);

 client.print(String("GET ") + pfad + " HTTP/1.1\r\n" +
              "Host: " + hostrechner + "\r\n" +
              "Connection: close\r\n\r\n");


 UpdateDisplay();
}


void loop() {
 // DSP für weitere Daten bereit?
 if (VS1053Dekoder.readyForData()) {
   if (client.available() > 0) {
     // Datenpuffer füllen
     uint8_t bytesread = client.read(mp3buff, 32);
     // und zum Dekoder schicken
     VS1053Dekoder.playData(mp3buff, bytesread);
   }
 }
}

void UpdateDisplay() {
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("P"); lcd.print(iProgrammnummer); lcd.print(" ");
 lcd.print(programmname);
}


Funktioniert die Umschaltung per Änderung von iProgrammnummer   bei Dir Bernd? Soweit klar und alles verstanden?
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
#44
Guten Tag,
nein funzt nicht, bekomm den Dreh-Regler nicht angebunden.
mfg Bernd
Zitieren
#45
Per Drehregler? Nein der Drehregler-Code ist da doch noch gar nicht drin, ich meinte per händischer Änderung der Variablen iProgrammnummer.
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
#46
Guten Tag,

Bibliothek WiFi in Version 1.0 im Ordner: C:\Users\klammi\Documents\Arduino\hardware\espressif\esp32\libraries\WiFi wird verwendet
Bibliothek Adafruit_VS1053_Library in Version 1.0.4 im Ordner: C:\Users\klammi\Documents\Arduino\libraries\Adafruit_VS1053_Library wird verwendet
Bibliothek SPI in Version 1.0 im Ordner: C:\Users\klammi\Documents\Arduino\hardware\espressif\esp32\libraries\SPI wird verwendet
Bibliothek SD in Version 1.0.5 im Ordner: C:\Users\klammi\Documents\Arduino\hardware\espressif\esp32\libraries\SD wird verwendet
Bibliothek FS in Version 1.0 im Ordner: C:\Users\klammi\Documents\Arduino\hardware\espressif\esp32\libraries\FS wird verwendet
Bibliothek LiquidCrystal_I2C-master in Version 1.1.2 im Ordner: C:\Users\klammi\Documents\Arduino\libraries\LiquidCrystal_I2C-master wird verwendet
Bibliothek Wire in Version 1.0 im Ordner: C:\Users\klammi\Documents\Arduino\hardware\espressif\esp32\libraries\Wire wird verwendet
exit status 1
Fehler beim Kompilieren für das Board ESP32 Dev Module.

so siehts aus...

mfg Bernd
Zitieren
#47
Da steht aber keine Fehlermeldung in deinem Text! Was haste denn gemacht, beschreibe mal.
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
#48
Guten Tag,
habe nur Deine Daten ins Arduino übernommen, und getestet.
da kam diese Fehlermeldung.
mfg Bernd
Zitieren
#49
Etwas genauer hätte ich es mir schon gewünscht, deine Antworten sind immer recht knapp gehalten. Auch deine Textkopie der Kompilermeldungen ist nicht vollständig. Du hättest im Meldungsfester scrollen und alles, also auch die Fehlermeldung mit rauskopieren müssen! Die steht oft ganz oben im nicht sichtbaren Bereich des Meldungsfensters. Ohne genaue (komplette) Compilerangaben ist die Fehlersuche aus der Ferne nicht möglich.

Das Testprogramm in Beitrag 43 habe ich jetzt schon mehrfach fehlerfrei compiliert und auf dem ESP32 ausgeführt, also muß etwas beim Kopieren aus dem Forum schiefgelaufen sein.

Gehen wir nochmal zum Beitrag Nummer 43.

Lege eine neue Headerdatei (also ein neues Programmtab!!! Nicht über Datei - neu oder so gehen !!!) mit dem Namen Programmliste.h an und kopiere dort vollständig das erste Codefenster aus dem Forum rein. Die Headerdatei muß in selben Programmordner wie das Hauptprogram (die ino-Datei) zu liegen kommen! Verstehst Du wie ich es meine oder soll ich Screenshots machen und einstellen? Nachtrag: Screenshot eingefügt.

   

Das zweite Codefenster ist die INO-Datei, dein Hauptprogramm, wie bisher.

Wenn das alles richtig umgesetzt wurde, lässt sich das Programm ohne Probleme kompilieren und auf dem ESP32 ausführen.

Bevor wir weitermachen, arbeite Dich bitte in die IDE ein und lerne wenigsten die Grundlagen der C/C++-Sprache. Es bringt  nichts wenn ich hier alles im Testprogramm Schritt für Schritt für Dich umsetze und Du drückst nur aufs Knöpfchen. Du musst schon den Code und die IDE verstehen, damit die Arbeitsschritte klar sind und Du dir bei kleinen Fehlern selbst helfen kannst. Wenn Du das jetzige Programm richtig im Entwicklungssystem drin hast, wirst Du mal den Part mit dem Drehcoder selbst programmieren. Der Drehregler ist ja im Prinzip nur ein Doppelschalter. Und kein (oder schlecht) Englisch zu können ist keine Ausrede, es gibt genügend Infos auch in Deutsch.

Beispielsweise hier: http://arduinoprx.de/index.php?ha=2&id=102
oder auch
https://www.mikrocontroller.net/articles/Drehgeber

Bernd du schaffst das und wirst bald komplexe Programme selbst entwickeln können!!!
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
#50
Guten Morgen,
das mit der headerdateien anlegen wusste ich nicht.
Bisher hatte ich auch nur mit Raspberry und Odroid gespielt.
Aber ja, das mit dem händisch Iprogramm funzt, ich hab das dann auf 3 gestellt, hochgeladen und funzt.
Das Display hat aber nicht mit umgeschalten.


mfg Bernd
Zitieren
#51
(14.08.2017, 07:17)klammi schrieb: Aber ja, das mit dem händisch Iprogramm funzt, ich hab das dann auf 3 gestellt, hochgeladen und funzt.
Das Display hat aber nicht mit umgeschalten.

Guten Morgen Bernd, 

sobald UpdateDisplay() aufgerufen wird und in der Programmliste ein ordentlicher nullterminierter Programmname steht, dann wird auf dem Display sowohl der Wert der Variablen iProgrammnummer , also der Programmplatz und der dazugehörige Programmname angezeigt. Hast Du denn unter 3 ein neues Programm richtig angelegt? In der Standardliste existiert nämlich kein drittes Programm! Es geht von 0 bis 2 und als obere Grenze gibt es 31. Zudem kann es passieren das das Display über die fliegende I2C Verbindung mal kein Kontakt hatte und somit die Befehlssequenz zum Aktualisieren verpasst hat. Wirst sehen, am Programm liegst nicht, denn da ist nichts was schief gehen kann. Später muss diese Funktion bei jeder Programmänderung (vorher auch prüfen ob der Programmplatz belegt ist, also !=NULL ist) aufgerufen werden. Es geht noch eleganter, aber das verrate ich Dir später wenn Du mehr Erfahrung hast.

void UpdateDisplay() {
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("P"); lcd.print(iProgrammnummer); lcd.print(" ");
 lcd.print(programmname);
}

Na dann arbeite dich weiter in die IDE und in C/C++ ein, ich denke Du wirst sehr schnell Erfolg haben und den Drehregler an den ESP32 bekommen. Er hat ja noch einige freie GPIOs und wenn Du schon Erfahrungen am Raspi hast!
Und das Forum gibt es ja auch noch für Fragen.

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
#52
Hallo Bernd und alle zukünftigen Nachbauer,

oben hatte ich ja vorgeschlagen den Drehencoder in dem für Anfänger einfacheren Polling-Verfahren - anstatt per Interrupt - abzufragen. In diesem Zuge möchte ich nocheinmal auf meinen Thread "Multitasking mit Microcontroller" http://radio-bastler.de/forum/showthread.php?tid=8759 hinweisen. Die dort verwendete Scheduler-Bibliothek ist ebenfalls für den Anfänger leicht verständlich. So wäre es problemlos möglich die Abfrage von Bedienelementen dort in einem eigenen Task unterzubringen. In der aktuellen Firmware des Webradios werden so durch kooperatives Multitasking sämtliche Aufgaben (Bedienabfrage, Displayaktualisierungen, Verbindungsmanagement, füllen des Empfangs-FIFOs, Dekodierung und so weiter) auf dem Prozessor verteilt, ganz ohne ein zusätzlich ressourcenfressendes Echtzeitbetriebssystem wie FreeRTOS! Die Schedulerbibliothek ist zudem sehr portabel, so verwendet diese ein inzwischen vierter Nachbauer aus einem anderen Forum für die Umsetzung des Internetradios auf Stellaris-Controllern.


Viele Bastlergrüß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
#53
Guten Tag,
Displayfehler gefunden...stand auf 0x3f , geändert auf 0x27 und funzt. Smiley14
Der Verstärker ist heute früh angekommen, funzt auch super. Smiley14 

Jetzt mal das mit dem Drehregler versuchen Smiley43

mfg Bernd 

   
Zitieren
#54
Achso, ich glaube dein ESP32-Board hat neben dem 3.3V Ausgang auch einen für 5V, stimmts? Denke daran bei Eingangssignalen, Pullup-Widerständen und so weiter alles auf die 3.3V Line zu legen! Bei einigen Boards sind die Eingänge 5V-tolerant, bei vielen anderen aber auch nicht. Mit 3.3V liegst Du jedenfalls bei den GPIOs nicht verkehrt. Pullups lege ich beim ESP32 übrigens immer extern, intern hat er an machen GPIOs Probleme und im Netz (auch auf den Herstellerseiten) war mal etwas von einem "Silicon Bug" zu lesen, der Workaround geht wohl über das Beschreiben anderer Register. Ich hatte jedenfalls keine Lust auf Fehlersuche und mache beim ESP32 deshalb alles extern.
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
#55
Guten Morgen,
also nach Stunden mit dem Drehregler, hab nur zahlen im Kopf...0 erfolge.
Bekomms einfach nicht gebacken. C+ ist nichts für mich...seh mitlerweile garnich mehr durch. Ist eben nicht schön, wenn keiner in der nähe wohnt und nachhilfe gibt.
Und Ich glaub ich bin zu alt für sowas...
Den Task hab ich erstellt,
Die #include <TaskScheduler.h> ist eingebunden.

Regler:
GND=GND
+    =3,3V
SW = Pin36
DT  = Pin39
CLK = Pin33

Zitat:// Anschlussschema des VS1053-DSP
#define VS1053_CS     17   // VS1053 Chip Select Pin
#define VS1053_DCS     16   // VS1053 Data/Command Select Pin
#define VS1053_DREQ    34  // VS1053 Data request
#define VS1053_MOSI    25  // VS1053 MOSI
#define VS1053_MISO    26  // VS1053 MISO
#define VS1053_CLK     32   // VS1053 Clock Pin
#define VS1053_RESET   27   // VS1053 reset pin (-1 unbelegt)

// encoder
#define encoder_SW_Pin 36
#define encoder_DT_Pin 39
#define encoder_CLK_Pin 33

// LCD
#define DISPLAY_SDA_PIN 21
#define DISPLAY_SCL_PIN 22

#define DISPLAY_X 16
#define DISPLAY_Y 2

#define DISPLAY_I2C_ADRESSE 0x27


mfg Bernd
Zitieren
#56
Hallo Bernd,

was genau funktioniert denn nicht? Anschluß des Encoders an den Prozessor, Programmierung des Prozessors, Scheduler?

Du hast doch weiter oben das Datenblatt zu deinem Drehencoder eingefügt. Da findest Du unter der Überschrift "Rotary Encoder Basics" die allgemeine Funktionsweise und das Schaltschema der beiden "Schalter". Unter "KY-040 Pin Outs" ist das Anschlußschema deines Encoders gegeben, hast Du ja offensichtlich schon herausgefunden. Wie der Encoder an den Prozessor angeschlossen wird, siehst Du unter "Keyes Rotary Encoder Schematic". Danach wird unter "The Arduino Sketch" ein komplettes Beispielprogramm angegegeben. Das musst Du nun in deinen separaten Task legen, die Pinbelegung :

int pinA = 3; // Connected to CLK on KY­040
int pinB = 4; // Connected to DT on KY­040

durch deine eigene ersetzen und den Task beispielsweise definieren als:
Task t1(1, TASK_FOREVER, &Drehencoder); // Jede ms führe Aufgabe Drehencoder aus

void Drehencoder() {
// ... hier steht der Code für die Drehencoderabfrage
}

Der Beispielcode in deinem Datenblatt zeigt dann auf der seriellen Konsole ob der Knopf gedreht wurde, entweder im Uhrzeigersinn oder entgegen. Die Variable "encoderPosCount­­" entspricht deiner Programmnummer in der Programmliste. Da die Programmliste nur von 0 bis 31 geht, musst du noch vor dem Erhöhen der Programmnummer prüfen, ob die aktuelle Programmnummer 31 ist. In diesen Fall wird die Programmnummer auf 0 gesetzt.

if (encoderPosCount==(MAXPROG-1)) // MAXPROG ist ja 32, die Prüfung erfolgt aber bei 31, da der Wert 32 nie erreichen darf!
encoderPosCount=0;
else
encoderPosCount++;

Ähnlich jetzt in der anderen Richtung! Wenn die Programmnummer 0 ist, darf sie beim nächsten Dekrementieren nicht negativ werden. Sie wird dann einfach auf 31 gesetzt und zählt wieder bis 0 runter.

Wurde die Programmnummer (encoderPosCount) geändert, rufst Du von dort noch eine Funktion auf, die die Werte für Programmname, Server und Pfad aktualisiert, den VS1053 softwaremaßig resettet und das Display aktualisiert. Der Code für das Testprogramm oben dürfte in etwa so aussehen:

void Programmwechsel(int iProgrammnummer) {
if (stationen[iProgrammnummer] != NULL) {
programmname = stationen[iProgrammnummer]->get_Programmname();
hostrechner = stationen[iProgrammnummer]->get_Host();
pfad = stationen[iProgrammnummer]->get_Pfad();

Hier den VS1053 resetten;
Hier das Display aktualisieren, siehe UpdateDisplay()
}
}
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
#57
Guten Tag,
werd wohl das Projekt verwerfen...bekomm das nicht gebacken. C+ komm ich nicht klar.
Erkenn ja nich mal den aufbau der Befehle. Brauch ne Schule.
mfg Bernd
Zitieren
#58
(15.08.2017, 17:33)klammi schrieb: Guten Tag,
werd wohl das Projekt verwerfen...bekomm das nicht gebacken. C+ komm ich nicht klar.
Erkenn ja nich mal den aufbau der Befehle. Brauch ne Schule.
mfg Bernd

ich denke das Projekt ist für den Anfang einfach zu groß. Ich beschäftige mich ja auch mit µPC's, aber ein webradio traue ich mir noch lange nicht zu. Da verliert man dann gerne die Motivation, und ohne die geht es nicht. Es braucht die kleinen Erfolgserlebnisse.
Gruß,
Jupp
-----------------------------
the voices may not be real, but they do have some good ideas
Zitieren
#59
Hallo Bernd,

ich habe gedacht Du schaffst es, da der Programmcode ja schon in deinem Datenblatt zum Encoder liegt. Das wäre dann so ein kleines Erfolgserlebnis. Willst es nicht doch nocheinmal versuchen? Wenn Du willst baue ich Dir das Testprogramm von oben mit einem Encoder zur Programmumschaltung zusammen. Dann hast Du ein Webradio "Ultralight" und kannst es, wenn Du willst, in ein Gehäuse einbauen, oder auch nicht wenn Du das Projekt nicht weiter verfolgen willst. Dauert ein paar Tage da ich gerade ein "Kunden"-Gerät modernisiere und zusätzlich mit einem STM32-Microcontroller einiges an Signalverarbeitung auf dem Arbeitstisch habe.

Ich hätte Dir gern bei der Installation der "großen" Firmware mit Wecker, NTP/DCF77 Zeitabgleich, Webserver zum Konfigurieren usw.geholfen, aber da braucht man "weitergehende" C/C++ Kenntnisse und muß mit zusätzlichen Flashprogrammen ein Dateisystem wie beim Odroid anlegen. Ich befürchte aber das wird über Fernanweisungen hier so nichts.

Also schreib mir wie und ob ich Dir helfen soll.

Viele Bastlergrüß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
#60
Guten Morgen,
um mal rüberzuschauen hast Du ja meine Teamwiever-Daten.
mfg bernd
Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Webradio mit ESP32 Neuling 77 3.484 08.07.2020, 23:05
Letzter Beitrag: Nicetolife
  igorslab WLAN Fragen Richard 16 690 03.07.2020, 22:30
Letzter Beitrag: hardware.bas
  Fragen zu PC Radionar 6 454 23.08.2018, 11:56
Letzter Beitrag: Pitterchen
  Steuerung per Web mit ESP8266 Wi-Fi Modul Gelhaar 1 356 04.03.2018, 22:55
Letzter Beitrag: Bernhard45
  Node MCU ESP8266 ESP-12 Helmut 4 286 06.02.2018, 21:31
Letzter Beitrag: Bernhard45

Gehe zu: