Terminal-Programm mit zeitgesteuerte Zeilenausgabe

OP #5316492
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
OP #5319044
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
#5319069
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.
#5319093
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.
Angehängte Dateien:
OP #5322348
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.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren