Chargement...
 

Sand Table Grp1

Membres: Decou / Duclusaud

Présentation du projet :

Le but de ce projet est de construire une "sand drawing table". Nous prendrons de l'inspiration sur le travail de l'entreprise Sisyphus qui vend ce genre de table.

Table Final 188455077 497341071413905 8898743921575658665 N

Lien vers une vidéo de la table finale : https://drive.google.com/file/d/1f2rt9aPrNuJFtPfoBBeAOd0koTvqRyuu/view?usp=sharing

Le principe est simple : une bille guidée par un aimant se déplace sur le sable créant des dessins.

Pour plus d'information sur la presentation du projet : https://docs.google.com/presentation/d/1pck66LWqkjd7cfp0bzTarUT_7bWldCSIgwggRyMb7JY/edit?usp=sharing

Point d'avancement à mi-parcours : https://docs.google.com/presentation/d/1Eqf4eWZo3C32ohfp6-pZT9416RJLI0T7MQQeR5BHg9E/edit?usp=sharing

Soutenance : https://docs.google.com/presentation/d/1yPLmFd40Nh6SfzoZcMZA2ZwRSW8NaPOQ-JQ3lznqQBg/edit?usp=sharing

Problématiques initiales et solutions

Deplacement de la bille : principe général

Le problème majeur dans ce projet est le déplacement de la bille. Nous avons opté pour un mode de guidée polaire. Le schéma ci dessous illustre ce fonctionnement :

Schema Table

Déplacement de la bille : le bras

Pour que l'aimant puisse se déplacer le long du bras nous utilisons un système de tige filetée. Le schéma ci dessous permet de mieux comprendre ce système.

Bras

Nous avons également modélisé une partie du mécanisme sur Onshape afin de réaliser des prototypes à la découpeuse laser :

OldTige

Entortillement des fils

Puisque le bras peut tourner et qu'un moteur en est solidaire un problème d'entortillement des fils de ce moteur se pose. Pour régler ce problème nous utiliserons un "collecteur tournant". Un systeme prévu justement pour ce type de problème et qui permet une continuité des fils entre une partie tournante et une partie fixe.

Evolution de la solution

Après réflexions plus poussées quant à la gestion de l'entortillement du fil, nous avons exploré plusieurs solutions telles que l'utilisation d'un moteur pas à pas à arbre creux par exemple. La solution retenue s'attaque à la source du problème et sera d'une part l'emploi d'un système de "bewel gear" permettant de transmettre la rotation du moteur M2 d'un axe vertical à un axe horizontal, ainsi que l'emploi d'une courroie afin de décaler la position du moteur M1 de l'axe principal. Ainsi, nous obtenons une configuration permettant à nos deux moteurs d'être sur la partie fixe de notre table, et donc qui supprime la question d'un entortillement des fils.

SchemaALaMain

BG

Problèmes rencontrés après la réalisation des premiers prototypes 

Problème Solution
Courroie mal tendueTendeur de courroie
Switch de fin de course en mouvement (entortillement) Remplacé par ILS fixe
Support du plateau de sable s'affesse au milieuSupport central avec bille folle en dessous
Maintien du plateau de sable peut s'enlever trop facilementMise en place de loquets
Mouvement circulaire du bras entraine radialement l'aimantCorrection software (pas implémenté au rendu)

Illustration des solutions mises en place

Tendeur de courroie :
188258013 301707658330563 3973083063392818740 N


ILS :
Permet de détecter lorsque l'aimant est au centre de la table sans que le capteur ne soit sur une partie en mouvement du mécanisme (l'ILS est placé dans le socle du bac de sable)
187254856 320995029388444 4957590614399854895 N


Support central :
188460080 492645521983681 6132173995968679698 N


Loquets :
Emboîtement du bac à sable (bloc supérieur) et de la partie mécanique/électronique (bloc inférieur) par rotation du bloc supérieur par rapport au bloc inférieur
187579227 303291024593786 2074434397494429860 N 188677583 293088569229477 5117488568477544415 N

Réalisation de la table

Modélisation de l'ensemble de la table sur Onshape :
Capture D’écran De 2021 05 20 09 39 55

Construction :
187997560 2945134682384352 5379567885511174499 N 188394811 948011979073181 8828926520242265635 N 188400464 127514549361738 3662238512760672052 N 188455077 497341071413905 8898743921575658665 N(1)

Pistes d'amélioraton

Les principaux défauts de la version finale de notre projet sont le bruit (lié aux vibrations, roulements multiples et mécanismes plastiques), et l'entraînement inconsistant de la bille (lorsque la couche de sable est trop épaisse ou que les mouvements sont trop brusques). Afin de les supprimer, nos pistes d'améliorations sont les suivantes :

Vibrations et bruit:

  • Un meilleur contrôle des steppers
  • Plus grande réduction centrale
  • Utilisation d’engrenages usinés


Entraînement de la bille :

  • Aimant plus puissant
  • Sable plus lisse (de plage, sans irrégularités)


Nous pensons également qu'il serait souhaitable de définir plus de modes de dessin (rosaces, formes simples, etc.) ainsi que d'avoir une alimentation dédiée pour notre Arduino et son shield en vu d'en faire un objet autonome et à l'utilisation simplifiée.

Software

