feat(articles): Add boite_agb project #2
1 changed files with 15 additions and 16 deletions
|
@ -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:
|
||||||
|
|
Loading…
Reference in a new issue