Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Ein Projektprotokoll für FirePick Delta, die Open Source MicroFactory

Softwaretopologie und Betriebstheorie

OpenPnP ist das High-Level-Gehirn der Maschine, das die scheinbar einfachen Dinge erledigt wie „den Teil aufheben“ und „dort drüben legen“. Viele Bibliotheken und Subsysteme versorgen ihn mit Informationen, und er leitet Informationen über andere Bibliotheken und Softwaremodule an die verschiedenen Motoren und Aktoren weiter. Es wurde von Jason von Nieda erstellt, lange bevor FirePick Delta gestartet wurde. Es befindet sich technisch noch im Alpha-Zustand, aber die zugrunde liegende Software ist solide und wurde auf mehreren Produktionsmaschinen verwendet. Obwohl es gut geschrieben und extrem modular und erweiterbar war, war die Dokumentation nicht großartig ... Bis jetzt. Im Sinne von Open Source und vollständiger Offenlegung haben wir uns entschieden, OpenPnP selbst zu dokumentieren. Hoffentlich bekommen wir all dies stromaufwärts zurück in das offizielle Projekt.

Die oben gezeigten Java-Dateien ('JAR'-Symbole) können ersetzt oder als Basisklasse für Ihre eigene Maschinenkonfiguration verwendet werden. Jede der oben genannten Java-Dateien (mit Ausnahme des/der Konfigurationsmodell(s)) kann in der Datei ‚machine.xml‘ angegeben werden. Wenn Sie mit Java nicht vertraut sind, mag dies seltsam erscheinen, aber es ist wirklich nett. Das bedeutet, dass Sie den Pfad zu einer Reihe von .java-Dateien angeben können, die bestimmen, welche Klassen instanziiert und verwendet werden, wodurch das Verhalten geändert wird. Es hält den Code wirklich sauber und modular, was für etwas so Kompliziertes wie eine Bestückungsmaschine wichtig ist. OpenPnP wird mit einer Reihe von Referenzdateien für eine Vanilla-PnP-Implementierung mit TinyG-Bewegungssteuerung, einem einzelnen Kopf, einer einzelnen Düse und einem einzigen Aktuator, einem Ziehbandvorschub und einer nach unten gerichteten Kamera geliefert. Wir haben eine Menge Sachen modifiziert, damit es all die verrückten Dinge macht, die wir brauchten.

Bewegungstreiber: Wir verwenden ein benutzerdefiniertes Motion-Controller-Board, das von RepRap RAMPS 1.4 und Melzi-Boards inspiriert wurde, auf denen modifizierte Marlin-Firmware ausgeführt wird. Ich habe einen OpenPnP-Marlin-Treiber geschrieben, der den richtigen G-Code an den Motion-Controller sendet. Das funktioniert im Moment großartig, aber wir stellen fest, dass die Durchführung der Delta-Berechnungen und der Mehrpunkt-Z-Probe-Korrektur auf einem 8-Bit-Arduino mit begrenztem Speicher und ohne Gleitkomma etwas dumm erscheint, wenn wir all diese Rechenleistung eingeschaltet haben der Pi. Darüber hinaus möchten wir die Kamera und eine benutzerdefinierte XY-Kalibrierungs-App verwenden, um die Genauigkeit zu verbessern, und es ist viel einfacher und schneller, diese Berechnungen auf dem Pi durchzuführen. Dieser Code ist jedoch nicht Teil von OpenPnP, da wir planen, demnächst weitere Apps anzubieten. Das bedeutet, dass OpenPnP nicht direkt mit dem Motion-Controller kommunizieren kann, sondern eine Softwareschicht durchlaufen muss, die die Delta-Berechnungen und XYZ-Korrektur-Offsets durchführt. Wir haben all diesen Code in FireFUSE (unser Dateisystem im Userspace-Mapper) verpackt, was es uns ermöglicht, viele nette Dinge zu tun, auf die wir später eingehen werden. Dies ist größtenteils ziemlich transparent; Anstatt OpenPnP in ‚/dev/ttys0‘ zu schreiben, schreiben Sie in ‚/dev/firefuse/sync/cnc/marlin/gcode.fire‘. FireFUSE wandelt die kartesischen Koordinaten in Delta-Koordinaten um, berechnet den Fehler-Offset unter Verwendung interpolierter Punkte aus dem automatischen Kalibrierungsprozess der Maschine und sendet diesen neuen G-Code an den Marlin-Treiber. Und dieser Code ist portabel und kann mit 3D-Druck-Apps, Lotpasten-Apps usw. verwendet werden. Das einzige, was benötigt wird, um OpenPnP mit FireFUSE zu kommunizieren, ist ein FireFUSE-Treiber, der derzeit geschrieben wird.

