This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.

Nombre de usuario
  

Contraseña
  





Estadísticas del foro
» Miembros: 17,997
» Último miembro: Matthewrerce
» Temas del foro: 12,406
» Mensajes del foro: 118,850

Estadísticas totales

Últimos temas
problemas de impresion
Foro: General
Último mensaje por: Zequitho
Ayer, 07:19 PM
» Respuestas: 2
» Vistas: 427
Desfase X X4
Foro: Artillery
Último mensaje por: Inderlard
26-09-2025, 01:48 PM
» Respuestas: 7
» Vistas: 345
Octoprint en Raspberry y ...
Foro: Raspberry Pi
Último mensaje por: samlevy0515
24-09-2025, 03:38 AM
» Respuestas: 3
» Vistas: 1,757
Busco soporte Hotend E3D ...
Foro: Prusa
Último mensaje por: Thulsa_Doom
24-09-2025, 12:08 AM
» Respuestas: 4
» Vistas: 595
Fallo de comunicación de ...
Foro: General
Último mensaje por: Simemart
23-09-2025, 08:22 PM
» Respuestas: 1
» Vistas: 166
[VENDO] Prusa Steel con m...
Foro: Venta
Último mensaje por: orbisat
18-09-2025, 08:41 AM
» Respuestas: 1
» Vistas: 1,004





















 
  Software RepRap para Android
Enviado por: Bertone - 20-08-2013, 02:58 PM - Foro: Firmware y Software - Respuestas (6)

Tal vez alguien ya lo conozca, pero soy nuevo en android, me he comprado una tablet y estoy descubriendo android, he encontrado esto (todavía no lo he podido probar)

Gratuito OpenSource Software desde F-Droid

https://f-droid.org/wiki/page/com.hermit.btreprap

0,73€ desde GooglePlay (usar google para buscar para pagar)



Obviamente necesita que la impresora necesita un módulo bluetooth, estoy buscando la manera de hacerlo via USB

https://github.com/DDRBoxman/Bot-3 no probado


  Prusa I3 "La jofainita" [finalizada]
Enviado por: sifou - 20-08-2013, 09:32 AM - Foro: Impresoras - Respuestas (33)

Bueno, pues ya tengo algunas piezas para empezar a construir mi Prusa I3 alias "la jofainita". El nombre es estúpido, sí (¿qué tendrá que ver una jofaina con las impresoras 3D?), todo gracias a Homer:



Claro que "imán de rayos" tampoco sería un mal nombre :roto2:

De momento me ha llegado hoy esto:

[Imagen: 2013-08-20%2009.46.41.jpg]

Poco para empezar en serio, pero habrá que ir esperando a más piezas...


  ¿Mejor alternativa a pronterface?
Enviado por: Pepo - 19-08-2013, 10:39 PM - Foro: Firmware y Software - Respuestas (8)

Hola.

Hoy se me ha parado de repente 2 veces la impresion. No veas que movida, porque en principio pense que se me habia petado la ramps. Es el puñetero pronterface (MAC) que se queda pillado y despues no conecta con la ramps. Hay que matar el proceso y desenchufar el USB.

¿Cual es la mejor alternativa a pronterface?

Saludos


Mi blog sobre Arduino


  Insoladora Homemade
Enviado por: Triggerr - 19-08-2013, 09:06 PM - Foro: Electrónica - Respuestas (41)

FINALIZADA

Bueno, edito la primera pagina para dejar un poco el resumen de todo, para empezar un video del funcionamiento:




Una fotos:

[Imagen: IMG_20130914_185030_zps1a2e5d98.jpg]

[Imagen: IMG_20130914_185026_zpsf813a618.jpg]

[Imagen: IMG_20130914_182656_zps6c56630b.jpg]

[Imagen: IMG_20130914_182645_zpsc34e15c9.jpg]

[Imagen: IMG_20130914_182638_zps0badfac8.jpg]


Codigo:

Código:
//Insoladora V1.0

//Librerias
#include <EEPROM.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Bounce.h>

