Effacer l'écran du terminal?
Je suis en train de lire des données à partir de 9 différents capteurs pour mon robot et j'ai besoin d'afficher tous de façon constante, dans la même fenêtre, donc je peux comparer les valeurs et voir si tout de la lecture est à l'arrêt.
Le problème, je vais avoir avec la Série.l'impression et l'écran lcd.l'impression est que les valeurs sont constamment en mouvement et je ne peux pas vraiment avoir un bon regard sur eux pendant le déplacement du robot.
Je pensais l'appeler quelque chose comme Série.clear() avant d'afficher quoi que ce soit d'autre, et à qui il suffit de garder les choses en équilibre et en un seul endroit, en changeant uniquement les valeurs.
De ce que j'ai trouvé jusqu'à présent, le numéro de Série.d'impression(17,BYTE), par exemple, est plus pris en charge (l'Appel de la touche ESC).
Donc...pour ceux qui ont un peu plus d'Arduino expérience...quelle est la bonne façon de le faire?
source d'informationauteur Eugen
Vous devez vous connecter pour publier un commentaire.
L'Arduino série du moniteur n'est pas régulière d'un terminal donc ce n'est pas possible d'effacer l'écran standard en utilisant les commandes du terminal. Je suggère à l'aide d'un émulateur de terminal, comme Mastic.
La commande pour effacer un écran du terminal est ESC[2J
À accomplir dans le code Arduino:
Source:
http://www.instructables.com/id/A-Wirelessly-Controlled-Arduino-Powered-Message-B/step6/Useful-Code-Explained-Clearing-a-Serial-Terminal/
Il n'existe aucun moyen pour effacer l'écran, mais, d'une manière très facile à faux, il peut être l'impression que beaucoup
Serial.println();
que vous devez garder toutes les anciennes données de l'écran.J'ai trouvé que l'ASCII 12 faire un alimentation dec'est une nouvelle page. voici une définition de wikipedia
Le code est
Arduino Résilier ne prend pas en charge le caractère mais Mastic un peu de l'open source client telnet peut le faire
Un Exemple de code
Vous pourriez essayer:
Qui fournira un retour chariot, de retour au début de la ligne chaque itération - qui devrait faire ce qu'on vous chasse? (Surtout si tout est de largeur fixe).
Trouvé bêtement un moyen simple de résoudre ce problème. Il suffit de les redimensionner la fenêtre de terminal pour seulement 1 ligne forte et il sera beaucoup plus facile à lire!
la meilleure façon que je peux penser à est de à l'aide de traitement il y a quelques introductions sur le net comme l'affichage des données en sériearduino graphique et arduino radar
Depuis Arduino est basé sur le traitement de ses pas difficile à apprendre
ESC est le caractère _2_7, pas _1_7. Vous pouvez également essayer décimal 12 (aka. FF, saut de page).
Noter que tous ces caractères spéciaux ne sont pas gérées par l'Arduino, mais par le programme sur le côté de réception. Ainsi, un standard d'Unix terminal (xterm, gnome-terminal, kterm, ...) gère un ensemble différent de séquences de contrôle puis dire un Windows programme de terminal comme HTerm.
Par conséquent, vous devez spécifier le programme que vous utilisez exactement pour l'affichage. Après cela, il est possible de vous dire ce que les caractères de contrôle et les séquences de contrôle sont utilisables.
Il n'est pas possible d'effacer le numéro de Série de la fenêtre Moniteur basés sur les données série.
Je peux penser à un couple d'options, le plus simple (et cheatiest) est d'utiliser
println()
avec une largeur fixe chaîne de caractères que vous avez généré qui contient vos données de capteur.L'IDE Arduino de Série du Moniteur
Autoscroll
case signifie que si vous avez la persistance d'envoyer la largeur fixe chaîne de caractères (avec 500ms retard peut-être) ce qui va donner l'impression qu'elle est mise à jour une fois qu'il pénètre à fond et commence à défiler. Vous pouvez également réduire la hauteur de la fenêtre pour la faire ressembler il ne dispose que d'une seule ligne.Pour accomplir une largeur fixe chaîne de caractères qui est adapté pour une série
println()
vous aurez besoin des fonctions permettant de convertir vos valeurs de capteur à cordes, ainsi que des tapis de garniture à une persistance de la taille. Puis concaténer les valeurs (y compris les séparateurs si il rend les données plus faciles à lire)Une sortie de quelque chose de semblable à cela est ce que je suis en faisant allusion à:
Toutes les choses ont considéré, ce n'est pas une bonne solution, mais il serait d'obtenir un résultat.
Un bien plus intelligent idée est de construire un autre programme à l'extérieur de l'Arduino et c'est l'IDE qui écoute le port com pour des valeurs de capteur envoyés à partir de l'Arduino. Votre Arduino programme aura besoin pour envoyer un message à votre programme externe peut interpréter sans équivoque, quelque chose comme
1=0.5;
où 1 = l'ID du capteur et de 0,5 = valeur de la sonde. Le programme externe serait alors conserver ces valeurs (1 pour chaque capteur). Le programme externe peut ensuite afficher ces informations de quelque manière que vous le souhaitez, une belle sortie de la console serait relativement facile à réaliser 🙂C#
a.NET
'sserialport
classe qui est un plaisir à utiliser. (la plupart du temps!)Python dispose d'un module appelé
pyserial
qui est aussi facile grande.Une ou l'autre langue vous donnera beaucoup plus de contrôle sur la sortie de la console, si vous choisissez de procéder de cette façon.
Si vous modifiez le débit en bauds par exemple, en arrière et en avant, il efface le numéro de Série de la fenêtre Moniteur dans la version 1.5.3 de l'IDE Arduino pour Intel Galileo développement
Autre coup de pied à la can:
Vous pourriez faire:
ou si vous le souhaitez:
J'ai fait ce
simple function
de réaliser ceci:Il fonctionne bien pour moi dans le
default terminal