Mostrando entradas con la etiqueta Arduino. Mostrar todas las entradas
Mostrando entradas con la etiqueta Arduino. Mostrar todas las entradas

jueves, 26 de febrero de 2015

Robot de inspección cadenas (tracked) BENITO parte 4

El sistema de tracción elegido daba problemas porque se salia la cadena y patinaban las ruedas tractoras.

La solución fue colocar una correa de transmisión en el interior del neumático de bicicleta.

Preparar la correa.

Aprovechando que la correa tiene un rebaje cada 10 mm vamos a realizar un corte de 10 mm cada 20 mm. asi el paso sigue siendo 30mm.

Cortamos una dejamos dos

Esto queda.


Unir la correa a la rueda.


Con tornillos 4x10mm de cabeza avellanada unimos la correa a la rueda. Como hay que cortar la correa y la rueda esta cortado evitamos que los cortes coincidan.

No es necesario colocar todos los tornillos.

lunes, 16 de febrero de 2015

Robot de inspección cadenas (tracked) BENITO parte 3

Hemos dado un pequeño salto para que BENITO sea más profesional.

El más fundamental ha sido meterlo dentro de una caja. Ya parece "ALGO".

Además de una serie de cambios mecánicos.

- Cambiadas las escuadras en L que se doblaban por otras más recias.
- Cambiadas la cubierta de bicicleta que hacía de cadena y tenía 20 años por una comprada en decatlhon 26x2.10 BTT blanda.
- Probando a cambiar los tornillos que hacen de tensores por barras de fibra de vidrio de 4mm.


Barcaza.

Hemos usado una caja de baquelita. Es un material dificil de conseguir pero genial para estos menesteres. Fácil de mecanizar. Resistente. Impermeable... una maravilla.


Para el alojamiento de los motores necesitamos hacer un agujero de 29,5mm.

Como mi broca de corona es de 28 mm lime los laterales, el soporte del motor es un circulo con dos rebajes superiores., con una herramienta rotatoria hasta que encajó.




El soporte trasero lo aproveché del que había impreso.

ESE ES EL PRIMER FALLO. Ese soporte tiene 75 mm de ancho lo que hace que como poco el motor esté a 37,5 mm de la pared frontal. Es mejor poner los motores los mas pegados a la pared frontal posible. esto da mejor ángulo para el off road.

Soporte trasero blanco. Hay que pegar el motor lo mas posible a la pared


Posteriormente coloqué L de acero para los rodillos de apoyo.



Y ya un agujero de 8 mm en el frontal para colocar la rueda tractora.
Así mal.

La primera vez puse los ejes y luego los rodillos y la rueda tensora. En mucho mejor hacerlo al revés. Montar el eje con la rueda tractora fuera y luego ponerlo.
Así mejor.

Rodillo izquierdo mal. Derecho mejor

Colocamos todas las piezas impresas como en el anterior post, las alineamos y ya tenemos la barcaza preparada.



Construcción de la cadenas.

Cortamos un neumático de bicicleta (use un 26x2.10 de 9 euros de una tienda conocida) cuanto mas blando y mas tacos tenga mejor.


Da trabajo

Cortamos a la anchura necesaria pero es mejor que el resutado sea una tira lo mas plana posible para que no salten los dientes de las ruedas. Por eso corto casi todo el flanco.


Mejor con poca curvatura



Ahora viene la parte laboriosa. Agujereamos cada 30 mm con una broca de madera de 5mm. 


Después de hacer 30 agujeros toca otra parte laboriosa: cortar los tacos donde hacemos los agujeros para que los tornillos de la cadena queden lo mas verticales posibles. Mas o menos limpiar el tamaño de la cabeza de los tornillos.



Colocamos un tornillo de 4x10mm, una arandela, una tuerca normal y una tuerca de bloqueo o nylon. También tiene su miga. 

Ahora toca medir la cadena y cortar a la longitud necesaria. Medir dos veces y cortar una. Tiene que quedar tirante pero no demasiado.




Unimos las dos mitades. La mitad inferior la hemos limpiado y quitados los tacos.




Un par de vídeos.






Fallos.

Después de probarlo en tierra una de las cadena se sale y pierde tracción.
Falta suspensión





martes, 27 de enero de 2015

Robot de inspección cadenas (tracked) BENITO parte 2

Continuamos documentando el robot BENITO. Hoy el sistema de rodaje.

El sistema de rodaje del BENITO es tipo cadena de goma casera.

Motor.

Motor de un taladro barato practyl de 12 v.
Como modificarlo.

Eventualmente usamos un soporte impreso para sujetar el motor. Este hace que el centro del eje del motor se encuentre a 26,5 mm. Usaremos esta altura para todos los ejes del robot.

Soporte frontal motor

Colocamos al motor dos tuercas 3/8 24 UNF (Hay que buscarlas en tornillerías especializadas como tornilleria aragonesa).




Rueda tractora

Al motor se le acopla una rueda impresa en 3d de 86 mm de diámetro con 9 tornillos de 4x30 mm.

La rueda consta de dos partes.

Rueda tractora interior

Rueda tractora exterior





La rueda tractora tiene un alojamiento donde encaja la tuerca que se ha montado en el eje del motor. Una vez colocado se coloca el tornillo de izquierdas del eje.



viernes, 16 de enero de 2015

Robot de inspección cadenas (tracked) BENITO parte 1

Buenos días.
Estoy desarrollando un robot de inspección de coste limitado. Debe ser flexible en su construcción en la mayoría de sus aspectos. Tiene que poder ser de madera, de acero, de plástico, mas grande, más pequeño, poder se controlado por una emisora RC, por un arduino, usar motores de taladro modificado, comerciales, de limpiaparabrisas, el control de motores con esc, con l298n, con puente H de relés y mosfet etc etc.
Evidentemente hay unos limites (motores de taladro con l298n pues mal. Igual que un bicho de 20 kilos con motores de de 25mm.

Las características mínimas deben ser las siguientes.
-Económico (<500 euros).
-Flexibles como ya he explicado.
-Una cámara que en tiempo real.
-Todo terreno.
-Comunicación y vídeo por cable y/o por RC. Cable es fundamental.
-Elementos comunes y fáciles de conseguir.
-Tiene que poder ser construido y modificado por personal sin mucha formación.
-La fabricación debe poder realizarse con herramientas caseras (taladro, sierra de calar, sierra de listonar etc). No pueden intervenir CNC (por lo menos en una versión básica).
-Una luz que se pueda encender a distancia
-El mando sea un todo integrado. Había pensado tipo PSP.
-Control de nivel de batería.

Por parte de software.
-Flexible igual. Que pueda funcionar con cualquier muchos métodos de entrada de datos y de transmisión. A ser posible que esta flexibilidad no no implique tener que cargar el sketch modificando algún parámetro como pasa con MARLIN.
-Seguro. Debe ser difícil de interceptar los comando de control. Además tiene que pararse en caso de perdidas de conexión.

Las característica extras podrían ser interesantes.
-GPS.
-Varias cámaras.
-brazo para inspección.
-sensores para inclinación.
-garra para soltar pequeñas cargas.
- waterproof.
-pantalla en el emisor para leer datos del robot o OSD para verlo en la pantalla de la cámara.
-Electrónica montada en caja de forma que se pueda quitar de un cuerpo de robot y colocarlo en otro.
-Shield propia para arduino mega que facilite la conexiones. 

Estado actual a 16ENE15.

Parte física del Robot.
  • Dos motores de destornillador-taladro con batería Practyl 12V.
  • Aqui como los modifiqué Modificar motores practyl.
  • Dos baterías del propio destornillador-taladro.
  • Dos IBT-2 para el control de motores.
  • Un arduino mega con sensor shield
  • Receptor actual nrf24l01.
  • Dos servos para la futura cámara.
  • Unas cadenas caseras montadas con ruedas de bicicletas y tornillos. El tren de rodaje se ha hecho impreso en 3D para facilitarme el trabajo pero está diseñado para poder hacerse con tablas de cortar de cocina y sierra de marquetería.
  • Todo ello montado sobre una tabla.







Electrónica de motor.
Arduino mega. El programa permite conectarse con nrf24l01, apc220, receptor de radio control de 4 ch mínimo, o max485. El control de motores puede realizarse por IBT-2, por ESC o por shield monster moto. Pero seleccionándolo antes de cargar el sketch. En caso de pérdida de conexión el vehículo para y reintenta conectarse.


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.