Jeffrey Cross
Jeffrey Cross

Transformez une machine CNC en un robot pick and place qui résout des énigmes

J'habite à Vancouver, Canada. Chaque année, ma famille d’Ottawa me rend visite et m’apporte un puzzle de 1000 pièces. Ma mère aime sélectionner des sujets très stimulants, comme un minuscule champ de fleurs violettes floues ou un rectangle bleu uni. Ils font les bords puis rentrent chez eux, me laissant sans table à manger utilisable. Si vous m'avez vu dans un Hackspace, vous m'avez vu nettoyer - j'aime les choses bien rangées et les finies. Je ne peux pas laisser un puzzle inanimé me battre. L'envie de le terminer est plus forte que moi à certains égards. Je ne peux pas laisser cette obsession prendre le dessus sur moi, alors j’ai trouvé une solution de contournement.

Je me suis dit: y at-il un moyen de résoudre tous les casse-tête pour toujours? SI je peux fabriquer une machine qui résout un puzzle, elle doit alors être identique à une machine capable de résoudre n’importe quel nombre de puzzles. Ensuite, je pourrai me détendre, car j’ai gagné pour toujours.

Comment

Il y a donc deux problèmes: créer une machine capable de faire le travail… et lui apprendre à le faire.

Construire la machine

Tous les puzzles sont résolus de la même manière. Une machine à commande numérique avec une caméra et une buse d'aspiration rotative devrait être capable de faire le travail mécaniquement.

1000mm X-Carve

Une machine à sculpter à commande numérique ressemble à une imprimante 3D, mais elle possède un outil de coupe à toupie à filer au lieu d'un outil d'extrusion à chaud d'extrusion plastique. Lorsqu'une imprimante 3D est additive, une CNC est généralement soustractive. Une machine pick and place utilise souvent un outil de buse d'aspiration d'air.

Schéma logique des composants

J'ai essayé de faire le mien quelques fois sur une période de 6 mois. Plusieurs essais plus tard, je devenais assez bon pour savoir que mon meilleur était encore des ordures. Alors je suis allé en ligne et j'ai trouvé un CNC qui ferait le travail correctement: un X-Carve de 1000 mm d'Inventables. J'ai ajouté un moteur pas à pas à arbre creux avec une buse SMT, une pompe à air et une soupape de décharge d'air à solénoïde normalement fermée intégrée.

Une coupe transversale de la pince

La pince CNC (orange) est déplacée par le X-Carve. Le moteur pas à pas (couleur pêche / bandes) fait tourner la buse (en bas). La tête de la buse à ressort saisit des morceaux lorsque la pompe à air est en marche et se détend lorsque la pompe est à l'arrêt et que la soupape de décharge s'ouvre.

Ensuite, j'ai utilisé Fusion 360 et des étriers pour créer des modèles 3D de la pince de serrage et de toutes les pièces mécaniques. Le plus souvent possible, je préfère acheter une pièce si la boutique en ligne comporte un diagramme de dimension ou un modèle 3D. De cette façon, je peux concevoir toute ma machine avant de dépenser un sou et je peux faire mes achats en toute confiance.

Sur la face inférieure de la pince, j'ai également mis un Raspberry Pi et une caméra. De cette façon, le robot peut voir la pièce avant et après sa prise en charge. Le câble fourni avec une caméra Pi Cam est assez court à mon goût, mais j’ai réussi à tout modéliser ensemble.

Voici une vidéo Instagram que j'ai tournée à l'époque:

Voir ce post sur Instagram

Tard dans la nuit mise à jour #jigsolve. La tête est enfin assemblée et le test du circuit vient ensuite. Ensuite, un test d'intégration et tout est prêt pour le décollage! #robot #robots @inventables #xcarve #pnp #pickandplace #machine #air #pump #z #axis #arduino

Un article partagé par Marginally Clever Robots (@imakerobots) sur

En attendant la livraison, j'ai imprimé mes pièces de connecteur:

Voir ce post sur Instagram

Les parties d'hier étaient proches. Aujourd'hui sera plus proche encore. #jigsolve #robot #puzzle #machine # 3dprinting @vanhackspace #tinkerine

