Pi und Arduino über USB Sensordaten einlesen und verarbeiten

  • Hi an alle,

    gleich mal Vorweg: Ich kenne mich mit Programmierung usw. nicht ganz so gut aus, bissl Basics in C sind vorhanden, Java bin ich gerade dabei mir auch ein klein wenig anzueignen weil ich mir eine Gui basteln will.
    Hab nun schon seit ein paar Monaten einen Raspi, auf dem läuft ein Downloadserver und ein Webserver. Also bissl rumgespielt hab ich mit dem PI schon, nur in die Richtung in die mein jetziges Projekt geht habe ich noch keine große Erfahrung sammeln können.

    Habe seit 2 Tagen einen Arduino, mit diesem möchte ich die Daten von 4 Niveausensoren auslesen. Das ist bisher noch nicht so die Schwierigkeit, da gibt es ja ein schönes Beispielprogramm.
    Nun will ich allerdings die Spannung bzw. die umgerechneten Werte von jedem Sensor auf meinem PI bekommen um diese zu verarbeiten. Einfachste möglichkeit wäre wohl die USB Methode denke ich?
    Wie ich das ganze auslesen kann, dazu habe ich schon diverse Dinge dazu über google herausgefunden.

    Jetzt will ich allerdings auf dem PI dann ein Programm in C schreiben um die Werte, die vom Arduino kommen auch verarbeiten zu können.
    Also als erstes mal die Frage, wie lese ich die Sensordaten die vom Arduino kommen in mein Programm ein?

    Bevor ihr jetz fragt: Nein ich habe noch keinen Quellcode geschrieben dafür, ich beschäftige mich seit ein paar Tagen erstmal mit dem kompletten drum herum.


    Konkretes zu meinem Programm:
    Ich will die 4 Sensordaten einlesen und verarbeiten. Je nach Wert soll der PI dann über meine 8 Kanal Relais Karte ein anderes Relais schalten. Wenn ich dann schonmal soweit bin, soll später dann noch eine GUI folgen, damit ich über Touchscreen einen Button drücke und dann die Relais entsprechend schalten, wenn der Sensor dann den entsprechenden Wert zurückgibt, sagt Pin XY "halt" und das Relais ist nicht mehr angezogen bis eine andere Aktion passiert.


    Grundsätzlich müsste ich allerdings erstmal wissen, mit welchen Befehlen ich die Daten, die vom Arduino kommen in das Programm (welches ich dann noch schreiben muss) einlesen kann.


    Ich hoffe das ist soweit verständlich, was ich vor habe.


    Vielen lieben Dank vorab für eure mithilfe!

  • Pi und Arduino über USB Sensordaten einlesen und verarbeiten? Schau mal ob du hier fündig wirst!

  • Hallo

    grundsätzlich würde ein Datenaustausch über eine Schnittstelle (RS232,I2C u.s.w.) laufen.
    Am besten über RS232 da der Raspi den USB vom Arduino als Serielle Schnittstelle erkennt.
    Was die Befehle angeht , so musst du dir ein Protokoll schreiben dass die Kommunikation zwischen dem Raspi und dem Arduino abhändelt.
    Es geht auch sehr einfach mit JAVA und pi4j.

    Rossmann

  • Hallo Rossmann,

    schonmal Danke für deine Rückmeldung.

    Beim: "am besten musst du dir dafür ein Protokoll schreiben" hört es schon auf bei mir. Habe mal gegoogelt eben aber nicht wirklich was dazu gefunden.
    Also wie genau kann ich mir ein Protokoll dafür schreiben?

    "Es geht auch sehr einfach mit JAVA und pi4j" ?

    Könntest du mir dazu vielleicht noch einen kleinen Gedankenanstoß geben wie es damit von statten gehen soll?

    Grundsätzlich bin ich für alles offen, ich denke mir dass es ja nicht so sonderlich kompliziert sein sollte meine 4 Sensordaten in ein Programm einzulesen?
    Mir fehlt eben nur der Grundansatz wie ich das am besten und vor allem einfachsten umsetzen kann.

  • Hallo

    mit der Library pi4j kannst du eine Kommunikation mit der Seriellen Schnittstelle aufbauen.
    http://pi4j.com/

    hier ist die Serielle Kommunikation für den ARDUINO beschrieben
    http://arduino.cc/de/Reference/Serial

    und zum Schluss eine Library für den Arduino der das Protokoll für die Komunikation mitbringt.
    http://arduino.cc/de/Reference/Firmata

    rossmann

    Hallo

    und noch ein.... :)

    hier im Forum ist die Benutzung des pi4j bestens erläutert.
    pi4j und die serielle Schnittstelle

    Einmal editiert, zuletzt von rossmann (1. Februar 2014 um 11:44)

  • Hallo,

    vielen Dank. Werde mich hier mal ein wenig einlesen. Sollte ich Fragen haben werd ich mich wieder melden:danke_ATDE:


    Edit: Also ich hab jetzt ein wenig darüber gelesen, irgendwie find ich das doch ganz schön kompliziert:stumm:
    Gibt es da nicht eine einfache Möglichkeit die Daten die vom Arduino kommen in einem C Programm aufm Pi einzulesen? Über screen bekomme ich ja die Werte aufm PI auch direkt angezeigt die vom Arduino kommen?! Brauch ich da wirklich zwangsweise so ein Protokoll?

    Ich möchte nichts speichern, nur mit den aktuellen Werten die mir die Sensoren liefern arbeiten können.:angel::helpnew:

    Einmal editiert, zuletzt von stfN2128 (2. Februar 2014 um 12:56)

  • Hallo,

    habe nun noch ein wenig herum probiert... mir ist dann aufgefallen, dass es eigentlich blöd ist die Daten erst am PI zu verarbeiten. Daher habe ich mir das Programm nun so geschrieben, dass die Relais direkt vom Arduino geschalten werden.

    Nur habe ich nun noch eine Frage zur Programmierung am PI. Ich würde gerne ein Programm mit Oberfläche Programmieren, Java eignet sich dazu wohl am besten. Die GUI soll ein paar Buttons haben, mit der dann verschiedene "Programme" aus meinem Arduino Sketch ausgeführt werden können.

    Gibt es dazu evtl. einen gut beschriebenen Lesestoff im Netz? Oder kann mir jemand grob erklären wie ich das am besten machen kann? Also grob gesagt, ich drück am PI über Touchscreen Button1 und auf dem Arduino läuft dann mein geschriebenes Programm ab. Ich Drück Button2 und Programm1 stoppt und mein anderes Programm startet.


    Danke schonmal!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!