Forum: PC Hard- und Software Terminal-Programm mit zeitgesteuerte Zeilenausgabe


von Marko R. (marko_rocznik)



Lesenswert?

Hallo,

Kennt einer von euch ein Terminal-Programm, dass ein Text-File einliest 
und es Zeile für Zeile über den COM rausschickt, wobei ich angeben 
möchte wie viel Pause er zwischen den Zeilen macht?

Mein Sohn hat den Arm zusammengebaut und gelötet. Jetzt spielt er 
erstmal damit indem er an den Potis dreht, er kann aber per COM Befehle 
schicken um die Servos anzusteuern:

Bsp.
100a
123b
80m

Nur darf das halt nicht alles mit einem Schlag ausgegeben werden, 
sondern z.B. jede 2te Sekunde eine Zeile.

Viele Grüße!
 Marko

: Verschoben durch User
von STK500-Besitzer (Gast)


Lesenswert?

htermn kann beides, aber nicht gleichzeit.

von guest (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> htermn kann beides, aber nicht gleichzeit.

Das hier:
https://sites.google.com/site/terminalbpp/
kann es zwar gleichzeitig, die delays allerdings nicht zeilenweise 
sondern nur bytweise.
Aber das Teil hat zusätzlich auch eine simple Scriptsprache über die man 
das gewünschte realisieren kann.

von Bernhard D. (pc1401)


Lesenswert?

Schau Dir mal Teraterm an: https://ttssh2.osdn.jp/index.html.en

Das enthält eine einfach zu benutzende und umfangreiche Skriptsprache, 
mit der sich Deine Aufgabe lösen lassen sollte.

Ich benutze das gerne zum automatisierten Ansteuern von Messgeräten über 
die serielle Schnittstelle. Funktioniert sehr zuverlässig.

von Chr. M. (snowfly)


Lesenswert?

Da es eh alles nur Textanwendungen sind warum den
nicht einfach eine Batch Datei?

oder Bash/Pearl/wasauchimmer Script
oder mit Scratch was zusammenklicken, da der Calilupe(?)
schon da liegt...

IMHO ideal um mit dem Programmieren anzufangen. :)

von Marko R. (marko_rocznik)


Lesenswert?

Mein 8-jähriger Sohn soll Befehle für den Roboterarm den er geschraubt 
und gelötet hat schreiben und rüber schicken. Daher suchte ich nach 
einer einfach anzuwendenden Lösung.

Scheint es aber nicht zu geben :-(

Ich schreibe selber ein kleines Progrämmchen. Wenn es fertig ist stelle 
ich es dann hier zur Verfügung, vielleicht kann es noch jemand anders 
gebrauchen.

Marko

von Bernd K. (prof7bit)


Lesenswert?

Marko R. schrieb:
> Daher suchte ich nach
> einer einfach anzuwendenden Lösung.
>
> Scheint es aber nicht zu geben :-(

Klingt nach nem dreizeiligen Python script

von long don (Gast)


Lesenswert?

Bernd K. schrieb:
> Klingt nach nem dreizeiligen Python script

Oder nach einem Bash-Einzeiler...

von Bernd K. (prof7bit)


Lesenswert?

long don schrieb:
> Bernd K. schrieb:
>> Klingt nach nem dreizeiligen Python script
>
> Oder nach einem Bash-Einzeiler...

Ich schlage vor eine kleine Python-API für den Roboter zu schreiben, 
dann kann er das Teil mit einfachen Python Scripts steuern, zuerst nur 
eine sequentielle Folge von Funktionsaufrufen
1
hoch(10)
2
rechts(20)
3
runter(10)

und später schrittweise lernen auch Kontrollstrukturen wie Schleifen 
oder bedingte Ausführung oder Funktionen zu erlernen unter Beibehaltung 
des bereits gelernten.

Mit diesen zeilenweisen Textdateien würd ich gar nicht erst anfangen, 
das ist eine Sackgasse.

: Bearbeitet durch User
von Marko R. (marko_rocznik)


Lesenswert?

Es geht darum dass mein 8(!)-jähriger seine ersten Schritte in der 
Robotik macht. Etwas Fleißarbeit schadet ihm da nicht, um so größer wird 
die Motivation mir zuzuhören was Schleifen sind ;-)

Marko

von Joachim S. (oyo)


Angehängte Dateien:

Lesenswert?

Ich habe vor einiger Zeit ein kleines Python-Skript namens 
"periodic_forward" geschrieben, das bei der Problemstellung helfen 
könnte (siehe Anhang).
Das Skript ist als (UNIX-)"Filter" aufgebaut und macht nichts anderes, 
als zeilenweise von der Standardeingabe einzulesen und nach einer 
einstellbaren Verzögerung auf die Standardausgabe zu forwarden.

Angenommen, die Befehle für den Roboter würden bspw. in einer Textdatei 
mit dem Namen "datei_mit_roboterarm_befehlen.txt" stehen, und alle zwei 
Sekunden soll ein neuer Befehl aus dieser Datei an die serielle 
Schnittstelle /dev/ttyUSB0 gesendet werden, dann könnte man das bspw. 
unter Linux mit obigem Skript so machen:
1
cat datei_mit_roboterarm_befehlen.txt | periodic_forward -p 2.0 > /dev/ttyUSB0
Sollte mit ähnlichen Befehlen vermutlich auch für Windows etc. 
funktionieren.

Die mit 1.46kb etwas kürzere Version loggt die gerade gesendete Zeile 
standardmässig noch auf STDERR; das könnte mglw. praktisch sein, weil 
man dann am Bildschirm parallel dazu noch sehen kann, welcher Befehl 
gerade gesendet wurde.

: Bearbeitet durch User
von +++ (Gast)


Lesenswert?

Da braucht Mann nuex programmieren.

Teraterm kann per Zeichen eine Verzoegerung und
eine per Zeile.

von Marko R. (marko_rocznik)


Angehängte Dateien:

Lesenswert?

Das mit dem Terminalprogramm hat sich erledigt. Der COM-Port wird mit 
dem Programmer geteilt und das Zeug stört sich gegenseitig. Ich habe ihm 
jetzt einfach gezeigt wie man das Teil direkt programmiert. Für mich das 
erste mal die Arduino-IDE genutzt. Ergebnis ist hier zu sehen:

https://www.youtube.com/watch?v=k_Gqy0jJNeM&feature=youtu.be

Ab da muss er jetzt selber weiterkommen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.