Standalone an PC anbinden - welche Optionen?

Hallo zusammen,

nachdem mein erster Standalone läuft, würde ich gerne den Uno+Ethernet Shield durch einen Standalone ersetzen.
Anforderungen:

  • "normaler" Standalone
  • Verbindung mit PC (Bidirektional) für kleinere Daten-Pakete - Ethernet ist hier keine Pflicht
  • einfach umzusetzen
  • preiswert (da ich sonst einfach beim Uno+Shield oder Uno-USB-Kabel bleiben könnte)
  • von der Programmierung her beherrschbar oder gleich passende Arduino-Lib verfügbar

Die Variante mit dem FT232RL (USB2Serial Breakout) ist bekannt und hinreichend dokumentiert. Allerdings kostet das Teil mit 15€ unwesentlich weniger, als ein kompletter UNO - würde also keinen Sinn machen.

Ethernet würde beispielsweise über Wiznet gehen - nur ist das noch teurer. Eine Alternative wäre ENC28J60. Als Modul habe ich es schon um die 10€ gesehen. Am günstigsten wäre es wohl, das selbst gleich mit zu verdrahten - aber da wird es schon recht kompliziert (Siehe Arduino Ethernet Using ENC28J60 | maniacbug).

Eine andere Option ist RS232. Hier braucht man nur einen Signalwandler aber viele neuere Boards (auch mein Server) haben den Port garnicht mehr.

Ziel meines Threads ist daher, einfach mal rumzufragen, welche Optionen Euch noch einfallen und was ihr evtl. schon ausprobiert habt.

Ein paar Ideen habe ich noch:

  • Verwendung von vorhandener "alter" Hardware, wie z.B. Netzwerkkarten oder alten Routern (bzw. Mini-PCI-Wlan-Karten daraus)
  • Direkte Nutzung von USB ohne den Umweg über RS232, z.B. über V-USB

Vielen Dank für Eure Antworten,
Michael.

mwyraz:
Die Variante mit dem FT232RL (USB2Serial Breakout) ist bekannt und hinreichend dokumentiert. Allerdings kostet das Teil mit 15€ unwesentlich weniger, als ein kompletter UNO - würde also keinen Sinn machen.

USB-TTL Adapter.

Die einfachen mit PL2303HX Chip kosten beim Chinaversender knappe 2 EUR.

Vielen Dank für die schnelle Antwort. Was bedeutet "TTL"? Und wie würde ich das am Arduino anschließen?

TTL ist die Abkürzung von Transistor Transistor Logik, einer Variante der digitalen Bausteine. Sie haben die Nummer SN74AAxxx wobei xxx eine nummer ist die den baustein identifiziert und AA die Familie beschreibt.

Bei einer Seriellen Schnittstelle ist mit TTL die Signalpegel LOW: 0V und HIGH: 5V (3,3V) gemeint. Dies zum Unterschied einer RS232 Schnittstelle, die zwar die gleichen Sendeprotokolle verwendet aber HIGH zwischen -3 und -25V und LOW zwischen +3V und +25V definiert.

Wenn Du ohne extra USB-Seriel Converter auskommen willst dann ein Leonardo-Clon zb Arduino Micro

Grüße Uwe

mwyraz:
Vielen Dank für die schnelle Antwort. Was bedeutet "TTL"? Und wie würde ich das am Arduino anschließen?

Seriell-TTL steht für eine serielle Schnittstelle, die mit 0V/5V als Pegel arbeitet.
Also genau das, womit auch die Arduino-Boards arbeiten.

Einen USB-TTL Adapter schließt Du per USB am PC an, und am Arduino an Pin 0 und 1 (RX/TX), GND und 5V, dann wird der Arduino über USB mit Strom versorgt und er hat die normale Hardware-Serial an Pin 0 und 1, die von der Arduino-Software unterstützt wird.

Anschluß an anderen Pins und Nutzung von Softwareserial ist natürlich auch möglich.

Wenn Du außerdem einen Reset-Taster in der Schaltung vorsiehst und der Controller einen Bootloader drauf hast, kannst Du den Arduino in Deiner Schaltung sogar mit diesem Adapter über den Bootloader programmieren (wobei der Reset-Taster manuell bedient werden müßte).

Gib mal bei ebay als Suchbegriff "PL2303HX" ein und aktiviere "weltweit", aufsteigend vom niedrigstens Preis, da erscheinen dann (außer den nackten Chips) diverse Anbieter aus China mit kleinen Adapter-Boards für teils unter 2 EUR zusammen mit einem Satz Anschlußkabel.

Im Prinzip tut es aber auch jeder andere USB-TTL-Seriell Adapter, wie natürlich auch der von Dir genannte FTDI-Adapter für 15 EUR.

Vielen Dank für die Erklärung. Das Teil bei E-Bay 111012880656 sollte es doch auch tun? Ist zwar etwas teurer (3,50€ statt <1,50€ beim Chinesen), wird dafür aber aus DE geliefert. Damit würde doch auch der komplette Spannungswandler-Teil des Standalone entfallen, oder?

Ich habe mir allerdings das Thema Ethernet nochmal näher angeschaut. Vorteil hier ist, dass ich einen Arduino einfach irgendwo im Haus platziere und per UDP-Broadcast damit kommunizieren kann. Das ENC28J60 soll wohl nicht so die Welt sein, dafür habe ich einen interessanten Artikel zum WIZ820io gefunden:
http://forums.adafruit.com/viewtopic.php?f=25&t=30368

