Closed Gouayave closed 5 years ago
Le ProMicro envoie les données brutes via serial, et après y'a un système d'abstractions côté node qui se charge de parser puis analyser le signal :
ProMicro → abstractions/Sensor
→ abstractions/Heart
+ abstractions/PulseSample
Théoriquement la lib de pulseSensor côté ProMicro pourrait sortir les valeurs de BPM etc, mais pour tout un tas de raisons j'ai préféré réimplémenter côté node toute l'abstractions de calcul de pouls à partir de la valeur brute du signal.
L'architecture côté node c'est donc :
Sensor
qui se charge de gérer le protocole de communication, ouverture fermeture serial, mocking possible pour le dev etc.Heart
qui étend le capteur et produit une API qui permet de savoir si un cœur capté est en train de battre, à quel rythme (BPM), produit un event emitter lorsqu'un battement apparaît, etc.PulseSample
à l'intérieur de l'abstraction Heart
qui se charge d'échantilloner le signal pour faire une passe de filtre etc.Player
qui contient un Heart
, mais aussi des informations liées à sa couleur, à l'animation et au son qu'il provoque, mais surtout à sa présence (si le joueur est bien actif et a son doigt posé sur le capteur).Merci pour cette réponse rapide. Ok j'avais plus cette notion d’abstraction. Parfait.
Et deux autres questions du coup:
Est ce qu'il y a un "technicien" en permanence sur le pc serveur (nodejs), qui choisi les paysages? ou "le technicien" instancie le système avant la représentation? Du coup, le pc serveur c'est un "raspberry" qui est dans une boite étanche ou c'est un portable (avec technicien) dans un camion à coté ?
Tu as le modèle du capacitive sensor ?
Merci encore ! C'est vraiment sympa !
Il n'y a pas de notion de "live" sur Rythmus si c'est ta question, tout est défini à l'avance (animations/
), et à chaque présence détectée d'un utilisateur (pose du doigt sur la capacitif), une nouvelle animation est tiré au sort.
Les animations de base peuvent proposer des variations (index.js#L11-L24
) qui correspondent simplement à des configurations différentes (config.fdl.json
).
Côté hardware, le serveur est un mac mini dans une boîte étanche, configuré pour se lancer automatiquement lorsque l'installation démarre (on utilise un mac mini parce que la partie son est géré par Ableton Live).
Pour le capacitive sensor, il s'agit simplement de ruban adhésive en aluminium, du type de ceux utilisés en plomberie : Native Capacitive Sensors without additional Hardware.
Ok. J'ai tout. Tu gères !
Salut,
Je suis en train d'essayer de comprendre le code, mais je ne vois pas comment le ProMicro communique au reste du système la pulsation récupérée (dans rythmus-sensor/rythmus-sensor.ino).
Est ce qu'il y a un autre MCU qui communique avec le serveur ? Comme dans la trame suivante? [Pulse sensor] <-1Wire-> [ProMicro] <-??-> [ESP12 devKit] <-Ethernet/wifi-> [PC Server]
Merci pour ta/votre réponse. Belle journée.