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
Besoin et contexte : Ce projet visene àse créercontente pas d’être un simple objet décoratif statique. Imaginez un bureau ou une étagère où un bateau décoratifminiature animé,prend intégrantvie, un circuit Arduino permettant de contrôler uneson hélice motoriséetournant viaau gré des réglages, offrant un potentiomètre.spectacle à la fois hypnotique et technologique. Inspiré dupar phénomènel’univers de LEGO Technic, ilce allieprojet design,cherche interactivitéà allier esthétique, innovation et innovationinteractivité.
Dans L'objectifun monde où la décoration devient de plus en plus intelligente et modulable, l’idée est d'apporterd’introduire uneun nouvelleobjet dimensioninteractif et éducatif, accessible aussi bien aux amateurs de design qu’aux passionnés de technologie. Pourquoi se limiter à des objets décoratifs enstatiques quand on peut leur conférantdonner du mouvement et deune l'interaction.dimension ludique ?
2. Public cible
Le projet vise plusieurs types d’utilisateurs :
- Les
, qui cherchent des moyens d’intégrer de nouveaux mécanismes motorisés à leurs créations.Passionnépassionnés de LEGO Technic et de modélisme - Les
touche d’originalité à leur espace avec un objet décoratif interactif.Amateursamateurs de designd'd’intérieurintéressésquiparveulentdesapporterobjetsuneinteractifs - Les
l’électronique, qui aiment construire, programmer et expérimenter avec des circuits Arduino.Enthousiastes de l'électronique etadeptes du DIY(DoetItdeYourself)
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'l’hélice via un potentiomètrepermettantL’utilisateur peut ajuster la vitesse de rotation en tournant un bouton, ce qui crée une sensation de contrôle fluide
deetlaintuitif,vitesse.comme s’il pilotait réellement un bateau en miniature.Secondaires :
- Un design soigné et personnalisable, qui permet d’intégrer le bateau dans différents styles d’environnement (bureau, salon, vitrine).
- Une
Secondairesmodularité :Designpossibilitésoigné,d’ajoutermodularité,d’autres animations, d’améliorer l’éclairage ou d’intégrer des capteurs supplémentaires. - Compatibilité avec les tendances LEGO Technic et modélisme, facilitant son intégration
possibledansdiversdesenvironnementscollectionsdécoratifs.
2.4. Analyse de la problématique et veille sur l'existantPourquoi 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 :
Étude des produits similaires (modèModèles de bateaux animés,s : souvent destinés au modélisme naval, nécessitent un montage complexe et un espace dédié.- LEGO Technic motorisé
s,sobjets:décoratifs interactifs). Analyseproposent des mécanismesd'animationintéressantsutilisémais ne sont pas spécifiquement pensésdanscommeledesmodélismeobjets décoratifs.- Objets décoratifs interactifs : principalement lumineux ou statiques, avec peu d’éléments en mouvement mécanique.
- Ce projet cherche donc à combler ce vide en proposant un objet à la fois fonctionnel, décoratif et
les systèmes LEGO Technic. Identification des contraintes techniques et esthétiques (choix des matériaux, intégration de l'électronique, alimentation).
3.5. Lean Canvas-
Problème :
ManqueAujourd’hui,d'les objets décoratifs interactifs sont soit trop complexes, soit trop limités. Il manque des alternatives simples, éducatives et éducatifsvolutives,intégrantcombinantdesàsystèmeslamotorisés.fois technologie et design. -
Solutions : Cré
ationerd'un bateau interactif motorisé, contrôlable par un potentiomètre, personnalisable etmodulable.intégrable dans différents environnements. -
Segments de clientèle : Modélistes, passionnés de LEGO Technic, amateurs de design technologique.
-
Proposition de valeur : Fusion de la technologie, du modélisme et du design interactif.
-
Canaux de distribution : Plateformes DIY (Etsy, Thingiverse), forums de passionnés, boutiques de modélisme.
-
Structure de coûts : Matériaux, composants électroniques, outils de fabrication.
-
Sources de revenus : Vente de kits, fichiers de conception 3D, tutoriels payants.
4. Choix techniques
-
Arduino et électronique : Microcontrôleur, moteur, potentiomètre, alimentation.
-
Matériaux de construction : Plastique imprimé en 3D, bois, autres.
-
Justification : Compatibilité, accessibilité, esthétique et robustesse.
5. Gestion de projet
-
MVP : Premier prototype fonctionnel avec animation de l'hélice et contrôle via potentiomètre.
-
Planification : Conception > Fabrication > Tests > Améliorations.
-
Méthodologie : Approche itérative, tests utilisateurs.
6. Conception et fabrication
-
Croquis et dimensions
-
Liste des matériaux et composants
-
Fichiers 3D et captures d'écran
-
Code Arduino commenté et expliqué
7. Prototypage et tests
-
Photos et analyse des tests : Fonctionnement, stabilité.
-
Documentation des erreurs et ajustements
-
Photos des étapes de fabrication
-
Analyse du produit final
8. Améliorations et évolutions possibles
-
Intégration d'une télécommande
-
Optimisation du design et des matériaux
-
Ajout d'autres mouvements animés
9. Ressources et inspirations
-
Tutoriels et articles techniques
-
Références en modélisme et électronique
-
Inspirations LEGO Technic et design interactif
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.
La plus petite forme a ensuite été percée pour permettre l’intégration des différents composants.
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.
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.
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.
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.
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 :
Et puis nous avons modélisé le mat comme ci-dessous :
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.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) :
-
Potentiomètre – Sert à ajuster la tension en entrée et donc à contrôler la vitesse du moteur.
-
Moteur – Convertit l'énergie électrique en énergie mécanique (rotation).
-
Diode – Protège le circuit contre les retours de courant générés par le moteur lorsqu'il s'arrête.
-
Résistance – Limite le courant électrique pour éviter d’endommager les composants.
-
Transistor – Fait office d’interrupteur électronique : il permet de contrôler la mise en marche du moteur via l’Arduino.
-
Carte Arduino – Sert de contrôleur principal : elle envoie les signaux nécessaires pour piloter le montage.
PARTIE 5 : Le code
-
Test initial du moteur
Nous avons tout d'abord réalisé un premier programme destiné à vérifier le bon fonctionnement du moteur.
Le test a été concluant : le moteur fonctionne correctement.
#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); }
-
Ajout du potentiomètre (code final)
Dans un second temps, nous avons modifié le code en ajoutant deux lignes supplémentaires (code ci-dessous, ligne 9 et 10) afin d’intégrer le potentiomètre au circuit.
Cette étape a permis de connecter et d'utiliser le potentiomètre avec succès.
#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)