Passerelle.Infini 2025 : Communication non verbale démocratique
Sommaire
[masquer]résumé du projet
Notre projet est un système de communication non verbale destiné aux "groupes-classes". Celui-ci permet aux jeunes de s'exprimer spontanément et anonymement, et de se rendre compte du mood du groupe.
membres du projet
Bibliographie et webographie sur le projet
Mettre ici des exemples trouvés sur web de projets qui ressemblent et des technologies qui s'en rapprochent ou qui servent d'inspiration.
pistes explorée, abandonnées ou fertiles
Au démarrage du projet nous avons envisagé plusieurs idées et exploré diverses pistes. Notre idée de départ était de fabriquer un objet qui suscite la communication par la découverte de l'objet. Nous voulions créer: _ un objet ludique _ qui nécessite d'être 2 pour fonctionner. _ qui implique une collaboration _ avec pour but l'inclusion. _ qui pourrait fonctionner en tandem. _ qui serait dans l'espace public. _ ce serait objet transportable. Nous avons pensé à conceptualiser: _Un dispositif où il faudrait être 2 pour ouvrir une porte ( portes de tram, porte donnant accès à un endroit de l'espace public- Capucins, MJC...) qui s'adapterait à n'importe quel système d'ouverture de porte. Ce dispositif fonctionnerait avec des aimants ou des capteurs thermiques. _ un dispositif ou système ( pourquoi pas de bascule?) pour descendre où monter les escaliers _ un dispositif pour bancs publics.
Nous avons ensuite repenser notre public cible et redéfini le lieu où notre objet serait utilisé et décidé que cet objet serait dans un foyer, une cantine, un EPAD ou une école. Finalement nous avons choisi les ados comme public cible et de penser notre objet pour un lycée (cantine, foyer de jeune, classe) Nous avons envisager d'imaginer un objet qui s'inscrit dans un rituel: _ un dispositif où il faut être deux pour activer la machine à café/ ou machine à smoothie. _ un dispositif pour fontaine à eau _ un système qui apporte les plateaux repas tout seul au self _ un canapé inclinable où il faut âtre deux et communiquer sans se voir pour l'activer... Après réflexion, nous nous sommes dit que toutes ces idées avait toutes une notions de "tortures" ou du moins de contraintes.
Nous nous sommes donc recentrés sur les caractéristiques des adolescents: _ Les adolescents ont la "flemme". _ C'est une période où on a facilement honte et où on a peur d'être jugé par le groupe. _ Les adolescents ont du mal à exprimer verbalement leurs émotions et il leur est difficile de prendre la parole devant les autres.
De ces réflexions ont émergé l'idée de créer un système qui permettrait aux jeunes d'exprimer anonymement et spontanément leurs émotions de manière non verbale. Dans la classe, on installe un boitier doté de boutons (ou d'un potentiomètre) sur chaque table qui est relié à un tableau de led lumineuses affichées au dessus du tableau.Chaque jeune est libre d'appuyer sur le bouton qui correspond à son mood du moment: content/ pas compris/ pas d'accord et ainsi de s'exprimer anonymement. On aurait ainsi le mood de la classe.
prototype qu'on souhaite réaliser
Notre prototype sera un système composé d'un tableau lumineux associé à des consoles de commandes. Celles-ci afficheront des leds de couleurs différentes avec des formes différentes. Le tableau est composé de 4 sections de 9 leds et 4 consoles avec chacune 4 boutons qui .
code
1
2 /*
3 * communication non verbale démocratique
4 */
5 /* matériel
6 arduino uno,
7 potentiomètre
8 marice de led 16X16
9 */
10 #include <Adafruit_NeoPixel.h>
11
12 #define broche 9 // broche 9 de l'Arduino UNO sur laquelle est connecté le ruban
13
14 // Nombre de led du ruban ?
15 #define nbpixels 256
16
17 // Lors de la configuration de la bibliothèque NeoPixel,
18 // nous lui indiquons combien de pixels,
19 // et quelle broche utiliser pour envoyer des signaux.
20 Adafruit_NeoPixel pixels(nbpixels, broche, NEO_GRB + NEO_KHZ800);
21 // pour configurer le ruban :
22 // nomDuRuban (nombreDePixels, NumeroDeLaBroche, typeDeRuban)
23 // Les différents types de ruban :
24 // NEO_KHZ800 800 KHz bitstream (la plupart des produits Neopixel ou références de LED w/WS2812)
25 // NEO_KHZ400 400 KHz (classic 'v1' (pas v2) FLORA pixels, drivers WS2811)
26 // NEO_GRB Pixels cablés pour GRB bitstream (la plupart des produits Neopixel)
27 // NEO_RGB Pixels cablés pour RGB bitstream (v1 FLORA pixels, pas les v2)
28 // NEO_RGBW Pixels cablés pour RGBW bitstream (produits NeoPixel RGBW)
29
30 #define delai 30 // durée de la pause en millisecondes
31
32 int brochePotard = A0; // la broche du potentiomètre
33 int valPot; // valeur meduyrée pour le potentiomètre
34 int intensiLed; //
35
36 void setup() {
37 Serial.begin(9600); //démarrae la communication série
38 pinMode(brochePotard, INPUT);
39 pixels.begin(); // INITIALISE l'object ruban NeoPixel
40 pixels.show(); // éteint tout les pixels aussi vite que possible.
41 pixels.setBrightness(100); // met la luminosité à 1/5 (max = 255)
42 }
43
44
45 void loop() {
46 valPot = analogRead(brochePotard);
47 //affichage des valeurs dans la console
48 Serial.print("valPot : ");
49 Serial.println(brochePotard);
50 //intensiLed = map(valPot, 0, 1023, 0, 255);
51 //if (0<=valPot<=330){
52 //
53 // }
54
55 //Serial.print("intensiLed : ");
56 //Serial.println(intensiLed);
57
58 /*
59 for(int i=0; i<nbpixels; i++) { // Les pixels sont numérotés de 0 à ...
60 pixels.setPixelColor(i, pixels.Color(255, 0, 0)); // on allume la couleur rouge à fond de la ième led
61 pixels.setPixelColor(i-1, pixels.Color(200, 0, 0)); // celle d'après est moins allumée
62 pixels.setPixelColor(i-2, pixels.Color(150, 0, 0)); // ainsi de suite
63 pixels.setPixelColor(i-3, pixels.Color(100, 0, 0));
64 pixels.setPixelColor(i-4, pixels.Color(50, 0, 0));
65 pixels.setPixelColor(i-5, pixels.Color(0, 0, 0));
66 pixels.show(); // met à jour le ruban
67 delay(delai); // Pause
68 }
69
70 for(int i=nbpixels; i>-1; i--) { // Les pixels sont numérotés de 0 à ...
71 pixels.setPixelColor(i, pixels.Color(0, 0, 0));
72 pixels.setPixelColor(i-1, pixels.Color(50, 0, 0));
73 pixels.setPixelColor(i-2, pixels.Color(100, 0, 0));
74 pixels.setPixelColor(i-3, pixels.Color(150, 0, 0));
75 pixels.setPixelColor(i-4, pixels.Color(200, 0, 0));
76 pixels.setPixelColor(i-5, pixels.Color(255, 0, 0));
77 // pour comprendre, quand i vaut 30, la led 25 est au max, la 26 un peu moins, jusque la numéro 29 qui est éteinte
78 // ce segment se déplace jusque i=0.
79 pixels.show(); // met à jour le ruban
80 delay(delai); // Pause
81 }
82 */
83 carreBD();
84
85 delay(100);
86 }
87
88 void carreBD()
89 {
90 for(int i=0; i<=7; i++) { // Les pixels sont numérotés de 0 à ...
91 pixels.setPixelColor(i, pixels.Color(50, 0, 0));
92 }
93 for(int i=0; i<=7; i++) { // Les pixels sont numérotés de 0 à ...
94 pixels.setPixelColor(i, pixels.Color(50, 0, 0));
95 }
96 for(int i=24; i<=39; i++) { // Les pixels sont numérotés de 0 à ...
97 pixels.setPixelColor(i, pixels.Color(50, 0, 0));
98 }
99 for(int i=56; i<=71; i++) { // Les pixels sont numérotés de 0 à ...
100 pixels.setPixelColor(i, pixels.Color(50, 0, 0));
101 }
102 for(int i=88; i<=103; i++) { // Les pixels sont numérotés de 0 à ...
103 pixels.setPixelColor(i, pixels.Color(50, 0, 0));
104 }
105 for(int i=120; i<=127; i++) { // Les pixels sont numérotés de 0 à ...
106 pixels.setPixelColor(i, pixels.Color(50, 0, 0));
107 }
108
109 pixels.show(); // met à jour le ruban
110 }