Fräse: Difference between revisions

From CCC Basel Wiki
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@kabelsalat.ch) eventuell Auskunft geben (Stand Ende Sept '20).
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);
  }
}

spindle.hal