Star Tracker

Diseño electrónico

Condiciones de diseño

Tenía claro que mi diseño iba a funcionar sobre la plataforma Arduino, pero quería realizar una placa de control lo más pequeña posible, sin sacrificar mi Arduino UNO, con una placa de circuito hecha a mano y con una interfaz y manejo muy simple. Como premisa, reutilizar todos los componentes posibles y mantener el coste al mínimo con las herramientas sencillas de las que disponía.

Después de incontables horas de estudio sobre la materia y de rebuscar entre los restos electrónicos del trastero, empecé a perfilar un circuito en la cabeza. Consistiría en un Arduino basado en el proyecto Arduino on a Breadboard, pero simplificado al máximo y sin reloj externo (porque simplemente no lo tenía y así reducía costes), 8Mhz serían suficientes.

Por otro lado no estaba dispuesto a sacrificar entradas del Arduino poniendo pantallas LCD, joysticks.... Tenía todos esos componentes, pero realmente no eran necesarios, simplicidad ante todo. Como interfaz gastaría un pulsador y un buzzer, al fin y al cabo sólo se trataba de hacer girar un motor.

Además debía añadir elementos de seguridad para detener el motor y evitar la colisión de ambas placas o la expulsión del tornillo fuera del engranaje. Para ello utilizaría barreras iR extraídas de viejas impresoras.

El control del motor desde el microcontrolador sería a través de transistores Darlington, para ello el ULN2003A extraído de la placa de un escáner sería más que suficiente. Tendría que resolver como soldar este componente a mi placa perfboard ya que su formato era SMD.

Para que la montura fuera portable, debía diseñar una fuente de alimentación basada en baterías recargables. Al no disponer de fuente de alimentación programable en mi banco de trabajo, estuve experimentando con distintos adaptadores de alimentación de 5v, 7v, 9v, 12v, 24v de los disponibles en casa. Al final de las pruebas concluí que a partir de 9v el motor tenía suficiente torque para no patinar o perder pasos con el peso de la cámara.

Así que construiría una batería Li-ion de tres celdas en serie, reutilizando 3 antiguas baterías nokia BL-5C, manteniendo intactos sus circuitos y elementos de seguridad. Con esto tendría disponible cerca de 11v 1020mAh y tendría que realizar la carga de cada celda individualmente. Para asegurar el paquete de baterías lo inserté en un envase caramelos de hojalata.

Esquema de montaje de la batería

Para controlar el estado de la batería usé un divisor de voltaje conectado a una de los ADC para medir de forma segura para la CPU el nivel de voltaje restante en la batería y representarlo con un led bicolor.

Con todas estas premisas el coste total de la parte electrónica se sitúa en cerca de 6€ de chip ATmega328P, asombroso!

Diseño del circuito

Los primeros diseños del circuito los realicé con fritzing y en pararelo en una protoboard, usando un Arduino UNO completo. La programación de los movimientos básicos del motor también tuvieron lugar en ese momento. Fueron momentos de mucho aprendizaje y alguna confusión. Los primeros prototipos sólo consistieron en un gran lío de cables.

Control del motor con Arduino
Control del motor con Arduino
Circuito básico en protoboard
Circuito básico en protoboard
Programando el ATMEGA via Aurdino ISP
Programando el ATMEGA via Aurdino ISP

Una vez verifiqué el correcto funcionamiento con la protoboard incorporé al circuito la fuente de alimentación y sustituí el Arduino UNO por el ATMEGA328P. Posteriormente continué el diseño con Eagle para poder tener más control sobre el diseño de la placa y la organización de los componentes en ella.

Esquema electrónico de la montura

El esquema resultante es bastante sencillo, a la parte izquierda del ATMEGA se posiciona el regulador de voltaje LM7805 con su esquema típico.

Para poder resetear el microcontrolador cuando lo programemos conectaremos la señal de RESET entre el pin 1 y la resistencia de 10k conectada a VCC. Así el programador ISP podrá conectar a GND en ese punto y el ATMEGA detectará el estado LOW en el pin 1 (RESET) para reiniciarse.

