Le "Rolling-Pen"

Projet de traçage.

D'après mon expérience du "Grapher V5.2", ce projet est plus basé sur de la programmation de coodonnées
Elle intègre un serveur pour placer les fichiers a tracer.

Pour une masse Hors 3D, fils et connecteurs dupont de 162 grammes.
Soit un total de d'environs 12.76 € avec les cablages ... auquel il faut ajouter l'impression 3D
Principe de fonctionnement et mathématiques
Principe de fonctionnement Pour déplacer le stylo du point $A$ au point $B$, nous devons calculer la l'angle et la distance entre les coordonnées successives.
Nous irons toujours à l'angle le plus court, le stylo s'en fou de savoir si c'est en marche avant ou marche arrière.
Principe de fonctionnement

Le déplacement du stylo dépend de plusieurs paramètres :

  • "D"Le diamètre de roue, nous prendrons Ø50mm sur un join torique pour limiter le glissement.
  • "e" La distance entre les roues, 80mm devrais suffir pour tout placer.
  • "nbp"Le nombre de pas par tour du moteur, avec un 28BYJ-48, cela représente 2048 pas par tour.
  • Il est impératif que le stylo soit au milieu des deux roues, ça simplifie grandement les calculs.

Les roues sont donc indépendantes l'une de l'autre, ce qui permet d'avoir un déplacement angulaire précis.
Les calculs Ne perdons pas de vue que l'ensemble est régis par des coordonnées cartésiennes purement théorique.
Même avec un très bonne précision des moteurs, il vas nous falloir corriger en permanence la trajectoire pour coller au réelle.

Un petit exeample sera plus simple a comprendre.

Pour déplacer le stylo du point $A(0,0)$ au point $B(0,50)$, en ligne droite, il suffit de faire tourner les deux roues d'une nombre de pas ici 651.8986 pas, et comme les pas doivents être entier, 652 pas ,soit une erreur de 0.1014 pas soit 0.0078 mm , cette erreur pourrai-être négligeable, mais nous risquons de cumuler les erreurs tout au long du tracé.
C'est pour cette raison qu'une correction entre la position réelle et calculer s'impose.

Le point B(0,50) se trouve maintenant a B(0,50.007773685072)
Je vous donne tout de même le calcul:
  • Diamètre : 50mm
  • Distance a parcourir le long du chemin $y_B-y_A=50~mm$
  • $pas=Distance\cdot \dfrac{2048}{\pi\cdot D}$ (13.037972938088 pas par mm)
