3/06/2019

CNC cirQoid


Saludos,

hoy vengo a hablaros de un juguete que ya lleva un tiempo entre mis manos, esta entrada la empecé cuando me llego, pero ni tenía experiencia de lo que hacer ni sabía muy bien cómo iba.  Cirqoid, una CNC principalmente pensada y diseñada para hacer circuitos impresos. El video es muy molón el ruido que hace no tanto, sino preguntarles a mis compañeros :p.



Que mejor forma de presentaron la maquina con el video que me enamoro...


 

Bueno en el video se ve sencillo, que podía salir mal. Para comenzar mi experiencia con una maquina cnc era nula, salvo que funciona muy parecida a un impresora 3D, es más tiempo atrás comencé a montarme una Cyclone, pero entre una cosa y otra no la termine. Principalmente me daba mucha pereza tener algo que tuviera que calibrar cada dos por tres.

Cirqoid tal y como se ve, cumple, es una maquina muy robusta, le falta eso si un sistema de absorción de partículas y una caja externa para hacerla lo más segura posible. Con un aspirador “normal” y pongo las comillas, porque al tener que absorber partículas interesa que no atore, he pillado una “Rowenta cyclonic”, que hace un ruido de mil demonios. 
 
El software que proporciona esta gente es sencillo, pero practico, eso si pensado para trabajar idealmente con diseños de Eagle. Solía trabajar con Proteus, pero la necesidad me hizo pelearme con Eagle, un inicio muy duro, la verdad, pero cuando lo empiezas a entender. Lo que si que hay que tener ciertas consideraciones a la hora de diseñar para trabajar con la máquina. 

Si haces huna “Board” de 2 capas, has de tener en cuenta que entre placas no hay conexión, los topos del top no están unidos con la botton, entonces hay que tomar consideraciones casi todas las pistas las paso por la botton y algunas por la top, pero siempre considero que al componente he de soldarlo por la botón, las vias las hago más grandes. Las vias las resuelvo metiendo un cable y soldando en ambos extremos. 


















Algunas muestras de prototipos

¿Qué ventajas tiene tener esta máquina a no tenerla?

Muchas, al igual que la impresora 3D te abre la puerta a muchas posibilidades, la maquina tiene limitaciones físicas, o de uso, hacer las pistas de un SOP o un SSOP son difíciles para la maquina y mas para tratar de soldarlas en condiciones. 

Por cierto otra máquina que pedí junto con la maquina fue un Microscopio estéreo para soldar, y si estoy contento con la CNC, con el microscopio estoy en las nubes, que maravilla. Ya los años pesas y las lupas ayudaban, pero se hacía difícil soldar según que cosas. Ahora he entrado en la época del smd 0805, para más datos.  Eso si genera dependencia, una vez lo usas lo usas para soldar cualquier cosa.

El Software que emplea la maquina es cirQWizard, no es una maravilla de software pero es funcional al menos, proporciona un conversor para Eagle que facilita mucho las cosas. Con proteus no había forma de que reconociera los drills. Y con KitCad esta aun en tareas pendientes provarlo.




Extensiones que reconoce el CirQWizard



Lo mas complicado de la maquina es pillar bien las cotas y destruir el menor número de fresas o brocas… 





Muestra del software de control de la CirQoid



Anakleto.

2/25/2019

AnalogHub i2c


Saludos,



“That is not dead which can eternal lie, And with strange aeons even death may die”.

No hoy no vengo a haceros entrega de una nueva aventura de la llamada de Cthulhu, aunque estaría bien. Hoy trato de arrancar nuevamente el foro tras un periodo de silencio, mucho trabajo principalmente.



Hoy vengo a presentaros un “AnalogHub I2C” basado en el PIC16f1503, no es nada nuevo ya hice algo similar con la entrada de la Pi Zero. Pero en esta ocasión es una plaquita más ligera y que se puede añadir a cualquier proyecto uses, Arduino, raspberry pi, teensy, Intel edison , etc.


 


Imagen de una placa sin soldar y otra hecha.
   
Las placas las he pedido a Seeedstudio, realizan un trabajo muy fino a un precio muy competitivo. Entre otras cosas funcionan tan bien como OshPark, simplemente les subes el pcb a su pagina y te realizan un presupuesto.


Que tienen estas placas:
·         Puerto i2c
·         Un led controlable.
·         5 entradas Analógicas
·         2 controladores de servo


Evidentemente la funcionalidad de los puertos se puede modificar si modificas el programa del pic. Como funciona, la placa puede dar el valor de la analógica que se le pida, en una resolución de 16 bits, de forma automática se obtiene 5 muestras y se da la media.
·        
  •  Modo lectura Master escribe al AnalogHub un byte :
o   0x30 à El master ha de leer 2 bytes de la entrada Analogica 0
o   0x31 à El master ha de leer 2 bytes de la entrada Analogica 1
o   0x32 à El master ha de leer 2 bytes de la entrada Analogica 2
o   0x33 à El master ha de leer 2 bytes de la entrada Analogica 3
o   0x34 à El master ha de leer 2 bytes de la entrada Analogica 4
o   0x35 à El master ha de leer 2 bytes de la entrada Analogica 5
o   0x36 à registro de control, el master lee 2 bytes que son ‘1234’

  Ejemplo de Arduino
 
Wire.beginTransmission(address);  // Address of AnalogHub
  Wire.write(op); // option
  dato=i2cReadbyte(address);
  dato|=i2cReadbyte(address)<<8;
  Wire.endTransmission();
  delay(15);


En modo control he implementado un control de servos en continua, que nos permitía realizar un simple robot con ruedas, una vez enviada la instrucción los motores ruedan un tiempo determinado y se paran hasta recibir su siguiente instrucción, de normal son 100 ms. 


·          
  • Modo control del Master al AnalogHub:
o   Master escribe un byte
§  0x01 à El led se enciende
§  0x02 à El led se apaga
o   Master escribe 2 bytes
§  Modo robot con  servomotores en continua
·         0x20 + [0..50]à forward
·         0x21 + [0..50]à backward
·         0x22 + [0..50]à turn right
·         0x23 + [0..50]à turn left
·         0x24 à stop
§  Modo Servos
·         0x26 + [0..180] à control servo 1
·         0x27 + [0..180] à control servo 2
o   Master escribe 3 bytes
§  0x25 + [0..255] + [0..255] à Parte baja y parte alta del delay entre motores en modo robot, de normal está en 100 ms
§  0x69 + [0..255] +[0..255] à Parte baja y parte alta de la media de muestreo para las lecturas analógicas. De normal está en 5.

Ejemplo Arduino

Wire.beginTransmission(address); // Address of AnalogHub
 Wire.write(op); //opcion
 Wire.write(data);// data is uint16_t
 Wire.write(data>>8);
 Wire.endTransmission();


Lo único que hay que considerar es los tiempos entre las instrucciones de control, si le enviamos dos órdenes sin dejar el tiempo suficiente para que se completen la segunda orden posiblemente no llegue. Si el tiempo medio de instrucción de control de los motores es 100ms el tiempo mínimo ha de ser 100ms entre instrucción. Ajustando mucho.


   
Conexiones

La alimentación puede ser a 3,3 o 5V, en función de los sensores que necesitéis conectar. Para la alimentación de los servos/motores se recomienda una alimentación a parte de la tensión de control, las pruebas realizadas con servomotores de dfrobot  no fue necesaria alimentación extra, pero tampoco tenía puesto ningún sensor.

Conclusión


El AnalogHub esta pensado para deslocalizar funciones básicas como leer sensores y controlar motores, bien porque el master no posea estas funciones o para reducir el nivel de código en este sentido. No deja de ser un prototipo y se hecha en falta un segundo puerto I2c para poder conectar varios en cascada e la inclusión de un puerto extra para la alimentación de los motores. Pero abre la puerta a desarrollar robots modulares, que sean plug and play para el master.

Anakleto