Raspipi und Arduino mit C

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich hab schon etwas im Internet gesucht aber nichts gefunden. Und zwar möchte ich die Ein-Ausgänge des Arduino mit dem Raspipi auswerten. Bis jetzt hab ich nur Anleitungen in Verbindnung mit Python gefunden.
    Vielleicht hat ja jemand ein paar Tipps für mich.

    Ach ja, ich bin neu hier. Hallo an alle!

  • http://goo.gl/5mH9dQ

    EDIT: Link gefixt

    Sorry, hatte es am Handy geschrieben und ein Slash vergessen.

    Es gibt für den Pi eine Bibiliothek um auch etwas einfach in C zu programmieren.
    Hier ist der volle Link: http://www.raspberry-projects.com/pi/programming…r-c-programming
    Es ist beschrieben wie man alles einrichtet, welche IDE man verwenden kann und wie man kompiliert.

    Es gibt KEINE dummen Fragen!

    Einmal editiert, zuletzt von ps915 (5. Februar 2014 um 11:46)

  • C programmieren kann ich schon auf dem Raspipi. Mir geht es darum, ob einer Beispiele kennt, wie ich mit C über die Serielle Schnittstelle (z.B. USB) mit dem Arduino kommunizieren kann.

  • Moin,

    um mal Missverständnisse von vorneherein auszuschliessen:
    Du kannst die Pins des Arduino nicht vom RPi auslesen ... das sind zwei verschiedene Hardware-Teile, die voneinander nichts wissen.

    Was Du kannst, ist per Interface vom RPi aus ein eigenes, definiertes Kommando zum Arduino schicken, es dort ausführen und das Ergebnis zurückliefern.

    A) Dazu benötigst Du eine Art Protokoll (selbst definieren - is aber kein Hexenwerk )
    B) Eine Verbindung zwischen RPi und Arduino
    C) Ein Programm auf dem RPi und
    D) ein Programm auf dem Arduino - letzteres zwecks einfachheit in der Arduino-IDE erstellt.

    Zu A):
    sieht in etwa so aus: definiere Komando und Response
    #define SENDE_STATUS_PORT1_0 0x01 -> #define RESPONSE_STATUS_PORT1_3 0x80
    #define SENDE_STATUS_PORT1_1 0x02 -> #define RESPONSE_STATUS_PORT1_3 0x81
    #define SENDE_STATUS_PORT1_2 0x03 -> #define RESPONSE_STATUS_PORT1_3 0x82
    #define SENDE_STATUS_PORT1_3 0x04 -> #define RESPOnSE_STATUS_PORT1_3 0x83
    Schickst Du von RPi eine 0x01 zum Arduino, dann atwortet der mit 0x080 und einem weiteren Byte mit dem Status.
    Jetzt nur mal ganz fundamental ohne grossen Schnickschnack ... später kannst Sequenzen, CRC-Prüfung usw. einbauen.

    Zu B):
    Die RS232 des Arduino bietet sich gerazu an. Sie erscheint auf dem RPi als /dev/ttyACM0 und kann prima verwendet werden.

    Zu C):
    Wi oben schon kurz angerissen: ein Programm auf dem RPi, das Anfragen sendet und Rückgabewerte entgegennimmt, auswertet und ggf. darstellt.

    Zu E):
    Ein sketch für den Arduino, das die Kommandos von der Schnittstelle liest und die amgeforderten Daten über die Schnittstelle zurückliefert.


    cu,
    -ds-

Jetzt mitmachen!

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