Stringent, le traceur mural à 15 $
Composants et fournitures
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Outils et machines nécessaires
| ||||
|
Applications et services en ligne
|
À propos de ce projet
Contexte
Je ne me souviens pas très bien quand cela a commencé, mais je pense aux alentours de 1999. Moi et un ami qui s'intéressait à tout ce qui concernait la robotique et l'électronique discutions de la construction d'un robot pour dessiner sur des tableaux blancs. Bien sûr, nous n'avions jamais le temps de faire quoi que ce soit de sérieux à l'époque, l'écosystème des microcontrôleurs amateurs n'était pas ce qu'il est aujourd'hui.
En 2002, mon ami m'a montré le travail impressionnant de Jürg Lehni et Uli Franke - Hektor. J'ai été très heureux de voir quelque chose de similaire à ce que nous rêvions de construire réellement être construit et partagé avec le monde ! J'étais en paix.
Quelque temps plus tard, je me souviens avoir montré le site Web du projet Hektor à quelqu'un qui m'avait dit à quel point je le trouvais fantastique. Cette fois, j'ai commencé à regarder davantage les détails en réalisant qu'il manquait une propriété que j'avais initialement envisagé d'avoir pour un traceur mural. Je voulais qu'il soit autonome, tout dans une seule unité avec juste des fils le reliant au mur. Si je me souviens bien, j'ai examiné les poids des moteurs pas à pas à ce stade, réalisant que mon idée n'allait pas voler.
Le temps a passé et les choses se sont passées dans l'espace de la robotique amateur. C'était en 2014 et j'utilisais des Arduinos et des servos RC pour divers projets de contrôle de caméra, j'avais accès à l'impression 3D et en fait du temps libre (!?!). Après avoir trébuché sur le moteur pas à pas 28BYJ-48 bon marché, je savais exactement ce que j'allais construire :
Le traceur mural minimaliste le moins cher possible.
Première tentative
Après avoir attendu une éternité, environ cinq semaines, pour les pièces commandées en Chine, je me suis lancé dans la construction du traceur. J'ai essayé de faire un squelette aussi compact que possible pour s'adapter à un Arduino Uno, des steppers, un servo et une batterie. Je ne me souviens pas du nombre de conceptions stupides, je veux dire moins intelligentes, que j'ai faites dans OpenSCAD avant que le centime ne tombe. Vous devez croiser les ficelles !
Avoir la géométrie de croisement présente un énorme avantage pour maintenir la position correcte sur le mur. L'inconvénient est que vous obtenez moins de stabilité de la rotation autour de l'axe vertical. Cela a été corrigé en ajoutant des attaches zippées aux coins du traceur, ajustées de manière à empêcher la rotation.
Le premier traceur le matériel est venu pour ressembler à l'image ci-dessous. Dans ma quête des pièces les moins chères possibles, j'ai choisi d'utiliser du fil à coudre pour la navigation et l'annulation de la gravitation. Les fils se sont croisés en haut du châssis imprimé en 3D à travers de petits trous dans l'impression. Comme on peut (presque) le voir, c'est une géométrie difficile pour que les fils fonctionnent proprement à partir du stylo et des fils (le câblage d'Arduino au pilote pas à pas droit est manquant dans l'image, donc il a l'air moins mauvais qu'il ne l'était). Le stylo est soulevé de la surface de dessin par un servomoteur RC poussant l'ensemble du traceur loin du mur.
Ce premier traceur avait une conception codée en dur écrite dans son programme sur l'Arduino. La configuration du traceur a été effectuée en faisant dérouler un mètre de fil de chaque côté et en les fixant à un mètre de distance. Grâce à cette configuration, le traceur connaissait le système de coordonnées lors de la mise sous tension et pouvait commencer à tracer les chemins dans sa mémoire. Cela a fonctionné, mais c'était un gâchis à utiliser. Devoir re-flasher l'Arduino lors d'un changement de design n'était pas agréable. Être également limité à la configuration de la disparité d'un mètre était frustrant.
C'était une bonne plate-forme pour mieux comprendre l'espace du problème. Quelques apprentissages rapides :
- Les moteurs pas à pas ne sont pas si puissants - Les bobines étaient trop grosses .
- Pointe du stylo décalée du croisement des ficelles - Wicked Wobbliness
Ce qui est bien avec ces problèmes, c'est qu'ils m'ont obligé à faire des efforts pour mettre en place une accélération et un freinage raisonnables...
Évolution
Plotter numéro deux (le blanc sur l'image de couverture) a obtenu quelques améliorations :
- Bobines plus petites.
- Les bobines sont déplacées au-dessus du stylo pour un meilleur acheminement du fil et moins de mouvement pendulaire.
- L'électronique plus accessible.
- Carte SD pour stocker ce qu'il faut tracer.
- Nouveau processus de configuration permettant une distance variable entre les points d'ancrage.
- Récepteur infrarouge pour pouvoir tout contrôler à partir d'une télécommande.
L'ajout d'un lecteur de carte SD et d'un récepteur IR a été beaucoup plus facile que prévu. C'était l'un de ces moments "pourquoi n'ai-je pas fait ça depuis le début". Le nouveau processus de configuration a plutôt bien fonctionné et a donné beaucoup plus de flexibilité pour dessiner à la fois grand et petit. La plus grande parcelle réalisée à ce jour mesurait environ 2,5 mètres de large.
La configuration se fait en naviguant dans le traceur avec la télécommande. Première position de marquage A , puis passez à la position B et marquer ça. J'ai mis des marqueurs de 20 cm sur le fil à coudre gauche et droit pour éviter d'avoir besoin d'une mesure manuelle. La distance m est donné juste en comptant les pas sur le stepper gauche tout en se déplaçant de A à B . Une fois que le traceur sait d et que son emplacement actuel est à B vous pouvez vous déplacer et tracer où vous voulez dans l'espace entre et en dessous des points d'ancrage.
Plotter numéro trois (l'orange dans la vidéo ci-dessous) est très similaire à son prédécesseur, à quelques changements près :
- Toute l'électronique conçue comme un blindage pour l'Arduino.
- Chien de garde du niveau de la batterie, permettant « pause - changer la batterie - reprendre ».
C'était toutes de bonnes intentions, mais. Mettre les circuits intégrés de pilote pas à pas directement sur le blindage, en sautant les pilotes livrés avec les pas à pas, signifiait plus de voyants clignotants. C'est triste à regarder. Super ennuyeux. De plus, la LED intégrée de l'Arduino est cachée derrière le bouclier cachant les clignotements pratiques que vous obtenez lorsque le récepteur IR reçoit, vous rendant ainsi incertain si vous avez appuyé sur ce bouton d'étalonnage ou non. La mesure du niveau de batterie semblait être une bonne idée, mais en réalité, j'ai toujours eu recours à des tracés de longue durée avec une alimentation câblée.
Plotter numéro quatre (Le fabuleux !) a été construit comme cadeau d'anniversaire pour mon frère. C'est de loin le plus beau construit avec une électronique de type bouclier, mais laissant les pilotes clignotants visibles dans toute leur splendeur. Notez que les câbles sont laissés inutilement longs juste pour le look !
Plotter numéro cinq (édition MacGyver) a en fait été construit comme une preuve de concept pour cette description de projet. Je voulais montrer que vous pouvez construire un traceur comme celui-ci sans aucun outil sophistiqué. Je me suis assis dans mon garage et j'ai regardé autour de quoi je pouvais le construire. Le fil d'attache (fil métallique mou utilisé pour connecter les barres d'armature) a été mon premier choix évident. En le cherchant, j'ai trouvé un rouleau de sangle de conduit et j'ai pensé que cela me ferait gagner du temps et donnerait plus de stabilité. Les fermetures éclair et le ruban adhésif étaient également sur ma liste mais n'étaient pas nécessaires. La seule chose que je ne comprenais pas vraiment, c'était comment faire de bonnes bobines sans trop de travail. Je suis rentré dans la maison pour prendre un café et voilà, le bouchon d'un pot à lait ! Honnêtement, il a fallu moins de temps pour construire le cadre du traceur cinq que pour imprimer en 3D le design original. Et cela fonctionne aussi bien (presque au moins) que les autres que j'ai construits.
Plotter numéro six
Attends quoi? D'une manière ou d'une autre, j'en ai construit un autre. Je ne pouvais pas l'aider. Certaines choses qui m'avaient dérangé devaient être réglées. Également des améliorations grâce à quelques commentaires ici.
- La taille d'impression 3D du traceur était tout simplement trop grande et trop lente.
- Déplacer le stylo plutôt que l'ensemble du traceur semblait au moins valoir la peine d'être essayé.
- Déplacer le servo et le récepteur IR sur les broches « analogiques » permettrait le débogage en série ! (Merci jrcTexas d'avoir souligné que je pouvais !)
Voici donc le résultat :
Alors, à quel point cette nouvelle chose fonctionne-t-elle bien ? Bon et mauvais. Les changements sont bons dans l'ensemble mais il y a un problème. Comme le stylo n'est pas fixé au cadre, il se tortille un peu lors du traçage. Cela rend la précision pire que pour la génération précédente. L'énorme avantage est d'effacer les broches d'E/S numériques 0-1 afin qu'elles puissent être utilisées pour le débogage. Cela rend la vie tellement plus facile!
J'ai également commencé à faire des tests de stress sur les steppers pour comprendre comment ne pas manquer les étapes :
Ce qui a été compris des tests de résistance, c'est que je devais ralentir un peu pour avoir suffisamment de couple. J'ai également calculé la traction réelle sur les cordes en fonction de l'endroit où se trouve le traceur sur le mur :
Je pourrais faire un suivi des tests de résistance pour comprendre comment le séquençage des étapes et la tension jouent également un rôle. Un jour.
Utilisation du traceur
Je fais une vidéo montrant comment la configuration et le traçage fonctionnent dans la vraie vie et en temps réel.
Comme on peut le voir sur la vidéo, la configuration est assez simple et prend peu de temps. Le défi typique de la mise en place est de trouver de bons points d'ancrage. Pour les tableaux blancs, j'ai principalement utilisé de petites ventouses sur lesquelles j'ai collé une boucle de fil à coudre ou similaire pour ensuite accrocher le traceur avec un trombone. Un aspect important du point d'ancrage est d'amener le fil aussi près que possible du mur, pour obtenir une meilleure pression du stylo sur le mur.
Une autre mise en garde consiste à tracer en hauteur sur des parcelles larges. Lorsqu'un couple trop important est nécessaire pour tirer le fil, les steppers commenceront à manquer des étapes, faisant ainsi perdre au traceur la trace de son emplacement exact car il n'y a pas d'encodeurs pour aider. Le conseil général est donc :accrochez haut, imprimez bas.
Matériel de traceur
La construction du traceur est assez simple et ressemble beaucoup à la plupart des autres projets Arduino. Vous avez un Arduino Uno, certains composants que vous souhaitez utiliser et un tas de câbles pour tout connecter.
Comme on peut le voir dans les schémas, vous utiliserez à peu près toutes les broches numériques, puis éventuellement des broches analogiques, par exemple. souhaitez surveiller les niveaux de batterie. Une mise en garde avec ceci est que vous finirez par utiliser la broche 0-1 qui sert également de TX/RX. Pour éviter de faire frire des choses vous devrez déconnecter tout ce que vous avez connecté là quand vous programmez l'Arduino ! C'est la raison pour laquelle j'ai construit mes traceurs les plus récents avec toute l'électronique sur un blindage que je pouvais simplement détacher lors de la programmation.
Le servomoteur RC pourrait être à peu près n'importe quel servomoteur de n'importe quelle dimension. Il vous suffira d'être créatif et de le monter de manière à ce qu'il puisse éloigner (ou non) le traceur du mur.
Les moteurs pas à pas et les pilotes pourraient potentiellement être remplacés par un autre type, mais les petits 28BYJ-48 sont si pratiques. Cependant, ils ne sont pas si puissants et j'aimerais construire un traceur beaucoup plus rapide un jour. Les moteurs sont évalués à 5 V, mais j'ai volontiers ignoré cela et leur ai fourni tout entre 5 et 9 V sans problème. Ils sont chauds mais je n'en ai pas encore fait frire.
Le module de carte micro-sd est simple à connecter à l'Arduino, soit via les broches de l'interface SPI, soit via les broches numériques 10-13.
Le récepteur IR TSOP 4838 joue également bien directement connecté à l'Arduino.
Mes troisième et quatrième traceurs avaient un chien de garde de niveau de batterie par un diviseur de tension de résistance ajouté à une entrée analogique. Je pensais également que j'allais ajouter une surveillance de la température des steppers de la même manière. Mon conseil, sautez-le.
Je vous recommande fortement de construire et de tester une chose à la fois. N'assemblez pas tout, mettez vos graphiques sur la SD et espérez tracer tout de suite. Je vous recommande de faire ce qui suit :
- Commencez par tester le récepteur infrarouge. Utilisez l'exemple IRRecvDump fourni avec la bibliothèque IRRemote. De toute façon, vous en aurez besoin pour enregistrer les codes de vos télécommandes.
- Testez votre servo. Par exemple, utilisez l'exemple Sweep de la bibliothèque Servo.
- Testez votre carte SD. Jouez avec les exemples de la bibliothèque SD.
- Test de contrôle des steppers. Jouez avec les exemples de la bibliothèque Stepper.
- Lorsque vous vous sentez à l'aise avec les éléments ci-dessus, flashez le programme du traceur sur l'Arduino, puis connectez tous les composants. (n'assemblez pas et ne faites rien de joli pour l'instant)
- Allumez l'Arduino et voyez ce qui se passe. Si tout fonctionne, le servo devrait effectuer un léger balayage juste après la mise sous tension.
- Essayez de contrôler les steppers depuis la télécommande. assurez-vous de déterminer quel stepper est à gauche et lequel est à droite. Assurez-vous de les avoir câblés de manière à ce que le bouton "REEL_IN" tire réellement sur la ficelle et non l'inverse. Je vous donne 50% de chances que vous ayez besoin d'inverser l'ordre des broches soit dans le logiciel, soit dans le matériel. (cela ne vaut pas la peine de trop s'embêter, c'est tellement facile de simplement retourner les connecteurs. Faites confiance, mais vérifiez !
- Lorsque vous êtes sûr que tous les éléments ci-dessus fonctionnent, vous êtes prêt à tout assembler sous la forme d'un traceur et à l'essayer suspendu à un mur !
Je ne donnerai pas d'instructions super détaillées sur l'assemblage des pièces ici. Il est préférable que vous exploriez votre matériel et trouviez des solutions qui vous conviennent. Inspirez-vous du traceur "MacGyver" ci-dessus, restez simple. Vous pouvez toujours aller plus loin et vous perfectionner plus tard. Ci-dessous se trouve une vidéo très incohérente de moi parlant de certaines choses matérielles. Vous devrez également vous familiariser avec le logiciel et créer un fichier pour le traçage, voir plus loin.
Logiciel de traceur
Tous les logiciels sont disponibles ici sur GitHub. Je m'excuse pour l'état du code, c'est vraiment un hack. Peut-être que je vais prendre mon temps et le nettoyer, mais il est très probable que vous l'examinerez avant que cela n'arrive. Désolé.
Le logiciel du traceur fait à peu près deux choses :
- Autoriser la navigation et la configuration à partir de la télécommande
- Dessinez le contenu d'un fichier.svg stocké sur la carte SD.
Comme la mémoire du programme sur l'Arduino Uno est assez limitée, de nombreux raccourcis laids ont été pris pour insérer le code dans la mémoire. Cela était particulièrement vrai pour le premier traceur qui n'avait pas de carte SD et les graphiques devaient également être programmés directement dans l'Arduino. L'analyse de.svg est extrêmement limitée et ne peut gérer que des chemins avec des lignes (pas de courbes) et nécessite qu'il s'agisse d'un dialecte spécifique de.svg que j'ai utilisé INKSCAPE pour sortir.
Les fichiers .svg sont stockés dans le dossier de niveau supérieur de la carte SD en tant que 1.svg, 2.svg, etc. Le fichier à dessiner est sélectionné en appuyant sur le bouton correspondant de la télécommande. Cela me permet de préparer le traceur avec quelques favoris avec lesquels je peux rapidement enrichir les tableaux blancs des gens.
L'IDE Arduino a été utilisé pour construire et programmer le contrôleur. La seule bibliothèque supplémentaire utilisée est IRRemote (par shirriff).
Création d'un fichier traçable
Il y a probablement des centaines de façons de créer un fichier .svg qui tracera, mais je ne vais en décrire qu'une ici :
- Utilisez INKSCAPE
- Dessinez ce que vous voulez et convertissez-le en chemins "Chemin->Objet en chemin"
- Choisissez "Modifier les chemins par nœuds (F2)"
- Sélectionnez tous les chemins et nœuds individuels. Ctrl-A deux fois
- Convertir en lignes par "Extensions->Modifier le chemin->Aplatir Béziers"
- Enregistrer sous "Inkscape SVG"
- Exécutez dans le simulateur, voir ci-dessous
Le Simulateur
Encore une chose ! Il y a un simulateur. Il est plus ou moins obligatoire d'exécuter n'importe quel tracé que vous souhaitez faire via le simulateur avant d'essayer de l'imprimer. Ceci est principalement nécessaire car l'analyse.svg est si mauvaise qu'il y a de fortes chances que quelque chose ne soit pas interprété correctement par le traceur.
Le simulateur fonctionne en compilant le code du traceur pour osx ou linux et en remplaçant les appels « digitalWrite » par des impressions sur stdout (horodatage, broche, état) qui sont ensuite redirigés vers une interface utilisateur de visualisation.
Le simulateur a été écrit après que j'ai eu un bogue provoquant une erreur d'impression de 2 heures après 95% environ. J'étais complètement perdu par rapport à ce qui s'était passé et j'ai réalisé que j'avais besoin d'un moyen de le déboguer. Il s'est avéré qu'il s'agissait d'un bug d'analyse de float causé par un nombre dans le fichier.svg ayant des quantités ridicules de décimales. (J'ai fait ma propre analyse puisque les fonctions de la bibliothèque ne tiendraient pas dans la mémoire). C'était un gros bug car il m'a obligé à faire le simulateur.
L'utilisation du simulateur pendant le développement peut être d'une grande aide. Il peut être exécuté beaucoup, beaucoup plus rapidement qu'en temps réel, ce qui est très pratique. Il indique également combien de temps le tracé prendra réellement lorsqu'il sera exécuté en temps réel. Il y a un readme à côté du code du simulateur sur la façon de l'utiliser.
Améliorations futures
Voici une liste de ce que je pense de ce qui pourrait être amélioré :
- Arrêtez l'analyse.svg sur le traceur, ayez un vrai analyseur sur l'ordinateur et créez plutôt un bon format pour le traceur.
- Meilleure rupture, les logiciels actuels ne lisent qu'un segment de ligne en avant, ce qui est parfois trop petit si un léger virage se transforme en un virage serré.
- Encodeurs ou un certain type de retour pour éviter de se perdre lorsque vous manquez des étapes.
- Écrivez un logiciel propre et approprié.
- Utilisez le contrôleur compatible WiFi et utilisez le téléphone au lieu de la télécommande.
Quelques derniers mots
Comme vous le comprenez probablement maintenant, j'ai passé pas mal de temps avec ce projet, la plupart du temps il y a longtemps. Je pense toujours que c'est amusant de jouer avec et j'ai des tonnes d'idées à améliorer, de nouvelles variations et de nouveaux murs à décorer. Cependant, je n'ai tout simplement pas le temps, il y a tellement d'autres projets et des choses comme la famille et le travail.
Ce que j'aimerais vraiment, c'est que certains d'entre vous, de bonnes personnes sur Internet, tirent quelque chose de cette lecture et trouvent l'inspiration pour leurs propres projets. Je serais également heureux si certains d'entre vous construisent leurs propres traceurs et les font fonctionner !
Bien que je pense avoir réussi à construire un traceur minimaliste, je n'ai pas réussi à obtenir un coût inférieur à 10 $ comme je m'étais fixé comme objectif. Mais comme les pièces deviennent de moins en moins chères, elles seront probablement là dans un an environ...
Oh, encore une chose. S'il vous plaît, ne me tuez pas à cause du code spaghetti. Il n'a jamais été écrit pour être partagé, j'étais occupé à dessiner sur le mur à l'époque et je me moquais bien du code. J'ai décidé de le partager quand même, alors soyez-en plutôt heureux.
Bon voyage,
Fredrik
Code
Fort
Code, documentation et dessins CAO pour le traceur mural Stringent.https://github.com/snebragd/stringentPièces et boîtiers personnalisés
a téléchargé une nouvelle stl pour la base, l'ancienne était cassée d'une manière ou d'une autre. Nouvelle base pour le traceur. Encombrement réduit -> moins à imprimer. L'action d'asservissement consiste maintenant à déplacer le stylo plutôt que de pousser le traceur loin du mur.Schémas
Schéma électronique simpleProcessus de fabrication
- L'effort multi-compétences pour la maintenance
- Le contrôle qualité est la première étape vers la fiabilité du moteur
- L'importance des tendances en matière de fiabilité des moteurs électriques
- Surveillance de la santé des machines de l'usine
- Bobinages de moteur :quelles sont les différences ?
- Le guide complet pour choisir un moteur antidéflagrant
- Le guide complet du bon stockage des moteurs électriques
- Moteur à courant continu ou à courant alternatif :quelle est la différence ?
- Moteur à courant alternatif ou à courant continu :quelle est la différence entre eux ?