Polargraph

De Les Fabriques du Ponant
Aller à : navigation, rechercher

Polargraph

Le polargraph est une machine qui va reproduire une image numérique en déplaçant un stylo à l’aide de deux moteurs afin de dessiner sur papier une image numérique que nous lui avons préalablement soumise. nous avons décidé d’implémenter un modèle de polargraph à l’aide d’Arduino UNO.

Auteurs

Ont participé à la rédaction de cette fiche (Groupe C):

Outils et matériaux

Outils

  • un fer à souder et de l'éteint
  • scie à bois
  • crayon
  • bois
  • tournevis
  • pince

Liste du Matériel

  • Un Arduino UNO
  • Deux moteurs pas à pas hybrides : 600mA (0.6A). Mine were 400 steps per revolution (0.9 degree per step)
  • Un cable usb alimentation
  • Un rotor shield
  • deux poulies imprimées en 3D
  • « Une gondole » pour maintenir le stylo (attache en métal = pince à dessin)
  • des ficelles
  • un stylo
  • une planche en bois

Fonctionnement du moteur pas à pas

Pour faire fonctionner un moteur pas à pas seul, on peut le brancher directement sur la carte arduino, celle-ci fournira alors le courant nécessaire pour la puissance, et un signal PWM permettra de commander le moteur. Néanmoins, pour contrôler deux moteurs pas à pas ou plus, l'arduino n'est pas capable de générer la puissance nécessaire pour alimenter les moteurs, on doit donc passer par un shield moteur avec une alimentation externe, c'est ce cas que nous allons mettre en place et expliquer dans ce tutoriel.


Un moteur pas à pas ne fonctionne pas de la même manière qu'un moteur à courant continu, et n'a pas la même fonction. Un moteur à courant continu (moteur CC), tourne continuellement et à vitesse constante lorsqu'une tension continue est appliquée à ses bornes. Le rôle d'un moteur pas à pas est de pouvoir déplacer des objets en avançant d'un certain nombre de pas ce qui permet une grande précision. Ce sont ces types de moteurs que l'on retrouve par exemple dans les imprimantes 2D et 3D pour contrôler le déplacement du jet d'encre, ou encore le déplacement de la feuille. Ce sont ces moteurs qui provoquent les saccades que l'on entend lors de l'impression d'une feuille.

Pour pouvoir utiliser la carte shield que nous avions pour notre projet, nous avons dû concevoir un système particulier pour contrôler les moteurs pas à pas, qui n'est pas celui habituel du signal PWM. En effet le shield nous permet d'alimenter quatre moteurs CC, il n'est pas fait pour contrôler des moteurs pas à pas, mais comme nous sommes des débrouillards, nous allons nous servir du principe même de fonctionnement de ce moteur pour contourner le problème. En effet, le moteur pas à pas tourne grâce à quatre bobines (pour ce modèle), il faut alimenter ces bobines à tour de rôle pour faire tourner l'arbre moteur.

SchémaMoteurPasAPas.gif

Pour se faire, nous alimenterons à tour de rôle et dans un sens de marche puis dans l'autre, respectivement les sorties moteurs CC 1 et 2 du shield pour le premier moteur pas à pas, et les sorties moteurs CC 3 et 4 pour le second moteur pas à pas. Nous branchons donc les deux moteurs sur le shield, comme suit (respecter les couleurs des fils) :

(photo branchement shield-moteurs)


Le code arduino que nous avons conçu est le suivant :

(code arduino contrôler les moteurs)

Il utilise une librairie téléchargeable à cette adresse : (lien de téléchargement de la librairie)

Réalisation du projet

Soudage des composants électroniques sur la carte shield

On a réalisé le soudage du rotor shield en suivant les étapes proposées sur le guide du "rotoshield de snootlab" [1], qui a pour rôle d'alimenter les moteurs pas a pas en utilisant une seule carte arduino.

Exemple.jpg

Réalisation des poulies sur un logiciel de conception 3D

La conception de la poulie était faite sur un logiciel de modélisation 3D libre pour la Conception Assistée par Ordinateur "FreeCAD", afin de pouvoir bien préciser les dimensions souhaitées.

Exemple3.jpg

Impression des poulies

On a utilisé l'imprimante 3D pour pourvoir imprimer le fichier déjà crée.

Exemple1.jpg

Code Source du Projet

Partie Arduino

Un code source est déjà mis en publication sur le site officiel du projet et sur Github. le lien: https://github.com/euphy/polargraph_server_a1 Le code est destiné au utilisation de la carte Adafruit motorshields ou avec un simple ULN2003s. Pour la carte Rotoshield, une bibliothèque basée sur la bibliothèque Motorshields de la est mise aussi sur Github (https://github.com/Snootlab/Snootor), mais il n'est pas compatible avec le projet.


Partie PC

Un code source est aussi mis en publication sur le site officiel du projet et sur Github. le lien: https://github.com/euphy/polargraphcontroller/archive/2016-03-29-10-23.zip il existe aussi les versions exécutable pour Linux et Windows (x32 et x64). le lien: https://github.com/euphy/polargraphcontroller/releases/download/2016-03-29-10-23/Polargraph.2016-03-29.zip

Les problèmes rencontrés

La ficelle

Le type de ficelle le plus utilisé parmi les différents projets de polargraph présents sur le net, est une chaine perlée. Néanmoins cette dernière ne se trouve pas facilement sur internet ( le seul site que nous avons trouvé pour en commander est celui-ci : site )


Le shield moteur

Un des gros problèmes que nous avons concerne le shield moteur. Nous n'avons pas eu le choix du shield à utiliser puisqu'il était déjà acheté lorsque nous avons été affecté au projet. Le shield a été commandé en kit pour des raisons de budget, mais nous vous conseillons de l'acheter prêt à l'emploi, en raison du temps important qu'il faut alors consacrer au soudage (8 heures dans notre cas).

Sources et ressources utiles

Partage ressources :https://github.com/euphy/polargraphcontroller/releases/download/2016-03-29-10-23/Polargraph.2016-03-29.zip https://github.com/euphy/polargraphcontroller/archive/2016-03-29-10-23.zip

Code arduino :https://github.com/Snootlab/Snootor