ENIB 2022 - Groupe D : Bateau pirate "Larguez vos amarres"

De Les Fabriques du Ponant
Aller à : navigation, rechercher
Logo-enib.png

Que fait ce projet ?

Etudiants en 3eme année à l'ENIB, nous avons pu dans le cadre de notre intersemestre et en collaboration avec les petit débrouillards participer à un "Hackaton" avec pour sujet la Fête foraine, nous avons donc fait le choix de créer un bateau pirate miniature comme on peut en voir dans de nombreuse fête foraine.

Les membres du projet

  • Paul TESSON
  • Julien SORIANO
  • Florian ARNOUX
  • Francisco RODRIGUES

Liste des composants

Produit Caractéristiques Quantité
Arduino Mega 2560 1
Câbles Équipés de duponts (mâles et femelles) Environ 20
Breadboard - 1
Pont en H L298N 1
Roulements à billes d=8mm ; D=22mm 2
Médium Plaques l=300mm ; L=600mm 4
Haut parleur Simple 1
Lecteur de microSD 1528-1462-ND de chez Adafruit Industries LLC 1
Bande LED - 1
Axe D=8mm 1
Ficelle L=50cm 1

Plan des pièces à réaliser au laser

Ces plans ont été élaborés pour des plaques de médium de 300×600mm

Fichiers 3D Plan 1 Plan 3
Plan 2 Plan 4
Fichier:SolidWorksBateauPirate.zip

Schéma électrique

BateauPirateARDSH2022.png

Musiques

Lien : https://www.youtube.com/watch?v=gVzQWP4bKPA (CC-BY-SA)

Code

Musique Moteur
 1 #include <DFPlayer_Mini_Mp3.h>
 2 #include <SoftwareSerial.h>
 3 
 4 int i=0;
 5 
 6 void setup() {
 7   Serial.begin (9600);
 8   mp3_set_serial (Serial);
 9   mp3_set_volume (25);
10 }
11 
12 void loop () {
13   while (i<3){
14       i++;
15       mp3_play(i);
16       delay(119000);
17       i=i%2;
18     }
19 }
 1 // Pont en H L298N
 2 
 3 
 4 //Ports de commande du moteur B
 5 int motorPin1 = 8;
 6 int motorPin2 = 9;
 7 int enablePin = 5;
 8  
 9 // Vitesse du moteur
10 int state = 0;
11 
12 void setup() {
13   Serial.begin(9600); 
14   Serial.println(F("Initialize System")); 
15   //Init btn 
16 
17   
18 
19     
20     // Initialisation du port série
21     Serial.begin(9600);
22 }
23  
24 void loop() {
25 
26     if (Serial.available() > 0)
27     {
28       // Lecture de l'entier passé au port série
29       state = Serial.parseInt();
30 
31       //
32       // Sens du mouvement
33       //
34       if (state > 0) // avant
35       {
36         digitalWrite(motorPin1, HIGH); 
37         digitalWrite(motorPin2, LOW);
38         Serial.print("Avant ");
39         Serial.println(state);
40       }
41       else if (state < 0) // arrière
42       {
43         digitalWrite(motorPin1, LOW); 
44         digitalWrite(motorPin2, HIGH);
45         Serial.print("Arriere ");
46         Serial.println(state);
47       }
48       else // Stop (freinage)
49       {
50         digitalWrite(motorPin1, HIGH); 
51         digitalWrite(motorPin2, HIGH);
52         Serial.println("Stop");
53       }
54       //
55       // Vitesse du mouvement
56       //
57       analogWrite(enablePin, abs(state));
58     }
59     delay(100);
60 }

Améliorations possibles

Partie mécanique

  • Remplacer le système traction par corde par un système de pignon-crémaillère.
  • Mettre des figurants dans le bateau pour donner plus de vie dans l'attraction.

Partie électronique

  • Refaire le cable-managment.
  • Inclure des LED pour rendre l'attraction plus belle.

Partie codage

  • Réussir à automatiser le moteur.
  • Réussir à coder les LED.