Un article partagé par Marginally Clever Robots (@imakerobots) sur

pièces d'adaptation imprimées

Enseigner la machine

Je ne connais rien à l'IA, malgré mes tentatives d'apprendre. Mais j’ai eu un peu d’expérience dans la détection de la lumière et de la couleur de robots de construction alignés. C’est compliqué! Non seulement le problème est-il un défi, mais je ne peux pas vous dire à quel point le problème est difficile. Même chose pour les formes assorties. Alors je suis allé avec la meilleure solution suivante, une intelligence déjà formée pour résoudre des énigmes: Twitch!

Twitch joue à un puzzle

Twitch est un service en ligne dans lequel les gens regardent (généralement) des vidéos en streaming et jouent à des jeux. Il y a quelques années, il y avait un flux spécial Twitch du jeu vidéo Pokemon. Les personnes qui regardent peuvent également parler dans la discussion à l'écran IRC. Le jeu regardait le chat et si vous tapiez certains mots, le jeu les enregistrerait comme un bouton. Collectivement, démocratiquement, le public a joué et gagné le match.

De Twitch à Robot

Sur mon PC, j'ai utilisé Eclipse Java IDE pour écrire trois classes: une pour parler à X-Carve, une pour parler aux nouvelles pièces de la buse à air et une pour parler à Twitch. Ces trois classes étaient contenues dans une classe de maître Jigsolve, qui les a collées ensemble. De cette façon, je pourrais tester les parties séparément et ensemble.

De robot à Twitch

La caméra sur la buse fait partie d'un Raspberry Pi. J'ai suivi des didacticiels en ligne pour diffuser le flux de caméra sur le réseau local en tant que flux RTSP. Sur le PC, l’application VLC a affiché le flux vidéo et l’application Online Broadcast Studio (OBS) a envoyé la vidéo à Twitch.

Vue de la caméra Jigsolve

Des choses que j'ai apprises et des trucs

L’utilisateur de Twitch Mdp117 a trouvé un moyen de DDOS le robot en faisant tourner la buse à un angle de sept kajillions. Merci pour les tests!

L'utilisateur de Twitch amazing3d a été le premier à connecter deux pièces valides.

La soupape de décharge d'air était un ajout tardif. Je pensais qu'éteindre la pompe à air suffirait pour qu'elle lâche la pièce. C’est pourquoi vous ne le voyez pas dans les modèles Fusion 360.

L'éclairage sous la machine est mauvais. J'ai fabriqué un anneau lumineux (voir la photo ci-dessous) qui fonctionne sur les broches Raspberry Pi GPIO. Il est sombre et bleu. Une forte bande de LED au bas du portique ferait un meilleur travail, plus cohérent.

La buse SMT était suffisamment petite pour les composants électroniques, mais TROP petite pour les pièces de puzzle. J'ai payé xyzaidan, un utilisateur instagram, pour me fabriquer des buses en silicone. Vaut chaque centime! Malheureusement, il y a si longtemps que je ne peux pas revenir en arrière dans son histoire IG et trouver les images.

Il était trop difficile de trouver deux morceaux correspondants. Après réflexion, j'ai donc écrit un script pour déplacer le robot, prendre des instantanés à partir du flux vidéo et les enregistrer sur une carte Google.

Lors du montage, le portique X-Carve était visiblement tordu. Lorsqu'un côté touchait l'extrémité, l'autre était écarté d'environ 2 cm. Si les caméras en faisaient un ajout permanent, elles pourraient compenser l’assemblage non carré et réaliser des coupes encore plus parfaites. Inventables m'a offert un portique de remplacement en juin dernier, mais ils ne l'ont pas encore envoyé.

Anneau de lumière

Dis m'en plus!

Jusqu'à ce que le puzzle soit terminé, vous pouvez le trouver en ligne à l'adresse Twitch.

Pour obtenir une liste de toutes les pièces que nous avons utilisées pour convertir X-Carve, y compris les fichiers STL pour imprimer les adaptateurs, contactez-moi via mon forum.

Part

Laisser Un Commentaire