Projet final : Bateau sur l'eau - Yasmine, Rita, Maélanne, Marya

Objectif : 

Notre projet final consiste à concevoir un prototype d'un bateau intégrant un système Arduino et une hélice. Ce compte rendu a pour objectif de documenter l’ensemble du processus, intégrant les technologies vues en atelier dont: conception et impression 3D, conception 2D et découpe laser, ou électronique numérique.

Deux approches sont possibles : créer un prototype visuellement proche de l’objet final ou développer un système électronique simulant son comportement — voire une combinaison des deux.

PARTIE 1 : Contexte et Objectifs du Projet : Bateau Décoratif Animé avec Système Arduino

1. Définition du projet

Ce projet ne se contente pas d’être un simple objet décoratif statique. Imaginez un bureau ou une étagère où un bateau miniature prend vie, son hélice tournant au gré des réglages, offrant un spectacle à la fois hypnotique et technologique. Inspiré par l’univers de LEGO Technic, ce projet cherche à allier esthétique, innovation et interactivité.

Dans un monde où la décoration devient de plus en plus intelligente et modulable, l’idée est d’introduire un objet interactif et éducatif, accessible aussi bien aux amateurs de design qu’aux passionnés de technologie. Pourquoi se limiter à des objets décoratifs statiques quand on peut leur donner du mouvement et une dimension ludique

2. Public cible

Le projet vise plusieurs types d’utilisateurs :

En offrant une expérience immersive et modulaire, ce projet s’adresse aussi bien aux curieux souhaitant apprendre l’électronique qu’aux passionnés de modélisme cherchant un défi créatif.

3. Fonctionnalités

Principale : Animation de l’hélice via un potentiomètre

L’utilisateur peut ajuster la vitesse de rotation en tournant un bouton, ce qui crée une sensation de contrôle fluide et intuitif, comme s’il pilotait réellement un bateau en miniature.

Secondaires :


4. Analyse de la problématique et veille sur l'existant

Pourquoi ce projet est-il pertinent aujourd’hui ?
L’univers du modélisme et de l’électronique interactive connaît un essor considérable. Cependant, la plupart des objets décoratifs interactifs sur le marché sont soit trop complexes, soit limités à des fonctionnalités prédéfinies.

Étude de l’existant :


5. Lean Canvas

 Problème : 
Le marché actuel des objets décoratifs interactifs présente deux limitations majeures :

  1. Les produits existants sont souvent trop techniques et difficiles à assembler pour un public non expert (ex. : modélisme naval traditionnel).

  2. À l’inverse, les objets interactifs accessibles manquent de modularité ou d’intérêt technologique (ex. : simples lampes LED décoratives).

Il existe un manque d’alternatives ludiques, éducatives et personnalisables qui allient à la fois esthétique, technologie et simplicité de prise en main.

Solution : 
Développement d’un bateau miniature interactif motorisé, intégrant un système Arduino :

Segments de clientèle : 


Proposition de valeur unique : 
Un objet esthétique et intelligent, à la frontière entre design, technologie et jeu :

" Un mini-bateau décoratif, programmable et personnalisable, qui donne vie à votre espace tout en stimulant votre créativité."


Canaux de distribution : 


4. Choix techniques

Arduino et électronique :
Nous avons utilisé une carte Arduino pour piloter le moteur à courant continu, avec un potentiomètre permettant de faire varier sa vitesse. L'électronique comprend également une diode pour la protection contre les retours de courant, une résistance, et un transistor servant d’interrupteur électronique entre la carte et le moteur.

Matériaux de construction :
La coque du bateau et ses composants ont été imprimés en 3D à l’aide de plastique PLA, un matériau à la fois léger et robuste. Le pont a été conçu à partir d'une planche de bois de 3 mm d’épaisseur, gravée au laser pour un rendu esthétique (effet parquet) et un bon maintien mécanique.

Justification :
Ces choix ont été guidés par plusieurs critères :

MVP (Minimum Viable Product) :
Le premier objectif était d’obtenir un prototype fonctionnel capable d’animer une hélice grâce à un moteur contrôlé par un potentiomètre. Ce MVP a été atteint après une série de tests.

Planification :
Le projet a été mené en plusieurs étapes :

  1. Conception (croquis, modélisation 3D, choix des composants),

  2. Fabrication (impression 3D, découpe laser, montage électronique),

  3. Tests (fonctionnement de l’hélice, ajustements du pont et de la coque),

  4. Améliorations (révision des dimensions, stabilisation du moteur).

