61 lines
2.6 KiB
Markdown
61 lines
2.6 KiB
Markdown
---
|
|
tags: kladjes, elektro, elektro/hr, elektro/hr/pee51
|
|
auther:
|
|
- "Finley van Reenen (0964590@hr.nl)"
|
|
- "Chris Tan (0992143@hr.nl)"
|
|
- "Tijn Snijders (1001829@hr.nl)"
|
|
- "Max Kappert (1030682@hr.nl)"
|
|
- "Thomas Braam (0989527@hr.nl)"
|
|
auther_short: "E.L.F. van Reenen, C. Tan, T Snijders, M. Kappert en T. Braam"
|
|
---
|
|
|
|
[parent](/tPb3Up1fQEuZ86yrJSkYRQ)
|
|
|
|
# Softwareontwerp Sabilisatie
|
|
|
|
## inleiding
|
|
|
|
|
|
## 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
|
|
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](https://lib.rs/crates/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](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](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)].
|
|
|
|
##
|