feat(boite_agb): Add software part
This commit is contained in:
parent
d549d76830
commit
afc4639e8b
1 changed files with 27 additions and 3 deletions
|
@ -1,6 +1,6 @@
|
|||
# Boîte COF de l'AGB
|
||||
|
||||
_Maurice, Sel, Catvayor. Octobre 2024_
|
||||
_Maurice, Sel, catvayor. Octobre 2024_
|
||||
|
||||
|
||||
Pour l'AG budget d'octobre 2024, HackENS a produit un contrôleur
|
||||
|
@ -17,7 +17,7 @@ luminosité, couleur) et à un effet "color bump".
|
|||
|
||||
L'idée de départ est la suivante : un panneau de contrôle sans fil pour le COF,
|
||||
relié via l'API de Maurice aux projecteurs de l'AGB. Maurice a fourni une
|
||||
batterie (108 Wh !!) et via BiBi HackENS a récupéré des Raspberry Pi Micro,
|
||||
batterie (108 Wh !!) et via BiBi HackENS a récupéré des Raspberry Pi Zero,
|
||||
qui sont idéales pour ce genre de projet.
|
||||
|
||||
On a identifié 3 domaines lors du développement (on était 3, quel hasard) :
|
||||
|
@ -75,7 +75,31 @@ aux équerres de ne pas racler le sol.
|
|||
|
||||
![la boîte, ouverte](boite_ouverte_oct24.jpg)
|
||||
|
||||
### Software embarqué
|
||||
### Software embarqué (catvayor)
|
||||
|
||||
Pour le software embarqué, la raspberry était sous nixos, avec une unité systemd
|
||||
pour interfacer les commandes avec l'API de l'AGB. La config nixos complète est
|
||||
[ici](https://git.dgnum.eu/HackENS/hackens-org-configurations/src/commit/fecddb1f7720d40cacdcfd7b7e91d4f9c0289184/machines/agb02),
|
||||
elle n'a rien de particulièrement mystèrieux, mise à part l'import du module pour
|
||||
faire une image prête à booter pour la carte sd. La connection internet se fesait
|
||||
par wifi en l'absence d'autre possibilité, qui pendant l'agb aura été fournit par
|
||||
mon partage de connection, car la solution prévue qui passait par une autre raspberry Pi
|
||||
n'a pas fonctionné. Pour pouvoir débugguer en live, on l'avait mis sur le VPN d'Hackens,
|
||||
ce qui n'aura pas été utile pour débugguer, mais pour autre chose.
|
||||
|
||||
L'interface entre les commandes et le serveur de l'agb se fait en C++, avec libgpiod
|
||||
pour lire les entrées des commandes, et un socket C pour envoyer les commandes
|
||||
correspondantes. Initialement, on voulais utiliser les endpoints HTTPS, mais
|
||||
on a remarquer une lenteur considérable de curl sur la raspberry pi,
|
||||
ammenant le temps de réponse à 700ms (on a pas pris le temps d'identifier la source
|
||||
du problème). L'authentifaction par token était alors pas possible, et on a choisi
|
||||
de modifier de serveur pour recevoir un flux de json par un simple socket, ouvert
|
||||
que sur le VPN.
|
||||
|
||||
Petit point à noter: certains des pins de la raspberry pi ont des usages particulier,
|
||||
ce qui peut poser problème si on les utilises, nottament, la raspberry ne bootait que si
|
||||
le décodeur était dans la bonne position, sinon les pins d'I2C est mis à gnd, ce qui gène
|
||||
manifestement le boot.
|
||||
|
||||
### API de l'AGB
|
||||
|
||||
|
|
Loading…
Reference in a new issue