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

74 lines
2.8 KiB
Markdown

---
sub_title: Superlight Personal Carrier
tags:
- kladjes
- elektro
- elektro/hr
- elektro/hr/pee51
auther:
- name: "Finley van Reenen"
email: "0964590@hr.nl"
name_short: "e.l.f. van Reenen"
- name: "Chris Tan"
email: "0992143@hr.nl"
name_short: "c. Tan"
- name: "Tijn Snijders"
email: "1001829@hr.nl"
name_short: "t. Snijders"
- name: "Max Kappert"
email: "1030682@hr.nl"
name_short: "m. Kappert"
- name: "Thomas Braam"
email: "0989527@hr.nl"
name_short: "t. Braam"
---
# Softwareontwerp Sabilisatie
## inleiding
> [!TODO]:
> schrijven
## FoC library
In C zijn er niet veel librarys voor FOC, de enige goede library die we hebben
gevonden is [SimpleFOCproject](https://www.simplefoc.com/). 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](https://lib.rs/crates/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](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](https://www.youtube.com/watch?v=H7NtzyP9q8E)].
Hier zijn wel alternative librarys voor^[[https://arewertosyet.com/](https://arewertosyet.com/)],
Embassy^[[https://embassy.dev/](https://embassy.dev/)] en RTIC^[[https://rtic.rs](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](https://github.com/barafael/as5600-rs)].
##