Article très intéressant sur la rematérialisation du contenu numérique grâce aux objets connectés.
extrait:
« Imaginez à présent un internet où les contenus finiraient par s’incarner dans leur enveloppe originelle ? Plus précisément, imaginez que les supports digitaux auxquels nous nous sommes finalement habitués, les applications, les icones, les dossiers, les fichiers, les boutons, les formulaires prennent forme physique, deviennent réellement palpables et s’altèrent avec le temps… Imaginez un univers numérique reconstruit dans le monde physique, et des objets ressemblants aux interfaces virtuelles que nous utilisons désormais quotidiennement… »
Read More
Du design au FabLab
Le FabLab est un lieu de partage de connaissances mais aussi un laboratoire d’innovations technologiques. Il a donc été pour nous un lieu d’expérimentations pour comprendre l’électronique et surtout une opportunité pour apporter notre vision de designer dans un domaine où le design n’est pas considéré comme primordial.
Le FabLab nous a permis de démystifier la fabrication d’objets électroniques souvent conçus comme des « boîtes noires ». En ce sens, nous avons voulu faire projet autour de cette thématique. Comment concevoir un objet électronique de manière à le rendre accessible à tous, autant dans sa lisibilité que sa fabrication ? Dans un souci lié au cycle de vie de l’objet, nous nous sommes aussi intéressées à la matière papier pour limiter son impact sur l’environnement.
Nouveau regard sur le papier
Potentialité est une enceinte audio dont l’enveloppe et le variateur de volume sont en papier. Pour ce composant, nous avons utilisé le papier CansonÒ mi- teinte noir car, composé de carbone, il conduit l’électricité. Un large terrain d’innovations s’ouvre alors pour le papier, ici, ce matériau accessible et simple à travailler devient un réel capteur. Ce papier reste conducteur une fois imprimé, ceci ouvre différentes possibilités esthétiques. Cela peut se traduire par un nouveau regard sur les métiers d’art traditionnels autour du travail ornemental.
Par notre regard de designer, nous avons voulu porter une attention sur le confort d’usage de cet objet, le papier devient agréable au toucher par la réalisation de textures selon des méthodes simples comme le ponçage. La manipulation de l’objet devient intuitive grâce à sa surface sensible.
Rendre accessible
Une notice permet d’expliquer étape par étape la fabrication du composant en papier. Mais celui-ci reste libre à interpréter, pouvant servir d’interrupteur, de capteur…Les moules pour l’enceinte sont des formes développables ce qui permet de les réaliser en patronage sur du Polypropylène.
Code Arduino pour le variateur de volume :
#define BUTTON 0 #define TOTAL_BUTTONS 12 #define COMMUN_A 2 #define COMMUN_B 3 #define SENSITIVITY 6 // filtrage de signal, if > sensitivity = 1 #define LED_VOLUME 6 #define CS 4 #define SDI 5 #define CLK 6 byte buttonsPressed[TOTAL_BUTTONS]; byte buttonsReleased[TOTAL_BUTTONS]; byte *mapBouton[TOTAL_BUTTONS]; int vol = 0; void setup() { Serial.begin(9600); Serial.println("started..."); mapBouton[0] = &buttonsPressed[1]; mapBouton[1] = &buttonsPressed[0]; mapBouton[2] = &buttonsPressed[4]; mapBouton[3] = &buttonsPressed[2]; mapBouton[4] = &buttonsPressed[5]; mapBouton[5] = &buttonsPressed[3]; mapBouton[6] = &buttonsPressed[9]; mapBouton[7] = &buttonsPressed[11]; mapBouton[8] = &buttonsPressed[8]; mapBouton[9] = &buttonsPressed[9]; mapBouton[10] = &buttonsPressed[6]; mapBouton[11] = &buttonsPressed[7]; pinMode(CS, OUTPUT); pinMode(SDI, OUTPUT); pinMode(CLK, OUTPUT); } void loop() { boutonEvent(); analogWrite(LED_VOLUME, vol); } void keyPressed() { //Serial.println("keyPressed"); int volume = 0; for (int i=0; i<TOTAL_BUTTONS; i++) { //Serial.print(*mapBouton[i], DEC); //Serial.print(" "); if (*mapBouton[i]==1){ volume = i; break; } } int v = map(volume, 0,11, 0,255); vol = v; ///AD8400 digital potentiometer digitalWrite(SDI, LOW); digitalWrite(CLK, LOW); digitalWrite(CS, LOW); /// MESSAGE TO BE SENT //A0 digitalWrite(CLK, HIGH); digitalWrite(CLK, LOW); //A1 digitalWrite(CLK, HIGH); digitalWrite(CLK, LOW); shiftOut(SDI, CLK, MSBFIRST, vol); /// digitalWrite(CS, HIGH); // analogWrite(LED_VOLUME, v); // Serial.println(v); } void keyReleased() { } void boutonEvent() { static boolean etat[TOTAL_BUTTONS]; static int buff[TOTAL_BUTTONS]; /// BUTTON boolean pressed = false; boolean released = false; pinMode(COMMUN_A, OUTPUT); digitalWrite(COMMUN_A, HIGH); buttonsPressed[0] = (analogRead(0) > SENSITIVITY) ? 1 : 0; buttonsPressed[1] = (analogRead(1) > SENSITIVITY) ? 1 : 0; buttonsPressed[2] = (analogRead(2) > SENSITIVITY) ? 1 : 0; buttonsPressed[3] = (analogRead(3) > SENSITIVITY) ? 1 : 0; buttonsPressed[4] = (analogRead(4) > SENSITIVITY) ? 1 : 0; buttonsPressed[5] = (analogRead(5) > SENSITIVITY) ? 1 : 0; digitalWrite(COMMUN_A, LOW); digitalWrite(COMMUN_A, INPUT); pinMode(COMMUN_B, OUTPUT); digitalWrite(COMMUN_B, HIGH); buttonsPressed[6] = (analogRead(0) > SENSITIVITY) ? 1 : 0; buttonsPressed[7] = (analogRead(1) > SENSITIVITY) ? 1 : 0; buttonsPressed[8] = (analogRead(2) > SENSITIVITY) ? 1 : 0; buttonsPressed[9] = (analogRead(3) > SENSITIVITY) ? 1 : 0; buttonsPressed[10] = (analogRead(4) > SENSITIVITY) ? 1 : 0; buttonsPressed[11] = (analogRead(5) > SENSITIVITY) ? 1 : 0; digitalWrite(COMMUN_B, LOW); digitalWrite(COMMUN_B, INPUT); /// desactivate multitouch int total = 0; for (int i=0; i<TOTAL_BUTTONS; i++) if(buttonsPressed[i] == 1) total++; if (total>1) for (int i=0; i<TOTAL_BUTTONS; i++) buttonsPressed[i] = 0; //// for (int i=0; i<TOTAL_BUTTONS; i++) { if (buttonsPressed[i]==1) { pressed = true; // keyPressed(); } int val = buttonsPressed[i]; if (buff[i]!=val) { if (val==1) etat[i] = true; if ((etat[i]==true) && (val==0)) { // Serial.println("click"); etat[i] = false; /// WHEN RELEASE DO SOMETHING buttonsReleased[i] = 1; released = true; // keyReleased(); /// } else { buttonsReleased[i] = 0; } } buff[i] = val; } if (pressed) keyPressed(); if (released) keyReleased(); /* for (int i=0; i<TOTAL_BUTTONS; i++) buttonsReleased[i] = 0; */ ////// BUTTON RELEASE CODE }Read More
dirty prototyping for AD8400
///AD8400 digital potentiometer
digitalWrite(SDI, LOW);
digitalWrite(CLK, LOW);
digitalWrite(CS, LOW);
/// MESSAGE TO BE SENT
//A0
digitalWrite(CLK, HIGH);
digitalWrite(CLK, LOW);
//A1
digitalWrite(CLK, HIGH);
digitalWrite(CLK, LOW);
shiftOut(SDI, CLK, MSBFIRST, vol);
///
digitalWrite(CS, HIGH);
vol is byte value 0-255
Read More