Dokumentation zur Einführung.
Firmware-Übersicht
Die Open Source Sex Machine (OSSM)-Firmware ist ein ESP32-basiertes Steuerungssystem, das Bewegungen, Benutzereingaben und Kommunikation für Ihr Gerät verwaltet. Dieser Leitfaden führt Sie durch die Projektarchitektur und hilft Ihnen beim Einrichten Ihrer Entwicklungsumgebung.
Kerntechnologien
Die OSSM-Firmware basiert auf vier Schlüsseltechnologien, die zusammenarbeiten, um eine reaktionsschnelle und zuverlässige Bewegungssteuerung zu ermöglichen.
Boost SML (State Machine Language) ist eine reine Header-C++-Bibliothek, die eine domänenspezifische Sprache zum Definieren von Zustandsmaschinen bereitstellt.
Warum wir es verwenden:
- Die Überprüfung der Zustandsmaschine zur Kompilierungszeit erkennt Fehler vor der Laufzeit
- Kein Laufzeitaufwand im Vergleich zu manuellen Switch-/Case-Implementierungen
- Eine saubere, deklarative Syntax macht komplexe Zustandsübergänge lesbar
- Behandelt Übergänge zwischen Zuständen wie Leerlauf, Betrieb, Fehler und Referenzfahrt
Die Zustandsmaschine regelt die Betriebsmodi des Geräts und sorgt so für sichere Übergänge und vorhersehbares Verhalten. Einzelheiten finden Sie in der Dokumentation Zustandsmaschinenarchitektur.
U8G2 ist eine monochrome Grafikbibliothek, die für eingebettete Systeme und OLED-Displays optimiert ist.
Warum wir es verwenden:
- Unterstützt eine breite Palette von Display-Controllern, einschließlich SSD1306 und SH1106
- Minimaler Speicherbedarf, geeignet für den begrenzten RAM des ESP32
- Integrierte Schriftartenwiedergabe mit mehreren Größen und Stilen
- Hardwarebeschleunigtes Zeichnen für reibungslose UI-Updates
U8G2 rendert die Schnittstelle auf dem Gerät, einschließlich Geschwindigkeit, Tiefe, Musterauswahl und Systemstatus.
FreeRTOS ist ein Echtzeit-Betriebssystemkernel, der Multitasking auf eingebetteten Geräten ermöglicht.
Warum wir es verwenden:
- Führt mehrere gleichzeitige Aufgaben aus (Bewegungssteuerung, Anzeigeaktualisierungen, Eingabeverarbeitung)
- Die prioritätsbasierte Planung stellt sicher, dass zeitkritische Bewegungsaufgaben zuverlässig ausgeführt werden
- Kommunikation zwischen Aufgaben über Warteschlangen und Semaphoren
- Standardmäßig in das ESP32-Arduino-Framework integriert
Mit FreeRTOS kann die Firmware gleichzeitig Benutzereingaben verarbeiten, die Anzeige aktualisieren und ein präzises Motor-Timing beibehalten.
StrokeEngine ist eine von theelims erstellte Bewegungsmusterbibliothek, die für OSSM-spezifische Anforderungen modifiziert wurde.
Warum wir es verwenden:
- Erzeugt sanfte, anpassbare Bewegungsmuster mit konfigurierbarer Geschwindigkeit und Tiefe
- Unterstützt mehrere Mustertypen (konstant, zufällig, oszillierend und mehr)
- Behandelt Beschleunigungsrampen zum Schutz des Motors
- Bietet Parameteranpassung in Echtzeit ohne Bewegungsunterbrechung
StrokeEngine übersetzt Benutzereinstellungen in präzise Motorbefehle und ermöglicht so die Vielfalt der in OSSM verfügbaren Bewegungsmuster.
Erste Schritte
Richten Sie Ihre Entwicklungsumgebung ein, indem Sie die folgenden Schritte ausführen.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Ein Computer mit Windows, macOS oder Linux
- Auf Ihrem System installiertes Git
- Eine Internetverbindung zum Herunterladen von Abhängigkeiten
Installieren Sie VS Code und PlatformIO
Laden Sie Visual Studio Code herunter, installieren Sie es und fügen Sie dann die PlatformIO-Erweiterung hinzu.
- Öffnen Sie VS Code
- Navigieren Sie zum Bedienfeld „Erweiterungen“ (Ctrl+Shift+X / Cmd+Shift+X).
- Suchen Sie nach „PlatformIO IDE“
- Klicken Sie auf Installieren und warten Sie, bis die Installation abgeschlossen ist
- Starten Sie VS Code neu, wenn Sie dazu aufgefordert werden
Ausführliche Anweisungen zur PlatformIO-Einrichtung finden Sie in unserer Anleitung zur PlatformIO-Einrichtung.
Klonen Sie das Repository
Öffnen Sie ein Terminal und klonen Sie das OSSM-Repository auf Ihren lokalen Computer.
git clone https://github.com/KinkyMakers/OSSM-hardware.git
cd OSSM-hardware/Softwaregit clone git@github.com:KinkyMakers/OSSM-hardware.git
cd OSSM-hardware/Softwaregh repo clone KinkyMakers/OSSM-hardware
cd OSSM-hardware/SoftwareWenn Sie vorhaben, Änderungen beizutragen, forken Sie zuerst das Repository und klonen Sie dann stattdessen Ihren Fork.
Öffnen Sie das Projekt in VS Code
Starten Sie das Projekt mit PlatformIO.
- Öffnen Sie VS Code
- Wählen Sie Datei > Ordner öffnen
- Navigieren Sie zum Verzeichnis
OSSM-hardware/Software, das Sie gerade geklont haben - Klicken Sie auf Ordner auswählen (oder Öffnen unter macOS).
PlatformIO erkennt die platformio.ini-Datei automatisch und konfiguriert das Projekt.
Unten in VS Code sollte die PlatformIO-Symbolleiste mit den Schaltflächen „Erstellen“, „Hochladen“ und „Überwachen“ angezeigt werden.
Erstellen Sie die Firmware und laden Sie sie hoch
Kompilieren Sie das Projekt und flashen Sie es auf Ihren ESP32.
- Verbinden Sie Ihr ESP32-Board über USB
- Klicken Sie zum Kompilieren auf die Schaltfläche PlatformIO: Build (Häkchensymbol).
- Sobald der Build erfolgreich war, klicken Sie auf PlatformIO: Upload (Pfeilsymbol), um die Firmware zu flashen
Stellen Sie sicher, dass Sie den richtigen COM-Port auswählen, wenn Sie mehrere serielle Geräte angeschlossen haben. Sie können dies in platformio.ini oder über den PlatformIO-Gerätemonitor konfigurieren.
Nächste Schritte
Betriebsmodi
Erfahren Sie mehr über die Modi „Simple Penetration“, „Stroke Engine“ und „Streaming“.
Sicherheitsfunktionen
Verstehen Sie die Vorabprüfungen, die Sicherheit bei Verbindungstrennung und den Notstopp.
Konfiguration
Passen Sie Bewegungsparameter, Pins und Benutzereinstellungen an.
WiFi und Updates
Konfigurieren Sie WiFi und installieren Sie Over-the-Air-Firmware-Updates.
Ordnerstruktur
Verstehen Sie die Organisation des Quellcodes und die modulare Architektur.
PlatformIO-Setup
Richten Sie Ihre Entwicklungsumgebung für Firmware-Änderungen ein.