sonification_vegetale_pdb_2020
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
sonification_vegetale_pdb_2020 [2020/03/03 11:36] – Simon Deplat | sonification_vegetale_pdb_2020 [2020/03/04 15:05] (Version actuelle) – Benjamin Labomedia | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Présentation | + | ===== Présentation ===== |
En cette année 2020, nous souhaitons à nouveau présenter un dispositif sonore piloté par les données transmises par une plante. Cette fois-ci, nous souhaitons utiliser deux nouvelles technologies : du côté matériel, un Floranion Shield couplé à un FRDM-KL25Z, du côté logiciel un programme en SuperCollider. | En cette année 2020, nous souhaitons à nouveau présenter un dispositif sonore piloté par les données transmises par une plante. Cette fois-ci, nous souhaitons utiliser deux nouvelles technologies : du côté matériel, un Floranion Shield couplé à un FRDM-KL25Z, du côté logiciel un programme en SuperCollider. | ||
+ | |||
+ | A propos du Floranion Shield https:// | ||
===== Préparation ===== | ===== Préparation ===== | ||
Ligne 15: | Ligne 17: | ||
Je veux ensuite faire fonctionner le capteur. En l' | Je veux ensuite faire fonctionner le capteur. En l' | ||
- | https:// | + | * https:// |
Je regrette qu'il faille s' | Je regrette qu'il faille s' | ||
Ligne 52: | Ligne 54: | ||
me renvoie une liste des ports disponibles. / | me renvoie une liste des ports disponibles. / | ||
- | Je lance SuperCollider, | + | Je lance SuperCollider, |
< | < | ||
- | sudo scide | + | scide |
</ | </ | ||
- | En effet, sans les droits d' | ||
===== Le code de décodage ===== | ===== Le code de décodage ===== | ||
< | < | ||
+ | |||
+ | |||
( | ( | ||
+ | |||
+ | var decode_string = { | input | // Cette valeur nous permettra de transformer la suite de caractères fournie par le capteur par une liste de valeurs numériques. | ||
+ | |||
+ | var string = ""; | ||
+ | var values_list = List.new(); // Puis les regrouper dans cette liste. | ||
+ | |||
+ | input.at( (1..6) ).do( // Première valeur | ||
+ | {|item | | ||
+ | if( item.isAlphaNum, | ||
+ | string = string ++ item; | ||
+ | }); | ||
+ | }); | ||
+ | |||
+ | values_list.add( string.asInt ); | ||
+ | string = ""; | ||
+ | |||
+ | input.at( (8..14) ).do( // Deuxième valeur | ||
+ | {|item | | ||
+ | if( ( item.isAlphaNum )||( item.isPunct | ||
+ | string = string ++ item; | ||
+ | }); | ||
+ | }); | ||
+ | |||
+ | values_list.add( string.asFloat ); | ||
+ | string = ""; | ||
+ | |||
+ | input.at( (15..18) ).do( // Troisième valeur | ||
+ | {|item | | ||
+ | if( item.isAlphaNum, | ||
+ | string = string ++ item; | ||
+ | }); | ||
+ | }); | ||
+ | |||
+ | values_list.add( string.asInt ); | ||
+ | string = ""; | ||
+ | |||
+ | values_list.add( input.size - 20 ); // La dernière valeur est définie par la position de l' | ||
+ | |||
+ | // | ||
+ | |||
+ | }; | ||
SerialPort.cleanupAll; | SerialPort.cleanupAll; | ||
p = SerialPort( // On crée une nouvelle instance de port série | p = SerialPort( // On crée une nouvelle instance de port série | ||
- | "/ | + | "/ |
- | baudrate: 115200, // Et la bonne fréquence de communication | + | baudrate: 115200, // Et la bonne fréquence de communication |
); | ); | ||
Ligne 80: | Ligne 124: | ||
var list = List.new(); // Nous permet de stocker les données lues | var list = List.new(); // Nous permet de stocker les données lues | ||
var fourth_data_offset = 0; // Nous permet d' | var fourth_data_offset = 0; // Nous permet d' | ||
+ | |||
+ | var test_string = ""; | ||
loop { // En boucle: | loop { // En boucle: | ||
Ligne 86: | Ligne 132: | ||
var data = byte.asAscii; | var data = byte.asAscii; | ||
- | if( byte != 32, // S'il est différent de " " ( vide ) | + | string = string ++ data; // On ajoute |
- | { | + | |
- | if( ( state < 3 ), { // Si l'on est sur une des trois premières valeurs, | + | if( byte == 42, { // Si on a une astérisque, c' |
- | string = string ++ data; // on rajoute | + | //string.postln; // On affiche |
- | }, { // Si nous sommes sur la quatrième valeur, " | + | decode_string.value( string |
- | list.add( fourth_data_offset.asFloat ); // On ajoute la quatrième valeur à la liste | + | string = ""; |
- | // | + | } ) |
- | list = List.new(); // On remet la liste à zéro | + | |
- | fourth_data_offset = 0; // On remet le compteur | + | |
- | state = 0; // On remet l' | + | |
- | } ); | + | |
- | }, { // Si le caractère est " " ( vide ) | + | |
- | if( ( state < 3 ), { // Si l'on est sur une des trois premières valeurs | + | |
- | if( ( string != "" | + | |
- | list.add( string.asFloat ); // On la stocke dans la liste | + | |
- | state = state + 1; // On incrémente l' | + | |
- | string = ""; | + | |
- | } ); | + | |
- | }, { // Sinon, si l'on est sur la quatrième valeur, | + | |
- | fourth_data_offset = fourth_data_offset + 1; // On augmente le compteur | + | |
- | } ); | + | |
- | } | + | |
- | ); | + | |
}; | }; | ||
}; | }; | ||
Ligne 118: | Ligne 148: | ||
</ | </ | ||
- | Celui-ci est commenté ligne par ligne. | + | Celui-ci est commenté ligne par ligne, mais sera sûrement plus agréable à lire depuis SuperCollider où les couleurs différencieront les commentaires. |
sonification_vegetale_pdb_2020.1583235369.txt.gz · Dernière modification : 2020/03/03 11:36 de Simon Deplat