Reboot du projet - Orabig/piano-assistant GitHub Wiki

J'ai dΓ©cidΓ© de reprendre le projet.

A l'heure actuelle, l'ensemble raspberry + carte interface Midi est dans un boitier imprimé en 3D. carte SD (S5) de 32Gb Le raspberry boote directement sur le projet piano assistant. Correctement branché, il capture les notes tapées au clavier, affiche les évènements midi en direct, les affiche à l'écran (en mode texte), affiche les notes enfoncées dans une autre fenetre, et tente de deviner les accords joués. Il y a aussi un système rudimentaire de gestion d'enregistrement de tablature. (photo)

β””β”˜ MIDI EVENTS (midi) β”€β”€β”€β”€β”β”Œβ”€ ./scores/coeur_grenadine.song ──────────────────────────────────────────────────────────────────────────────┐
β”‚9 1 62 0                 β”‚β”‚                                                                                                              β”‚
β”‚9 1 38 0                 β”‚β”‚β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                 β”‚
β”‚9 1 58 35                β”‚β”‚β”‚ G                β”‚ Bm7              β”‚ C7M              β”‚ Am7            D β”‚                                 β”‚
β”‚9 1 55 29                β”‚β”‚β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                 β”‚
β”‚9 1 58 0                 β”‚β”‚β”‚ G                β”‚ Bm7              β”‚ C7M              β”‚ Am7            D β”‚                                 β”‚
β”‚11 1 64 72               β”‚β”‚β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                 β”‚
β”‚11 1 64 40               β”‚β”‚β”‚ G                β”‚ F#7              β”‚ Am7              β”‚ Esus4         E7 β”‚                                 β”‚
β”‚11 1 64 0                β”‚β”‚β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                 β”‚
β”‚9 1 31 35                β”‚β”‚β”‚ C                β”‚ G/B              β”‚ Am7              β”‚ D                β”‚                                 β”‚
β”‚9 1 43 19                β”‚β”‚β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                 β”‚
β”‚9 1 59 28                β”‚β”‚                                                                                                              β”‚
β”‚9 1 62 23                β”‚β”‚β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                              β”‚
β”‚9 1 55 0                 β”‚β”‚β”‚ D                                                                            β”‚                              β”‚
β”‚9 1 59 0                 β”‚β”‚β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                              β”‚
β”‚9 1 62 0                 β”‚β”‚                                                                                                              β”‚
β”‚9 1 31 0                 β”‚β”‚β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                 β”‚
β”‚9 1 43 0                 β”‚β”‚β”‚ G                β”‚ Bm7              β”‚ C            C7M β”‚ Am             D β”‚                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                 β”‚
β”Œβ”€ CHORDS (chords) ───────┐││ G                β”‚ Bm7              β”‚ C            C7M β”‚ Am             D β”‚                                 β”‚
β”‚A7                       β”‚β”‚β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                 β”‚
β”‚A7                       β”‚β”‚β”‚ Am               β”‚ B7               β”‚ Em             D β”‚ G                β”‚                                 β”‚
β”‚A7                       β”‚β”‚β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                 β”‚
β”‚F#                       β”‚β”‚β”‚ C7M              β”‚ -                β”‚ Bm7              β”‚ -                β”‚                                 β”‚
β”‚B7                       β”‚β”‚β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                                 β”‚
β”‚B7                       β”‚β”‚β”‚ Am7              β”‚ -                β”‚ D7               β”‚ -                β”‚                                 β”‚
β”‚B                        β”‚β”‚β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                 β”‚
β”‚B7                       β”‚β”‚                                                                                                              β”‚
β”‚B7                       β”‚β”‚                                                                                                              β”‚
β”‚B7                       β”‚β”‚                                                                                                              β”‚
β”‚Bm7                      β”‚β”‚                                                                                                              β”‚
β”‚Bm7                      β”‚β”‚                                                                                                              β”‚
β”‚D                        β”‚β”‚                                                                                                              β”‚
β”‚D                        β”‚β”‚                                                                                                              β”‚
β”‚G                        β”‚β”‚                                                                                                              β”‚
β”‚G                        β”‚β”‚                                                                                                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”Œβ”€ CONTROL (ihm) ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
β”‚     Song_3      Song_0      Song_2      Song_4      Song_000      Song_1     >coeur_grenadine<                                          β”‚
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Note : après scan du réseau, le raspberry ne semble pas accessible en wifi, malgré le dongle connecté. Je le reboote, et j'ai le temps de lire le nom du host (crocoberry2), mais pas son IP. Je le rebranche en ethernet pour le retrouver avec un nouveau scan. Il apparait maintenant sous 2 IPs

192.168.0.29 192.168.0.16 Je peux me connecter sur les deux IP avec le login "pi" et un mot de passe perso simplifiΓ©

A chaque fois, le programme se lance automatiquement (il est prΓ©sent Γ  la fin de /home/pi/.profile)

Première étape : installer un GUI

Sur ce premier prototype, je me rends compte que je vais Γͺtre trΓ¨s vite limitΓ© en mode texte.

Je dΓ©cide donc d'installer une interface graphique minimale sur le rapsberry.

  • L'objectif est d'Γͺtre capable d'avoir un mode d'affichage assez performant pour afficher des fenetres, des images, des graphiques...
  • Par contre, je ne veux pas que l'utilisateur interagisse avec le raspberry avec un clavier ou une souris.

Je dΓ©cide donc d'installer un environnement graphique minimum pour Γͺtre capable d'afficher un navigateur en mode "kioske", qui permettra de fournir le GUI d'une application tournant en tache de fond.

J'ai suivi les instructions sur cette page : https://die-antwort.eu/techblog/2017-12-setup-raspberry-pi-for-kiosk-mode/

(toute la procΓ©dure d'installation a Γ©tΓ© rΓ©alisΓ©e en ssh Γ  distance)

2 anomalies pendant l'installation

  • l'Γ©tape "apt-get install... openbox" a installΓ© toute la suite libre office. Sans doute parce que raspbian avait dΓ©jΓ  ces packages installΓ©s
  • les modifications du dΓ©marrage de openbox ne sont pas prises en compte. Je pense que ce n'est pas openbox qui est lancΓ©, mais le bureau standard

Reflexion pour la suite

Plusieurs hypothèses :

  • RΓ©aliser l'application en client lourd (graphique) avec python par exemple
  • Fait une webapp dans un chromium lancΓ© au dΓ©marrage, qui communique (websockets) avec un backoffice qui s'occupe notamment de la communication hardware avec le clavier
  • RΓ©aliser une application avec Electron (electronjs.org).