Fräse

From CCC Basel Wiki
Revision as of 18:52, 27 September 2020 by Val (talk | contribs) (→‎Maschine: privacy extensions enabled)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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);
  }
}

spindle.hal