Nous avons commencé la journée par une session de brainstorming pour définir l’identité de notre robot. L’idée
retenue :
➡️ Créer un robot inspiré de Bob Razowski du film Monstres & Cie.
Ce choix s’explique par :
Son apparence ronde, simple et reconnaissable.
Le défi technique intéressant (mobilité, design fun).
L’originalité du thème et son attrait visuel.
Réalisation d’une maquette en carton et de la charte graphique.
Nous avons ensuite réalisé une maquette en carton à taille réel (échelle 1sur1) :
Forme sphérique pour représenter la tête/corps
Emplacement des futurs servomoteurs, de la batterie et des potentiomètres.
Position approximative de l’œil, des bras et des jambes.
Cette maquette nous a permis de mieux visualiser le projet et d’anticiper certains problèmes (équilibre, espace
interne).
Début du site web
Nous avons commencé la réalisation d'un site web pour documenter notre projet
Jour 2
Création d'une étiquette PRIX CHOC sur gimp.
Développement Web – Page d'accueil.
Nous avons débuté la construction de notre site web de présentation :
Création du fichier index.html.
Mise en place des sections :
Présentation du projet.
Tuto/Arduino.
Présentation de l'équipe.
Galerie.
L'objectif est d'avoir une base claire, évolutive, pour y intégrer :
Journal de bord (jour par jour)
Galerie photo
Vidéos, schémas, maquette 3D (plus tard)
Technologies utilisées :
HTML5
CSS3
ChatGPT
-Premiers tests Arduino
Nous avons commencé à tester certains composants avec une carte Arduino :
Branchement de base (Servos,potentiomètres)
Vérification du fonctionnement du code sur la carte
Objectif de ces tests :
Valider les composants (servomoteur, câblage)
Prévoir les besoins en alimentation et en ports
Prochaines étapes :
Ajout d'un 2 potentiomètres relié a 2 boutons pour les poignets
Jour 3
Utilisation de la découpeuse vinyle pour réaliser la tête de Bob avec 2 couches : bleu, vert.
Rajouter le noir et le rouge pour les prochains jours.
Commencement de la personnalisation du « BoB cPT ».
Renforcement de la structure :
Base
Parties mobiles
Intégration de volumes pour anticiper :
Le passage des câbles
Les moteurs
La carte Arduino
La batterie
La maquette s'approche de sa version finale avant l'intégration électronique.
Suite du site web :
Ajout du journal de bord (description des étapes réalisées chaque jour)
Présentation de l'équipe
Ajout de la galerie photo
Suite du traçage du fichier sur Inkscape :
Export en format STL pour la découpe laser
Structure en bois du futur robot
Finalisation du Topo pêchu pour le mercredi 09/04.
Découvrez plus de détail sur la découpeuse vinyle.
Avancement sur le site web et hébergement sur Github
Tête de RoBOBbot – Maquette finalisée
Finalisation de la sphère représentant la tête
Pose d’un vinyle blanc pour le fond de l’œil
Passage au marqueur noir pour la bouche et l’œil pour un rendu cartoon fidèle à Bob Razowski
Résultat : une identité visuelle très proche du personnage original, fun et expressive
Finalisation du Bob cPT
Carton colorié en rouge collé avec un pistolet à colle
Câblage terminé entre tous les composants :
3 potentiomètres (pour contrôle manuel)
3 servomoteurs (mouvements : bras)
1 buzzer (effets sonores)
2 boutons poussoirs
Test du câblage effectué avec l’IDE Arduino
Travaux sur la structure en bois
Utilisation d’Inkscape pour vectoriser les formes de la structure en bois
Export du tracé finalisé en format STL
Préparation de la découpe laser pour les plaques de bois constituant :
La base du robot
Le support moteur
L’assemblage de la coque
Étape importante pour passer de la maquette à la version physique fonctionnelle du robot
Jour 5
Intégration des dernières sections :
Journal de bord complet (Jour 1 à Jour 5)
Ajout des photos du robot en construction
Section “Présentation de l’équipe”
Hébergé via GitHub Pages : 100% fonctionnel, lisible, et esthétique
Regroupement propre des connexions :
Pontage des 3 potentiomètres
Optimisation de l’espace sur la breadboard
Tests réalisés pour vérifier :
Bon fonctionnement de la lecture analogique
Réactivité des servos pilotés par les potentiomètres
Assemblage complet du robot :
Fixation de la tête sphérique
Intégration des éléments visuels (œil, bouche...)
Placement des composants à l’intérieur du corps
Tests de mouvements : servos + boutons + sons
Le robot est opérationnel, décoré, et prêt à être présenté avec son look de Bob Razowski version robot !
Problématique
Lors de la préparation des composants, nous avons eu des difficultés à trouver des servomoteurs classiques (qui tournent de 0° à 180°).
La plupart de ceux disponibles étaient des servomoteurs à rotation continue, ce qui n’était pas adapté à nos besoins (nous avons besoin d’un positionnement précis, par exemple pour les bras du robot).
Connaître la valeur maximale d’un potentiomètre branché à une entrée analogique sur Arduino :
Branchement :
GND → GND sur Arduino
VCC → 5V sur Arduino
Signal (au milieu) → A0 sur Arduino
La valeur s’affiche en temps réel dans le moniteur série.
Elle varie généralement de 0 à environ 1023 (valeur analogique sur 10 bits).
Pour ouvrir le moniteur série :
Arduino IDE → Menu Outils → Moniteur Série
(c’est l’équivalent de en JavaScript pour voir les valeurs en live).
Ajout d'un bouton pour contrôler le buzzer, quand on appuie sur le bouton, il n'est pas reconnu par la carte Arduino.
Utilité :
Vérifier le bon fonctionnement du potentiomètre
Savoir à quelles valeurs déclencher une action (par exemple faire tourner un servo selon la position)
//const des notes
const int bL = 247;
const int c = 261;
const int d = 294;
const int e = 329;
const int f = 349;
const int fS = 370;
const int g = 391;
const int gS = 415;
const int a = 440;
const int aS = 455;
const int b = 494;
const int cH = 523;
const int cSH = 554;
const int dH = 587;
const int dSH = 622;
const int eH = 659;
const int fH = 698;
const int fSH = 740;
const int gH = 784;
const int gSH = 830;
const int aH = 880;
const int bH = 980;
const int buzzerPin = 7;
const int buttonPin = 2;
const int buttonPin2 = 3;
//inclusion de la librairie servomoteur
#include
Servo Servo0;
Servo Servo1;
Servo Servo2;
//initialistation du programme
void setup() {
//Permet de display des informations dans le serial monitor
Serial.begin(9600);
//Sur la carte arduino, pins sur lesquelles sont branchés les servomoteurs
Servo0.attach(9);
Servo1.attach(10);
Servo2.attach(11);
pinMode(buzzerPin, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(buttonPin2, INPUT);
}
void loop() {
//déclaration des variables analogues
const int val0 = analogRead(A0);
const int val1 = analogRead(A1);
const int val2 = analogRead(A2);
//dval prends la valeur du digital read
int dVal1 = digitalRead(2);
int dVal2 = digitalRead(3);
//On modifie les variables pour leur donner une valeur maximale de 180,
//correspondant à l'angle du servomoteur
int mapVal0 = map(val0, 0, 1023, 0, 180);
int mapVal1 = map(val1, 0, 1023, 0, 180);
int mapVal2 = map(val2, 0, 1023, 0, 180);
// on donne les valeurs des potentiomêtres aux servomoteurs pour qu'ils ce mettent dans la bonne position
Servo0.write(mapVal0);
delay(5);
Servo1.write(mapVal1);
delay(5);
Servo2.write(mapVal2);
delay(5);
// Serial.print("Valeur n°1 :");
// Serial.println(dVal1);
// Serial.print("Valeur n°2 :");
// Serial.println(dVal2);
//Si bouton appui, son joué
if (digitalRead(2) == HIGH) {
section1();
}
if (digitalRead(3) == HIGH) {
section2();
}
}
void beep(int note, int duration) {
tone(buzzerPin, note, duration);
delay(duration);
noTone(buzzerPin);
delay(50);
}
void section1() {
beep(c, 2500);
beep(g, 2500);
beep(cH, 2500);
delay(1500);
beep(eH, 400);
beep(dSH, 2500);
delay(200);
beep(g, 350);
beep(cH, 350);
beep(g, 350);
beep(cH, 350);
beep(g, 350);
beep(cH, 350);
beep(g, 350);
beep(cH, 500);
delay(200);
beep(c, 2500);
beep(g, 2500);
beep(cH, 2500);
delay(1500);
beep(dSH, 400);
beep(eH, 2500);
}
void section2() {
beep(b, 150);
beep(fH, 150);
beep(fH, 150);
beep(fH, 150);
beep(eH, 170);
beep(dH, 150);
beep(cH, 170);
beep(g, 150);
delay(30);
beep(g, 120);
beep(c, 150);
}