Fräse: Difference between revisions
Jump to navigation
Jump to search
(Angefangen, die Spindel-Geschichte zu dokumentieren) |
|||
Line 29: | Line 29: | ||
=== spindle.ino === |
=== spindle.ino === |
||
Code unten ist nur zur Demonstration, wie man den String auseinander nimmt. Richtiger Code folgt (hoffentlich). |
|||
<pre> |
|||
#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); |
|||
} |
|||
} |
|||
</pre> |
|||
=== spindle.hal === |
=== spindle.hal === |
Revision as of 18:51, 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@kabelsalat.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); } }