//Caracteres
byte uparrow[8] = {        //Flecha hacia arriba
    B00100,
    B01110,
    B10101,
    B00100,
    B00100,
    B00100,
    B00100,
    B00100
};
byte downarrow[8] = {    //Flecha hacia abajo
    B00100,
    B00100,
    B00100,
    B00100,
    B00100,
    B10101,
    B01110,
    B00100
};

//LCD
LiquidCrystal_I2C lcd(0x20,16,2);  // set the LCD address to 0x20 for a 16 chars and 2 line display

//Botones
Bounce UP = Bounce(2,100);        //Pin 2 para boton UP
Bounce DOWN = Bounce(3,100);        //Pin 3 para boton DOWN
Bounce START = Bounce(4,100);        //Pin 4 para boton START
Bounce STOP = Bounce(5,100);        //Pin 5 para boton STOP

//Salidas
#define RELE 6
#define BUZ 8

//Variables
long segundos = 0;    //Variable para los segundos
long minutos = 0;    //Variable para los minutos
long segundosactual = 0; //Variable para temporizacion
long segundostotal = 0; //Segundos a temporizar
long segundosviejo = 0; //Tope de segundos para el FOR
long contador = 0;
long multiplo = 1;

void setup() {
  // put your setup code here, to run once:
  //PINES
  pinMode(RELE, OUTPUT);
  pinMode(BUZ, OUTPUT);
  //Iniciamos el LCD
  lcd.init();
  lcd.backlight();                     //Iniciamos la retroiluminacion
  lcd.setCursor(0,0);                //Situamos el cursor al inicio
  lcd.print("Insoladora V1.0");        //Imprimimos mensaje inicial
  lcd.setCursor(5,1);                //        
  lcd.print("L1llo5");                //
  delay(2000);                        //Esperamos 2 segundos con el mensaje
  lcd.clear();                        //Limpiamos la pantalla

  //Registro Caracteres
  lcd.createChar(1, uparrow);
  lcd.createChar(2, downarrow);
}

void loop()
{
    // put your main code here, to run repeatedly:
    //Leemos el tiempo guardado
    segundos=EEPROM.read(1);
    minutos=EEPROM.read(2);
    do{
        lcd.setCursor(0,0);
        lcd.print("Tiempo:");
        //Actualizamos los botones
        UP.update();
        DOWN.update();
        //Imprimimos la flechas en pantalla
        lcd.setCursor(15,0);
        lcd.write(1);
        lcd.setCursor(15,1);
        lcd.write(2);
        //Imprimos los segundos y minutos
        imprimir(segundos,minutos);             //Imprimimos los minutos y segundos iniciales
        if (UP.risingEdge())                    //Comprobamos si se ha pulsado el interruptor UP
        {
            segundos=segundos+10;                //Sumamos 10 segundos en cada pulsacion
            if(segundos > 50)                    //Si los segundos pasan del 50, sumamos un minutos y reiniciamos los segundos
            {
                minutos=minutos+1;
                segundos=0;
                imprimir(segundos,minutos);        //Imprimimos
            }
        imprimir(segundos,minutos);                //Si no pasamos de 50 segundos los minutos no varian
        }
        else if (DOWN.risingEdge())                //Si pulsamos el boton DOWN
        {
            segundos=segundos-10;                //Restamos 10 segundos en cada pulsacion
            if(segundos < 0)                    //Si los segundos son menores que 0, restamos un minuto y ponemos los segundos a 50
            {
                minutos=minutos-1;                
                segundos=50;
                if(minutos<0)                    //Evitamos que los minutos puedan ser negativos
                {
                    minutos=0;                    //Ponemos a cero el contador
                    segundos=0;                    //
                }
                imprimir(segundos,minutos);        //Imprimimos
            }
            imprimir(segundos,minutos);            //Si no ocurre ni minutos negativos ni resta de los mismos imprimimos
        }
        START.update();
    }while (!START.risingEdge()||segundos==0&&minutos==0); //Mientras no se pulse START o sean cero los minutos y segundos se repite el bucle
    //Pantalla de Inicio
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("INICIANDO....");
    //Guardado en EEPROM
    saveseg(segundos);
    savemin(minutos);
    buzzer(2);
    delay(1000);
    lcd.clear();
    //Cuenta atras
    segundosactual=millis();                //Guardamos los millis en los que nos encontramos
    segundosviejo=millis();                    //Guardamos en otra variable
    segundostotal=(minutos*60+segundos);    //Calculamos los segundos totales que hay que temporizar
    lcd.setCursor(0,0);                        
    lcd.print("Insolando:");                //Imprimimos un mensaje de INSOLANDO
    while (segundosactual/1000<=segundosviejo/1000+segundostotal)    //Cuenta atras, mientras segundos actual, sea mas pequeño que la suma de los que teniamos mas los que necesitamos, repetimos el bucle
    {
        STOP.update();                //Actualizamos el estado del boton STOP
        if(STOP.risingEdge())        //Si pulsamos el boton stop paramos el bucle
        {
            digitalWrite(RELE, LOW);    //Ponemos a cero la salida del rele
            lcd.clear();
            //Ponemos a cero las variables
            segundosactual = 0;
            segundostotal = 0;
            segundosviejo = 0;
            contador = 0;
            multiplo = 1;

            break;                        //Salimos del while
        }                    
        digitalWrite(RELE, HIGH);        //Activamos el rele
        contador=segundosactual-segundosviejo;    //Calculamos la diferencia entre segundos viejo y nuevo
        if (contador>1000*multiplo)                //Cuando llege a 1000ms(1 segundo) restamos tiempo
        {
            if (segundos<=0)                    //Si los segundos son menores que 0 bajamos minutos
            {
                minutos=minutos-1;                    //Restamos un minuto
                segundos=59;                        //Seteamos los segundos a 59
                cuentaatras(segundos,minutos);        //Imprimimos
            }else
                {
                    segundos=segundos-1;                //Restamos segundos si no son menores que 0
                    cuentaatras(segundos,minutos);
                }
            multiplo=multiplo+1;                    //Empleamos multiplo, para ir aumentando de un segundo en un segundo la diferencia entre tiempos, y asi poder contar cada segundo
        }
        segundosactual=millis();        //Renovamos la variable millis
    }
    //////FIN DEL CONTEO
    digitalWrite(RELE, LOW); //Desactivamos el rele
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("FINALIZADO");//Mostramos mensaje de finalizado
    buzzer(1);                //Melodia de final
    lcd.clear();            
    //Ponemos a cero las variables
    segundosactual = 0;
    segundostotal = 0;
    segundosviejo = 0;
    contador = 0;
    multiplo = 1;    
    //Volvemos al tiempo guardado
    segundos=EEPROM.read(1);
    minutos=EEPROM.read(2);
}

//Funcion Imprimir
void imprimir(int seg,int minu)
{
if(minutos<10) //Si los minutos son menores de 10 situamos la cifra mas a la derecha
{
    lcd.setCursor(11,0);
    lcd.print(segundos);
    lcd.setCursor(10,0);
    lcd.print(":");
    lcd.setCursor(8,0);
    lcd.print("0");
    lcd.setCursor(9,0);
    lcd.print(minutos);
}
else
{    
    lcd.setCursor(11,0);
    lcd.print(segundos);
    lcd.setCursor(10,0);
    lcd.print(":");
    lcd.setCursor(8,0);
    lcd.print(minutos);
}
}