A la derecha del ATMEGA las dos barreras de iR se conectan al ADC0 y ADC1. En el ADC2 mediremos el nivel de la bateria mediante el divisor de voltaje. Las resistencias R5 y R6 están medidas para obtener voltajes hasta 5v cuando en la entrada del divisor (+12v) hayan tensiones hasta 21,6v (más de 21v dañaría el ATMEGA).

Para representar el estado de la batería usé un led bicolor LD1 conectado a las entradas digitales PD1 y PD2. R3 y R4 son sus resistencias limitadoras de corriente.

En la entrada PD3, a través de la resistencia limitadora R2, tenemos el LED1 que indicará el estado de encendido del sistema.

La entrada PD4 tiene conectado un pulsador conectado a tierra (GND) que servirá para elegir los distintos modos de operación (marcha, parada, avance o rebobinado rápido...). El sistema contará el número de pulsaciones seguidas y a cada combinación asignará un comando.

El buzzer conectado en PB1 sirve de confirmación acústica en la introducción de comandos y comunicar las activaciones de las barreras iR, que nos indican errores de posición mecánica.

El IC3 es el ULN2003A que se conecta al procesador mediante las salidas PD5, PD6, PD7 y PB0. El motor paso a paso se conecta directamente al IC3 en sus conexiones de salida (O1, O3, O5, O7). Por último solo necesita proporcionar la tensión necesaria para alimentar el motor en en la entrada CD+ del IC3. El funcionamiento básico del IC3 es regular la tensión de salida en O1, O3, O5, O7 de 0 a 12v según la tensión presente en I1, I3, I5, I7 de 0 a 5v. Con ello conseguimos regular la tensión de las bobinas del motor con la tensión de las señales de control del ATMEGA sin riesgo eléctrico.

Para facilitar la conexión del la placa base al resto de la montura agrupé las lineas de control del motor, las señales de los sensores y las tensiones de 5v y 12v en el conector SV1. Esto me permitió reusar una cinta de cables para interconectar todo.

Para poder programar el ATMEGA usé mi placa de Arduino UNO como ISP (in-system program) y para ello preparé el conector SV2 con las señales necesarias para la programación alimentando el ATMEGA mediante las conexiones de GND y 5v presentes en el SV1.


Una vez hecho el esquema pasé al diseño de la placa del circuito. Teniendo en cuenta que iba a usar una placa perfboard a una sola cara y que algunos componentes eran SMD, organicé los componentes manualmente de la mejor manera posible para evitar el exceso de pistas y puentes. Los componentes SMD irían principalmente en la cara de las soldaduras, excepto el UNL2003 que lo añadí mediante cables. Como no iba a revelar la placa de manera profesional, estos diseños sólo los utilicé como guías para el montaje en la perfboard.

Placa completa - Vista superior
Placa completa - Vista superior
Capa de pistas .  Azul cara soldadura - Rojo cara superior
Capa de pistas Azul cara soldadura - Rojo cara superior
Placa finalizada
Placa finalizada
Vista espejo de pistas para soldar
Vista espejo de pistas para soldar
Placa completa - Vista soldadura
Placa completa - Vista soldadura
Montaje final
Montaje final

En la parte de la montura hay poca electrónica, sólo los circuitos necesarios para las barreras iR y los conectores para unirlo a la placa base y el motor.

Las barreras iR utilizan un circuito básico como el descrito en la figura. Se alimenta el fotodiodo a través de una resistencia para limitar su corriente, y para el fototransistor empleamos una resistencia de pull-down que mejora la lectura del estado del sensor.

El sensor inferior requiere separar los elementos de la barrera de iR para que el tornillo pueda pasar por su centro, bloqueando la luz infrarroja. Esto debilita la señal que recibe el phototransistor y permite que más luz exterior interfiera en la barrera. Por ello es conveniente proteger el fototransistor con algún material que bloquee la luz lateral y reduzca la entrada a un estrecho túnel.

Circuito de barrera iR
Conector, motor y sensores de la montura
Conector, motor y sensores de la montura
Barrera iR inferior
Barrera iR inferior
Barrera iR superior
Barrera iR superior

Una vez finalizado el montaje electrónico, falta la programación.... ¿Seguimos?