- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 37

Thema: Kommunikation zwischen CAN-Knoten und Raspberry

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

    Kommunikation zwischen CAN-Knoten und Raspberry

    Hallo Forum,

    ich tüftel gerade an meiner Kommunikation zwischen dem Raspberry Pi und meinem CAN-Knoten über UART.
    Der Plan ist, dass ich einen Befehl über eine Webseite eingebe und dieser per UART an mein Pi gesendet wird. Der CAN-Knoten antwortet dann und der Text soll auf der Webseite ausgegeben werden.
    Die Kommunikation zwischen Webseite und Knoten funktioniert bereits. Sprich ich kann was auf der Webseite eingeben und das wird dann an den CAN-Knoten gesendet. Die Antwort von meinem Knoten kann ich dann mittels TeraTerm verfolgen.
    Nur wie schaffe ich es das das Raspberry Pi eine ganze Nachricht von meinem Knoten über UART einließt und dann auf einer Website darstellt?
    Danke für die Hilfe
    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
    Ich nutze dafür eine temporäre Datei. Diese wird dann bei jedem Aufruf der php Seite ausgelesen und deren Inhalt auf der Webpage angezeigt.

    php Code:
    Code:
        if (file_exists ("/tmp/ausgabe.txt" )){
            $userdatei = fopen("/tmp/ausgabe.txt","r");
            while(!feof($userdatei))
               {
               $zeile = fgets($userdatei);
               echo "<br>";
               echo $zeile;
               }
            fclose($userdatei);
        } else{
            echo "<br>Keine Ausgabe";
        }
    Geht bestimmt auch eleganter (Javascript, Ajax) mir reicht es aber beim Aufruf der Seite. Die Seite kann sich auch per "reload Meta" selbst alle paar Sekunden aktualisieren.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  3. #3
    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,

    danke für die Antwort.
    Und wie sorgst du dafür, dass alles was per UART empfangen wird in der Temporären Datei landet?
    Und wie schalte ich es ab das der gesamte Bootvorgang über das Terminal gesendet wird? Hab eben gesehen, dass dasselbe was per SSH an Putty gesendet wird auch über den UART ausgegeben wird. Und das bringt meinen Controller komplett durcheinander.
    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

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Das ist einfach eine Anpassung von meinem Internetradio Die Kernsachen stehen auch im zugehörigen Wiki. Im 'auswerten' Sub einfach die Datei zum Schreiben öffnen und rein mit dem Text. Wenn viele / ständig Daten kommen, würde ich diese hintereinander in eine Datei schreiben, damit nichts verlorengeht.

    In Datei schreiben:
    Code:
        int fd1;    
        fd1 = open ("/tmp/ausgabe.txt", O_WRONLY|O_CREAT|O_TRUNC); //O_APPEND zum Anhängen
        if (fd1 == -1)
            exit (-1);
        write (fd1, eingang, strlen(eingang));
        close (fd1); 
        system("chmod 644 /tmp/ausgabe.txt");
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  5. #5
    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
    Ah ok.
    Nur die nächste Frage ist, wie stelle ich das ab das das Raspberry Pi die komplette Bootsequenz über UART ausgibt?
    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

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Ja, das steht in dem von mir verlinkten Post.

    Hinweis:
    Ich nutze die UART auf der Stiftleiste. Für einen USB-Seriell Adapter sind folgende Schritte nicht notwendig!
    Damit die UART frei ist, müssen 2 Dateien angepasst werden. Achtung: Vorher sichern. Wenn was schief geht, kann ich die SD-Karte in meinem NAS mounten und die Sicherungen zurückspielen...
    /boot/cmdline.txt:
    Code:
    dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
    /ect/inittab: Folgende Zeile auskommentieren
    Code:
    T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
    zu
    Code:
    #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
    Und natürlich auch alle anderen Zeilen, welche auf ttyAMA0 zugreifen wollen.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  7. #7
    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,
    also der USB Wandler invertiert nicht.....zumindest weiß nichts davon. Außerdem müssten dann ja auch mehr Zeichen falsch sein oder?
    Und rufst du die beiden Programme ineinander auf oder laufen die wirklich paralell? Wenn ja wie mach ich sowas? Ich arbeite nämlich zur Zeit immer nur mit Programmaufrufen innerhalb von Programmen (UART, I2C, EMail).
    Aber es liegt definitiv an der inittab.....sobald ich die Änderungen rückgängig mache funktioniert alles wie normal.....außer das beim Booten noch der Anmeldeprompt kommt.
    Ist im Zweifelsfall besser als das zusätzliche Zeichen.....dann mache ich den String noch beim AVR mit rein und gut ist.....aber optimal wäre es wenn beides weg ist.

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Der Empfänger wird aus der rc.local gestartet und bleibt dann im Hintergrund am laufen. Der Sender wird jedesmal beim Senden mit zu sendendem String als Parameter aufgerufen und beendet sich anschließend wieder. Alles so, wie ich es im Internetradio Thema + Wiki beschrieben habe.

    Nutze ich einen USB-Seriell Wandler, dann wird die Konsole da nicht automatisch geöffnet. Diesen konfiguriere ich nur beim Start in der rc.local
    stty 38400 -F /dev/ttyUSB0
    und gut ist.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  9. #9
    Erfahrener Benutzer Roboter Experte Avatar von ePyx
    Registriert seit
    14.05.2008
    Ort
    Falkensee
    Beiträge
    700
    Mal eine andere Frage. Hast du schon mal versucht den MCP2551 bei 3,3V zu betreiben? Also um mit dem RasPi einen eigenen Knoten zu kreieren?
    Grüße,
    Daniel

  10. #10
    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,

    ja ich hab schon drüber nachgedacht und sowas ist schon in Planung

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. [ERLEDIGT] Kommunikation AVR <-> Raspberry
    Von Goldenflash im Forum Raspberry Pi
    Antworten: 6
    Letzter Beitrag: 04.09.2012, 08:30
  2. SPI Kommunikation zwischen 2 AVR's
    Von Ruppi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 05.07.2007, 09:34
  3. Kommunikation zwischen uP und Pc
    Von XC866 im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 14.02.2007, 14:48
  4. Kommunikation zwischen PC und BOT
    Von corpsealive im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 9
    Letzter Beitrag: 07.07.2006, 06:40
  5. Kommunikation zwischen AVR und PC
    Von im Forum AVR Hardwarethemen
    Antworten: 8
    Letzter Beitrag: 10.02.2004, 12:26

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress