Digitaler Messschieber – Arduino Android serielle Verbindung

Sending the caliper data through a serial connection to an android tablet.
Sending the caliper data through a serial connection to an android tablet.

Für ein komfortables Ablesen und Interagieren werden die Daten des Messschiebers an ein standard Android Tablet gesendet. Der Datenaustausch geschieht über eine serielle USB Verbindung. Um die Verbindung aufzubauen bietet Android den UsbManager, mit dem die Liste der angeschlossenen Geräte abgefragt und nach Hersteller-ID und Produkt-ID durchsucht werden kann. Um die IDs zu bekommen kann beispielsweise lsusb unter Linux oder USBView unter Windows verwendet werden.

Sobald das Gerät gefunden wurde, muss vom Anwender die Zugriffsberechtigung abgefragt werden. Ein BroadcastReceiver wird genutzt, um die asynchrone Antwort zu bearbeiten. Nach dem Erhalt der Berechtigung wird UsbDevice verwendet, um die passenden Schnittstelle/Endpunkte zu finden. Baudrate etc. kann manuell eingestellt werden, indem die passenden UsbDeviceConnection.controlTransfer(...) Aufrufe gesendet werden. Die korrekten Parameter für diese Aufrufe sind unter Umständen etwas schwer zu bekommen und müssen evtl. in der Dokumentation des USB-Adapters nachgeschaut werden. Alternativ kann auf eine USBSerial Bibliothek wie https://github.com/felHR85/UsbSerial zurückgegriffen werden.

In der verwendeten Konfiguration läuft die Kommunikation mit 115200 8N1 über die „bulk transfer endpoints“ ohne bemerkbare Verbindungsprobleme.
Um die Datenübertragung zu organisieren kommt ein simples Request-Response Protokoll zum Einsatz. Der Mikrocontroller wartet auf einen Request vom Android Hostsystem. Der Standardrequest („0x01“) ordnet das Lesen und Übertragen des Messwertes an. Um den Wert zu erhalten, wartet der Mikrocontroller an der Taktleitung auf eine ausreichend lange Pause, um sicherzugehen, dass ein neuer Messwert beginnt. Weiteres Pollen der Taktleitung und entsprechendes Auslesen der Datenleitung ergibt dann die 24 Datenbits der LCD-Anzeige. Der Messwert wird als Integer in zwei Bytes zum Host zurückgesendet. Dieser sammelt die eingehenden Bytes, bis eine Antwort vollständig ist und zeigt anschließend den neuen Messwert an.

Nächste Schritt: Erweiterung der Oberfläche mit Funktionen zum Voreinstellen von Werten etc. Anschließend wird es dann Zeit die Elektronik an der Drehbank anzuschließen.

Digitaler Messschieber – Verbindungsschaltung

Der Messschieber wird von einer 1.4v Batterie versorgt und kann nicht direkt mit den für Mikrocontroller üblichen 5v betrieben werden. Wie viele ähnliche Controller hat auch der ATMEGA einen 3V3 Ausgang. Es gibt Berichte über einen erfolgreichen Betrieb solcher Messschieber mit 3,3v aber bei diesem konkreten Gerät war das nicht möglich. Daher sind für die Verbindung zwei Schritte notwendig. Die Spannungsversorgung muss runtergeregelt werden, um den Messschieber zu versorgen und dessen Ausgangssignale müssen zu ~5v hochgewandelt werden, damit der Mikrocontroller sie als Eingänge nutzen kann. Für die Spannungsversorgung kommt ein Shunt-Regulator mit 470Ω Widerstand und zwei Dioden zum Einsatz. Die Signale werden mittels Transistoren (BC548C) und pro Signal einer Emitterschaltung auf ca. 5V angehoben. Für eine flexible Verbindung zwischen Messschieber und Anschlussplatine wird ein USB-Kabel (A/B) genutzt.

zur Projektseite

Digitaler Messschieber für die Boley Drehbank

Simple digital caliper
Einfacher digitaler Messschieber

Das Ziel ist es, einen digitalen Messschieber zu verwenden, um die Bewegung des Querschlittens an der Boley-Drehbank zu messen. Ein gewöhnlicher digitaler Messschieber wird für die ersten Tests verwendet. Für den Verfahrweg des Querschlittens ist in diesem Fall ein Messschieber mit 150mm Weg ausreichend. An Stelle eines Handschiebers sind auch Anbaumessschieber verfügbar. Diese kosten jedoch üblicherweise mindestens das Doppelte des normalen Handschiebers und lassen sich an dieser Drehbank dennoch nicht ohne unfamgreiche Modifikationen befestigen.

Für eine komfortable Verwendung wird eine digitale Anzeige benötigt. Der Messschieber wird unter dem Querschlitten verborgen sein und besitzt nur ein kleines Display. Daher soll der Messschieber über einen Mikrocontroller ausgelesen werde, der dann wiederum mit einem Tablet kommuniziert um Eingabe und Ausgabe abzuhandeln.

Der erste Schritt besteht darin den Messschieber zu demontieren und vier Adern an den vorhandenen Datenausgang anzulöten. Passende Stecker sind nur schwer zu bekommen und kosten häufig mehr, als der Messschieber selbst. Auf dem Oszilloskop zeigt sich, dass Takt- und Datensignal funktionieren und dass der Messschieber ein 6×4 Bit protocol verwendet. Der zweite Schritt besteht darin, die Stromversorgung des Messschiebers über den Mikrocontroller (Arduino kompatible Entwicklerplatine mit ATMEGA328P-PU) laufen zu lassen.


zur Projektseite