74 lines
2.8 KiB
Markdown
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)].
|
|
|
|
##
|