Matériels

Les étapes

Jour 1

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 :

Intégration de volumes pour anticiper :

La maquette s'approche de sa version finale avant l'intégration électronique.

Suite du site web :

Suite du traçage du fichier sur Inkscape :

Finalisation du Topo pêchu pour le mercredi 09/04.

Découvrez plus de détail sur la découpeuse vinyle.

En savoir plus
Jour 4

Avancement sur le site web et hébergement sur Github

Tête de RoBOBbot – Maquette finalisée

Finalisation du Bob cPT

Travaux sur la structure en bois

Jour 5

Intégration des dernières sections :

Regroupement propre des connexions :

Assemblage complet du 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 :

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 :

(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é :

Liens Utile

freefrontend cssgradient

Code

//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); }

schéma