//Funcion imprimir cuenta atras, situacion correcta de los segundos
void cuentaatras(int seg, int minu)
{
    if(minutos<10&&segundos>=10) //Si los minutos son menores de 10 situamos la cifra mas a la derecha y los segundos mayores que 10
    {
        lcd.setCursor(13,0);
        lcd.print(segundos);
        lcd.setCursor(12,0);
        lcd.print(":");
        lcd.setCursor(10,0);
        lcd.print("0");
        lcd.setCursor(11,0);
        lcd.print(minutos);
    }else if(minutos>=10&&segundos>=10)
        {    
            lcd.setCursor(13,0);
            lcd.print(segundos);
            lcd.setCursor(12,0);
            lcd.print(":");
            lcd.setCursor(10,0);
            lcd.print(minutos);
        }
    if(minutos<10&&segundos<10) //Si los minutos son menores de 10 situamos la cifra mas a la derecha, los segundos menores que 10
    {
        lcd.setCursor(13,0);
        lcd.print("0");
        lcd.setCursor(14,0);
        lcd.print(segundos);
        lcd.setCursor(12,0);
        lcd.print(":");
        lcd.setCursor(10,0);
        lcd.print("0");
        lcd.setCursor(11,0);
        lcd.print(minutos);
    }else if(minutos>=10&&segundos<10)
        {    
            lcd.setCursor(13,0);
            lcd.print("0");
            lcd.setCursor(14,0);
            lcd.print(segundos);
            lcd.setCursor(12,0);
            lcd.print(":");
            lcd.setCursor(10,0);
            lcd.print(minutos);
        }
}

//Funciones Lectura y Grabado EEPROM
void saveseg(int segundos)
{
    int saveseg=0;
    saveseg=EEPROM.read(1);    //Leemos los segundos guardados
    if (saveseg!=segundos)    //Si los segundos guardados no coinciden con los nuevos volvemos a guardar
    {
        EEPROM.write(1,segundos);    //Guardamos
        lcd.setCursor(0,1);            
        lcd.print("Saved");            //Imprimimos para verificar el guardado
    }
}

void savemin(int minutos)
{
    int savemin=0;            
    savemin=EEPROM.read(2);    //Leemos los minutos guardados
    if (savemin!=minutos)    //Si los minutos guardados no coinciden con los nuevos volvemos a guardar
    {
        EEPROM.write(2,minutos);    //Guardamos
        lcd.setCursor(0,1);
        lcd.print("Saved");            //Imprimimos para verificar el guardado
    }    
}

//Funcion BUZ
void buzzer(byte melodia)
{
    switch (melodia)
    {
        case 1:                            //Melodia al finalizar la cuenta
        digitalWrite(BUZ, HIGH);
        delay(1000);
        for (int i = 0; i<10; i++)
        {
            digitalWrite(BUZ, HIGH);
            delay(200);
            digitalWrite(BUZ, LOW);
            delay(50);
        }
        break;                            //Melodia al iniciar la cuenta
        case 2:
        digitalWrite(BUZ, HIGH);
        delay(250);
        digitalWrite(BUZ, LOW);
        break;
    }
}

Resumen;

Bueno, para empezar la insoladora esta echa en MDF, la parte superior es de un viejo escaner, los flourescentes son normales, ya que me costaba encontrar UV, en un futuro puede que los cambie. La insoladora esta controlada por un arduino MICRO, una pantalla LCD conectada por I2C, 4 pulsadores, un rele pilotado por una salida digital y un transistor 2n3905 (Valen la mayoria de NPNs), un BUZZER, y como componentes auxiliares una fuente de 15V compacta, y un LM7809 para alimentar el arduino.

Bueno, despues de pasar el verano sin hacer demasiado, toca ponerse las pilas, vamos a ver si sacamos adelante una insoladora, la idea es aprovechar la parte superior de una impresora multifuncion y hacer la parte inferior en madera (MDF), por ahora nose si usare luz normal o tubos UV, pero lo primero tengo que acabar la estructura, para mañana espero tener todo ya montado.

[Imagen: IMG_20130819_220206_zps82885dfc.jpg]

[Imagen: IMG_20130819_220233_zps714394db.jpg]

[Imagen: IMG_20130819_220254_zps13b138b1.jpg]

Tenia ojeados unos tubos UV a muy buen precio:

http://todoelectronica.com/tubo-fluoresc...c017dc571b


  Elección de electrónica y motores
Enviado por: jusalyso - 19-08-2013, 10:23 AM - Foro: Fresadoras CNC - Respuestas (25)

Quería abrir este tema para que cada uno cuente su experiencia con su electrónica y motores ya pondré mi post cuando tenga algo de tiempo