Documentatie voor introductie.
Firmware-overzicht
De Open Source Sex Machine (OSSM)-firmware is een op ESP32 gebaseerd besturingssysteem dat beweging, gebruikersinvoer en communicatie voor uw apparaat beheert. Deze gids leidt u door de projectarchitectuur en helpt u bij het opzetten van uw ontwikkelomgeving.
Kerntechnologieën
De OSSM-firmware is gebaseerd op vier belangrijke technologieën die samenwerken om responsieve, betrouwbare bewegingsbesturing te leveren.
Boost SML (State Machine Language) is een C++-bibliotheek met alleen headers die een domeinspecifieke taal biedt voor het definiëren van toestandsmachines.
Waarom we het gebruiken:
- Verificatie van de toestandsmachine tijdens het compileren spoort fouten op vóór runtime
- Geen runtime-overhead vergeleken met handmatige switch/case-implementaties
- Schone, declaratieve syntaxis maakt complexe toestandovergangen leesbaar
- Verwerkt overgangen tussen toestanden zoals inactief, actief, fout en homing
De toestandsmachine regelt de operationele modi van het apparaat en zorgt voor veilige overgangen en voorspelbaar gedrag. Zie de documentatie bij Architectuur van de toestandsmachine voor meer informatie.
U8G2 is een monochrome grafische bibliotheek die is geoptimaliseerd voor ingebedde systemen en OLED-schermen.
Waarom we het gebruiken:
- Ondersteunt een breed scala aan displaycontrollers, waaronder SSD1306 en SH1106
- Minimale geheugenvoetafdruk, geschikt voor het beperkte RAM-geheugen van ESP32
- Ingebouwde lettertypeweergave met meerdere formaten en stijlen
- Hardwareversneld tekenen voor soepele UI-updates
U8G2 geeft de interface op het apparaat weer, inclusief snelheid, diepte, patroonselectie en systeemstatus.
FreeRTOS is een kernel van een realtimebesturingssysteem die multitasking op ingebedde apparaten mogelijk maakt.
Waarom we het gebruiken:
- Voert meerdere gelijktijdige taken uit (bewegingsbesturing, display-updates, invoerverwerking)
- Op prioriteiten gebaseerde planning zorgt ervoor dat tijdkritische bewegingstaken betrouwbaar worden uitgevoerd
- Communicatie tussen taken via wachtrijen en semaforen
- Standaard geïntegreerd in het ESP32 Arduino-framework
Met FreeRTOS kan de firmware tegelijkertijd gebruikersinvoer verwerken, het display bijwerken en een nauwkeurige motortiming behouden.
StrokeEngine is een bewegingspatroonbibliotheek gemaakt door theelims, aangepast voor OSSM-specifieke vereisten.
Waarom we het gebruiken:
- Genereert vloeiende, aanpasbare bewegingspatronen met configureerbare snelheid en diepte
- Ondersteunt meerdere patroontypen (constant, willekeurig, oscillerend en meer)
- Verwerkt acceleratierampen voor motorbescherming
- Biedt real-time aanpassing van parameters zonder bewegingsonderbreking
StrokeEngine vertaalt gebruikersinstellingen in nauwkeurige motorcommando's, waardoor de verscheidenheid aan bewegingspatronen mogelijk wordt die beschikbaar zijn in OSSM.
Aan de slag
Stel uw ontwikkelomgeving in door deze stappen te volgen.
Vereisten
Zorg ervoor dat u, voordat u begint, over het volgende beschikt:
- Een computer met Windows, macOS of Linux
- Git geïnstalleerd op uw systeem
- Een internetverbinding om afhankelijkheden te downloaden
Installeer VS Code en PlatformIO
Download en installeer Visual Studio Code en voeg vervolgens de PlatformIO-extensie toe.
- Open VS Code
- Navigeer naar het paneel Extensies (Ctrl+Shift+X / Cmd+Shift+X)
- Zoek naar "PlatformIO IDE"
- Klik op Installeren en wacht tot de installatie is voltooid
- Start VS Code opnieuw wanneer daarom wordt gevraagd
Voor gedetailleerde PlatformIO-installatie-instructies, zie onze PlatformIO-installatiegids.
Kloon de repository
Open een terminal en kloon de OSSM-repository naar uw lokale machine.
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/SoftwareAls u van plan bent wijzigingen bij te dragen, fork dan eerst de repository en kloon vervolgens uw fork.
Open het project in VS Code
Start het project met PlatformIO.
- Open VS Code
- Selecteer Bestand > Map openen
- Navigeer naar de map
OSSM-hardware/Softwaredie u zojuist hebt gekloond - Klik op Map selecteren (of Open op macOS)
PlatformIO detecteert automatisch het platformio.ini-bestand en configureert het project.
U zou de PlatformIO-werkbalk onderaan VS Code moeten zien verschijnen met knoppen voor bouwen, uploaden en monitoren.
Bouw en upload de firmware
Compileer het project en flash het naar uw ESP32.
- Sluit uw ESP32-bord aan via USB
- Klik op de knop PlatformIO: Build (vinkje) om te compileren
- Zodra de build is gelukt, klikt u op PlatformIO: Upload (pijlpictogram) om de firmware te flashen
Zorg ervoor dat u de juiste COM-poort selecteert als u meerdere seriële apparaten hebt aangesloten. U kunt dit configureren in platformio.ini of via de PlatformIO-apparaatmonitor.
Volgende stappen
Bedrijfsmodi
Meer informatie over de modi Simple Penetration, Stroke Engine en Streaming.
Veiligheidsvoorzieningen
Begrijp preflight-controles, veiligheid bij verbreking van de verbinding en de noodstop.
Configuratie
Pas bewegingsparameters, pinnen en gebruikersvoorkeuren aan.
WiFi en updates
Configureer WiFi en installeer draadloze firmware-updates.
Mappenstructuur
Begrijp de broncode-organisatie en modulaire architectuur.
PlatformIO-installatie
Stel uw ontwikkelomgeving in voor firmwarewijzigingen.