====== Pick&Place ====== Gerät am Schalter vorne rechts einschalten und dem verbauten Laptop etwas Zeit zum Booten geben. Anschliessend sollte eine ssh Verbindung möglich sein ''ssh -X pnp@pnp'' **USERNAME==PASSWORD** auf dem Laptop ist [[https://openpnp.org/|OpenPnP]] installiert welches nötig ist um das Gerät zu steuern dieses kann gestartet werden mit ''openpnp'' oder von remote direkt: ''ssh -X pnp@pnp '/bin/sh "/opt/openpnp/OpenPnP" %U''' ''-X'' aktiviert das X11 forwarding was nötig ist um openPNP remote zu öffnen. ===== Aufbau ===== Auf dem verbauten Laptop läuft ein Linux mit openPNP was wie oben genannt gestartet werden kann. Diese Software übernimmt die gesamte Bauteilverwaltung, Kameraauswertung, etc. Auch steuert diese, über 2 weitere Controllerboards, die gesamte Hardware: 1. Controllerboard (bottom): Adafruit Grand Central M4 mit RAMPS1.6+ shield * XYZ Achsen Steuerung * 12V Netzteil * Gehäuse Beleuchtung * RGB LED Ring 2. Controllerboard (top): Anet-A3D * beide Rotationsachsen * Vaccumsystem (Ventil, Sensor, Pumpe) Beide Controller führen Marlin aus, Code unten anbei. ==== sourcen ==== * [[https://git.hacknology.de/PNP/cad|CAD Teile]] * [[https://github.com/marlinFirmware/marlin/|Marlin]] * [[https://git.hacknology.de/projekte/Marlin/src/branch/hacknology/PNP/bot|controller bottom]] * [[https://git.hacknology.de/projekte/Marlin/src/branch/hacknology/PNP/top|controller top]] ==== gcode ==== es wird der üblich [[https://marlinfw.org/meta/gcode/|gcode]] verwendet. Häufig genutzte Befehle: * G21; set units to millimeters * G28 XY; Home XY * M10; Vaccum on * M11; Vaccum off * M80; Power On - schaltet das 12V Netzteil ein, ohne fahren die Motoren nicht * M81; Power Off * M114; get current position * M119; Query Endstop State. Power muss an sein (M80) * M260; I2C send * M261; I2C request * M355 S1; Case Light on * M355 S0; Case Light Off * M380; Activate Solenoid * M381; Deactivate Solenoid diese Befehle können manuell auf der Kommandozeile gesendet werden ''tio -e -t --map INLCRNL,OCRNL -b 250000 /dev/ttyACM0'' ===== Handhabung =====