Fräse: Difference between revisions
Jump to navigation
Jump to search
(→Maschine: privacy extensions enabled) |
|||
Line 1: | Line 1: | ||
== Maschine == |
== Maschine == |
||
Bei der Maschine handelt es sich um eine kompakte Uhrmacherfräsmaschine des Herstellers Sixis. Die Maschine soll auf CNC-Betrieb umgebaut werden. Momentan sind 2 Achsen (X und Z) und der Teilapparat umgebaut. Bei Fragen kann Val (val |
Bei der Maschine handelt es sich um eine kompakte Uhrmacherfräsmaschine des Herstellers Sixis. Die Maschine soll auf CNC-Betrieb umgebaut werden. Momentan sind 2 Achsen (X und Z) und der Teilapparat umgebaut. Bei Fragen kann Val (val at kabelsalat pünktli ch) eventuell Auskunft geben (Stand Ende Sept '20). |
||
== LinuxCNC == |
== LinuxCNC == |
Latest revision as of 18:52, 27 September 2020
Maschine
Bei der Maschine handelt es sich um eine kompakte Uhrmacherfräsmaschine des Herstellers Sixis. Die Maschine soll auf CNC-Betrieb umgebaut werden. Momentan sind 2 Achsen (X und Z) und der Teilapparat umgebaut. Bei Fragen kann Val (val at kabelsalat pünktli ch) eventuell Auskunft geben (Stand Ende Sept '20).
LinuxCNC
WIP
Achssystem und Motoren
WIP
Frässpindel
Überblick
- name-der regel sorgt dafür, dass der Spindel-Ardunio immer an /dev/arduino0 gemountet wird.
- spindle.hal verbindet die Spindel-Pins von LinuxCNC mit den Spindel-Pins des Python-Moduls spindle.py
- spindle.py verwandelt die Pin-Werte aus der spindle.hal zu einem String und schickt ihn seriell an /dev/ardunio0
- Aufbau des Strings: L:0_R:1_S:100 (Linkslauf/Rechtslauf/Drehzahl)
- spindle.ino ist das Programm auf dem Ardunio, das den String aufsammelt und die Pins schaltet.
- Der Arduino schaltet über 2 Pins die Links/Rechtslauf-Pins des FUs und sendet 0-5V als Solldrehzahl.
udev-regel
spindle.hal
spindle.py
spindle.ino
Code unten ist nur zur Demonstration, wie man den String auseinander nimmt. Richtiger Code folgt (hoffentlich).
#include <EasyNeoPixels.h> // v1:0_v2:0_v3:0 char str[30]; int var1 = 0; int var2 = 0; int var3 = 0; void setup() { Serial.begin(9600); pinMode(A5, OUTPUT); pinMode(A7, OUTPUT); digitalWrite(A5, LOW); digitalWrite(A7, HIGH); setupEasyNeoPixels(A6, 1); } void loop() { if (Serial.available() > 0) { memset(str, 0, sizeof(str)); Serial.readBytesUntil('\n', str, sizeof(str)); sscanf(str, "v1:%d_v2:%d_v3:%d", &var1, &var2, &var3); writeEasyNeoPixel(0, var1, var2, var3); Serial.print(var1); Serial.print(" "); Serial.print(var2); Serial.print(" "); Serial.print(var3); Serial.println(" "); delay(100); } }