Soft Makers
Le soft tel qu'il était à la fin du projet permet de dessiner des spirales avec un nombre de tours paramétrables et des cercles ondulés sur lesquels la fréquence et la hauteur des dents est paramétrable. Il était exécuté par une Arduino UNO et ne gérait pas l'ILS (et donc le calibrage) par manque de temps, bien que l'électronique nécessaire soit présente et reliée sur notre version finale.

fichier de controle sandtable
#include <AFMotor.h>
#include <time.h>

#define STEPSPERREVOLUTION 200.0
#define MAXREVARM 150.0
#define CENTERREDUCTION 2.8

// connect motor to port #1 (M1 and M2)
AF_Stepper stepperArm(STEPSPERREVOLUTION, 2);
AF_Stepper stepperCenter(STEPSPERREVOLUTION, 1);

void setup() {
  Serial.begin(9600);
  Serial.println("Stepper test!");

  stepperArm.setSpeed(100);  // 100 rpm
  stepperCenter.setSpeed(30);  // 30 rpm
}

void spirale(int revNum) {
  double stepsArm = STEPSPERREVOLUTION*MAXREVARM; //nb step pour aller de 0 au bout du bras
  double stepsCenter = STEPSPERREVOLUTION*CENTERREDUCTION*revNum; //nb step pour faire revNum tours
  AF_Stepper stepperMax = stepperArm;
  AF_Stepper stepperMin = stepperCenter;
  double nMax = stepsArm;
  double nMin = (stepsCenter < stepsArm) ? stepsCenter : stepsArm; //nombre de steps min
  if (nMin == stepsArm){
    stepperMax = stepperCenter;
    stepperMin = stepperArm;
    nMax = stepsCenter;
  }
  int stepPerLoop = (int) round(nMax/nMin);
  Serial.println(stepPerLoop);
  Serial.println(nMax);
  Serial.println(nMin);
  for (int i = 0; i < nMin; i ++){
    stepperMin.step(1, FORWARD, SINGLE);
    stepperMax.step(stepPerLoop, FORWARD, SINGLE);
  }
}

void zigzag(int revNum, int spacing, int amplitude){
  double stepsCenter = STEPSPERREVOLUTION*CENTERREDUCTION*revNum; //nb step pour faire revNum tours
  bool direction = 0;
  for (int i = 0; i < stepsCenter; i ++){
    stepperCenter.step(1, FORWARD, SINGLE);
    if (i % spacing == 0){
      direction = !direction;
    }
    if (direction){
      stepperArm.step(amplitude, FORWARD, SINGLE);
    }
    else{
      stepperArm.step(amplitude, FORWARD, SINGLE);
    }
  }
}

void loop() {
  //spirale(1);
  stepperArm.step(10, FORWARD, SINGLE);
  stepperCenter.step(2, FORWARD, SINGLE);
}


Matériel utilisé

Nom Commentaire
2 moteurs pas à pasRécupérés sur imprimante 3D
ControleurArduino Uno
Sable Fin
Bille Bille de flipper
Plexiglass PMMA 15mm
Bois MDF (3-5-6-10mm)
Axe filetée Récupéré sur imprimante 3D
Billes folles Récupérées à eirlab
Aimant Trouvable à eirlab
ILS Trouvable à eirlab
Système de pignon/courroie Pignon de 30 dents sur le moteur, 84 en bout de courroie, courroie de 420mm

Avancement

20 mars 2021

  • Imprimante 3D démontée, pièce récupérées.
  • Système de déplacement sur le bras monté et fonctionnel (pièces découpées à la laser).
  • Nouveaux plans pour associé moteur central et bras
  • Carte flashé avec un premier prototype logiciel : plateforme du bras se replace au debut (utilisation d'un microrupteur pour detecter quand s'arreter), les deux moteurs (central et bras) tournent en même temps à une vitesse constante => dessin d'une spirale.
  • Premier tests sur écran LCD (knob de control semble ne pas fonctionner)
  • Découpe de nouveaux prototypes corrigés à la laser

22 mars 2021

23 mars 2021

  • Impression à la 3D des bewel gears
  • Mise a jours des plans de l'axe fileté pour intégrer ce mécanisme
  • Commande de courroie/pignon
  • Usinage des axes liés aux bewel gears

24 mars 2021

  • Impression des pièces 3D de la nouvelle structure
  • Montage d'une partie du nouveau prototype
  • Réflexion sur la rotation non voulue de la tige fileté induite par la rotation de M1
  • Réflexion sur les paterns programmables et leur implémentation

31 Mars 2021

  • Modélisation du socle et découpe des premiers éléments à la laser

1 Avril 2021

  • Réalisation du socle supportant la tige fileté (découpe laser + montage)
  • Mise à jour du modèle Onshape

8 Avril 2021

Avril 2021 - début Mai 2021

  • Découpe, impression et construction des différents étages de la tables
  • Tests et calibration des différentes parties mécaniques (tension courroie, axes de rotations sans jeu, etc.)
  • Mise en place de l'électronique (Arduino UNO, ILS, steppers)

19 Mai 2021

  • Dernieres modifications, en particulier sur le software
  • Meca fonctionnelle
  • Création diapo de soutenance finale

20 Mai 2021_

  • Soutenance finale
  • Démonstrations aux professeurs + aux autres groupes

Evénements

Aucun enregistrement à afficher

Formations

Aucun enregistrement à afficher