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
|
# 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
|
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,
|
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
|
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.
|
qui sont idéales pour ce genre de projet.
|
||||||
|
|
||||||
On a identifié 3 domaines lors du développement (on était 3, quel hasard) :
|
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)
|
![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
|
### API de l'AGB
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue