Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Un journal de projet pour FirePick Delta, la MicroFactory Open Source

Topologie logicielle et théorie de fonctionnement

OpenPnP est le cerveau de haut niveau de la machine, qui fait des choses apparemment simples comme « récupérer cette partie » et « la mettre là-bas ». De nombreuses bibliothèques et sous-systèmes lui fournissent des informations et transmettent des informations aux différents moteurs et actionneurs via d'autres bibliothèques et modules logiciels. Il a été créé par Jason von Nieda, bien avant le lancement de FirePick Delta. Il est techniquement encore à l'état alpha, mais le logiciel sous-jacent est solide et a été utilisé sur plusieurs machines de production. Bien qu'elle soit bien écrite et extrêmement modulaire et extensible, la documentation n'était pas géniale… Jusqu'à présent. Dans l'esprit de l'open source et de la divulgation complète, nous avons décidé de documenter nous-mêmes OpenPnP. Espérons que tout cela soit repoussé en amont du projet officiel.

Les fichiers Java présentés ci-dessus (icônes « JAR ») peuvent être remplacés ou utilisés comme classe de base pour créer votre propre configuration de machine. Chacun des fichiers Java ci-dessus (à l'exception du ou des modèles de configuration) peut être spécifié dans le fichier « machine.xml ». Si vous n'êtes pas familier avec Java, cela peut sembler étrange, mais c'est vraiment chouette. Cela signifie que vous pouvez spécifier le chemin d'accès à un tas de fichiers .java, et cela déterminera quelles classes seront instanciées et utilisées, modifiant ainsi le comportement. Il garde le code vraiment propre et modulaire, ce qui est important pour quelque chose d'aussi compliqué qu'une machine de prélèvement et de placement. OpenPnP est livré avec un ensemble de fichiers de référence pour une implémentation PnP vanille avec contrôle de mouvement TinyG, une seule tête, une seule buse et un seul actionneur, une alimentation par bande glissante et une caméra orientée vers le bas. Nous avons modifié pas mal de choses pour qu'il fasse toutes les choses folles dont nous avions besoin.

Pilote de mouvement : Nous utilisons une carte contrôleur de mouvement personnalisée inspirée des cartes RepRap RAMPS 1.4 et Melzi, qui exécute le firmware Marlin modifié. J'ai écrit un pilote OpenPnP Marlin qui envoie le bon g-code au contrôleur de mouvement. Cela fonctionne très bien pour le moment, mais nous constatons que faire les calculs delta et la correction de la sonde Z multipoint sur un arduino 8 bits avec une mémoire limitée et sans virgule flottante semble un peu stupide lorsque nous avons toute cette puissance de calcul activée pi. De plus, nous souhaitons utiliser l'appareil photo et une application d'étalonnage XY personnalisée pour améliorer la précision, et il est beaucoup plus facile et plus rapide d'effectuer ces calculs sur le Pi. Cependant, ce code ne fait pas partie d'OpenPnP, car nous prévoyons de proposer d'autres applications ultérieurement. Cela signifie qu'OpenPnP ne peut pas parler directement au contrôleur de mouvement, il doit passer par une couche logicielle qui effectue les calculs delta et les décalages de correction XYZ. Nous avons enveloppé tout ce code dans FireFUSE (notre système de fichiers dans le mappeur de l'espace utilisateur), ce qui nous permet de faire beaucoup de choses intéressantes que nous aborderons plus tard. C'est assez transparent pour la plupart ; plutôt que d'écrire OpenPnP dans '/dev/ttys0', vous écrivez dans '/dev/firefuse/sync/cnc/marlin/gcode.fire'. FireFUSE transformera les coordonnées cartésiennes en coordonnées delta, calculera le décalage d'erreur à l'aide de points interpolés à partir du processus d'étalonnage automatique de la machine et enverra ce nouveau g-code au pilote Marlin. Et, ce code sera portable et peut être utilisé avec des applications d'impression 3D, des applications de distribution de pâte à souder, etc. La seule chose nécessaire pour que OpenPnP communique avec FireFUSE est un pilote FireFUSE, qui est actuellement en cours d'écriture.

Pilote de caméra et cadre de vision :La prise en charge de la caméra d'OpenPnP était un peu capricieuse et ne prenait pas en charge la merveilleuse caméra Raspberry Pi de 5 mégapixels. Leur vision par ordinateur était une mince cale au-dessus du code OpenCV, qui avait implémenté une recherche de trous vraiment basique, mais pas grand-chose d'autre. Karl Lew, notre informaticien, a vu cela comme un énorme problème et a passé un an ou deux à écrire une incroyable bibliothèque de vision open source appelée FireSight. Il a écrit des dizaines de routines de vision impressionnantes qui peuvent être regroupées dans un pipeline, d'une manière de très haut niveau qui ne nécessite pas de connaissances mathématiques de niveau supérieur ou C/C++ de niveau inférieur. Pour la caméra, nous utilisons le module de caméra RasPi comme mentionné, avec une version personnalisée du « raspistill » appelée FirePiCam. Nous prenons des instantanés et les sauvegardons dans le système de fichiers FUSE, ce qui nous évite d'user les bits de la mémoire FLASH de la carte SD. Afin de permettre à OpenPnP de voir les images et d'effectuer des opérations de vision par ordinateur, Karl a écrit une bibliothèque Java appelée « firerest-client » qui permet à tout cela de fonctionner.

interface graphique :L'interface graphique Java OpenPnP est vraiment maladroite et peu intuitive, et avoir un moniteur dédié connecté au Raspberry Pi semble un peu fou en 2014, alias Dawn of the Internet of Things. Nous souhaitons que l'interface utilisateur soit une application Web personnalisée pouvant être consultée à partir de n'importe quel navigateur HTML5. Cette fonctionnalité n'est pas directement prise en charge via OpenPnP, mais cela peut être fait avec un peu de travail. Heureusement, Jason a écrit OpenPnP où vous pouvez appeler le(s) constructeur(s) pour les fonctions de configuration de la machine et du fichier, ce qui contourne l'interface graphique. Nous pouvons utiliser un pont node-java pour appeler des fonctions java à partir de javascript, et vice-versa, sans trop de travail, grâce à un code que nous avons trouvé sur github. Il ne nous reste plus qu'à écrire une application Web intelligente à l'aide de node.js, Express, AngularJS et Twitter Bootstrap. Nous en sommes au début de l'écriture de cette application maintenant. En attendant, nous pouvons exécuter OpenPNP normalement et utiliser l'interface graphique standard, ce qui nous permet de déboguer d'autres bits de la machine.

Topologie matérielle et théorie de fonctionnement

Nous utilisons un Raspberry Pi modèle B+ standard. Le B+ est le RPi que nous avons toujours voulu; ils ont déplacé les connecteurs vers un endroit plus logique et ont ajouté un véritable ensemble de trous de montage. A toujours le Broadcom 2835 lent et merdique, mais pour 30 $, qu'attendez-vous. Nous recevons souvent la question « Pourquoi avez-vous utilisé un BeagleBone Black ? » ou une douzaine d'autres ordinateurs monocarte. La réponse est assez simple. Nous visons une machine à 300 $, ce qui signifie que nous devons choisir un ordinateur monocarte BON MARCHÉ. Raspberry Pi est le moins cher, donc il gagne. CQFD. 🙂  En fait, nous aimons beaucoup le BeagleBone black, ainsi que d'autres plates-formes telles que l'Allwinner A4, Intel Galileo et même des configurations plus traditionnelles comme le Mini ITX. Tous nos logiciels et matériels devraient fonctionner sur ces plates-formes. Mais ils sont chers et Raspberry Pi fait le travail.

Nous avons en fait été surpris des performances du Pi jusqu'à présent. Il ne s'allume pas rapidement, mais il fait de la vision par ordinateur et affiche des pages Web sans problème.

Planche CHAPEAU ERPIHAT01

Peu de temps après la sortie du Raspberry Pi Model B+, la Fondation RPi a publié une spécification «HAT», très similaire à un Arduino Shield ou à une cape BeagleBone. C'est une carte mezzanine de forme personnalisée qui peut être personnalisée pour ajouter des choses soignées à un Raspberry Pi sans toutes sortes de câbles et autres bêtises. Il y avait des modules d'extension avant les HAT, mais ils n'étaient pas standardisés. Nous sommes satisfaits de la nouvelle spécification HAT et sommes fiers de présenter notre FirePick Delta HAT ci-dessous :

Voici une liste des fonctions de notre FirePick Delta HAT :

Pour plus de détails :Un journal de projet pour FirePick Delta, la MicroFactory Open Source


Processus de fabrication

  1. Introduction à la terminologie open source
  2. Open Source et IoT :l'innovation par la collaboration
  3. DHT Tiny Breakout pour Raspberry Pi
  4. Les meilleurs accessoires pour votre Raspberry Pi
  5. SIGHT :For the Blind
  6. Stylo intelligent :projet final pour ECE5725
  7. 3 conseils pour gérer la logistique de votre projet de construction
  8. Le besoin d'open source à la périphérie (eBook)
  9. Comment choisir la bonne grue pour votre projet