Méthodologie :
Nous avons adopté une approche itérative : à chaque étape, des tests ont été réalisés, suivis d’ajustements. Cela nous a permis de progresser rapidement tout en corrigeant les erreurs au fur et à mesure.


5. Gestion de projet


6. Conception et fabrication


7. Prototypage et tests

8. Améliorations et évolutions possibles


9. Ressources et inspirations

PARTIE 2 : Exécution et conception du design sur Tinkercad

A/ Création de la forme 1 : la coque du bateau 

Pour débuter, nous avons créé deux carrés, puis ajouté un paraboloïde que nous avons coupé en deux. Ensuite, nous avons assemblé les différentes parties ensemble avant de dupliquer la première forme afin d'obtenir la forme intérieure du bateau. Cette étape nous a permis de déterminer les dimensions intérieures à ajuster. La deuxième forme a été réduite de deux millimètres pour correspondre aux besoins du projet. 

 d92f207a-10c6-497a-a781-fc7d3845400a.jpg

La plus petite forme a ensuite été percée pour permettre l’intégration des différents composants.

a5a2e777-be34-4e72-90e3-8c7b798686ae.jpg

Cependant, après vérification, nous nous sommes rendus compte que les dimensions de nos formes initiales n’étaient pas correctes. Nous avons donc ajusté et agrandi les formes, puis repris l’étape de perçage.

c1555fe0-047f-40c0-9136-77132f21e5b8.jpgdac3c697-9c4b-4af1-96ab-27ad1b9eae56.jpg

Ensuite, nous avons procédé à l'installation de cales (indiquées en rouge sur l'image ci-dessous) afin de soutenir la plateforme supérieure du bateau (le pont), qui sera réalisée par la suite.

3db9a59e-a579-4669-8ac2-eb5050851c55.jpg

Nous avons également intégré un petit support pour le moteur à courant continu 5V (voir image ci-dessous), avec une perforation permettant le passage de la tige de l'hélice à l'extérieur du bateau.

de34cf75-e51e-4cb4-ac39-fdb33c138215.jpg47195772-309c-4598-a26e-0ed9645cb0bd.jpgCapture.PNG

B/ Création de la forme 2: le pont/plateforme du bateau 

Une fois la coque de bateau terminée, nous avons modélisé le pont de manière à ce qu’il s’ajuste parfaitement à la forme de la coque, en s'appuyant sur les cales. Pour cette étape, nous avons utilisé une planche de bois de 3 mm d’épaisseur, découpée au laser, afin d’obtenir une plateforme solide et précise.

44d431b6-10f4-4470-be5d-24d36284954f.jpg

C/ Création de l'hélice et du mat 

Pour concevoir notre hélice, nous nous sommes basées sur l'un des modèles proposés par la plateforme, comme celui illustré ci-dessous : 
helice.jpg

c54fc6c0-b162-4a8f-9f78-3af2ada0ed8d.jpg

Et puis nous avons modélisé le mat comme ci-dessous : 

mat.jpeg

PARTIE 3 : Création du pont sur Inkscape

Pour le pont, nous avons choisi de lui donner la forme que nous souhaitions pour qu'on puisse l'insérer dans le bateau imprimé en 3D.  Et, pour obtenir l’effet parquet, nous avons sélectionné un motif de parquet sur internet que nous avons passé en noir et blanc puis vectorisé afin de créer la gravure.
Ensuite, nous avons ajouté un trou pour le mât.
Enfin, nous avons exporté le fichier au format SVG pour l'utiliser avec la découpeuse laser.

08997db9-a457-4737-93b9-d91ea966a968.jpg

inkscape-2.jpginkscape 3.jpeg

INKSCAPE STEP 3.jpeg   

 

 

 

 

 

 

 

Cependant, une fois le pont imprimé, nous avons constaté qu’il ne correspondait pas aux dimensions prévues et ne s’insérait pas correctement dans la coque (visible à gauche sur la photo ci-dessous). Nous avons donc repris les mesures afin d’adapter le pont pour qu’il repose sur l’ensemble de la coque, ce qui nous permettra de le fixer ultérieurement à l’aide de colle.

IMG_0651.JPG

 

Puis nous avons réalisé une deuxième découpe laser pour obtenir notre nouveau pont.

 

image.png

le pont 2.jpeg

PARTIE 4 : Le montage Arduino

