viernes, 19 de septiembre de 2014

Tufnol en impresora 3d y cama apagada.

Las impresoras 3D que imprimen en ABS tienen una cama caliente. Esta se conecta a la fuente de alimentación y permite que se peguen las primeras capas y no se despegue durante la impresión.

Ayer probé a usar una lámina de TUFNOL de 2 mm con laca, brim y la cama totalmente apagada. Pieza de 50 mm de diametro.
Hay que tener en cuenta que es septiembre en zaragoza. La temperatura de la habitación rondará los 26 grados.

Estos son los resultados.




Pegado perfectamente a al cama. 0 warping. Para despegarlo es cierto que no cuesta tanto como espejo de ikea + laca + cama caliente encendida.

La verdad es que me gustó mucho. Muy contento.

lunes, 15 de septiembre de 2014

Prusa I3 Modificada. Desarrollo.

Buenos días.

Llevo unos meses necesitando mover la prusa al trabajo. El modelo BOX que tenía no me valía, no tenía sitio para la fuente, el eje y no está solido y la electrónica no estaba bien sujeta. Así que me puse a hacer un modelo propio derivado.

Usa muchas piezas de cualquier prusa. Todo el eje X es de la prusa box.
He diseñado las piezas del eje z y eje y.
Como aproveché las varillas de la prusa BOX es bastante grande (52x52x52). Se puede hacer mas cosas.
Se me metió entre los cuernos que el motor debería ir a la derecha. Un fallo.

Tareas pendientes.
-Terminar de cerrarla. Me falta la parte trasera, la superior y el frontal. Para la parte superior pensaba en dos puerta de biombo. Para el frontal una o dos puertas de bisagra.
-Pintarla bonica.
-Interruptores en el frontal.
-Poner una placa base de un pc viejo y un monitor (¿donde? ya veremos) con un teclado y trackball pequeño.
- ponerle un nombre.





martes, 19 de marzo de 2013

Control de LED via IR

En este pequeño tutorial controlaremos un LED con un viejo mando infrarojo que tenía de un TDT roto. Además aprovecharemos el receptor IR del mismo.

Materiales.
-Arduino. (UNO en este caso. Pero vale cualquiera).
-Mando a distancia del TDT.
-Un led.
-Una resitencia de 220 oms. Como no tengo uso de 470. Podriamos montar 2 resistencias de 470 en paralero para dar 239 oms pero paso.
-Una protoboard.
-Cables.
-Una ficha de la luz.
-Ordenador.
-Cable USB para conectar el arduino.


A currar.

Parte física.

1 Conectamos el pin positivo y negativo de la arduino al los carriles de la protoboard.







2 Conectamos el receptor IR a la protoboard. Los sensores IR tienen 3 cables. Uno da corriente, otro es masa y el tercero es de datos. En mi caso el rojo en corriente. El pelado es masa y el blanco es datos.
Como están los cables deshilachados los conecto a una ficha. Esta ficha la conecto con los pelos de los cables de red a la protoboard.
Naranja: Corriente.
Naranja/blanco: masa.
Azul: Datos.

Pongo una resitencia de 470 oms (mejor 220) entre los 5,5 voltios de arduino y el cable de corriente del receptor IR.
Conecto el cable de datos a la protoboard y con ello el pin 3 de la placa.





3 Conectamos el led.

Pinchamos el led en la protoboard y al pin 4 del arduino pero le ponemos una resitencia de 470 oms ente los 5,5 y el positivo del led (pata larga), el negativo lo conectamos a masa.



Software.

Instalando una librería nuevo en arduino.

Descargamos la librería de este página
https://github.com/shirriff/Arduino-IRremote

Y la descomprimimos en la carpeta donde intalamos arduino y dentro de "libraries"

Ahora entramos en la carpeta IRremote y abrimos con el block de notas el archivo "remoteint.h"
En ese archivo cambiamos la linea que pone

#include <WProgram.h>


Por

#include <Arduino.h>



Esto es porque la librería se creo hace mucho. Antes del sistema moderno de arduino.


Conectamos arduino a nuestro puerto USB del PC. Y colocamos el siguiente código.

//incluimos la librería de IR
#include <IRremote.h>
#include <IRremoteInt.h>

//poner IR en marcha
int RECV_PIN = 3; //Definimos el pin donde tiene que esta el IR
IRrecv irrecv(RECV_PIN);
decode_results results;

//declaramos variable
int ValorIR=0; //declramos variable almacen valor ir

//Preparamos el setup
void setup()
{
Serial.begin(9600); //Ponemos el puerto serie a 9600
irrecv.enableIRIn(); // el receptor ir en marcha
}

//definimos una función llamada "leerIR" esto nos ayuda a que en el futuro podamos reutilizarla.
//no tiene parámetros de entra y devuelve un INT
int leerIR(){
if (irrecv.decode(&results)) { // si recibe señal IR
    int lectura = results.value; //Guarda el valor de la señal en la variable lectura
    irrecv.resume(); // Recive siguiente valor IR
    Serial.println(lectura);
    return lectura; //devuelve lectura
}
}
void loop() {

  
  ValorIR=leerIR(); //asignamos a esa variable el valor que devuelve lerIR
}

Lo cargamos en arduino, abrimos el monitor serial y al pulsar un botón del mando a distancia nos dará un número diferente para cada tecla que pulsemos.

En mi caso la tecla 1 del mando a distancia da el código -9691. La 2 el -3571. El botón de arriba me da el 28815 y de de enter el 18615.

Quiero que el led se encienda cuando yo presione enter y se apague cuando lo vuelva a presionar.

Asi que cargamos el siguiente código en nuestro arduino

//incluimos la librería de IR
#include <IRremote.h>
#include <IRremoteInt.h>

//poner IR en marcha
int RECV_PIN = 3; //Definimos el pin donde tiene que esta el IR
IRrecv irrecv(RECV_PIN);
decode_results results;

//declaramos contante
int pinLed=4;

//declaramos variable
int ValorIR=0; //declramos variable almacen valor ir
int estadoLed=0;
//Preparamos el setup
void setup()
{
Serial.begin(9600); //Ponemos el puerto serie a 9600
irrecv.enableIRIn(); // el receptor ir en marcha
pinMode(pinLed, OUTPUT); //definimos el pin del led como de salida
}

//definimos una función llamada "leerIR" esto nos ayuda a que en el futuro podamos reutilizarla.
//no tiene parámetros de entra y devuelve un INT
int leerIR(){
if (irrecv.decode(&results)) { // si recibe señal IR
    int lectura = results.value; //Guarda el valor de la señal en la variable lectura
    irrecv.resume(); // Recive siguiente valor IR
    Serial.println(lectura);
    return lectura; //devuelve lectura
}
}
void loop() {

  
  ValorIR=leerIR(); //asignamos a esa variable el valor que devuelve lerIR
  if (ValorIR==18615){ //comprobamos el codigo recibido
    if (estadoLed==0){ //comprobamos si el led está encendido
      digitalWrite(pinLed,HIGH); //lo encendemos
      estadoLed=1; //marcamos como que está encendido
    }
    else{ //si no está apgado es que esta endendico
      digitalWrite(pinLed,LOW); //lo apagamo
      estadoLed=0; //marcamos como apagado
    }
  }
}
Y el resultado es el siguiente.





Evidentemente encender y apagar un led no es una cosa que sea muy meritoria. Pero hemos visto como capturar una tecla de un mando IR. Ahora la imaginación al poder.
¿Un juego de luces led de arbol de navidad que cambiemos con el mando de la tele?
¿Un coche controlado por IR)
¿Encender una luz, o cafetera, o riego eléctrico con un mando añadiendo un rele?
Esa será la siguiente entrega.