Bash, serielle I/O und Arduino

So, ich bin in ein bisschen über meinen Kopf, und ich fühle mich wie ich bin sehr nahe an einer Lösung, aber es funktioniert einfach nicht ganz. Hier ist meine situation:

Ich arbeite mit einem Arduino-mikrocontroller, und ich bin versucht zu schreiben, zwei Bash-Skripte (jetzt mit Mac OS X 10.6), die (a) drucken alle seriellen Daten kommen aus dem Arduino-Einheit, um die standard-Ausgabe, und (b) lassen Sie mich senden von seriellen Daten an das Arduino-Einheit. Diese Skripte werden dann aufgerufen werden, mithilfe von Adobe AIR NativeProcess-API ermöglichen eine nahtlose integration zwischen der Arduino-Gerät und eine Flex Adobe AIR Anwendung.

Meine beiden Skripte sind sehr einfach -

Hier ist meine WriteToSerial.sh Skript:

echo $1 > $2

($1 ist natürlich mein string, $2 ist die Lage des serial-port - derzeit /dev/tty.usbserial-A800eIUj)

Und hier ist meine ReadSerialOutput.sh Skript:

tail -f $1

($1 ist die Lage meiner seriellen port, derzeit /dev/tty.usbserial-A800eIUj)

Wenn ich eines der beiden Skripte (oder auch wenn ich nur geben Sie die Befehle direkt in die Bash-Konsole), mein computer hängt - ich kann Zeichen eingeben, aber es passiert nichts, bis ich die Strg + C aus dem Prozess.

Allerdings, wenn ich öffnen Sie die Arduino-IDE und schalten Sie den Seriellen Monitor, dann tail -f den port, schließen Sie den seriellen monitor und dann echo "test" > Seriell-port, alles funktioniert einfach toll.

Dies lässt mich vermuten, dass das öffnen des Serial Monitor in der Arduino IDE ist irgendwie initialisieren der seriellen Schnittstelle, was wiederum ermöglicht es mir, mich Schwanz es kein problem. Dies wiederum lässt mich vermuten, dass ich bin einfach zu fehlerhaften Eingabe eine Art Initialisierungs-Befehl. Jedoch, ich habe lange gesucht hoch und niedrig für Tage und kann nicht scheinen, nichts zu finden, der dieses Problem behebt.

Was ist die Lösung?

  • Das sollte ich hinzufügen - ich habe versucht, mit "stty -F /dev/tty.usbserial-XXXXX", aber ich bekomme "stty: illegal option -- -F" - das klingt nicht richtig für mich.
  • OK, also ich hab jetzt gelernt, dass -F und-Datei aus irgendeinem Grund nicht in meinem OS aber, dass "-f" funktioniert - also mache ich das, und immer noch keine Würfel.
  • Möglicherweise möchten Sie bitten, diese Frage auf electronics.stackexchange.com, Sie beschäftigen sich mit Fragen rund um Arduinos und embedded-Programmierung.
  • Seit tail ist immer zu laufen, bis Letzte Zeile, die erscheint nicht, bis serial bus geschlossen ist, finden Kopf sehr nützlich head --lines 1 < /dev/ttyUSB0
InformationsquelleAutor Myk | 2010-10-12
Schreibe einen Kommentar