You are on page 1of 8

// Ponemos las librerillas

#include "fastio.h"
#include "Configuration.h"
#include "pins.h"
#include "Sprinter.h"
#include "SerialManager.h"
#ifdef SDSUPPORT
#include "SdFat.h"
#terminara si
// Cdigos Implementadas
// G0 -> G1
// G1 - Coordinado Movimiento X Y Z E
// G4 - Dwell S <segundos> o <P milisegundos>
// G28 - Inicio toda Eje
// G90 - Uso Absoluto Coordenadas
// G91 - Utilice coordenadas relativas
// G92 - dado Establecer posicin actual hasta cordinates
// Variables movimiento paso a paso
axis_codes char [NUM_AXIS] = {"X", "Y", "Z", "E"};
move_direction bool [NUM_AXIS];
axis_previous_micros largos sin signo [NUM_AXIS];
previous_micros largos sin signo = 0, previous_millis_heater,
previous_millis_bed_heater;
move_steps_to_take largo sin signo [NUM_AXIS];
RAMP_ACCELERATION #ifdef
axis_max_interval largo sin signo [NUM_AXIS];
axis_steps_per_sqr_second largo sin signo [NUM_AXIS];

axis_travel_steps_per_sqr_second largo sin signo [NUM_AXIS];


max_interval largo sin signo;
steps_per_sqr_second largo sin signo, plateau_steps;
#terminara si
boolean acceleration_enabled = false, acelerando = false;
intervalo largo sin firmar;
destino float [NUM_AXIS] = {0.0, 0.0, 0.0, 0.0};
current_position float [NUM_AXIS] = {0.0, 0.0, 0.0, 0.0};
steps_taken largos sin signo [NUM_AXIS];
larga axis_interval [NUM_AXIS]; // De demora de velocidad
bool home_all_axis = true;
int avance = 1500, next_feedrate, saved_feedrate;
flotar time_for_move;
larga gcode_N, gcode_LastN;
bool relative_mode = false; // Determina absoluta o coordenadas relativas
bool relative_mode_e = false; // Determina Cdigos E absoluta o relativa,
mientras que en el modo Absoluto Coordenadas. E es siempre relativa en el
modo de coordenadas relativas.
#ifdef SDSUPPORT
Tarjeta Sd2Card;
Volumen SdVolume;
Raz archivo SDF;
Archivo archivo SDF;
uint32_t tamao de archivo = 0;
sdpos uint32_t = 0;
bool sdmode = false;
bool sdactive = false;

bool savetosd = false;


int16_t n;
charlas fastxferbuffer [SD_FAST_XFER_CHUNK_SIZE + 1];
int lastxferchar;
xferbytes largos;
anular initsd () {
sdactive = false;
#if SDSS> - 1
si (root.isOpen ())
root.close ();
if (! card.init (SPI_FULL_SPEED, SDSS)) {
// If (! Card.init (SPI_HALF_SPEED, SDSS))
SerialMgr.cur () -> println ("init SD quebrar");}
else if (! volume.init (y tarjeta))
SerialMgr.cur () -> println ("volume.init fall");
else if (! root.openRoot (y volumen))
SerialMgr.cur () -> println ("openRoot fall");
sdactive = true;
#terminara si }
inline void write_command (char * buf) {
char * buf = comenzar;
char * npos = 0;
char * buf final = + strlen (buf) - 1;
file.writeError = false;
if ((npos = strchr (buf, 'N'))! = NULL) {
comenzar = strchr (npos, '') + 1;

final = strchr (npos, '*') - 1; }


terminar [1] = '\ r';
terminar [2] = '\ n';
final [3] = '\ 0';
//SerialMgr.cur()->println(begin);
file.write (comenzar);
si (file.writeError) {
SerialMgr.cur () -> println ("error al escribir en el archivo");}}
void setup (){
Serial.begin (BAUDRATE);
Serial.println ("start");
BLUETOOTH #ifdef
BLUETOOTH_SERIAL.begin (BAUDRATE);
#terminara si
for (int i = 0; i <BUFSIZE; i ++) {
fromsd [i] = false}
// Inicializar prendedores Paso
#if (X_STEP_PIN> -1)
SET_OUTPUT (X_STEP_PIN);
#terminara si
#if (Y_STEP_PIN> -1)
SET_OUTPUT (Y_STEP_PIN);
#terminara si
#ifdef SDSUPPORT
// Potencia al lector SD
#if SDPOWER> -1

SET_OUTPUT (SDPOWER);
WRITE (SDPOWER, HIGH);
#terminara si
initsd ();
#terminara si}
void loop (){
BLUETOOTH #ifdef
si (BLUETOOTH_SERIAL.available () &&! serial_count){
SerialMgr.ChangeSerial (y BLUETOOTH_SERIAL);
} Else {si (Serial.available () &&! serial_count){
SerialMgr.ChangeSerial (y Serial);}}
#terminara si
si (buflen <3)
get_command ();
si (buflen) {
#ifdef SDSUPPORT
si (savetosd) {
si (strstr (cmdbuffer [bufindr], "M29") == NULL) {
write_command (cmdbuffer [bufindr]);
SerialMgr.cur () -> println ("bien"); } Else {
file.sync ();
file.close ();
savetosd = false;
SerialMgr.cur () -> println ("Hecho archivo de salvar.");}} Else {
process_commands () }
#else

process_commands ();
#terminara si
buflen = (buflen-1);
bufindr = (bufindr + 1)% BUFSIZE }}}
#ifndef CONFIGURATION_H
#define CONFIGURATION_H
// AJUSTES BSICOS: Seleccione su tipo de tarjeta, tipo termistor, escala de los
ejes, y la configuracin final de carrera
//// Los siguientes definir selecciona el que embarquen en la electrnica tienen.
Por favor, elegir el que se adapte a su configuracin
// RAMPAS 1,3 = 33
#define MADRE 33
//// variables de calibracin
flotar axis_steps_per_unit [] = {80.1041, 80.35869, 80.1041, 777.6};
//// Ajustes de finales de carrera
#define ENDSTOPPULLUPS // Comentario esto (utilizando // al comienzo de la
lnea) para desactivar las resistencias pullup tope final
// Se necesitan los dominadas si se conecta directamente a un ENDSWITCH
mecnica entre las patillas de seal y de tierra.
// Si sus ejes nicamente se estn moviendo en una direccin, asegrese de
que los finales de carrera estn conectados correctamente.
// Si los ejes se mueven en una direccin SOLAMENTE cuando los finales de
carrera se activan, ajuste [XYZ] _ENDSTOP_INVERT true aqu:
X_ENDSTOP_INVERT bool const = true;
const bool Y_ENDSTOP_INVERT = true;
const bool Z_ENDSTOP_INVERT = true;
// Esto determina la velocidad de comunicacin de la electronica
#define BAUDRATE 115200
// Comente (utilizando // al comienzo de la lnea) para desactivar el soporte SD:

