« Art Sciences 2025/2026 E11 » : différence entre les versions

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
Ligne 266 : Ligne 266 :
La méthode utilisée sera d'emboiter deux planche en bois. Une en forme de triangle et une en forme de rectangle. La cane pourra être accrochée à la planche en forme de triangle avec des colliers de serrage pour qu'elle forme un angle. Le support global pourra être accroché au mur avec des vis.  
La méthode utilisée sera d'emboiter deux planche en bois. Une en forme de triangle et une en forme de rectangle. La cane pourra être accrochée à la planche en forme de triangle avec des colliers de serrage pour qu'elle forme un angle. Le support global pourra être accroché au mur avec des vis.  


Ces planches ont été découpée à l'aide de la ShopBot.  
Ces planches peuvent être découpée à l'aide de la ShopBot.  
[[Fichier:Modélisation du support de la cane à pêche.png|centré|vignette|Modélisation du support de la cane à pêche]]
[[Fichier:Modélisation du support de la cane à pêche.png|centré|vignette|Modélisation du support de la cane à pêche]]
La pièce triangulaire à des tenons et la pièce rectangulaire a des perçages à la forme des tenons pour positionner les deux pièces et qu'elles s'emboitent correctement ensembles avant de les coller.
La pièce triangulaire à des tenons et la pièce rectangulaire a des perçages à la forme des tenons pour positionner les deux pièces et qu'elles s'emboitent correctement ensembles avant de les coller.
[[Fichier:Modélisation du support de la cane à pêche vue détachée.png|centré|vignette|Modélisation du support de la cane à pêche vue détachée]]
[[Fichier:Modélisation du support de la cane à pêche vue détachée.png|centré|vignette|Modélisation du support de la cane à pêche vue détachée]]La ShopBot étant indisponible le jour où nous voulons faire la découpe des planches, nous n'avons pas pu les fabriquer. Mais les plans sont disponibles pour une fabrication dans les prochaines semaines.[[Fichier:Plan et mesure des planches de support.png|centré|vignette|Plan et mesure des planches de support]]
[[Fichier:Plan et mesure des planches de support.png|centré|vignette|Plan et mesure des planches de support]]

Version actuelle datée du 31 janvier 2026 à 18:18

Journée du mardi 27/01

Le projet se compose d’une canne à pêche, remontant et redescendant une « prise » en boucle.

Pendant cette semaine nous essayerons de créer le circuit permettant la remontée et la descente que nous viendrons fixer au moulinet avec des pièces modélisées.


Discussion avec Chaymae sur les modules à acheter pour circuit moteur.

Hameçonnage de la canne à pêche et réalisation de la structure « amas » en coquillages ( percée des coquillages avant enfilage à la Dremel ).


Journée du mercredi 28/01

Tests du déroulage des hameçons. Discussion avec Xilong sur le codage du moteur.

Journée du Jeudi 29/01

Assemblage du circuit moteur et tests de la rotation. Nous avons utilisé les matériels suivants : Arduino Uno (génère les signaux de commande), module driver moteur BTS7960 (amplification de puissance / inversion du sens de rotation), moteur CC à réducteur 5840-31ZY (12 V, 12 tr/min), alimentation à découpage S-240-12 (fournit une tension continue de 12 V côté moteur).

Arduino Uno
Driver du moteur BTS7960
Moteur 5840-31ZY
Alimentation à découpage S-240-12

Instructions de câblage: Brancher l’entrée du S-240-12 sur la phase, le neutre et la terre, relier sa sortie V+/V- à l’alimentation moteur du BTS7960 (B+/B- ou +12V/GND), connecter les deux fils du moteur sur M+/M- (OUT1/OUT2), piloter le BTS7960 avec l’Arduino via RPWM/LPWM (vitesse et sens) et R_EN/L_EN (enable) en lui fournissant aussi VCC 5V et GND, avec une masse commune obligatoire : GND Arduino = GND BTS7960 = V- de l’alimentation.

Branchement du Driver du moteur BTS7960
Assemblage des composants

Codage arduino: Le programme met en œuvre, via une simple boucle de machine à états, une séquence : démarrage en marche avant avec augmentation progressive de la puissance, fonctionnement à faible vitesse en marche avant pendant un certain temps, pause, démarrage en marche arrière avec augmentation progressive de la puissance, fonctionnement à faible vitesse en marche arrière pendant la même durée (ou une durée définie), puis nouvelle pause, en utilisant le PWM pour contrôler la vitesse et le temps de fonctionnement pour approximer la distance aller-retour. Voici le code de l'arduino ci-dessous.

// BTS7960 : RPWM sur D5, LPWM sur D6, R_EN sur D7, L_EN sur D8

const int RPWM = 5;

const int LPWM = 6;

const int REN  = 7;

const int LEN  = 8;

// Réglages de la vitesse lente (à ajuster en premier)

int pwmSlow  = 60;              // PWM en vitesse lente : plus petit = plus lent (souvent 50~120)

int pwmKick  = 140;             // PWM de démarrage : évite que le moteur ne démarre pas sous charge (souvent 120~180)

unsigned long kickMs = 250;     // Durée du “coup de boost” au démarrage (en ms)

// La “longueur” est approximée par le temps de rotation (à adapter selon le besoin)