Pour le montage Arduino, nous avons utilisé les composants suivants (numérotés selon la légende de la photo) :

  1. Potentiomètre – Sert à ajuster la tension en entrée et donc à contrôler la vitesse du moteur.

  2. Moteur – Convertit l'énergie électrique en énergie mécanique (rotation).

  3. Diode – Protège le circuit contre les retours de courant générés par le moteur lorsqu'il s'arrête.

  4. Résistance – Limite le courant électrique pour éviter d’endommager les composants.

  5. Transistor – Fait office d’interrupteur électronique : il permet de contrôler la mise en marche du moteur via l’Arduino.

  6. Carte Arduino – Sert de contrôleur principal : elle envoie les signaux nécessaires pour piloter le montage.

 circuit.jpeg

PARTIE 5 : Le code 

#define POTENTIOMETER_PIN 12  // Entrée analogique du potentiomètre
#define MOTOR_PIN 16          // Sortie PWM vers le transistor

void setup() {
    pinMode(MOTOR_PIN, OUTPUT);
}

void loop() {
    
    analogWrite(MOTOR_PIN, motorSpeed);  // Envoyer la valeur PWM au moteur
    delay(10);
}

#define POTENTIOMETER_PIN 12  // Entrée analogique du potentiomètre
#define MOTOR_PIN 16          // Sortie PWM vers le transistor

void setup() {
    pinMode(MOTOR_PIN, OUTPUT);
}

void loop() {
    int potValue = analogRead(POTENTIOMETER_PIN);    // Lire la valeur du potentiomètre (0-1023)
    int motorSpeed = map(potValue, 0, 1023, 0, 255); // Convertir la valeur en PWM (0-255)
    
    analogWrite(MOTOR_PIN, motorSpeed);  // Envoyer la valeur PWM au moteur
    delay(10);
}

Voici l'explication détaillée du code utilisé :

1. #define POTENTIOMETER_PIN 12 // Entrée analogique du potentiomètre
Rôle : Cette ligne définit un nom (POTENTIOMETER_PIN) pour représenter le numéro de la broche 12.
Pourquoi ce choix :
#define est utilisé pour rendre le code plus lisible et facile à modifier : si un jour on change la broche du potentiomètre, il suffira de changer ce numéro ici, sans chercher partout dans le code.

2. #define MOTOR_PIN 16 // Sortie PWM vers le transistor
Rôle : De la même manière, cette ligne définit MOTOR_PIN pour la broche 16, qui pilote le moteur.


3. void setup() {
Rôle : Début de la fonction setup(), appelée une seule fois au démarrage du microcontrôleur.
C’est la structure standard d’un programme Arduino. Tout ce qui est initialisation doit se faire dans setup().
Cela permet d'nitialiser les paramètres du système dès le lancement.

4. pinMode(MOTOR_PIN, OUTPUT);
Rôle : Définit la broche du moteur (MOTOR_PIN) comme une sortie.
Il est nécessaire pour pouvoir envoyer un signal PWM depuis cette broche. Sinon, par défaut, les broches sont en entrée.

5. }
Rôle : Fin de la fonction setup().
(Syntaxe obligatoire en C/C++ pour délimiter les blocs de fonctions)

6. void loop() {
Rôle : Début de la fonction loop(), appelée en boucle continue tant que la carte est alimentée.
 C’est ici que le système s’adapte en temps réel aux changements du potentiomètre.

7. int potValue = analogRead(POTENTIOMETER_PIN);
Rôle : Lit la tension en entrée sur la broche du potentiomètre (entre 0V et 5V) et la convertit en une valeur numérique entre 0 et 1023.
Cette ligne de code permet de capter la position du potentiomètre, qui déterminera la vitesse du moteur.

8. int motorSpeed = map(potValue, 0, 1023, 0, 255);
Rôle : Convertit la valeur lue (0–1023) en une plage plus petite (0–255) adaptée au PWM et assure que la valeur envoyée au moteur est proportionnelle à la lecture du potentiomètre.

9. analogWrite(MOTOR_PIN, motorSpeed);
Rôle : Génère un signal PWM correspondant à motorSpeed sur la broche du moteur, elle contrôle effectivement la vitesse du moteur en fonction de la position du potentiomètre.

10. delay(10);
Rôle : Fait une courte pause de 10 millisecondes avant de recommencer la boucle.
Sans delay, la boucle loop() tournerait trop vite, ce qui pourrait provoquer des lectures instables ou inutiles.
10 ms est un bon compromis : assez rapide pour être réactif, mais pas inutilement rapide.
Ainsi, on assure une stabilité de la lecture et on réduit la charge inutile du microcontrôleur.

11. }
Rôle : Fin de la fonction loop().
(Syntaxe obligatoire pour clôturer un bloc de fonction)



Revision #9
Created 31 March 2025 12:26:52 by El Noueiry Marya
Updated 24 September 2025 09:23:22 by Hamed Yasmine