Art Sciences 2024/2025 E2

De wiki-se.plil.fr
Révision datée du 29 janvier 2025 à 18:44 par Tahttour (discussion | contributions) (Annulation des modifications 8171 de Tahttour (discussion))
Aller à la navigation Aller à la recherche

Projet : WISKY

Présentation du projet

Wisky interroge la mémoire et l’enfance, la façon dont le langage détermine notre éducation. Ici, l'intérêt est porté sur les injonctions que nous recevons étant enfant, celles qui nous contraignent et le souvenir que nous en gardons. Ces phrases perçues comme anodines ont un réel impact sur notre développement et sur la division des rôles sociaux selon le genre et la classe. Ce projet convoque ainsi une mémoire à la fois commune et fictive en une forme absurde.

Wisky est un jouet, le chien en bois Snoopy de Fisher Price commercialisé dans les années 60. Nous l’avons retravaillé en une forme à performée, sa laisse fera office de casque et le.a spectateurice pourra la tirée tout en écoutant les mots du petit chien. En le promenant, Wisky prononcera aléatoirement des phrases culpabilisantes et des petites histoires sordides sur sa vie de jouet chien, et une fois immobile il se taira.

Wisky

Suivi jour par jour

Jour 1 : Mardi 21 janvier

Choix des composants

Carte Arduino
Breadboard
Haut Parleur
Aimants
Capteur à effet hall
Lecteur MP3








Modélisation 3D du casque :

Le projet de création d’un casque audio personnalisé pour l’expérience sonore a nécessité une modélisation minutieuse des différents éléments du casque, en particulier pour intégrer les haut-parleurs et gérer le passage des câbles. La conception 3D a été utilisée pour élaborer un modèle précis et fonctionnel qui puisse être imprimé en 3D.

Modèle 3D de casque

Un modèle a été conçu avec les éléments suivants :

  • Haut-parleurs intégrés : Des emplacements ont été prévus pour loger des haut-parleurs de petite taille, permettant une transmission claire du son. Leur placement a été étudié pour assurer une bonne qualité acoustique, tout en minimisant l’encombrement à l’intérieur du casque.
  • Passage du câble : Le câble devant relier le casque au dispositif externe (le chien) a été intégré à l’intérieur de la structure du casque. Pour ce faire, un système de conduits a été conçu, permettant de faire passer le câble de manière sécurisée et discrète, tout en évitant les risques d’accrochage ou de dégradation.
Boite de casque
Vue decoupe.png

Jour 2 : Mercredi 22 janvier

Programmer le capteur

code pour tester le capteur

Installation pour programmer le capteur

Impression 3D

L'impression 3D a joué un rôle essentiel dans la fabrication du prototype du casque. Elle a permis de transformer la modélisation 3D en un objet tangible, facilitant ainsi la création rapide et économique du modèle.Le matériau utilisé pour l'impression étaie principalement le PLA (facile à imprimer) qui est adapté aux besoins du projet.

Une fois le modèle 3D conçu, il a été préparé pour l'impression en ajustant les paramètres comme la résolution et le remplissage. Les différentes pièces du casque ont été imprimées séparément, puis assemblées pour tester l'intégration des haut-parleurs et du passage du câble.

L'impression 3D a permis de réaliser un prototype fonctionnel en peu de temps, facilitant ainsi les tests et les ajustements nécessaires avant la fabrication finale. Cette méthode a aussi réduit les coûts de production tout en offrant une grande flexibilité dans la conception du casque.

Imprimante 1.png
Préparation d'imprimer

Jour 3 : Jeudi 23 janvier

Programmer le player mp3

code pour tester le lecteur mp3

Installation pour programmer le player mp3

Finir impression

Assemblage sur le chien

Fisher price toy

Jour 4 : Vendredi 24 janvier

code final

#include <SoftwareSerial.h>

int sensorPin = A0;
int val;
int ledPin = 4;
bool isPlaying = false;

unsigned long lastStopTime = 0; // Variable pour suivre le temps d'arrêt
unsigned long stopDelay = 2000;

int lastTrack = 0; // Pour mémoriser le dernier fichier joué

SoftwareSerial mp3Serial(5, 6);

void setup() {
  pinMode(sensorPin, INPUT);
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);

  mp3Serial.begin(9600);
  delay(1000);
  select();
  delay(200);
  volume();
}

void loop() {
  val = analogRead(sensorPin);

  if (val < 1023) {  // Le capteur détecte un signal
    digitalWrite(ledPin, HIGH);

    if (!isPlaying) {  // Si la musique ne joue pas encore
      playRandomTrack();  // Joue un fichier aléatoire différent de l'ancien
      isPlaying = true;
      lastStopTime = millis();  // Réinitialise le temps d'arrêt
    }
    else {
      resume();  // Reprend la musique si elle est déjà en train de jouer
    }
    
  } else {  // Le capteur ne détecte pas de signal
    digitalWrite(ledPin, LOW);

    // Vérifie si 2 secondes sont écoulées sans signal du capteur
    if (isPlaying && (millis() - lastStopTime >= stopDelay)) {
      stopplay();
      isPlaying = false;
    }
  }

  // Si pendant ces 2 secondes, un signal est détecté, on garde la musique en cours
  if (val < 1023 && isPlaying && (millis() - lastStopTime < stopDelay)) {
    lastStopTime = millis();  // Réinitialise le temps d'attente d'arrêt pour les 2 secondes
  }

  delay(100);
}

void select() {
  mp3Serial.write(0x7E);
  mp3Serial.write(0xFF);
  mp3Serial.write(0x06);
  mp3Serial.write(0x09);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write(0x02);
  mp3Serial.write(0xEF);
}

void volume() {
  mp3Serial.write(0x7E);
  mp3Serial.write(0xFF);
  mp3Serial.write(0x06);
  mp3Serial.write(0x06);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write(0x64);
  mp3Serial.write(0xEF);
}

void play() {
  mp3Serial.write(0x7E);
  mp3Serial.write(0xFF);
  mp3Serial.write(0x06);
  mp3Serial.write(0x03);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write(0x01);
  mp3Serial.write(0xEF);
}

void resume() {
  mp3Serial.write(0x7E);
  mp3Serial.write(0xFF);
  mp3Serial.write(0x06);
  mp3Serial.write(0x0D);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write(0xEF);
}

void stopplay() {
  mp3Serial.write(0x7E);
  mp3Serial.write(0xFF);
  mp3Serial.write(0x06);
  mp3Serial.write(0x16);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write(0xEF);
}

void playRandomTrack() {
  int trackNumber;

  // Choisir un fichier aléatoire différent du précédent
  do {
    trackNumber = random(1, 4);  // Génère un nombre entre 1 et 3
  } while (trackNumber == lastTrack);  // Tant que c'est le même que le dernier, on regénère

  // Mémorise le dernier fichier joué
  lastTrack = trackNumber;

  // Joue le fichier choisi
  mp3Serial.write(0x7E);
  mp3Serial.write(0xFF);
  mp3Serial.write(0x06);
  mp3Serial.write(0x03);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write((uint8_t)0x00);
  mp3Serial.write(trackNumber);  // Envoie le numéro du fichier
  mp3Serial.write(0xEF);
}

Résultat