Kameratreiber und Vision Framework :Die Kameraunterstützung von OpenPnP war etwas heikel und unterstützte nicht die wunderbare 5-Megapixel-Raspberry-Pi-Kamera. Ihre Computer Vision war eine dünne Scheibe auf dem OpenCV-Code, der einige wirklich grundlegende Löchersuche implementiert hatte, aber nicht viel mehr. Karl Lew, unser Software-Experte, sah darin ein riesiges Problem und hat die letzten ein oder zwei Jahre damit verbracht, eine erstaunliche Open-Source-Vision-Bibliothek namens FireSight zu schreiben. Er hat Dutzende von fantastischen Vision-Routinen geschrieben, die auf sehr hohem Niveau zu einer Pipeline zusammengefasst werden können, ohne dass höhere Mathematik- oder niedrigere C/C++-Kenntnisse erforderlich sind. Für die Kamera verwenden wir wie erwähnt das RasPi-Kameramodul mit einer benutzerdefinierten Version des ‚raspistill‘ namens FirePiCam. Wir machen Schnappschussbilder und speichern sie im FUSE-Dateisystem, das uns davon abhält, die Bits auf dem FLASH-Speicher der SD-Karte abzunutzen. Um OpenPnP dazu zu bringen, die Bilder zu sehen und Computer-Vision-Operationen durchzuführen, hat Karl eine Java-Bibliothek namens "firerest-client" geschrieben, mit der alles funktioniert.

GUI :Die OpenPnP-Java-GUI ist wirklich klobig und unintuitiv, und einen dedizierten Monitor an den Raspberry Pi anzuschließen, scheint 2014 ein bisschen verrückt zu sein, auch bekannt als Dawn of the Internet of Things. Wir möchten, dass die Benutzeroberfläche eine benutzerdefinierte Web-App ist, die von jedem HTML5-Browser aus angezeigt werden kann. Diese Funktionalität wird nicht direkt über OpenPnP unterstützt, kann aber mit etwas Arbeit erledigt werden. Glücklicherweise hat Jason OpenPnP geschrieben, wo Sie die Konstruktoren für die Maschinen- und Dateikonfigurationsfunktionen aufrufen können, was die GUI umgeht. Wir können eine Node-Java-Bridge verwenden, um Java-Funktionen von Javascript aus aufzurufen und umgekehrt, ohne viel Arbeit, dank etwas Code, den wir auf github gefunden haben. Wir müssen nur noch eine clevere Web-App mit node.js, Express, AngularJS und Twitter Bootstrap schreiben. Wir befinden uns jetzt in der Anfangsphase des Schreibens dieser App. In der Zwischenzeit können wir OpenPNP normal ausführen und die Standard-GUI verwenden, die es uns ermöglicht, andere Teile der Maschine zu debuggen.

Hardwaretopologie und Betriebstheorie

Wir verwenden ein Standard Raspberry Pi Model B+. Das B+ ist das RPi, das wir immer wollten; Sie verlegten die Anschlüsse an einen logischeren Ort und fügten eine echte Reihe von Befestigungslöchern hinzu. Hat immer noch das beschissene langsame Broadcom 2835, aber für 30 $ was erwartet man. Wir bekommen oft die Frage „Warum haben Sie einen BeagleBone Black verwendet?“ oder ein Dutzend anderer Einplatinencomputer. Die Antwort ist ziemlich einfach. Wir suchen nach einer 300-Dollar-Maschine, und das bedeutet, dass wir einen BILLIGEN Einplatinencomputer auswählen müssen. Raspberry Pi ist das billigste, daher gewinnt es. QED. 🙂  Eigentlich mögen wir den BeagleBone Black sehr und andere Plattformen wie den Allwinner A4, Intel Galileo und noch traditionellere Setups wie Mini ITX. Unsere gesamte Soft- und Hardware sollte auf diesen Plattformen funktionieren. Aber sie sind teuer und Raspberry Pi erledigt die Arbeit.

Wir waren von der Leistung mit dem Pi bisher tatsächlich überrascht. Es leuchtet nicht schnell, aber es bietet Computer Vision und stellt Webseiten ohne Probleme bereit.

ERPIHAT01 HUT-Board

Kurz nach der Veröffentlichung des Raspberry Pi Model B+ hat die RPi Foundation eine „HAT“-Spezifikation veröffentlicht, die einem Arduino Shield oder einem BeagleBone-Cape sehr ähnlich ist. Es ist ein maßgeschneidertes Mezzanine-Board, das angepasst werden kann, um einem Raspberry Pi ohne alle möglichen Kabel und anderen Unsinn ordentliche Dinge hinzuzufügen. Vor den HATs gab es Plugin-Module, die jedoch nicht standardisiert waren. Wir sind mit der neuen HAT-Spezifikation zufrieden und präsentieren stolz unseren FirePick Delta HAT unten:

Hier ist eine Liste der Dinge, die unser FirePick Delta HAT tut:

Für weitere Details:Ein Projektprotokoll für FirePick Delta, die Open Source MicroFactory


Herstellungsprozess

  1. Einführung in die Open-Source-Terminologie
  2. Open Source und das IoT:Innovation durch Zusammenarbeit
  3. DHT Tiny Breakout für den Raspberry Pi
  4. Das beste Zubehör für Ihren Raspberry Pi
  5. SICHT:Für Blinde
  6. Smart Pen:Endgültiges Projekt für ECE5725
  7. 3 Tipps für die Verwaltung der Logistik Ihres Bauprojekts
  8. Die Notwendigkeit von Open Source am Edge (eBook)
  9. So wählen Sie den richtigen Kran für Ihr Projekt aus
  10. Datenbrillen, eine neue Produktivitätsquelle für den Techniker?