- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 46

Thema: Internetradio

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    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

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Danke für den Tip!
    Im Prinzip wohl schon. Allerdings möchte ich LCD4Linux nutzen und das LCD soll auch an andere Geräte wie z.B. das NAS angeschlossen werden können.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    24.06.2007
    Alter
    44
    Beiträge
    61

    empfangen.c UART Kommunikation

    Hallo,

    ein sehr gelungenes Projekt und mein erster tieferer Kontakt mit dem Raspberry Pi. Ich hab mir gleich den MPD installiert und mal losgelegt. Jetzt habe ich ein WWW Radio für meine Stereoanalage, welchen ich nicht ganz so elegant nur mit dem Smartphone steuere.

    Ich bin gerade dabei eine Anbindung an mein Autoradio zu basteln. Da ich auch den MPD dafür benutzen will und die originalen Radiotasten zum steuern haben will, habe ich eine Frage zum "empfangen" Code.

    Ich habe leider eine etwas komplexere Schnittstelle mit Umsetzer von 1-Draht Bus auf RS232. Ich bekomme die Daten schon mal ins Board rein mit einem etwas angepassten "empfangen.c", wo ich schon mal heilfroh bin.

    Senden geht auch schon zumindest über Shell.

    Leider kommen immer mehrere Zeichen auf einmal an und dann ist kurzzeitig wieder Ruhe auf der Schnittstelle.
    Ein Beispiel in Hex
    ungefähr so
    18 04 FF 02 00 E1
    0.1s Pause
    18 04 FF 02 00 E1
    2s Pause
    FF FF FF FF FF FF (irgendein Code)
    Pause
    etc.

    Als Kommunikation habe ich 9600,8e,1

    Gibt es eine Möglichkeit mit der im Code verwendeten UART Kommunikation über einen Status zu erkennen wann ein Datensatz übertragen wurde bzw. gerade kein neues Zeichen am UART ankommt? Wenn das geht konnte ich die Zeichen immer sauber auslesen, da sich ja nicht kontinuierlich gesendet werden sondern Paketweise.

    Ich habe auch schon versucht über einen aus meinem Chip ausgegeben Sendungsstatus (via wiringPi) ans Ziel zu kommen. Doch ist das leider zu ungenau und es werden immer weider Zeichen verschluckt. Heißt entweder werden die GPIOs zu langsam erkannt oder der Chip ist hier ungenau.

    Über einen kleinen Anstoß meiner Grüzkiste wäre ich sehr froh.

    Viele Grüße

    Rainer
    Wenns brennt, dann brennts....

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von ePyx
    Registriert seit
    14.05.2008
    Ort
    Falkensee
    Beiträge
    700
    Könntest ja blockweise a 6 Byte lesen in dem du beim read eine Struktur/einen Array und als maximale Größe 6 (bzw die Größe der Struktur/des Arrays) übergibst.
    Wenn alle Bytes 0xFF sind definierst du dann, dass die Übertragung vorbei ist.
    Grüße,
    Daniel

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    24.06.2007
    Alter
    44
    Beiträge
    61
    Danke ePyx für deine Antwort. Blockweise auslesen kann ich leider nicht machen, da die Bytelänge und die Ruhezeiten variieren. Ich hätte gestern schon einen Datenmitschnitt posten sollen, damit es klarer wird. Abschlusszeichen ala CR hab ich auch nicht. Der letzte Wert ist zwar immer die XOR Checksumme von den empfangenen Bytes pro Block, welche man zur Plausibilitätsprüfung heranziehen kann, doch weiß ich nicht wie man das während des empfangens schon verwerten soll.

    Code:
    2013-01-14 06:41:53.390    18 04 FF 02 00 E1
    2013-01-14 06:41:53.390    76 0C 68 39 00 82 00 10 00 05 01 00 01 BC
    2013-01-14 06:41:53.405    68 04 FF 3B 00 A8
    2013-01-14 06:41:53.421    68 05 18 38 01 00 4C
    2013-01-14 06:41:53.421    68 10 C0 23 41 30 00 20 20 20 20 20 20 20 20 20 20 EA
    2013-01-14 06:41:53.436    C8 05 80 23 42 20 0C
    2013-01-14 06:41:53.436    18 0A 68 39 00 02 00 10 00 05 01 55
    2013-01-14 06:41:53.670    68 04 BF 02 01 D0
    2013-01-14 06:41:53.686    68 05 80 41 01 01 AC
    2013-01-14 06:41:53.780    68 03 D0 5D E6
    2013-01-14 06:41:57.290    18 04 FF 02 00 E1
    2013-01-14 06:42:01.174    18 04 FF 02 00 E1
    2013-01-14 06:42:02.843    68 05 18 38 03 00 4E
    2013-01-14 06:42:02.874    18 0A 68 39 02 09 00 10 00 05 01 5C
    2013-01-14 06:42:02.968    68 03 18 01 72
    2013-01-14 06:42:03.015    18 04 FF 02 00 E1
    2013-01-14 06:42:03.108    18 0A 68 39 02 09 00 10 00 05 15 48
    2013-01-14 06:42:03.826    18 0A 68 39 09 09 00 10 00 08 99 C2
    2013-01-14 06:42:05.417    18 04 FF 02 00 E1
    2013-01-14 06:42:06.977    68 05 18 38 01 00 4C
    2013-01-14 06:42:06.993    C8 05 80 23 42 20 0C
    2013-01-14 06:42:07.040    68 10 C0 23 41 30 00 20 20 20 20 20 20 20 20 20 20 EA
    2013-01-14 06:42:07.040    C8 05 80 23 42 20 0C
    2013-01-14 06:42:07.055    18 0A 68 39 00 02 00 10 00 08 99 C0
    2013-01-14 06:42:09.676    18 04 FF 02 00 E1
    Wenns brennt, dann brennts....

  6. #6
    Erfahrener Benutzer Roboter Experte Avatar von ePyx
    Registriert seit
    14.05.2008
    Ort
    Falkensee
    Beiträge
    700
    Hast du dort irgendwelche Events ausgelöst? Also Tasten gedrückt oder so? Ein wenig Redundanz ist ja schon enthalten : Die Sequenzen 18 04 FF 02 00 E1, 68 05 18 38 01 00 4C und 68 10 C0 23 41 30 00 20 20 20 20 20 20 20 20 20 20 EA tauchen ja schon öfter auf.

    Würde halt gucken was sich bei einem Tastendruck oder einer anderen Einstellung bei den gesendeten Daten ändert und das Protokoll weiter analysieren.
    Grüße,
    Daniel

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.06.2008
    Beiträge
    185
    Hallo,da Linux ein Time sharing System ist, kann es zu diesen Pausen kommen. Du kannst versuchen, die Priorität deines Programmes zu erhöhen.Mit "nice -n15 Deinprogramm" starten, oder bei laufendem Programm mit "renice -n15 Deinprogramm".Vielleicht hilft das etwas.
    MfG
    Hans

Berechtigungen

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

12V Akku bauen