PEE51_SPC_documents/markdown/softwareontwerp_stabilisatie.md
2025-10-20 20:24:02 +02:00

2.8 KiB

sub_title tags auther
Superlight Personal Carrier
kladjes
elektro
elektro/hr
elektro/hr/pee51
name email name_short
Finley van Reenen 0964590@hr.nl e.l.f. van Reenen
name email name_short
Chris Tan 0992143@hr.nl c. Tan
name email name_short
Tijn Snijders 1001829@hr.nl t. Snijders
name email name_short
Max Kappert 1030682@hr.nl m. Kappert
name email name_short
Thomas Braam 0989527@hr.nl t. Braam

Softwareontwerp Sabilisatie

inleiding

FoC library

In C zijn er niet veel librarys voor FOC, de enige goede library die we hebben gevonden is SimpleFOCproject. Dit komt er in de buurt van een framework. In de video van de homepagina worden een aantal gemeenschapsprojecten laten zien, waarvan meerdere een reactiewiel voor sabilisatie laat zien. Dit belooft veel goeds, toch is er gekozen om een andere library te kiezen. Het goed implementeren van een regel kring met de IMU vraagt veel kennis van hoe dit 'framework' werkt. Onze implementatie is niet exact het zelfde als die van deze gemeenschapsprojecten. Wij hebben dus de kennis nodig om deze code aan te passen.

Er is gekozen om te werken met de Rust library FOC. Deze library is alleen een implementatie voor het FOC algaritme, waardoor er meer flexibilitijd is hoe het systeem verder werkt. Dit kan dus ook verder geoptimaliseerd worden en meer geconfigureerd. dat tweede is de grootste reden waarom voor deze library is gekozen. Er is behoefte aan een systeem dat aangepast kan worden naar wat later beter blijkt te zijn.

Rust op RP2040

Rust voor microcontrollers is nog in een soort alpha versie. Het grootste deel is al stable, maar hier en daar zijn nog wat beperkingen. Vrijwel al deze beperkingen hebben een workaround. Het grootste voordeel is dat er een 'officele' standaard is voor het HAL interface^[embeded-hal: https://docs.rs/embedded-hal]. Dit zorgt er voor dat er veel library's beschikbaar zijn die gewoon werken.

Async

De standaard async funtionalitijd in rust werkt nog niet voor microcontrollers^[https://www.youtube.com/watch?v=H7NtzyP9q8E]. Hier zijn wel alternative librarys voor^[https://arewertosyet.com/], Embassy^[https://embassy.dev/] en RTIC^[https://rtic.rs] zijn de twee die het meest genoemd worden. Embassy ziet er wat eenvoudiger uit als RTIC, daarvoor is ook gekozen om te gebruiken.

AS5600

Er wordt gebruik gemaakt de AS5600 library van Rafael Bachmann^[https://github.com/barafael/as5600-rs].