";
  • Pour la valeur angulaire
    $pas=angle\cdot \dfrac{2048}{360}$ (5.6888888888889 pas par °)
  • ";
    Les rotations Parlons maintenant, d'une rotation quelconque, afin que la position du déplacement du stylo soit continu, les deux roues tourneront en sens inverses.
    $\overrightarrow{AB}= \begin{pmatrix} x_B-x_A \\ y_B-y_A \end{pmatrix} = \begin{pmatrix} 0 \\ 50 \end{pmatrix}$
    $\overrightarrow{BC}= \begin{pmatrix} x_C-x_B \\ y_C-y_B \end{pmatrix} = \begin{pmatrix} 50 \\ 10 \end{pmatrix}$
    $\left\lVert\overrightarrow{AB}\right\rVert = \sqrt{0^2+50^2} = 50$
    $\left\lVert\overrightarrow{BC}\right\rVert = \sqrt{50^2+10^2} = 50.99020$
    $\overrightarrow{AB}\cdot \overrightarrow{BC}= x_{AB}\cdot x_{BC}+y_{AB}\cdot y_{BC} =0\times 50+50\times 10=500$
    Le scalaire étant positif, le signe du $\cos$ sera positif.
    $\cos \theta = \dfrac{\overrightarrow{AB}\cdot \overrightarrow{BC}}{\left\lVert\overrightarrow{AB}\right\rVert \cdot \left\lVert\overrightarrow{BC}\right\rVert} = \dfrac{500}{50\times 50.99020}=0.19612$
    $\theta=\arccos(0,196116135)=78.69007 ^\circ$

    Pour un calcul exacte de l'angle en tenant compte du signe:
    $\theta=atan2(AB.y,AB.x)-atan2(BC.y,BC.x)-78.69007 ^\circ$


    Et la distance $(AC)$:
    $\overrightarrow{AC}=\overrightarrow{AB}+\overrightarrow{BC}=\begin{pmatrix} 0 \\ 50 \end{pmatrix}+\begin{pmatrix} 50 \\ 10 \end{pmatrix}=\begin{pmatrix} 50 \\ 60 \end{pmatrix}$
    $\left\lVert\overrightarrow{BC}\right\rVert = \sqrt{50^2+60^2} = 50.99020$
    Les déplacement Avec les hypothèses précédentes, l'erreur sur l'angle donne :

    Pour la rotation

    La distance a parcourir pour chaque roue $\dfrac{Entraxe}{2} \cdot \theta$
    La distance par roue pour une angle de 78.69007° est donc de 54.93603mm

    Mais ce qui nous importe c'est l'angle et l'erreur angulaire, alors un p'tit souvenir de mécanique, le rapport de transmission, vas nous aider $\dfrac{\omega2}{\omega1}=\dfrac{D_1}{D_2}$, qui dans notre cas se transforme en $\dfrac{\alpha}{\theta}=\dfrac{Entraxe}{D}$.
    L'angle de rotation de la roue devient un angle de 125.90411°
    Pour l'angle de la roue716.2545 pas, et comme les pas doivents être entier, 716 pas ,soit une erreur de -0.2545 pas soit -0.0447 ° sur la roue.
    Ce qui représente sur le contact entre la roue et le plan, un angle de 78.66211° soit un parcourt de 54.91651mm

    Pour la distance

    Avec les calculs précédent la distance réelle est de 50.00777
    Pour ces petites distance la position du point C(50,60) sera C(50.009494280709,60.027280166281)
    Quelques centième par point, au bout quelques centaine de point ou une distance plus grande, le defaut sera visible, il faut donc en tenir compte.
    Les defauts et leurs remèdes
    Original un carré de 100x100 $D_{roue}=78,1mm$, $Entraxe=90mm$
    Default le diamètre réel de roue est trop petit.Default le diamètre réel de roue est trop grand.
    Default l'entraxe des roues est trop petit.Default l'entraxe des roues est trop grand.
    Le branchement (Version 1.0) Tous ce passe maintenant via le site internet placer sur la puce.
    Et surtout, l'ensemble est dans un bloc de traçage, les moteurs sont intégrés uniquement deux fils reliés à deux ventouses et une alimentation 5V 3A, qui peut-être substitué par une batterie.
    Ensemble des Branchement
    Branchement Wemos/Moteurs
    WEMOSPORTULN2003Moteur
    D1GPIO51BGauche
    D2GPIO42B
    D3GPIO03B
    D4GPIO24B
    WEMOSPORTULN2003Moteur
    D0GPIO161BDroit
    D5GPIO142B
    D6GPIO123B
    D7GPIO134B
    WEMOSPORTAutre
    D8GPIO15Servo SG90
    Programme de conversion pour la mise en œuvre : J'ai fait le choix de réaliser les calculs directement dans inkscape, le programme dans l'ESP, ne se charge que du serveur, et de se déplacer suivant le nombre de pas demandé.
    Plusieurs avantage à cela :
    Pour les fichiers vectoriels, c'est plus rapide, par inkscape décompresser l'extension suivante:
    Et enfin, ouvrir sous inkscape le fichier à tracer (Attention, en cas de bitmap, il faut le convertir en vectoriel).
    Puis :
    1. selectionner toute l'image
    2. Dans le menu Chemin -> Objet en chemin Maj+Ctrl+C
    3. Dans le menu Ficier -> Propriétés du document Maj+Ctrl+D
      • Dans l'onglet page choisir
      • Unité par défaut : mm
      • Dimensions personnalisées, Largeur 800, Hauteur 1000, Unité : mm
      • Dans Echelle Echelle en x : 1,00000
    4. Sauvegarder votre fichier au format "rolling-pen" (*.rp)
    Cette fois, c'est le moment de mettre ce fichier sur le serveur et de lancer le traçage, toutes ces opérations se font en wifi.
    Le format "rp" J'ai décidé de réaliser mon propre format de fichier, celui-ci est simple d'utilisation.
    #ROLLING-PEN V1.0<CR><LF>                      Nom du convertisseur
    #800.0 x 1000.0<CR><LF>                    Dimension du tableau en mm
    #D:50.0<CR><LF>                            Diamètre de la roue
    #S:2048<CR><LF>                            Nombre de pas par tour du moteur
    #E:80.00<CR><LF>                           Entraxe entre les deux roues
    #Temps:  00:10:49
    V25813 W28187<CR><LF>   Prend la position actuelle et considère qu'elle est 
                                         à 25813 pas des moteurs "Left" et 28187 a droite"Right".
    G0<CR><LF>              Lève le stylo.
    L24694 R25570<CR><LF>   Déplace stylo à 24694 pas du moteur "Left" et 25570 pas du moteur "Right".
    G1<CR><LF>              Baisse le stylo
    L24694 R25570<CR><LF>   Déplace stylo à 24694 pas du moteur "Left" et 25570 pas du moteur "Right".
    L24542 R25406<CR><LF>   Déplace stylo à 24542 pas du moteur "Left" et 25406 pas du moteur "Right".
    L24542 R25406<CR><LF>
    L24573 R25380<CR><LF>
    L24573 R25380<CR><LF>
    L24588 R25370<CR><LF>
    M30<CR><LF>              Fin de programme.
    
    <CR><LF> sont de simple "entrée" du clavier
    Calcul de pas
    Moteur
    Nombre de pas par tour:
    Diamètre de la roue: mm
    Soit :
    13.037972938088066 pas/mm
    Ce qui donne une précision de
    0.07669903939428206 mm/pas
    Calcul de l'effort
    Coupe : mNm
    Force :
    9.60 N soit environs 942gr
    Calcul de la vitesse
    Fréquence : Hz
    Vitesse de rotation :
    1.0ms/pas 0.20 s/tr soit 300.00 tr/min
    Vitesse linéaire :
    392.70 mm/s
    Le programme actuel est en pas entier, la précision est plus que suffisante et la distance très importante.
    Le choix du programme en pas c'est fait par le gain en vitesse.

    C'est tout pour aujourd'hui