PEE51_SPC_documents/markdown/softwareontwerp_sabilisatie.md
LailaTheElf d9498b8135
All checks were successful
generate pdf files / build (push) Successful in 2m11s
rename softwareontwerp
2025-06-22 10:11:22 +02:00

2.2 KiB

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 debuurd van een framework. In de video van de homepagina worden een aantal gemeenschaps projecten 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 vraagd veel kennis van hoe dit 'framework' werkt. Onze implementatie is niet exact het zelfde als die van deze gemeenschaps projecten. Wij hebben dus de kennis nogdig 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, wadoor er meer flexibilitijd is hoe het systeem verder werkt. Dit kan dus ook verder geoptimaliseerd worden en meer ge configureerd. dat tweede is de grootste reden warom 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 sooft alpha versie. Het werkt voor het grootste deel, maar hier en daar zijn nog wat beperkingen. Vrijwel al deze beperkingen hebben een workaround. Het groote voordeel is dat er een 'officele' standaard is voor het HAL interface^[embeded-hal: https://docs.rs/embedded-hal]. Dit maakt zorgd er voor dat er veel librarys voor IC'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].