Hallo Forum,
ich versuche seit Tagen bei einem Arduino Leonardo die SoftwareSerial
(RX/TX) zum Laufen zu bringen, es klappt aber einfach nicht. Ich habe
schon vieles versucht, schreibe hier mal ein Beispiel:
2 Arduino Leonardo (Leo1, Leo2) an einem Computer jeweils USB
Digitale Pins 0 von Leo1 mit Digital 1 von Leo2 verbunden und umgekehrt.
Programm auf Leo1 (schreibt auf der SoftSerial):
1
#include<SoftwareSerial.h>
2
SoftwareSerialsoftSerial(0,1);// Pin D0 ist RX, Pin D1 ist TX.
3
// Die Funktion softSerial() kann nun wie Serial() genutzt werden.
Die Programme waren umfangreicher, aber als alles nicht funktioniert
hat, habe ich es immer mehr vereinfacht.)
Nun habe ich Putty aufgemacht und mich mit Leo2 über COM9 verbunden.
Es kommt aber nichts an.
Was ist daran falsch ?
Die Digital-Pins 0 und 1 brauchst du nicht als Software UARTS zu
initialisieren, da es die Anschlüsse der Hardware UART sind.
Die Software UART Library ist eher für die Anschüsse bspw. D5 und D6
oder D10 und D11 gedacht.
Also entweder du initialisierst eine Software UART auf D10 und D11 oder
du nimmst die Hardware UART auf D0 und D1 und initialisierst es mit
"Serial1.begin(9600);"
Ich denke mal, es klappt nicht, da die Software UART Library
Interrupt-Pins benötigt.
Danke.
Ich habe es auch schon mit D8/D9 , D10/D11 probiert. Mit dem gleichen
Ergebnis - Putty zeigt nichts an.
Ich habe es jetzt mal mit Serial1 getestet (ohne SoftwareSerial) und
auch das klappt nicht.
Geht das denn überhaupt ?
Oder hat vielleicht bitte jemand mal ein kleines funktionierenden
Codebeispiel ? Ich komme da einfach nicht weiter.
danke, das hatte ich schon gefunden, klappt aber nicht.
Mache ich das überhaupt korrekt mit Putty? Ich lade erst das Programm
hoch und starte danach Putty.
An Hardwarefehler denke ich erstmal nicht, da ich es auch schon mit
anderen Arduinos getestet habe (bzw. wir haben, wir machen das zu
zweit).
Putty kenne ich nur für Telnet und so. Sollte aber auch für die Serielle
gehen. Was hast Du als Konverter? Irgendetwas USB2Serial?
Zeichne mal Deine Verschaltung auf!
Gruss Chregu
Manche Terminalprogramme empfangen Zeilenweise, sie zeigen nur etwas an,
NACHDEM sie einen Zeilenumbruch empfangen haben.
Versuche es mal mit Hammer Terminal, das benutze ich gerne.
So, vielen Dank, es läuft jetzt. freu*
Die Hinweise haben mir bei der Suche sehr geholfen!!
Die Kommunikation von einem Leonardo zu einem anderen klappt jetzt
sowohl über Serial1 (0/1) als auch über Softwareserial (8/9).
Aber mit meinem USB2Serial scheint tatsächlich etwas nicht zu stimmen.
Dieses Teil empfängt nichts von RX/TX. Und ich habe auch mal einen
Loopback Test gemacht. Toll - davon habe ich jetzt 2 kaputte Teile.
Wahrscheinlich irgendwelche Faketeile - waren auch ziemlich billig.
Eine Frage noch dazu: Der Sender-Leonardo muss ja eigentlich nicht über
USB angeschlossen sein, es würde doch eine Spannungsversorgung reichen,
oder ? Er "spricht" ja nicht mit dem PC.
Wenn ich ihn aber mit einer 5V Spannungsquelle betreibe und USB
rausziehe, sendet er aber nicht mehr.
Woran kann das liegen ?
Ach ja, als Terminalemulation empfehle ich HTerm. Wird zwar (momentan*)
nicht weiterentwickelt, ist aber am flexibelsten von Allen die ich
kenne!
*siehe anderer Thread
Gruss Chregu
HTerm ist schick, aber definitiv kein Terminalemulator.
Ein Terminalemulator wertet Steuersequenzen aus (z.B. zur
Cursorpositionierung, zur Veränderung von Textattributen oder zum
Bildschirmlöschen), alles das macht HTerm nicht.
Hallo Rufus,
ja, habe einerseits gesehen, dass HTerm als Terminal-Programm
abgepriesen wird. Was ist der Unterschied zu einer Terminal-Emulation?
Haben alle Terminals auch ESC-Sequenzen interpretiert? Gab's denn keine
mit Text-only?
Andererseits sind im Wikipedia-Artikel zu Terminalemulation auch
Software als Beispiele aufgeführt, die Text-only sind und einen Hinweis,
dass ausschliesslich ESC-Sequenzen interpretierende Programme
dazugehören, nicht vorhanden!
Gruss Chregu
Typewriter sind Schreibmaschinen. Es gab elektrische Varianten mit
seriellem oder parallelem Anschluss, die man zum Ausdrucken von Text
verwenden konnte.
https://www.mikrocontroller.net/attachment/183356/privilegElectronic4000.jpg
Typewriter beschreiben ein Papier Zeilenweise. Daher stammen die
Steuerzeichen CR (Carriage Return) und LF (Line-Feed), die bis heute
eine wichtige Bedeutung haben.
Als Logische Weiterentwicklung folgten bald Geräte mit Bildschirm, die
kein Papier mehr brauchten. Die einfachsten Varianten gaben einfach
seriellen Daten Zeilenweise aus, wie ihr Vorgänger mit Papier.
Einen Schritt Weiter waren die Terminals.
http://www.vecmar.com/images/wyse/WYSE-GPT_LG.gif
Mit solchen Geräten habe ich bis ende der Neunziger gearbeitet, um Unix
Server zu bedienen.
Terminals interpretieren bestimmte Zeichenfolgen als Steuerbefehl, um
zum Beispiel den Bildschirm zu löschen, zu scrollen, den Cursor zu
platzieren, und die Farbe zu wechseln. Davon gibt es zahlreiche
Varianten. Bei vielen Terminals (und Matrix-Druckern) begannen diese
Steuersequenzen mit dem ESC-Zeichen (0x1B).
Mit Terminals + Modem konnte man in den 90er Jahren (vielleicht auch
schon früher) an privaten Kommunikationsnetzten teilnehmen, man nannte
sie damals Mailboxen. Auf einem Server, für den man regelmäßig
Nutzungsgebühren zahlen musste, liefen Programme, die man remote
benutzen durfte. Hauptsächlich diesen sie dazu, elektronsiche Post
austutauschen, in Gruppen zu diskutieren und Dateien (primär
Hacker-Tools, Raubkopien und Erotik-Fotos) zu teilen.
Ebenfalls in den 90ern wurden Personal Computer allerdings so
preisgünstig, dass das Interesse an diesen Terminals sank. Stattdessen
nutzte man Terminal-Emulatoren. Ein ganz bekannter war Telix unter Dos.
Ich habe im Netz einen Spass-Screenshot gefunden, der zeigt, wie das
benutzerinterface einer Mailbox damals ausgesehen hat:
http://cdn4.spiegel.de/images/image-438337-640_panofree-bhfr-438337.jpg
Hier noch zwei andere (echte) Screenshots:
https://www.planet-source-code.com/upload_PSC/screenshots/PIC20023261754513424.gifhttp://www.nexit.com/images/nt_view.jpg
Hammer Terminal kann nur Plain Text darstellen und ist daher kein
Terminalemulator. Es ist eher ein für Entwickler gepipmter
Typewriter-Emulator.
Screenshot von Hterm:
http://www.opendcc.de/elektronik/animat/hterm_api.png
Was sagt denn die Gemeinde zu Putty? Das benutze ich normalerweise, um
zum Beispiel auf einem Web-Server etwas zu machen. Für diese Anwendung
wird Putty sehr häufig (vielleicht sogar meistens ?) verwendet.
Deswegen habe ich es zunächst auch hier eingesetzt und bin da auch nicht
der einzige. Und es funktioniert auch.
Aber ich lasse mich gerne überzeugen, wenn es etwas besseres gibt.
LG
Belo
Stefan U. schrieb:> Typewriter sind Schreibmaschinen.
Das Akronym TTY steht für Teletype, das war ein Fernschreiber. Ja, im
Prinzip eine Schreibmaschine, aber eben eine für Datenübertragung
ausgestattete. Das auf der Tastatur getippte konnte wahlweise
unmittelbar gedruckt oder über eine serielle Verbindung auf einen
entfernten Fernschreiber ausgegeben werden. Texte konnten auch auf
Lochstreifen gestanzt werden und von diesen wahlweise wiedergegeben oder
gesendet werden.
Ein typischer Fernschreiber hat bereits Steuerzeichen verstanden; neben
CR (Wagenrücklauf, d.h. Sprung an Zeilenanfang) und LF (Zeilenvorschub)
gab es noch BS (Backspace, Druckkopf einen Schritt zurückbewegen), FF
(Seitenvorschub) und BEL (Bell, Ertönen einer "Glocke" zur
Aufmerksamkeit) und einiges weiteres, die Übertragung und Steuerung des
Lochstreifenstanzers betreffend.
Da auf Papier gedruckt wurde, konnte man mit bestimmten Zeichenfolgen
Zeichen ausgeben, die nicht im Zeichensatz des Fernschreibers enthalten
waren. Die Teletype verwendete 7-Bit-ASCII (frühere Fernschreiber waren
noch eingeschränkter) und konnte daher keine Umlaute ausgeben. Mit der
Sequenz a<BS>" konnte man so zu einem ä kommen, oder mit |<b>3 zu etwas,
was man für ein ß halten konnte.
> Mit Terminals + Modem konnte man in den 90er Jahren (vielleicht auch> schon früher) an privaten Kommunikationsnetzten teilnehmen, man nannte> sie damals Mailboxen.
Das gabs schon in den späten 70ern und frühen 80ern, die Modems waren
damals allerdings oft akustisch an einen Telephonhörer gekoppelt (und
wurden deshalb Akustikkoppler genannt).
Mit den Dingern hat man atemberaubende 300 Baud Übertragungsrate
hinbekommen, wenn die Telephonleitung gut genug war.
Viele Benutzer nutzten das zusammen mit einem "Home Computer", da ein
richtiges Terminal einerseits im Heimbetrieb ohne Datenverbindung
ziemlich sinnlos und andererseits deutlich zu teuer war.
Ein sehr weit verbreiteter Standard für das, was man als Terminal
bezeichnet, ist das DEC VT100. Dessen Befehlssatz lebt in praktisch
jedem Betriebssystem als "ANSI" fort; unter DOS gab es dafür eigens
einen Devicetreiber namens ANSI.SYS.
Ein Terminalprogramm (also eines, das ich als Terminalprogramm
bezeichnen würde) muss mindestens den VT100-Befehlssatz unterstützen.
Das macht auch das unbeliebte Hyperterminal, das früher mit Windows
mitgeliefert wurde, Procomm, Teraterm, ZOC, putty ... die können das
alle.
Was ist dann HTerm? Es kann wie ein "Terminalprogramm" ASCII, aber kein
ANSI. Ich meine, es gibt/gab auch Terminals und deren Emulation, die nur
ASCII konnten, sowie auch Graphik. Bei v-term und Hyperterminal sind die
Einstellungen nur versteckter, und HTerm kann halt nur Plaintext.
Gruss Chregu
Christian M. schrieb:> Was ist dann HTerm?
Ein Schnittstellentestprogramm.
Denn es ist auch kein "Plaintext-Terminalprogramm", da es noch nicht mal
die rudimentären Steuerzeichen auswertet, die die gute alte Teletype
kannte.
Tobi hat das Ding schlichtweg ungünstig benannt (die Leute, die hinter
dem unsäglichen "Bray" stehen, aber auch).
> ASCII, aber kein ANSI.
Nicht verwechseln. ANSI steht bei einem Terminal nicht für die
Zeichencodierung, sondern für einen standardisierten Befehlssatz (der
dem des DEC VT100 sehr ähnelt). ANSI kann aber auch für eine
Zeichencodierung stehen - das ist insbesondere unter Windows üblich,
denn das ist die windows-eigene Standard-8-Bit-Codierung (und entspricht
weitestgehend ISO8859-1 oder "Latin 1").
Um die Unterscheidung vielleicht etwas einfacher zu machen: Mit einem
Terminalprogramm lässt sich über eine passende Schnittstelle z.B. ein
Texteditor wie nano oder vim bedienen, oder ein Email-Programm wie mutt.
Selbst ein primitiver Webbrowser wie lynx ist mit einem Terminal
nutzbar.
Mit Hterm aber lässt sich noch nicht mal so etwas wie edlin oder vi
(ohne m) nutzen.
Hast Du schon mal mit telnet o.ä. eine Linux-Konsole bedient? Das
Telnet-Programm hat mit Sicherheit eine Terminalemulation enthalten.
Rufus Τ. F. schrieb:> Hast Du schon mal mit telnet
Ja, habe schon mit Telnet gearbeitet. Da war aber nur Plain Text. Eine
Mail-Box.
Ich hatte auch schon ein Terminal, das mit dem Rechner verbunden war.
Auf dem Rechner hatte ich ein Terminal-Programm laufen. Welche Seite war
jetzt das Terminal? :-)
Ich will sagen, dass der Übergang wohl fliessend ist. Ein
Schnittstellentestprogramm, das auch Telnet usw. kann, kann mehr als
Terminalprogramm, dass nur RS232 und PlainText kann.
Gruss Chregu
Belo L. schrieb:> Was sagt denn die Gemeinde zu Putty?
Ich mag es nicht sonderlich (Bedienung), aber für die Abfrage am Arduino
ist es einwandfrei geeignet.
Diverse andere der hier genannten Programme kenne ich, es ist einfach
eine Frage der persönlichen Vorliebe, welches man verwendet.