Un proyecto en tiempo real
por Gaspar Vidal Reynés
Julio - octubre  de 2002
Actualizado en junio de 2003

Volver a mi página principal



 

Este es un proyecto que voy a publicar a medida que lo construya. Consiste en desplazar una cámara de fotos en línea recta y efectuar un cierto número de disparos en posiciones equidistantes. Iré colocando en esta tabla  los detalles y modificaciones según se vayan desarrollando. Agradeceré comentarios en el grupo de noticias es.ciencia.electronica.

 
1. Dimensionado 8. Microcontrolador y teclado
2. Primeros pasos 9. Módulo de visualización
2. El motor 10. Alimentación
3. La mecánica 11. Conexionado
4. Propuesta para el control 12. Software (Formato pdf)
5. Bosquejo del programa 13.
6. Reparto de entradas y salidas 14.
7. Excitación del motor 15. Enlaces robótica
Dimensionado del proyecto

De acuerdo con el cliente se establece que una distancia de 30 a 40 cm es suficiente para este prototipo. El número de pasos, de disparos, puede ser variable entre 20 y 50. En principio la cámara no dispone de disparo a distancia por métodos eléctricos, de modo que habrá que inventar algo mecánico para apretar el pulsador.

Primeros pasos

[8 de julio]
La segunda idea que se me vino a la cabeza fue aprovechar la mecánica de alguna impresora. Esto facilita mucho el trabajo, porque ya sabemos que la mecánica no es como la informática y la electrónica: cada día es más cara. La tarea de localizar impresoras obsoletas, para desguace, no es trivial, al menos en Palma. Parece que muchos prefieren ocupar una estantería de por vida que echarlas a la basura. Por suerte un cliente mío no tiene esas manías y me ofreció dos ejemplares. Una CANON BJ330 y una EPSON FX1050. Observando las mecánicas me decanto por la EPSON. Esta impresora ha hecho un trabajo ingente en su vida útil y todavía está en perfecto estado, salvo el cabezal algo desgastado. La CANON es mucho más moderna, de inyección, pero salvo una varilla calibrada donde se desplaza el cabezal, el resto es plástico. No me sirve. 

Procedo a desguazar la EPSON. Un sólo tornillo es suficiente para retirar la cubierta superior de la carcasa. Todo está a mano, el cabezal se retira soltando un par de enganches, las bandejas de entrada y salida también van enganchadas. Un diseño excelente para el mantenimiento. Ya no se hacen las cosas así. 

Sigo quitando tornillos, ya no se trata de sustituir las piezas que se desgastan, sino de desmontar lo que me interesa, el soporte del cabezal, las guías, el motor del cabezal y su correa dentada. Al final consigo lo que quería. Un soporte en forma de u con dos barras calibradas, el porta cabezales, el motor y la correa dentada. 

La idea es acoplar la cámara al porta cabezales y utilizar el motor para el desplazamiento. Conservo en su lugar un detector óptico de final de carrera que me será útil más adelante.

[9 de julio]
El motor

Antes de desmontar la impresora he medido algunos valores de tensión en el circuito de control. El motor del cabezal se alimenta desde un integrado STK6722HZ, que imagino se trata de varios amplificadores controlados. No disponía el osciloscopio para tomar medidas precisas, pero me conformo con esto 

  • Tensión de alimentación del excitador:  40V
  • Tensión sobre el motor en reposo: 0,5V
  • 6 hilos, unipolar.
  • Motor EM109 42SHM-32B3B
  • Made in West Germany
  • 200 pasos por vuelta
  • Resistencia del bobinado: 5 ohm
  • Diámetro de la polea: 13mm
El motor tiene 6 hilos, por lo que supongo se trata de un motor de bobinas con toma intermedia. Estimo que tiene 200 pasos por vuelta, que nos dará 120 pasos por pulgada con la polea de 13mm. Compruebo con el tester que la resistencia de los bobinados es de 5 ohm. Es decir, la corriente del motor en reposo es de 100mA y produce una buena retención. Me parece que tomaré ese valor como inicial para la excitación, 100mA, porque no espero necesitar demasiada fuerza o velocidad. Haré pruebas más adelante para comprobarlo, tanto con paso completo como con medios pasos.
[11 de julio]
La mecánica

Los parámetros que permite este soporte del cabezal son los siguientes, según deduzco del manual de otra impresora EPSON similar a esta: 

  • Longitud nominal: 13,6"
  • Ancho de papel, 136 caracteres de 9x12 puntos.
  • Pasos a 120 dpi: 1632
  • Pasos a 240 dpi: 3264
La resolución métrica vendría a ser la siguiente: 
  • 4,72 pasos / mm        0,211 mm / paso  (paso completo)
  • 9,44 pasos / mm        0,105 mm / paso  (medio paso      )
Considero que esta resolución es suficiente para los objetivos del proyecto.
En las siguientes fotos se puede apreciar el conjunto de piezas obtenidas del desguace de la impresora. La parte que interés para este proyecto en el carro portacabezales, en el centro. A la derecha se aprecia el motor del cabezal, que mueve el carro mediante una correa dentada.
Desguace Carro Detalle del motor
108KB 73KB 81KB
[13 de julio]
Propuesta para el control

Me parece adecuado resolver el problema utilizando un microcontrolador. Usaré un PIC16F84 por varios motivos. De entrada, porque ya tengo el programador -y funciona-, cierta experiencia con la programación, y dispongo de un par de ellos. 

El diagrama de bloques sería algo así:


Fig.1.  Diagrama de bloques
 
 
 
 
 
 
 
 

[1 de agosto]
Asignación de entradas y salidas

El proyecto deberá llevar teclado y display. Con el teclado vamos a entrar la distancia a recorrer y el número de disparos de la cámara. El display hace más cómoda la entrada de datos, aunque no es imprescindible. También habrá un sensor de posición a la izquierda de las guías y un actuador para efectuar el disparo de la cámara. 

Necesidades de entradas y salidas:

Teclado matricial de 4x4: 4 salidas y 4 entradas 
Motor: 4 fases y 2 entradas de control de potencia. 
Sensor: 1 entrada. 
Actuador: 1 salida.
El PIC16F84 dispone únicamente de 13 líneas de E/S, agrupados en dos puertos. Por lo tanto, no son suficientes, pero veremos qué se puede hacer complicando un poco el hardware externo. Uno de los puertos, PORTB, lo usaremos para el teclado y aprovecharemos que admite interrupción por cambio en PB4-PB7. Alguna de estas entradas servirá también para el sensor. En la figura podemos ver estos detalles. Las líneas 0..3 del puerto B se configuran como salidas, y llevan una resistencia de protección y están normalmente en estado bajo. Las líneas 4..7 son entradas, con pull-up interno que las mantiene en estado alto. Cuando haya un cambio en alguna de estas se generará una interrupción. Esto ocurrirá al pulsar una tecla o actuar el sensor. El software de interrupción determinará si se pulsó una tecla o un sensor. 
 
 




Para manejar el motor y el display se usa una salida en serie: 6 bits para el motor y 8 bits para un display de dos dígitos. Para facilitar la programación, la señal de strobe de ambos registros es independiente, y la de datos es común. Después de sacar 8 bits, se activará el latch que interese, ya sea para el motor o para el display. El excitador del display es un conjunto de dos 7447, cuyas salidas son en colector abierto. Para ahorrar energía se puede enviar el código FFH, que apaga todos los segmentos.
 

 
 
Enlaces relacionados

Robotia, dedicado a la Robotica, Programación e Inteligencia Artificial.


  1