// # Define SDSUPPORT
// Descomentar hacer carrera Sprinter init.g de SD en el arranque
// # Define SDINITFILE
// Para Invertir Stepper Habilitar Pins (Activo bajo) utiliza 0, no inversora (activa
alta) utiliza 1
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0
// Deshabilita eje cuando no est siendo utilizado.
const bool DISABLE_X = false;
DISABLE_Y bool const = false;
DISABLE_Z bool const = false;
DISABLE_E bool const = true;
// Invirtiendo la direccin del eje
INVERT_X_DIR bool const = false;
INVERT_Y_DIR bool const = false;
INVERT_Z_DIR bool const = true;
INVERT_E_DIR bool const = false;
//// AJUSTES final de carrera:// Establece la direccin de finales de carrera
cuando mensajeras; 1 = MAX, -1 = MIN#define X_HOME_DIR -1#define
Y_HOME_DIR -1#define Z_HOME_DIR -1
min_software_endstops bool const = false; // Si es cierto, el eje no se mover a
las coordenadas menor que cero.
max_software_endstops bool const = true; // Si es cierto, el eje no se mover a
las coordenadas mayor que las longitudes definidas abajo.
const int X_MAX_LENGTH = 300;
const int Y_MAX_LENGTH = 400;

const int Z_MAX_LENGTH = 1,000;


//// AJUSTES DE MOVIMIENTO
const int NUM_AXIS = 4; // El orden de eje en todas las matrices de eje
relacionado es X, Y, Z, E
flotar max_feedrate [] = {200000, 200000, 200000, 500000};
flotar homing_feedrate [] = {} 1500,1500,1500;
axis_relative_modes bool [] = {falso, falso, falso, falso};
// Retardo de paso mnima en microsegundos. Si usted est experimentando
etapas que faltan, tratar de elevar los microsegundos de retardo, pero tenga en
cuenta este
// Si se activa esta opcin, asegrese de STEP_DELAY_RATIO est desactivado.
// # Define STEP_DELAY_MICROS 1
// Retardo Paso sobre relacin de intervalo. Si sigue experimentando etapas
que faltan, tratar de descomentar la siguiente lnea, pero tenga en cuenta este
// Si se activa esta opcin, asegrese de STEP_DELAY_MICROS est
desactivado. (A excepcin de Gen6: ambos necesitan ser habilitado.)
// # Define STEP_DELAY_RATIO 0.25
// Comenta esta desactivar la aceleracin de rampa
// # Define RAMP_ACCELERATION
//// ajustes de aceleracin
RAMP_ACCELERATION #ifdef
// X, Y, Z, E velocidad mxima de inicio de movimientos acelerados. Valores
predeterminados E son buenos para 40+ skeinforge, para versiones anteriores
a recaudar mucho.
flotar max_start_speed_units_per_second [] = {} 25.0,25.0,0.2,10.0;
larga max_acceleration_units_per_sq_second [] = {} 1000,1000,50,10000; // X,
Y, Z y E aceleracin max en mm / s ^ 2 para la impresin se mueve o se retrae
larga max_travel_acceleration_units_per_sq_second [] = {} 500,500,50,500; //
X, Y, Z max aceleracin en mm / s ^ 2 para viajes mueve
#terminara si

You might also like