In diesem Beitrag möchte ich mit dir das zwanzigste Türchen des Franzis Adventskalender für Arduino öffnen.
Wenn wir nun das Türchen öffnen, finden wir ein Stück Knete.
Laut Handbuch sollen wir diese Knete nutzen, um vereinfacht einen kapazitiven Touchsensor zu erstellen. Da ich die Schaltungen aus dem Handbuch nicht nachbauen bzw. vorstellen werde, denn dort sind ja freilich Schweiß, Blut und Zeit reingeflossen, werde ich dir andere Informationen rund um den Mikrocontroller Arduino zeigen.
Terminal Software Putty
Nachfolgend möchte ich dir das Tool Putty vorstellen. Dieses kann man nutzen, um die serielle Ausgabe vom Mikrocontroller auszulesen, ohne die Arduino IDE zu nutzen.
Das Tool Putty kannst du kostenfrei von der Seite https://putty.org/ als EXE-Datei herunterladen.
Features von Putty
Das Tool ist sehr mächtig und wir können damit Verbindungen zu nachfolgenden Geräten aufbauen.
- Server per SSH und Telnet,
- Mikrocontroller oder ähnlichen Geräten per serieller Schnittstelle
Des Weiteren können wir die gesamte Ausgabe in eine Datei umleiten und somit die Daten, welche wir Senden & Empfangen, speichern.
Im Nachfolgenden zeige ich dir ein kleines Video wo ich eine Verbindung zu einem Wemos D1 Mini aufbaue und dort auf dem Mikrocontroller in Micropython programmiere die gesendeten und empfangenen Daten werden dabei in einer Datei gespeichert. Die Datei lasse ich mir zusätzlich im Tool Baretail fortlaufend anzeigen.
Kleines Programm für den Arduino
Hier zunächst ein kleines Programm, bei welchem wir lediglich den aktuellen Wert des Drehpotentiometers auf der seriellen Schnittstelle ausgeben.
// Drehpotentiometer am analogen Pin A0 angeschlossen #define poti A0 int lastValue = -1; void setup() { //begin der seriellen Kommunikation mit 9600 baud Serial.begin(9600); } void loop() { //lesen des aktuellen Wertes des Drehpotentiometers int value = analogRead(poti); //Wenn der letzte Wert ungleich des gelesenen Wertes ist, dann... if (lastValue != value) { //speichern des gelesenen Wertes lastValue = value; //Ausgabe auf der seriellen Schnittstelle Serial.println(value); } }
Da wir die Daten später in eine Datei schreiben wollen, prüfen wir, ob der gelesene Wert ungleich letzten Wertes entspricht. Wenn dieser ungleich ist, dann wird dieser zwischengespeichert und auf der seriellen Schnittstelle ausgegeben.
Nachfolgend wollen wir nun in Putty fortfahren und müssen die Arduino IDE schließen.(Natürlich solltest du vorher das Programm auf den Mikrocontroller überspielen.)
Aufbau einer Verbindung mit Putty
Um eine serielle Verbindung mit Putty aufzubauen, muss man in der Oberfläche die Auswahl “Serial” wählen und im Eingabefeld “Serial line” den COM Port eintragen. Wenn du das Beispielprogramm wie oben gewählt hast, kann die Geschwindigkeit im Feld “Speed” mit 9600 baud belassen werden.
Wenn wir nun auf die Schaltfläche “Open” klicken, wird die Verbindung hergestellt und ein kleines, schwarzes Fenster geöffnet. In diesem Fenster sehen wir nun die Ausgabe des Mikrocontrollers.
Schreiben der Daten in eine Datei
Wie bereits erwähnt ist ein sehr nützliches Feature von Putty das Schreiben der Daten in eine Datei. Im nachfolgenden Video zeige ich dir einmal wie du Putty konfigurierst, um alle Ausgaben in eine Datei zu schreiben.
Erzeugen einer CSV Datei
Wir können nun mit diesem Feature eine CSV-Datei beschreiben und die Daten strukturiert ablegen.
Was ist eine CSV-Datei?
In einer CSV-Datei werden die Daten zeilenweise, kommasepariert abgelegt. Diese Datei können wir dann in zbsp. Microsoft Excel, Libre Office Calc einlesen und in zbsp. Diagramme umwandeln.
Anpassen des Programmes
Damit wir die Daten später weiterverwenden können, müssen wir unser Programm etwas anpassen.
In meinem Fall erzeuge ich in der ersten Spalte einen Index, welcher fortlaufend hochgezählt wird und in der zweiten Spalte den Wert des Drehpotentiometers.
// Drehpotentiometer am analogen Pin A0 angeschlossen #define poti A0 int lastValue = -1; long index = 0; void setup() { //begin der seriellen Kommunikation mit 9600 baud Serial.begin(9600); //Ausgeben der Tabellenüberschriften Serial.print("Idx"); Serial.print(";"); Serial.println("Wert"); } void loop() { //lesen des aktuellen Wertes des Drehpotentiometers int value = analogRead(poti); //Wenn der letzte Wert ungleich des gelesenen Wertes ist, dann... if (lastValue != value) { //speichern des gelesenen Wertes lastValue = value; //den Index um eins erhöhen index = index + 1; //Ausgabe auf der seriellen Schnittstelle Serial.print(index); Serial.print(";"); Serial.println(value); } }
Wenn wir dieses Programm auf den Mikrocontroller überspielen, dann wird im seriellen Monitor die Werte wie folgt ausgegeben.
Idx;Wert
1;914
2;913
3;914
Erzeugen der CSV-Datei mit Putty eines Diagrammes mit Microsoft Excel
Diese Daten schreiben wir nun in eine CSV-Datei und öffnen anschließend diese mit Microsoft Excel, um ein Diagramm zu erzeugen.