unsigned long forwardMs = 8000; // Durée de rotation en sens avant (ex : 8 s)

unsigned long reverseMs = 5000; // Durée de rotation en sens inverse (ex : 5 s)

unsigned long pauseMs = 200;    // Pause lors du changement de sens (mettre 0 si aucune pause)

// États (machine à états) : démarrage avant, marche avant, pause, démarrage arrière, marche arrière, pause

enum State { FWD_KICK, FWD_RUN, PAUSE1, REV_KICK, REV_RUN, PAUSE2 };

State state = FWD_KICK;

unsigned long t0 = 0;

void enableDriver(bool en) {

  // Active/désactive le driver en mettant les deux broches Enable à HIGH/LOW

  digitalWrite(REN, en ? HIGH : LOW);

  digitalWrite(LEN, en ? HIGH : LOW);

}

void motorStop() {

  // Arrêt du moteur : PWM à 0 sur les deux voies

  analogWrite(RPWM, 0);

  analogWrite(LPWM, 0);

}

void motorRun(bool forward, int pwm) {

  // Commande du moteur :

  // forward = true  -> sens avant (RPWM = pwm, LPWM = 0)

  // forward = false -> sens inverse (RPWM = 0, LPWM = pwm)

  if (forward) {         // Sens avant

    analogWrite(RPWM, pwm);

    analogWrite(LPWM, 0);

  } else {               // Sens inverse

    analogWrite(RPWM, 0);

    analogWrite(LPWM, pwm);

  }

}

void setup() {

  // Configuration des broches en sortie

  pinMode(RPWM, OUTPUT);

  pinMode(LPWM, OUTPUT);

  pinMode(REN, OUTPUT);

  pinMode(LEN, OUTPUT);

  // Activation du driver et arrêt initial

  enableDriver(true);

  motorStop();

  // Initialisation de l'état : démarrage en sens avant

  t0 = millis();

  state = FWD_KICK;

  motorRun(true, pwmKick);  // Démarrage en sens avant avec PWM plus élevé

}

void loop() {

  unsigned long now = millis();

  switch (state) {

    case FWD_KICK:

      // Phase de démarrage en sens avant (boost)

      if (now - t0 >= kickMs) {

        state = FWD_RUN;

        t0 = now;

        motorRun(true, pwmSlow); // Passage à la vitesse lente en sens avant

      }

      break;

    case FWD_RUN:

      // Marche avant pendant forwardMs

      if (now - t0 >= forwardMs) {

        motorStop();

        state = PAUSE1;

        t0 = now;

      }

      break;

    case PAUSE1:

      // Pause avant inversion de sens

      if (now - t0 >= pauseMs) {

        state = REV_KICK;

        t0 = now;

        motorRun(false, pwmKick); // Démarrage en sens inverse avec boost

      }

      break;

    case REV_KICK:

      // Phase de démarrage en sens inverse (boost)

      if (now - t0 >= kickMs) {

        state = REV_RUN;

        t0 = now;

        motorRun(false, pwmSlow); // Passage à la vitesse lente en sens inverse

      }

      break;

    case REV_RUN:

      // Marche inverse pendant reverseMs

      if (now - t0 >= reverseMs) {

        motorStop();

        state = PAUSE2;

        t0 = now;

      }

      break;

    case PAUSE2:

      // Pause avant de revenir au sens avant

      if (now - t0 >= pauseMs) {

        state = FWD_KICK;

        t0 = now;

        motorRun(true, pwmKick); // Retour au démarrage en sens avant

      }

      break;

  }

}

Discussion avec Thomas Ferreira sur finalité du projet.

Discussion avec Thomas sur les calculs pour trouver le nombres de rotation que le moteur doit effectuer pour remonter et redescendre, correctement, la prise de la canne à pêche.

Une pièce intermédiaire à été modélisée et imprimée en 3D pour lier le moteur au moulinet de la canne à pêche.

Pièce intermédiaire pour la liaison entre le moteur et la canne à pêche.
Pièce intermédiaire imprimée et montée sur le moulinet de la cane à pêche


Une pièce à été modélisée et imprimée pour fixer le moteur sur la cane à pêche.

Modélisation de la pièce de fixation de moteur
Pièce de fixation moteur imprimée et montée sur la cane à pêche

Journée du Vendredi 29/01 :

Une réflexion à été faite sur la fixation de la cane à pêche sur le mur.

La méthode utilisée sera d'emboiter deux planche en bois. Une en forme de triangle et une en forme de rectangle. La cane pourra être accrochée à la planche en forme de triangle avec des colliers de serrage pour qu'elle forme un angle. Le support global pourra être accroché au mur avec des vis.

Ces planches peuvent être découpée à l'aide de la ShopBot.

Modélisation du support de la cane à pêche

La pièce triangulaire à des tenons et la pièce rectangulaire a des perçages à la forme des tenons pour positionner les deux pièces et qu'elles s'emboitent correctement ensembles avant de les coller.

Modélisation du support de la cane à pêche vue détachée

La ShopBot étant indisponible le jour où nous voulons faire la découpe des planches, nous n'avons pas pu les fabriquer. Mais les plans sont disponibles pour une fabrication dans les prochaines semaines.

Plan et mesure des planches de support