Die Tinymovr CAN-Bus-Schnittstelle, die wir vor einigen Jahren veröffentlicht haben (und die immer noch in fast allen Geräten verwendet wird), stößt an ihre Grenzen, da der Funktionsumfang des Controllers erweitert wurde und die Anzahl der Zustandsvariablen zugenommen hat. Darüber hinaus bot die flache Struktur der Gerätebeschreibung eine eingeschränkte, flache Sicht auf die internen Abläufe des Geräts.
In Anerkennung dieser Mängel haben wir unsere Next-Gen-Firmware und Studio-Software entwickelt, um die Konfiguration und den Betrieb eines Tinymovr-Systems so einfach wie möglich zu gestalten, gleichzeitig vollen Zugriff auf seine internen Abläufe zu ermöglichen und die Erweiterbarkeit für die Zukunft zu gewährleisten.
Avlos RPC
Zur Unterstützung dieses Vorhabens haben wir ein leichtgewichtiges Remote Procedure Call Templating-System und eine Bibliothek namens Avlos entwickelt. Avlos verwendet eine YAML-Datei, um das eingebettete Gerät als Baumstruktur zu definieren. Ein Beispiel-YAML, das ein vereinfachtes Gerät (einen Toaster!) beschreibt, ist unten dargestellt:
name: toaster
version: "1.0"
remote_attributes:
- name: sn
dtype: uint32
getter_name: toaster_get_sn
summary: The unique device serial number.
- name: heater
remote_attributes:
- name: temperature
dtype: float
unit: celsius
getter_name: toaster_get_heater_temp
summary: The toaster heater temperature.
- name: relay
remote_attributes:
- name: relay_state
dtype: bool
getter_name: toaster_get_relay_state
setter_name: toaster_set_relay_state
summary: The toaster heating relay element state.
Mit der obigen Gerätespezifikation kann Avlos automatisch Code zur Implementierung eines Kommunikationsprotokolls für das eingebettete Gerät (in C) und eine Python-Bibliothek zur Verwendung durch den Client generieren. Darüber hinaus generiert Avlos RestructuredText-Dokumentation, C++-Client-Code (z. B. zur Verwendung mit Arduino) und CAN-DBC-Dateien. Wir planen, in naher Zukunft weitere Generatoren hinzuzufügen, wie z. B. für Rust und Markdown-Dokumente.

Cross-Plattform Studio GUI
Wir haben eine plattformübergreifende GUI auf Basis von Qt entwickelt, um neuen Benutzern den Einstieg in die bürstenlose Motorsteuerung zu erleichtern. Die Studio-GUI bietet einen umfassenden Überblick über den Zustand und die Konfiguration des Controllers, sodass Sie mühelos beliebige Attribute überprüfen und ändern, mehrere Werte gleichzeitig grafisch darstellen, mit mehreren Tinymovr-Knoten arbeiten, Diagramme speichern und exportieren sowie Ihre Konfigurationen importieren oder exportieren können.

CLI Studio App
Die CLI-App bleibt bestehen und wird nicht verschwinden! Tatsächlich hat die CLI einige Verbesserungen erhalten, sodass sie nun den internen Zustand von Knoten und deren verschachtelte Attribute klarer darstellt und die automatische Erkennung von Knoten am Bus ermöglicht.
Python-Bibliothek
Die Python-Bibliothek ist ein flexibles Gateway zur Steuerung Ihrer Tinymovr-Knotenflotte! Die Bibliothek bietet Funktionen zur Erkennung und Initialisierung von Tinymovr-Knoten am CAN-Bus in einer geschichteten Architektur, die es ermöglicht, nur das zu verwenden, was benötigt wird. Sie können beispielsweise das Discovery-Modul den Bus überwachen lassen und Knoten initialisieren, sobald sie erscheinen, oder Sie können die Knoten selbst initialisieren, wenn Sie bereits wissen, welche vorhanden sind. Wir dokumentieren die Bibliotheksfunktionen noch und verbessern und erweitern ihre API, um eine bessere Entwicklererfahrung zu bieten.
Arduino- und ROS-Bibliotheken
Wir sind dabei, unsere Arduino-Bibliothek auf Firmware 1.x zu aktualisieren und gleichzeitig die Funktionalität zu erweitern, um die vollständige Controller-Konfiguration und den Betrieb von einem eingebetteten Arduino-System aus zu ermöglichen. Wir fügen dabei weitere Beispiele für Arduino UNO, MKR1000 und ESP32 hinzu.
Schließlich befindet sich unsere Tinymovr ROS-Hardwareschnittstelle in einem fortgeschrittenen Entwicklungsstadium und wird sehr bald veröffentlicht. Ihre Struktur und Funktionalität werden wir in einem separaten Blogbeitrag behandeln.
Wir haben auch ein kurzes Einführungsvideo vorbereitet, schauen Sie es sich unten an!
Wir freuen uns über dieses wichtige Update und würden uns über Ihr Feedback sehr freuen, also besuchen Sie das Github-Repository, um loszulegen!
Viel Glück und viel Spaß!