Hat damit hier schon jemand Erfahrung gesammelt? Das Teil ist wunderbar kompakt und vollständig. Allerdings habe ich nur einen Händler gefunden, bei dem es incl. Versand 25€ kostet. Beim E-Bay-Chinesen habe ich es noch garnicht gesehen. Gibt's ähnliche Alternativen?

Viele Grüße,
Michael.

mwyraz:
Das Teil bei E-Bay 111012880656 sollte es doch auch tun? Ist zwar etwas teurer (3,50€ statt <1,50€ beim Chinesen), wird dafür aber aus DE geliefert. Damit würde doch auch der komplette Spannungswandler-Teil des Standalone entfallen, oder?

Ja, das ist ein völlig vergleichbares Modul mit PL-2303HX.

Ja, wenn das Ding am USB des PC hängt, dann kann es den Arduino nicht nur mit seriellen Daten, sondern auch mit Strom versorgen, so daß in der Arduino-Schaltung dann keine weitere Stromversorgung mehr benötigt wird und ein Spannungswandler ebenso entfallen kann wie eine externe Stromversorgung. Wenn der 5V-Pin des Moduls mit den Arduino 5V-Pins verbunden wird, dann darf sogar gar keine externe Stromversorgung zusätzlich vorhanden sein, sonst gibt's einen Kurzschluß zwischen beiden Stromversorgungen.

Also bei zusätzlich vorhandener externer Stromversorgung gut aufpassen: Entweder externe Stromversorgung mit Spannungswandler für den Arduino, oder Versorgung vom USB-TTL-Adapter mit Spannung, aber nicht beides gleichzeitig (ohne dass zusätzliche Schutzmaßnahmen in der Schaltung den inneren Kurzschluß der Stromquellen verhindern).

Ich habe einen Adapter von USB auf 9-pol. Sub-D Anschluss von Digitus DIGITUS: DIGITUS - Home, der hat auch einen FTDI-Chip.
Ist doch im Prinzip das gleiche Gerät, oder? Könnte ich diesen Adapter auch verwenden, wenn ich mir ein passendes Kabel für den Sub-D Anschluss bastel?

Spexx:
Ich habe einen Adapter von USB auf 9-pol. Sub-D Anschluss von Digitus DIGITUS: DIGITUS - Home, der hat auch einen FTDI-Chip.
Ist doch im Prinzip das gleiche Gerät, oder? Könnte ich diesen Adapter auch verwenden, wenn ich mir ein passendes Kabel für den Sub-D Anschluss bastel?

Nein, RS232 arbeitet mit anderen Pegeln.
Die TTL-Seriell Logik-Pegel an Deinem Arduino sind: Low=0V, High=5V
Die RS232-Seriell Logik-Pegel an RS232 sind ca.: Low=-10V, High=+10V (mit erlaubten +/- Toleranzen)

Ein RS232 ist also nicht nur von der Anschlußbuchse her der falsche Adapter, um einen Arduino am PC anzuschließen, sondern auch die Spannungspegel sind falsch.

Damit ist es nicht getan. Dieser Adapter stellt einen richtigen Com-Port zur Verfügung, dessen Pegel würden deinen Mikrocontroller schnell ins Jenseits befördern. Du bräuchtest zusätzlich noch einen Pegelwandler wie den MAX232.

sth war schneller :
Zum Max232 IC, wie er z.B. hierverwendet wird, mit Datenblatt

Wenn du (von früher) noch serielle Kabel mit 9pol Steckern (Modem) und schon diesen USB->RS232 Adapter hast, evtl. eine Lösung, sonst eher ein Umweg.

Ok danke für die Info, dann lass ich es lieber bleiben und besorg mir erstmal so ein billiges China-Teil :slight_smile:

Spexx:
Ok danke für die Info, dann lass ich es lieber bleiben und besorg mir erstmal so ein billiges China-Teil :slight_smile:

Es gäbe natürlich auch TTL-RS232 Adapter (mit MAX3232 Chip), dann könntest Du eine längere Übertragungsstrecke aufbauen:

Controller => TTL-RS232 Adapter =========================> RS232-USB Adapter => PC

Aufgrund der höheren und gegenläufigen Spannungspegel kannst Du mit RS232-Pegeln längere störungsfreie Übertragungsstrecken aufbauen als mit 5V-Pegeln. So kannst Du bei 9600 Baud mit RS232 Pegel locker Kabellängen von 150 Metern zuverlässig überbrücken.

Aber wenn die zu überbrückende Strecke nur kurz ist, dann nimmst Du nur:
Controller => TTL-USB Adapter => PC

Ich hab inzwischen den TTL-USB Adapter von E-Bay im Dauereinsatz - leider kann ich den nicht empfehlen. Für den verbauten Chip (PL-2303HX) gibt es keinen offiziellen Treiber für neuere Windows mehr (im Netz lässt sich noch einer finden). Unter Linux kommt es nach ca. 10-15 Minuten zum kompletten Daten-Stillstand. Derzeit lasse ich mein Progrämmchen alle 2 Minuten per Script beenden und neu starten - damit läuft es rel. stabil.

Sehr interessant finde ich auch diesen Ansatz: Arduino Forum - ein Ethernet zu RS232 Adapter mit TTL-Anschluss. Damit kann man vermutlich direkt RX/TX mit Ethernet verbinden - der Arduino sollte sich so sogar programmieren lassen?