Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Een projectlogboek voor FirePick Delta, de Open Source MicroFactory

Softwaretopologie en werkingstheorie

OpenPnP is het brein op hoog niveau van de machine, dat de schijnbaar eenvoudige dingen doet zoals "dat onderdeel oppakken" en "het daar neerzetten". Veel bibliotheken en subsystemen geven er informatie aan en het geeft informatie door aan de verschillende motoren en actuatoren via andere bibliotheken en softwaremodules. Het is gemaakt door Jason von Nieda, lang voordat FirePick Delta werd gestart. Het is technisch nog in de alfastaat, maar de onderliggende software is solide en is gebruikt op verschillende productiemachines. Hoewel het goed geschreven en extreem modulair en uitbreidbaar was, was de documentatie niet geweldig... Tot nu toe. In de geest van open-source en volledige openbaarmaking hebben we besloten om OpenPnP zelf te documenteren. Hopelijk krijgen we dit allemaal stroomopwaarts teruggeduwd naar het officiële project.

De hierboven getoonde Java-bestanden ('JAR'-pictogrammen) kunnen worden vervangen of worden gebruikt als basisklasse voor het bedenken van uw eigen machineconfiguratie. Elk van de bovenstaande Java-bestanden (met uitzondering van het (de) configuratiemodel(len)) kan worden gespecificeerd in het bestand 'machine.xml'. Als je niet bekend bent met Java, lijkt dit misschien vreemd, maar het is echt netjes. Het betekent dat je het pad naar een aantal .java-bestanden kunt specificeren, en dat zal bepalen welke klassen worden geïnstantieerd en gebruikt, waardoor het gedrag verandert. Het houdt de code echt schoon en modulair, wat belangrijk is voor zoiets ingewikkelds als een pick-and-place-machine. OpenPnP wordt geleverd met een set referentiebestanden voor een vanille-PnP-implementatie met TinyG-bewegingsbesturing, een enkele kop, enkele spuitmond en actuator, sleepbandinvoer en een naar beneden gerichte camera. We hebben nogal wat dingen aangepast om het alle gekke dingen te laten doen die we nodig hadden.

Bewegingsstuurprogramma: We gebruiken een aangepast bewegingscontrollerbord dat is geïnspireerd op RepRap RAMPS 1.4 en Melzi-borden, waarop aangepaste Marlin-firmware wordt uitgevoerd. Ik heb een OpenPnP Marlin-stuurprogramma geschreven dat de juiste g-code naar de bewegingscontroller stuurt. Dit werkt op dit moment geweldig, maar we merken dat het doen van de delta-berekeningen en multi-point Z-probe-correctie op een 8-bits arduino met beperkt geheugen en geen zwevende komma een beetje dom lijkt als we al die rekenkracht aan hebben de Pi. Verder willen we de camera en een aangepaste XY-kalibratie-app gebruiken om de nauwkeurigheid te verbeteren, en het is veel gemakkelijker en sneller om deze berekeningen op de Pi uit te voeren. Deze code maakt echter geen deel uit van OpenPnP, omdat we van plan zijn om later andere apps aan te bieden. Dit betekent dat OpenPnP niet rechtstreeks met de bewegingscontroller kan praten, het moet door een softwarelaag gaan die de delta-berekeningen en XYZ-correctie-offsets uitvoert. We hebben al die code ingepakt in FireFUSE (ons bestandssysteem in userspace mapper), waardoor we veel leuke dingen kunnen doen waar we later op in zullen gaan. Dit is voor het grootste deel vrij transparant; in plaats van dat OpenPnP naar '/dev/ttys0' schrijft, schrijft u naar '/dev/firefuse/sync/cnc/marlin/gcode.fire'. FireFUSE zet de cartesiaanse coördinaten om in delta-coördinaten, berekent de foutoffset met behulp van geïnterpoleerde punten van het automatische kalibratieproces van de machine en stuurt deze nieuwe g-code naar de Marlin-driver. En die code is draagbaar en kan worden gebruikt met apps voor 3D-printen, apps voor het afgeven van soldeerpasta, enz. Het enige dat nodig is om OpenPnP met FireFUSE te laten praten, is een FireFUSE-stuurprogramma, dat momenteel wordt geschreven.

Camerastuurprogramma en visiekader :De camera-ondersteuning van OpenPnP was een beetje kieskeurig en ondersteunde de prachtige 5-megapixel Raspberry Pi-camera niet. Hun computervisie was een dunne shim bovenop OpenCV-code, die een aantal echt elementaire gaten-opsporing had geïmplementeerd, maar niet veel anders. Karl Lew, onze softwareman, zag dit als een enorm probleem en heeft de afgelopen twee jaar gewerkt aan het schrijven van een verbazingwekkende open-source vision-bibliotheek genaamd FireSight. Hij schreef tientallen geweldige vision-routines die kunnen worden samengevoegd tot een pijplijn, op een zeer hoogwaardige manier die geen hogere wiskunde of lagere C/C++-kennis vereist. Voor de camera gebruiken we de RasPi-cameramodule zoals vermeld, met een aangepaste versie van de 'raspistill' genaamd FirePiCam. We nemen snapshot-afbeeldingen en slaan ze op in het FUSE-bestandssysteem, waardoor we de bits op het FLASH-geheugen van de SD-kaart niet verslijten. Om OpenPnP de afbeeldingen te laten zien en computer vision-bewerkingen uit te voeren, schreef Karl een java-bibliotheek genaamd 'firerest-client' die ervoor zorgt dat het allemaal werkt.

GUI :De OpenPnP Java GUI is erg onhandig en niet intuïtief, en een speciale monitor aangesloten op de Raspberry Pi lijkt een beetje gek in 2014, ook wel Dawn of the Internet of Things genoemd. We willen dat de gebruikersinterface een aangepaste web-app is die vanuit elke HTML5-browser kan worden bekeken. Deze functionaliteit wordt niet direct ondersteund via OpenPnP, maar het kan met een beetje werk worden gedaan. Gelukkig schreef Jason OpenPnP waar je de constructor(s) voor de machine- en bestandsconfiguratiefuncties kunt aanroepen, die de GUI omzeilt. We kunnen een node-java-brug gebruiken om java-functies aan te roepen vanuit javascript, en vice versa, zonder veel werk, dankzij een code die we op github hebben gevonden. Het enige dat overblijft, is dat we een slimme web-app schrijven met node.js, Express, AngularJS en Twitter Bootstrap. We zijn nu in de beginfase van het schrijven van die app. In de tussentijd kunnen we OpenPNP normaal uitvoeren en de standaard GUI gebruiken, waarmee we andere delen van de machine kunnen debuggen.

Hardwaretopologie en werkingstheorie

We gebruiken een standaard Raspberry Pi Model B+. De B+ is de RPi die we altijd al wilden; ze hebben de connectoren naar een meer logische plaats verplaatst en een echte set montagegaten toegevoegd. Heeft nog steeds de waardeloze trage Broadcom 2835, maar wat verwacht je voor $ 30. We krijgen vaak de vraag:"Waarom heb je een BeagleBone Black gebruikt?" of een tiental andere single-board computers. Het antwoord is vrij eenvoudig. We mikken op een machine van $ 300, en dat betekent dat we een GOEDKOPE computer met één bord moeten kiezen. Raspberry Pi is de goedkoopste, daarom wint hij. QED. 🙂  Eigenlijk vinden we de BeagleBone Black erg leuk, en andere platforms zoals de Allwinner A4, Intel Galileo en zelfs meer traditionele setups zoals Mini ITX. Al onze software en hardware zou op die platforms moeten werken. Maar ze zijn duur, en Raspberry Pi klaart de klus.

We zijn tot nu toe verrast door de prestaties met de Pi. Het licht niet snel op, maar het doet wel computervisie en geeft zonder problemen webpagina's weer.

ERPIHAT01 HAT-bord

Kort na de release van de Raspberry Pi Model B+ heeft de RPi Foundation een "HAT"-specificatie uitgebracht, die erg lijkt op een Arduino Shield of een BeagleBone-cape. Het is een op maat gemaakt mezzanine-bord dat kan worden aangepast om leuke dingen aan een Raspberry Pi toe te voegen zonder allerlei kabels en andere onzin. Er waren plug-inmodules vóór de HAT's, maar ze waren niet gestandaardiseerd. We zijn blij met de nieuwe HAT-specificatie en presenteren met trots onze FirePick Delta HAT hieronder:

Hier is een lijst met dingen die onze FirePick Delta HAT doet:

  • Biedt een 16×2 karakter LCD-connector, die is aangesloten op de Raspberry Pi GPIO-connector
  • Voorziet in connectoren voor een roterende encoder en drukknopschakelaar (met LED), die zijn aangesloten op de Raspberry Pi GPIO-connector
  • Biedt een 12V -> 5V step-down schakelende voeding aan de Raspberry Pi.
  • Biedt een doorvoerconnector voor de RasPi-cameramodule, zodat we de camera kunnen uitbreiden naar de eindeffector van het deltamechanisme.
  • Biedt een piëzo-zoemer, aangedreven door de enige PWM-pin van de RasPi op de GPIO-connector. Dit was goedkoper dan het gebruik van de audio-aansluiting van de Pi.
  • Volgens de officiële HAT-specificatie biedt dit bord de nodige EEPROM-chip en backfeed-beveiliging op de +5VDC-ingang. Omdat we stroom leveren via de GPIO-connector, hoeven we geen stroom te leveren via de micro-USB-connector.

Voor meer details:een projectlogboek voor FirePick Delta, de Open Source MicroFactory


Productieproces

  1. Inleiding tot open source-terminologie
  2. Open source en het internet der dingen:innovatie door samenwerking
  3. DHT Tiny Breakout voor de Raspberry Pi
  4. De beste accessoires voor je Raspberry Pi
  5. SIGHT:For the Blind
  6. Smart Pen:eindproject voor ECE5725
  7. 3 tips voor het beheren van de logistiek van uw bouwproject
  8. De noodzaak van open source aan de rand (eBook)
  9. Hoe u de juiste kraan voor uw project kiest?
  10. Slimme bril, een nieuwe bron van productiviteit voor de technicus?
  11. RTC-module:de absolute gids voor een eenvoudig project