Les Yeux

2026 BAC3 DESIGN INDUSTRIEL, CASO CAPTEUR ENSAV LA CAMBRE

Projet réalisé dans le cadre du CASO capteur. A travers se projet j'ai voulus exploré le mode du codage (hors site web) qui m'étais encore inconnu et difficile de compréhension. "Les yeux" non pas de but morale ou autre message à faire passer, c'était surtout pour moi l'opportunité d'apprendre à concevoir et réalisé ce genre de petite machine pouvant interagir avec du public. je considère ce projet comme pouvant être un travail préparatoire pour de nouvel pièce plus complexe.

Pour mettre en contexte ce dispositif, on pourrait imaginer une salle vide faisant office de passage entre deux espaces d’exposition. Le visiteur entre par la porte et s’interroge immédiatement sur les chuchotements qui envahissent la pièce. Intrigué, il se déplace, cherche leur provenance, tente de comprendre d’où émergent ces voix diffuses. Puis, soudain, le ton de la voix change : elle semble surprise, presque inquiète de sa présence. En avançant, le visiteur finit par apercevoir, au-dessus de la porte de sortie, une paire d’yeux qui le fixe tout en l’interpellant. Lorsqu’il se déplace sur la gauche, les yeux le suivent du regard. Il se baisse, et les yeux s’abaissent à leur tour. Chaque mouvement est observé, reproduit, comme si cette étrange créature cherchait à ne jamais le perdre de vue. Poussé par la curiosité, le visiteur s’approche davantage pour examiner ces yeux de plus près. Et c’est alors que la situation s’inverse : les yeux prennent peur. Leur regard se détourne, leur voix hésite, comme gênée par la proximité de celui qu’elle observait quelques instants auparavant. La créature semble soudain vulnérable, intimidée par l’attention qu’elle suscite. Le visiteur finit par quitter la pièce. Peu à peu, les yeux se détendent, oublient cette rencontre et recommencent à parler seuls. Ils errent à nouveau dans leurs pensées, contemplant les murs blancs qui les entourent, jusqu’à l’arrivée du prochain visiteur qui viendra troubler leur solitude.

La caméra devient l’organe de perception, Python interprète la position et la proximité du visage, Arduino traduit ces données en angles, et les sons donnent une température émotionnelle : calme, curiosité, peur, panique.

Architecture du prototype

Mécanique
Le hardware du projet est réalisé à partir d’un assemblage de matériaux simples et robustes. La structure principale est constituée de longerons en bois de 8 mm, assurant à la fois légèreté et rigidité. Les éléments de liaison et de transmission intègrent des cordes à piano, tandis que les différentes pièces métalliques sont découpées dans des plaques offset recyclées. Des billes en bois de 30 mm sont utilisées pour certains éléments fonctionnels et de finition. L’ensemble est assemblé à l’aide de visserie standard m2, complétée par des joints en polypropylene fabriqués à la main, permettant une adaptation précise aux besoins spécifiques du projet.

Électronique
Arduino UNO, micro-servomoteurs 9g, alimentation USB-C modifier pour alimenter les différents servos sans surchargé la carte Arduino UNO, la communication série à 115200 bauds et port Mac /dev/cu.usbmodem101.

Perception
le tracking est réalisé via la caméra de l'ordinateur pilote ou d'un téléphone à distance via Airplay (iphone). La détection de visage est éfectuée grace à OpenCV via Python. Le programme Arduino IDE est injecté dans Python permetttant le calcul des offsets et lissage des trajectoires pour éviter les tremblements.

Comportement
Le programme créer quatre états disting : pénard, questionnement, peur, horrible. La taille du visage détecté sert d’indicateur de proximité pour faire évoluer le programme dans les différents états.

Infrastructure software

OpenCV détecte le visage. Python calcule l’offset et l’état émotionnel. La communication Serial envoie les angles vertical et horizontal. Arduino les interprète, puis Servo.h positionne les moteurs. Pygame joue les boucles sonores.

Les sons sont classés par noms de fichiers : penard, questionnement, peur, horrible. La taille apparente du visage déclenche le changement d’état.

Arduino — sketch de référence
#include <Servo.h>
Servo vertical;
Servo horizontal;

void setup() {
  Serial.begin(115200);
  vertical.attach(9);
  horizontal.attach(10);
  vertical.write(90);
  horizontal.write(90);
}

void loop() {
  if (Serial.available()) {
    String line = Serial.readStringUntil(' ');
    int comma = line.indexOf(',');
    if (comma > 0) {
      int y = constrain(line.substring(0, comma).toInt(), 5, 175);
      int x = constrain(line.substring(comma + 1).toInt(), 5, 175);
      vertical.write(y);
      horizontal.write(x);
    }
  }
}

Banque sonore

Les sons constituent la dimension émotionnelle du dispositif. Ils accompagnent les différents états comportementaux des yeux et évoluent selon la proximité et la présence du visiteur.

Pénard

Pénard

Questionnement

Questionnement 1
Questionnement 2
Questionnement 3

Peur

Peur 1
Peur 2
Peur 3
Peur 3 — prise alternative

Horrible

Horrible 2
Horrible 3
Horrible 4

Matériel, médias et fichiers source

Arduino UNO — contrôle série et PWM des servomoteurs.
Micro-servomoteurs — axes horizontal, vertical et tests de débattement.
Webcam — détection du visage via OpenCV / navigateur.
Billes en bois — globes oculaires percés et peints.
Base bois + tige — structure porteuse.
Visserie M2/M3 — assemblage des supports et palonniers.
Pièces imprimées 3D — palonniers 22/33 mm, cône fixe, support servo vertical.
Banque sonore — sons émotionnels utilisés par Python et par la version web.