feat(boite_agb) proofreading and typesetting

This commit is contained in:
Sélène Corbineau 2024-11-08 10:41:36 +01:00
parent 692fe481b4
commit a57bcd371a

View file

@ -62,9 +62,8 @@ J'ai donc dû tout reprendre de 0 le dimanche pour le mardi, avec un design plus
simple : 4 murs rectangulaires, avec deux paires égales car découpées ensemble. simple : 4 murs rectangulaires, avec deux paires égales car découpées ensemble.
Les murs sont collés ensemble, et une planche de contreplaqué usinée à la CNC Les murs sont collés ensemble, et une planche de contreplaqué usinée à la CNC
(bouton par bouton, pour éviter partiellement le bug) tient les contrôles : (bouton par bouton, pour éviter partiellement le bug) tient les contrôles :
les 2 boutons, le joystick, un commutateur ON/OFF et un encodeur. les 2 boutons, le joystick, un commutateur ON/OFF et un encodeur. En effet,
après avoir trouvé un encodeur numérique, qui donne par l'état de 8
En effet, après avoir trouvé un encodeur numérique, qui donne par l'état de 8
interrupteurs l'angle de son axe, on a décidé de l'ajouter à la place du interrupteurs l'angle de son axe, on a décidé de l'ajouter à la place du
potentiomètre. potentiomètre.
@ -77,31 +76,31 @@ aux équerres de ne pas racler le sol.
### Software embarqué (catvayor) ### Software embarqué (catvayor)
Pour le software embarqué, la raspberry était sous nixos, avec une unité systemd 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 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), [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 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 faire une image prête à booter pour la carte SD. La connection internet se faisait
par wifi en l'absence d'autre possibilité, qui pendant l'agb aura été fournit par par WiFi en l'absence d'autre possibilité, qui pendant l'agb aura été fourni par
mon partage de connection, car la solution prévue qui passait par une autre raspberry Pi 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, 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. 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 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 pour lire les entrées des commandes, et un socket C pour envoyer les commandes
correspondantes. Initialement, on voulais utiliser les endpoints HTTPS, mais correspondantes. Initialement, on voulait utiliser les endpoints HTTPS, mais
on a remarquer une lenteur considérable de curl sur la raspberry pi, on a remarqué une lenteur considérable de curl sur la Raspberry,
ammenant le temps de réponse à 700ms (on a pas pris le temps d'identifier la source ammenant le temps de réponse à 700ms (on n'a pas pris le temps d'identifier la source
du problème). L'authentifaction par token était alors pas possible, et on a choisi du problème). L'authentification par token était alors impossible et on a choisi
de modifier de serveur pour recevoir un flux de json par un simple socket, ouvert de modifier de serveur pour recevoir un flux de json par un simple socket, ouvert
que sur le VPN. que sur le VPN.
Petit point à noter: certains des pins de la raspberry pi ont des usages particulier, 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 ce qui peut poser problème si on les utilise, notamment, la Rraspberry ne bootait que si
le décodeur était dans la bonne position, sinon les pins d'I2C est mis à gnd, ce qui gène le décodeur était dans la bonne position, sinon les pins I2C sont mis à GND, ce qui gêne
manifestement le boot. manifestement le boot.
### API de l'AGB ### API de l'AGB (Maurice)
L'API est un petit programme rust pour le backend et une application django pour L'API est un petit programme rust pour le backend et une application django pour
l'authentification et le frontend. Le code source est public: l'authentification et le frontend. Le code source est public: