lunes, 22 de abril de 2013

Chatarra:Circuito con microcontrolador sencillo.(2)

Diseñando el circuito.
El tipo de circuitos integrados que hemos visto en la entrada anterior, son una combinación de lógica secuencial, amplificación y regulación de potencia.
Como la intención inicial era mostrar como se puede implementar un control de este tipo de motores, en principio proponemos  un pequeña plataforma hardware sobre la que probar el desarrollo.
Vamos a implementar algo parecido utilizando un microcontrolador  PIC asequible (3€) un pequeño integrado amplificador de corriente  (500mA) de ocho canales (0,60 €) y algunos componentes pasivos : resistencias, condensadores,diodos ...

Dice la canción: sin entrar en pormenores ,yo sé hacer cosas mejores. Pero no iremos mas lejos; esto va ser un ejemplo básico.Aún así seria suficiente para implementar un control de enfoque.
De hecho el PicGoto mas básico es este mismo circuito + adaptador de niveles TTL-RS232.


Esquemático del Circuito básico Diseñado con KiCad.




El PCB con el visor 3-D de KiCad.
El circuito se ha compuesto  usando la aplicación  KiCad . Funciona bajo Linux,Windows y OSX es  gratuita y de código abierto,  posibilita tanto el diseño esquemático de circuito y el diseño físico de la placa. Incluye una librerías de componentes  no demasiado extensas, aunque se pueden encontrar un gran número librerías adicionales en la red.

Por lo demás, con un poco de práctica ,es sencillo diseñar uno mismo los elementos que no estén disponibles y se pueden  necesitar. En este caso el  motor stepper lo he tenido componer  por mi cuenta, no me habrá llevado más diez minutos.Trae un visor 3-D  que permite visualizar el prototipo PCB mientras se está diseñando.

Posiblemente, para quién no tenga experiencia, confeccionar un circuito impreso puede parecer una tarea muy compleja,en la realidad para circuitos sencillos como este, bastan c algunos aparatos caseros: una impresora láser,papel fotográfico para impresoras de chorro de tinta satinado,una plancha,un mini taladro  tipo  dremmel (no hace falta que sea de marca) y sustancias químicas de uso común: H20 (agua corriente),H2O2 (agua oxigenada),y HCl (ácido clorhídrico, conocido también  como agua fuerte o salfumán) todas ellas en el formato y grado de disolución con el que se encuentran  en el supermercado de la esquina. Hay tropecientos vídeos en youtube que  enseñan el proceso.

Las opciones para armar el circuito , sin tener que fabricar un PCB especifico (circuito impreso)  pasan por usar una placa de pruebas  (inserción) o placa prototipo perforada (soldadura).

Elementos.

Microcontrolador 
Usaremos el PIC16F628A de Microchip, es  un dispositivo de arquitectura HARVARD que se caracteriza en que la memoria de programa y almacenamiento  variables están separadas.El dispositivo tiene 2Kb de Flash, 224 bytes de RAM, 144bytes de EEPROM. Una USART para comunicación serie , dos TIMER de 8 bit  y otro de 16 bits.
Aunque este IC lleva un oscilador interno,para hacerlo funciona a su velocidad máxima de 20Mhz incluimos en el  circuito  un oscilador de cuarzo.

Etapa potencia.
Como amplificador/etapa de potencia  el ULN2803A es un pequeño array de transistores en configuración Darlintong. Para motores bipolares puede usarse el L293D.Estos integrados soportan un amperaje máximo de 500mA. Los  motores con consumo superior pueden  utilizarse con etapas de transistores discretas o integrados de potencia como el L298.

Compilador Lenguaje  C.
Para compilar los ejemplos se puede  utilizar  la versión gratuita del compilador HiTech C. La forma de obtener el máximo rendimiento de estos dispositivos pasa por programar directamente en ensamblador de código máquina(juego de instrucciones propio de cada microcontrolador ).La curva de aprendizaje y el nivel de dificultad que esto conlleva, hace que el uso de un compilador de Lenguaje C sea más adecuado en la mayoría de los casos.Para partes criticas de la aplicación  siempre queda la posibilidad de incluir código máquina en linea.

Empezaremos con el código en la próxima.




jueves, 4 de abril de 2013

Chatarra (1)

Un paréntesis para hablar de motores de pasos.

Electromecánica


La opción mas económica para motorizar instrumentos astronómicos (monturas, enfocadores, ruedas de filtros ...) de construcción propio o comerciales,suele ser el empleo de steppers ,en español motores de pasos.
La economía, radica ,principalmente, en que es posible reciclarlos de máquinas obsoletas,como impresoras matriciales ,fotocopiadoras y tragaperras. Por desgracia ,esta fuente es cada vez mas escasa por recogerse actualmente estos equipos en los llamados "puntos verdes"en lugar de dejase al lado de contenedor de residuos urbanos.

Motor de pasos NEMA23 con citronella al fondo
También se pueden encontrar en  Ebay o comprar directamente a fabricantes chinos, a precios bastante razonables.No hace mucho tiempo un motor normalito podía costar entre 45€ y 60€,  mientras que uno de fabricación china puesto en casa puede costar unos 15€ ó 20€.

El motor de la imagen , es un modelo de tamaño NEMA23, de 400 pasos por vuelta (0,9º por paso) 7V 1A, 35Ncm de par que viene pesar unos 700 grs. Hace unos años hicimos un compra conjunta a China y después de portes ,aduanas y demás  impuestos no salieron a 22€ la pieza.

Electrónica.


A diferencia de un motor de corriente continua  convencional ( de tipo de esos que sacábamos destripando juguetes el día de reyes ),que gira con solo conectarlo a una fuente de tensión, en el caso de los steppers es necesario conmutar  secuencialmente el paso de corriente por los bobinados para avanzar o retroceder pasos y de esa forma llevar  el eje del motor a una posición determinada o hacerlo girar a la velocidad deseada.
Existen cientos circuitos integrados específicos para  controlar motores de pasos,tanto para generar la lógica de conmutación como la etapas de potencia.

Con  la proliferación de sistemas de mecanizado  CNC   e impresoras caseros es también bastante asequible conseguir una controladora ya montada. La controladora de tres ejes  y 3A optoacoplada  me salió por unos 38$ que es la tercera parte  de lo que me habría costado, solo los componentes, en la tienda de electrónica de la esquina.

Básicamente, lo que hace este tipo de integrados es generar un par de curvas de excitación seno/ coseno  amplificarlas y aplicarlas a los bobinados  del motor mediante un par de puentes H de transistores bi'polares ,DMOS ó MOSFET .
Como aproximación razonable, un motor de pasos bipolar eléctricamente  opera según el mismo principio  de funcionamiento que un  motor de corriente alterna síncrono bifásico. La diferencia es que un motor síncrono convencional no puede avanzar a pasos discontinuos , si se desfasa cierto angulo  de la frecuencia de la red  pierde el sincronismo , se bloquea y a veces hasta se quema .

Curvas de excitación para avance en medio paso y 1/8 paso.
La curvas  de excitación se generan partir de una tabla senoidal de niveles discretos,por lo que la suavidad del paso depende del numero de niveles de corriente que el integrado pueda generar. En el que caso de que solo pueda generar  dos niveles (V+  V-) tenemos el caso  clásico de avance a paso completo o medio paso.

Cuantos mas niveles sea capaz de generar el circuito , más aproximada es la curva de excitación a una curva continua y  mayor sera  la suavidad de giro .De igual forma el mayor número de niveles de corriente posibles permite aumentar la resolución del motor.Si tenemos un motor de doscientos pasos usando  un controlador que admita dieciséis niveles (ocho con valores  positivo y otros tantos negativos) podremos multiplicar la resolución ocho veces esto es mil seiscientos micropasos por vuelta.

Este tipo de drivers regulan la el valor de la corriente por conmutación utilizando técnicas de choppingmodulación de ancho de pulso en lugar de regulación lineal  por lo que su rendimiento energético es mayor  y el calentamiento de los componentes y los motores mucho mas reducido.

El problema de este tipo de dispositivos es que  por lo general, las curvas de excitación que traen grabadas   no se pueden modificar. Ese es el motivo de que la proporcionalidad en la longitud de los micropasos difiera según cada  modelo o las características del motor que queramos usar.

Esta pega  ,que para una máquina herramienta CNC puede  tener poca o nula  importancia,¡ (la técnica de excitación por micropasos se emplea principalmente para eliminar  resonancias que para alcanzar mayor precisión) ,en Astronomía ,si que tiene, sobretodo trabajando con reducciones muy bajas, una importancia real.

Si el dispositivo de control que vamos a emplear sí permite un calibrado de tablas, entonces podremos compensar estas diferencias y ajustar la calidad y longitud de micropaso.

Como ejemplo tenemos en el vídeo  podemos ver un modelo de motor Shinano Kenshi, empleado en plotter s , con un par de mantenimiento muy alto lo que hace que operado en modo micropaso senoidal su comportamiento sea bastante malo.


Utilizando como controlador un PIC16F628A  en lugar de un IC convencional, osciloscopio y un punterito láser la calidad del giro  puede mejorar notablemente.


En posteriores entradas veremos como se pueden programar estas cositas en microcontroladores o al menos como las programo yo.