martes, 22 de agosto de 2017

Grabadora Laser

Buenas.

Siguiendo las indicaciones de esta página 3DPBurner, hace ya mas de un año que construí una unidad de esta máquina de grabado laser con la que podemos pasar fotos a madera en escala de grises. Esta fue la primera versión.



Paso a comentar mis impresiones y experiencias, que no van mas allá de la construcción, modificación y primeros trabajos pues realmente no la he usado mucho por dar prioridad a otros proyectos.

Lo primero es juntar el material y para esto hay que conocer varias palabras para poner en el buscador, como por ejemplo:

-"laser TTL". El módulo TTL permite que el laser no solo pueda estar encendido o apagado sino que encienda con diferentes intensidades, usadas para hacer los diferentes tonos de gris.
Yo instalé un laser Violeta (405nm) de 150 mW que compre por 28€ y actualmente por este precio podemos adquirir uno de 500mw con lo que podemos ir mas rápido para hacer el mismo trabajo.
Desconozco si con 500mW ya podemos cortar algún tipo de madera fina. Pero los 10W necesarios para grabar metal se alejan mucho de este precio. 

-"grbl shield" el escudo que conecta Arduino con los controladores de los motores paso a paso, el laser, la alimentación etc. No se si es barato (por lo que hace) o caro (por lo que es), compré varios a 1.05€ con envío gratis, ahora un poco más.
Aquí surgió el primer problema. Nada mas conectar, todo deja de funcionar, se funde el fusible del shield que habrá que sustituir por un trozo de cable.

- Para controlar los motores paso a paso podemos buscar "stepper driver" o mejor directamente "drv8825" (las búsquedas generales son siempre más caras). Muerte a los a4988, se duermen. Debo tener una quincena en los cajones sin usar, la diferencia entre unos y otros es de unos 20 centimos y los A4988 solo sirven para dejar trabajos a medias y perder material. Lo voy a decir abiertamente "te odio a4988"

- Motores paso a paso. Sabemos que la especificación NEMA17 de los motores paso a paso se refiere a sus dimensiones físicas, no a otras características como torque o voltaje. Como en muchos otros ámbitos lo mas usado suele ser lo mas barato y aunque podemos construir este tipo de maquina (que no carga un gran peso) con motores ridículos y os recomendaría buscar "17hs4401". Rondan los 34 € 5 unidades con terminales dupont para conectar directamente en el shield. Recuerdo también que me resistía a creer que cuando el fabricante especificaba que eran de 3 voltios pudiesen servir para 12 o 24 sin derretirse jajaja

- Piezas impresas. Si no tenéis impresora y conocéis a alguien que la tenga no creo que os cueste mucho el trabajo pues no es lo mismo imprimir versiones finales que imprimir piezas en desarrolo que hay que imprimir y reimprimir y...(estoy viendo en la estantería un mini-trípode para la reflex en el que gasté mas de un kilito de plástico, algún día lo subiré, pero por el momento lo que me consuela es que es una pieza única en el mundo... y cada vez que lo miro aún se me ocurre alguna pequeña modificación, no...no lo voy a decir abiertamente).
Por este motivo hice una pequeña donación y recibí un enlace con las últimas versiones de las piezas. aunque ahora están disponibles en thingverse en el siguiente enlace.

Ya funcionaba. Ya se movía!!!!

... pero no muy bien, demasiado ancho para solo un anclaje en el eje Y.

Era hora de sacar el afila lapices

Usar dos motores en el eje no resuelve el problema de dar la misma tensión a las los correas, solo aumenta costes, entonces habrá que mover dos correas con el mismo motor.



Nota: a principios de verano, con el aumento de las temperaturas  y debido a la tensión se rompieron estas piezas y las re-diseñé reforzandolas con un tornillo metálico. Este es el ENLACE a la versión de Thingverse pero con el ARCHIVO de  Blender podréis personalizar para la medida de vuestros rodamientos.

El siguiente paso era poner los finales de carrera, para poner a cero la máquina y poder reposicionarla sin mucho error. Y surgió el segundo problema. No encontraba los pines correcctos para conectarlos. La serigrafía del shield NO corresponde con el pinout del frimware que podemos consultar en este enlace. Solo hay que ver donde salen en la parte superiór. El reposicionamiento es asombrosamente preciso.

Antes de conectar los finales de carrera leí atentamente el modo de conexión pues hasta hace unos días, el único Arduino que me había cargado fue conectando mal los finales de carrera de una impresora. La reparación no fue muy cara ya que solo tuve que sustituir el regulador de tensión de la placa(1117).


Así paso algún que otro mes hasta que cayó en mis manos un trozo de goma eva. Es un material llamativo, atractivo... como muchos otros pero mi pequña "linternita" laser puede grabarlo e incluso cortarlo.


estas son unas pruevas a distintas velocidades, aunque dependen del color de la goma





La configuración final es mas grande para poder trabajar sobre láminas enteras de 600x400 mm y ademas rediseñe los soportes para poder utilizar dos tableros del mismo ancho. Es fácil ir a una gran superficie de bricolaje y pedir que corten uno pequeño a la mitad


lunes, 17 de julio de 2017

Lijadora Barracuda

Buenas.

Hace tiempo que uso esta lijadora hecha a partir de un disco duro antiguo. Funciona muy bien y como el disco duro es de 7200 r.p.m. el papel de lija dura mucho.

El motor del disco duro es un motor sin escobillas (brushless) y para que funcione tenemos que localizar los tres cables que usa para moverse, y conectarlos con un ESC(Controlador de Velocidad Electronico). A su vez el ESC necesita una señal de control PWM (Ancho de Pulso Modulable) que le indica la carga en el ciclo de trabajo. Una forma sencilla de generar una señal PWN es usar un probador de servos (servo tester).

La única precaución que debemos tener es poner al mínimo el probador de servos cuando encendemos ya que sino entramos en el modo programación del ESC y habrá que contar pitidos para moverse por el menu o usar una tarjeta de programación.









lunes, 10 de julio de 2017

DSO138

 Aprovechando que hacia tiempo que el dolar no estaba a 90 céntimos compré en Ali el osciloscopio mas barato que encontré. Me costó exactamente 13.37€, con gastos de envio incluidos.

 Antes de comprarlo busque videos en Youtuve y aunque estaba dispuesto a lidiar con todo, en el fondo me alegré cuando al abrir el paquete vi que ya venían soldados los componentes SMD. Me puse a ello en la sobremesa y aunque no intentaba batir el record he de decir que poco mas de dos horas tuve el estañador encendido.
Por suerte funcionó todo a la primera, sin ningún problema, mas que la duda que sembraron un par de componentes que venían repetidos.

Como siempre busqué en Thingverse lo que había sobre el tema. Dediqué un buen rato al frontal y hay uno que me gusta pero varios inconvenientes hicieron posponer su impresión. Había incongruencias entre el modelo de dso138 y el frontal. El frontal que me gustaba  había que imprimirlo con soporte. Su división en varias partes planteaba el problema de unirlas...

Como siempre que no sale a la primera, aunque me cuesta soltar el hueso, cambio de tarea para retomar mas tarde.

Aunque en este caso no creo que dedique más tiempo al frontal pues el DSO pocas veces va a salir de la mesa de trabajo.

Al comprar el ali, te das cuenta que, por ejemplo, si un componente cuesta 90 céntimos, diez unidades del mismo componente cuestan 1.1€, las diez. Por eso esta vez ya tenía un conector JST de dos pines, una clavija micro usb y un módulo para subir voltaje("dc-dc step up" es la búsqueda que hago). También uso un power bank de dos unidades de 18650.

Lo metí todo en Blender y después de darle unas vueltas esto fue lo que salió...










dc5.5malePlug

Buenas.

 Desde hace algún tiempo en vez de usar tanto el calibre para desarrollar piezas para imprimir, junto en un archivo Blender los modelos de las piezas que uso.

Cuando comienzo un nuevo proyecto guardo como mi archivo STOCK.

Estos días estoy trabajando en algo en lo que interviene un conector macho de 5.5 mm y como no lo había en Thingverse lo añado yo.





viernes, 30 de junio de 2017

Nano as ISP

Para cargar los códigos en Arduino pro mini utilizaba un Arduino UNO pero me decidí a cambiarlo por un Nano y me dio algo fe follón encontrar el problema.

Ademas del cableado típico añadí un condensador de 10uf entre el reset del Nano y tierra.

Al código que viene con la IDE le modifiqué dos lineas. Recordar que este método solo sirve para las versiones de 5V.

CÓDIGO

Pieza en THINGVERSE

BLENDER FILE



iic scanner MY

Buenas, mira q me gusta juntar las cosas para comenzar un proyecto nuevo...

........................

Estos días estuve identificando las direcciones I2C de varios componentes y en un rato modifiqué el código "I2C Scanner" que se encuentra googleando. Mantiene la salida serie pero ademas muestra las direcciones en el lcd, por lo que no hace falta que este conectado al ordenador.

Si hay dos lcd con la misma dirección, se ven las notificaciones en las dos a la vez.

Usando la base que se muestra en las fotos para un Arduino Nano conecto el lcd en A4 y A5 y como tiene duplicados esos pines quedan los cables libres para el componente que queramos identificar.

enlace al CÓDIGO

También imprimí una pieza intentando economizar el gasto de plástico. La podéis descargar en Thingverse lista para impimir o descargar en formato Blender para modificar.

enlace a THINVERSE
enlace a BLENDER FILE




sábado, 17 de junio de 2017

Conunicación entre ESP8266 y Arduino

Buenas.

Hace algún tiempo había hecho una librería para comunicar ESP8266 con Arduino.

La idea era cargar un código tipo en Arduino y controlar todas sus funciones desde ESP: pinModes, reads y writes.

El primer error fue usar la comunicación por serie, la cual era muy inestable.
El segundo error fue pensar q solo podía cambiar el modo en que actúa un pin (entrada o salida) en el Setup.

Estos días estuve trabajando en la mejora.

Por una parte el bus IIC o I2C es estable porque las funciones de comunicación son interrupciones, el micro deja lo que esté haciendo para poder atenderlas. Me dio un poco de trabajo cubrir la necesidad de que los mensajes sean de una longitud determinada, conocida. Aparte de que trabaja con bytes (0-255) q hay que reconvertir a cadenas o enteros según se necesite.

Por otra parte, saber que puedo cambiar el "pinMode" durante la ejecución del programa, eliminó la necesidad de resetear Arduino para que la nueva configuración tenga efecto. Esto permite alcanzar la meta principal de tener un solo código tipo. Cargarlo solo una vez en Arduino. No es que cambie el cableado de un proyecto, sino que el proyecto y su cableado dependan de un solo código, el de ESP.

El bus IIC necesita un Master o Jefe, y ESP por su capacidad y velocidad es mejor que Arduino.
El bus IIC puede controlar varios Esclavos, cada uno con su dirección. Esto permite que un ESP pueda tener varios Arduinos a su servicio. Arduino es mejor en cuanto a numero de pines, (20 digitales en UNO, o 14 digitales y 6 entradas analógicas) y en rango de trabajo que va de 0 a 5v.

Por tanto, la única modificación que haremos al código tipo de Arduino, solo si usamos mas de un esclavo en cada Master, es dar una dirección única dentro del bus IIC.

Los códigos están disponibles en:

Github


y se aceptan dudas, comentarios y mejoras.

Anteriormente lo había enfocado como una librería, y aunque el coloreado de las funciones según se escriben facilita la lectura y corrección del código, últimamente prefiero trabajar teniendo las referencias en la misma pestaña,

El código Master1 es para un ESP con un solo esclavo.
El código Master2 es para un ESP con dos o mas esclavos.
También puede usarse un Arduino como Master. Para esto quitaríamos la única orden que hace que no compile: Wire.setClockStretchLimit(40000);.  Teniendo en cuenta ademas que SDA y SCL son fijos en Arduino, A4 y A5 en 328P (UNO, Nano, Micro) y 20 y 21 en Mega
.
El código Slave es para un Arduino Nano o Micro. También sirve para UNO teniendo en cuenta que no disponemos de las entradas analógicas 20 y 21
El código SlaveMEGA es para un Arduino Mega.  Aunque dos esclavos UNO suman 36 I/Os por menos dinero.

Como se explica en el .md el cableado es directo SDA-SDA y SCL-SCL, sin resistencias ni conversor de nivel.

En ESP-01 se debe especificar Wire.begin (0,2);.
En WemosD1 esta serigrafiado en la placa, Wire.begin (); actúa en D4 y D3.
En nodeMCU 1.0  Wire.begin ();, activa por defecto D1 y D2

Descripción de funcionamiento:

En el código de ejemplo vemos la manera sugerida de uso. Antes de actuar sobre un pin del Esclavo comprobamos su configuración
El esclavo guarda en eeprom la configuración previa aunque es redundante con la comprobación desde master por lo que se puede escoger entre los dos métodos.
Ademas de actuar sobre los pines podemos intercambiar valores de las variables nVar[i]. Para compartir floats podemos usar dos variables, una se ocuparía de la parte entera y reconstruiríamos los decimales con la otra.

En el código de ejemplo está activada la comunicación serie, que no es necesaria para el funcionamiento del código. Pero como veréis en el Monitor Serie cada vez que enviamos una orden, obtenemos un eco, lo que nos permite obtener un acuse de recibo.

ESP y Arduino se complementan. Si tenemos hardware incompatible con ESP podemos cargar sus librerias en Arduino y segur tomando las decisiones desde Master.

viernes, 9 de junio de 2017

Codigo v2 Mega

Buenas.

 Acabo de terminar la versión 3 del programador de riego, basado en WemosD1/nodeMCU y me parece un sinsentido compartir este código pq:

- seguro q ya no compila con la versiones actuales de las librerías
- hay mejor hardware y mas barato
- para hacer q funcione de una forma mas sencilla

Cedo a vuestra educada insistencia pero mi...

Recomendación:
-aprovechad las partes q podáis
-aprovechad las partes q podáis

No doy soporte.

En mi opinión es una vía muerta.
me parece mejor poner n sectores a ESTE codigo q pelear con V2 Mega

mi padre me decía de pequeño
"non hai como dar na cabeza de un"

jueves, 13 de abril de 2017

ESP8266 RTC DS3231

Get Code

Estos días quería actualizar el programador de riego para usarlo con ESP y lo primero que necesitaba era trabajar con un RTC.

Con las busquedas en google lo primero que me quedó claro es que ESP puede usar la hora de internet. Lo segundo fue que aunque quieras usar un rtc, ESP puede usar la hora de internet, y sigue...

Os dejo este código en el que esp se conecta a una wifi y publica una pagina web desde la que podemos cambiar fecha y hora y saber la temperatura del 3231.

Al principio refrescaba la pagina cada segundo. El problema surgió cuando en ese tiempo no era capaz de escoger una nueva hora en el cuadro para introducirla y al refrescarse la pagina tenia que empezar de nuevo. Imposible.

Como comento en el video, encontre esta entrada: http://www.esp8266.com/viewtopic.php?f=8&t=4307&start=8 en la que el Sr. katz se preguntaba y se respondía. Usé el código de la página 3 como base.

Mediante xml actualizamos partes de la página sin interferir con la selección de una nueva fecha u hora.

Al leer más sobre xml vi que también se podría hacer mediante json, cuya principal ventaja, para mi,
es el uso de arrays. Desafortunadamente, la librería para implementar el uso de json, impide el uso de delay. Aunque no es necesario en este código, si me dio errores de compilación mas adelante. Por eso volví al uso de xml.

lunes, 9 de enero de 2017

mPrimeOne_HXAM

Buenas.

Antes de nada, agradecer el fantástico trabajo de Diego Trapero (Thingverse link) al publicar las piezas de su impresora 3D, M Prime One(Site link, Thingverse link).

Diego Trapero compartió originalmente su trabajo bajo la licencia CC-By3.0 y estas modificaciones las comparto bajo la misma licencia, CC-By3.0.

Con estas piezas, que colocan el motor del eje x en posición horizontal, conseguimos que la tensión de la correa presione siempre las guias contra la parte baja de los rodamientos.

HXAM = motor horizontal en eje x 



Aunque en mi versión de M Prime One uso varilla de inox de 6 mm pongo aquí las dos versiones del eje x, las que usan rodamientos LM6UU y LM8UU.

El único componente nuevo es usar como pasadores de soporte de los rodamientos, dos trozos de varilla de inox de 3mm. Hay que poner 2 + 2 arandelas para ajustar la pareja de rodamientos. Esto debe hacerse antes de acoplar los LMxUU.



Mi versión de la pieza es completamente compatible con la original, pero tiene el "endstop" en el lado contrario, asi pude cargar sin comerme mucho el tarro en frimware Marlin (link).  1.0.2-1, es la versión que uso.



Este es un plano general de mi versión.


Piezas en Thingverse 

Blender File(coming soon)

jueves, 5 de enero de 2017

Euro Coin Collection

Colecciono monedas desde que era pequeño. No tengo una gran colección ya que nunca he comprado una pieza, solo me quedo con las que caen en mis manos.

Con la llegada del Euro deje de coleccionar durante unos años y hace otros pocos comencé de nuevo.

Organizar las monedas de tantos países era un lío. Ademas me quedo con dos unidades de cada una.

Diseñe estas piezas para poner un poco de orden y facilitar la tarea de comprobar si ya tengo esa moneda.


Por un lado están las piezas de AÑO y por otro las de VALOR.
Con trozos de varilla de inox de 4mm hago un "libro" para cada país.



Primero, en el fondo, pongo los años.
En la parte de arriba están por Valor, estas son las últimas que relleno. por tanto si ya está esta unidad no sigo revisando el mazo.


Cada pieza tarda 40 minutos en imprimirse con una altura de capa de 0.3mm y gasta 10 gramos de PLA. Pero lo peor es rellenarla. Completo solo tengo 1999. Ademas 2+1+.5+.2+.1+.05+.02+.01 = 3.88€. x2 ud =7.76 € año x 20 años =145.2 € x tropecientos paises....

Pieza en Thingverse

Blender file