2mm/(1024 Schritte pro 2mm) = 1,953125 μm
erhalten, was für meine Anwendungen ausreichend ist. Ich verwende ein Prozessorkern des ESP32 Dual-Prozessors um kontinuierlich die digitalen Ausgänge des AS5311 zu überprüfen. Wird zuerst A, dann B logisch Wahr so wird der Sensor nach rechts über den Magnetstreifen geführt. Folgt das Signal von B dem digitalen Signal von A, dann wird der Sensor nach links bewegt.
Der zweite Kern des Chips wird dazu verwendet, um die Sensorwerte von X-, Y-, und Z-Achse an die jeweiligen Ausgabemedien zu senden. Zuerst habe ich mir die Sensordaten in der Arduino IDE Konsole ausgeben lassen. Die Schritte müssen dann lediglich in mm umgerechnet werden und schon erhält man den aktuellen Messwert (bei mir alle 10μs übermittelt). Schon hier können die X-, Y- und Z-Achse parallel ausgelesen und verfahren werden.
Die Auslesegeschwindigkeit ist schnell genug und es werden auch (soweit ich das messen konnte) keine Schritte übersprungen. Anbei ein Video zu dem Testaufbau:
https://www.youtube-nocookie.com/embed/OVo0Gn5OUf0?rel=0
Nun wollte ich mir die Koordinaten noch in die „TouchDro“ - App von YurisToys übertragen lassen. Dazu habe ich in den Source-Code überfolgen und festgestellt, dass die Messdaten vom Texas Instruments-Board in Klartext in folgendem Format übermittelt werden: „X52363;Y9383;Z232;“. Dies würde dann folgenden Koordinaten entsprechen:
X= 2mm/(1024 Schritte)*52363 Schritte= 102.271mm
Y= 2mm/(1024 Schritte)*9383 Schritte= 18.326mm
Z= 2mm/(1024 Schritte)*232 Schritte= 0.453mm
Damit diese Werte in der TouchDro-App auch richtig interpretiert werden, muss bei den CPI (Schritte pro Inch) ein Wert von 13004,8 eingestellt werden. Diese Daten können über den internen Bluetooth-Chip versendet werden. Das Ergebnis sah dann wie folgt aus:
https://www.youtube-nocookie.com/embed/9-af8HS0XqI?rel=0
Nun will ich zusätzlich auch noch die Koordinaten auf einer 8-bit 7 Segment-Anzeige anzeigen lassen, damit ich auch ohne TouchDro die Messwerte immer sehen kann. Außerdem wird zusätzlich noch ein „Nullsteller“ eingebaut werden, damit man auch ohne App die Messewerte stellen kann.
Dazu habe ich mir Leiterplatten erstellt und diese in China fertigen lassen. Ich habe mir zusätzlich auch die Option auf dem PCB gelassen, dass nachher noch ein LCD-Display integrieren kann.
Sobald das PCB und die 7-Segement-Anzeige bei mir angekommen sind, werde ich den Artikel aktualisieren. Mein Plan ist, dass die Koordinatenanzeige dann in etwa so aussehen soll:
Ein kleines Update zu dem Projekt
Die 7-Segment-Anzeige ist nun angekommen und ich habe mein Programm so verändert, dass die aktuelle Position des Lesekopfs (AS5311) auch dort noch angezeigt wird. Da ich nun weiß, dass alle Achsen und alle GPIO-Pins funktionieren, lasse ich mir nun meine Leiterplatte herstellen und baue meine Gehäuse.
https://www.youtube-nocookie.com/embed/CpXx3VM21KU?rel=0
Nun ist die Leiterplatte aus China angekommen und ich konnte die Verkabelung testen. Alle drei Achsen und alle Nullsteller funktionieren einwandfrei.
https://www.youtube-nocookie.com/embed/H3wIuVZZggI?rel=0
Ich habe nun endlich alle Boards verkabelt und die Sensoren an die USB-Kabel verlötet. Nun konnte ich zum ersten mal alle drei Achsen gleichzeitig Testen. Bei den Nullstellern habe ich nun eine Haltezeit von ca. 1.5 Sekunden eingestellt. Somit will ich verhindern, dass man versehentlich die Anzeige nullt.
Hier auch noch zwei Bilder vom "Making-Of"..
AS5311 boards mit USB-Kabeln verlötet und zur Sicherheit mit Heißkleber gesichert:
Die Verwüstung auf dem Esszimmertisch während dem Zusammenbau der Leiterplatte:
Die Messwerte springen hier an manchen Achsen, da der Abstand zwischen den Magnetstreifen und dem AS5311 nicht korrekt ist, da ich die Magnetbänder einfach an die Sensoren gelegt habe. Eigentlich sollte ein Maximalabstand von ca. 0.2mm eingehalten werden. Entfernt man die Sensoren, dann fangen die Sensoren an zu "flackern".
https://www.youtube-nocookie.com/embed/kEjdygJrZmQ?rel=0
Beim Gehäuse für die Leiterplatte und den Leseköpfen habe ich mich für einen 3D-Druck entschieden, da ich so zum Einen kein Gehäsue exta dafür kaufen musste und zum Anderen bereits für alle meine Bauteile Verschraubungslöcher und Ausbrüche vorsehen konnte. Die 3D-Daten (step und stl) können unter folgendem Link am Ende des Artikels heruntergeladen werden.
Anbei noch einige Bilder des 3D-Drucks für den Lesekopf:
Und natürlich auch für die Leiterplatten:
Das Projekt "selbst gebauter Dro" ist nun fertig. Der Dro kann natürlich gerne nachgebaut werden. Jedoch werde ich nicht die ESP-Programmierung veröffentlichen. Der Vorprogrammierte ESP kann jedoch über mich bezogen werden.
Anbei noch die Stückliste und die Links zu den einzelnen Produkten.
Stückliste für einen 3-Achsen-Dro
- 3x AS5311-TS_EK_AB
- 3x Magnetstreifen je nach Achsenlänge
- 1x ThorstDro PCB inkl. Micro USB Breakout boards + programmierter ESP32
- 3-4x USB-Kabel
- 3x Taster Schließer
- 3D-Drucker für ein Gehäuse oder ein Gehäuse suchen und bearbeiten
- Jumper- oder normale Kabel