sábado, 23 de febrero de 2013

Motor PAP controlado con FPGA Spartan 3


Hola a todos, en este nuevo post vamos a explicar como controlar un motor paso a paso de esos que tenemos todos dentro de impresoras o escaners viejos y que pueden andar cogiendo polvo por casa.

Para hacerlo se utiliza una FPGA Spartan 3 contenida en una placa de desarrollo Basys 2.

En la siguiente imagen se muestra cuales son los distintos elementos que se usan de la placa de desarrollo y para qué.


Utilizamos un motor paso a paso unipolar de 5 terminales en modo half-step para conseguir una mayor precisión. Esto nos permite un número de pasos de 8 pasos, 45º cada paso, como se muestra a continuación (Los puntos azules se corresponde con las bobinas excitadas). 

Como dijimos el motor utilizado es de un escáner viejo y el modelo es Mototech, puesto que no se ha localizado el datasheet, se ha optado por hacer lo siguiente para determinar la configuración del bobinado. 
1-  Medir  la  resistencia  de  cada  uno  de  los  terminales  para  conocer  cuál  es el terminal común. El terminal rojo daba una resistencia de 57 Ohm con el resto de terminales  frente  a  los 112  Ohm  que  daban  dos  terminales  que  no  son  comunes entre sí, con lo cual podemos afirmar que el terminal rojo es el común. 
2- Aplicar una tensión a la entrada de los diferentes bobinados, para conocer el orden correcto en el que hay que excitar al motor.

Tras  lo  cuál  se  ha  llegado  a  lo  siguiente,  el  bobinado  tiene  el  aspecto  que  se muestra en la siguiente figura. Donde los colores definidos se refieren al color de los cables del motor. 



La  interfaz  utilizada  para  proteger  las  salidas  de  la  tarjeta  de  desarrollo consiste en un ULN2803AN de Texas. Se trata de un circuito integrado que contiene una  serie  de  transistores  en  configuración  Darlington  como  muestra  la  siguiente figura con una corriente de colector máxima de 500mA hasta 50V. Las conexiones se han de realizar como muestra la siguiente imagen.

Una vez diseñado el hardware (Código) que posteriormente volcaremos en la FPGA, para volcarlo seguimos el manual del IDE. Obtenemos lo siguiente a la salida de  dos  de  los  cuatro  pines  de  salida.  El  código  se  entrega  adjunto  como  un  fichero comprimido independiente.
 

Donde  observamos  que,  efectivamente,  en  primer  lugar  tenemos  solo  L1 (CH1)  excitada  un  tiempo,  seguidamente  pasan  a  estar  L1  y    L2  activadas  y finalmente solo L2. El mismo proceso seguiría L2 - L3 y L3 - L4. 

El siguiente vídeo muestra los frutos de nuestro experimento.



Para descargar los distintos archivos necesarios para programar la FPGA hacer clic en el siguiente enlace de descarga.





14 comentarios:

  1. hola brother me gusto mucho tu trabajo, soy nuevo en programacion de fpga y en especial de basys, crees que si te pido el codigo de este trabajo me lo podrias proporcionar a manera de estudio y entender mejor como conmutar un motor y una tarjeta? gracias :D

    ResponderEliminar
  2. @Carlos, el código lo puedes obtener si haces clic en la imagen de descarga al final del post, ahí tienes todo lo necesario para empezar con tu proyecto. Espero que te sirva ;)

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Disculpa me podrias pasar el diagrama de tu circuito. mi correo es luis.a.alvarado.e@gmail.com
    Por favor, me seria de gran utilidad.

    ResponderEliminar
  5. brother quisiera saber el diagrama del circuito que esta en el protoboard please :D

    ResponderEliminar
  6. Hola; disculpa me podrias pasar el diagrama del circuito en protoboard; mi correo es jhonjabeni@gmail.com
    por favor, me serviria demasiado

    ResponderEliminar
  7. hola perdon me podrias mandar el diagrama del circuito en ptrotoboard .. me seria de mucha ayuda: mi correo es taison.12@hotmail.com

    ResponderEliminar
  8. Hola buenas noches te agradecería me enviaras tu diagrama de conexión
    mi mail es: avimaelrmz@gmail.com
    Gracias!

    ResponderEliminar
  9. Hola, amigo estoy desarrollando un carro seguidor de linea y tengo unos motores paso a paso de los cuales no se encuentra su datasheet, estoy teniendo problemas con su programación, me parece muy bueno el trabajo que realizaste con ese motor, descargue tu código pero no logro abrirlo con el Xilinx ISE Design. Podrías darme una mano. Mi correo es arivier.91@gmail.com

    ResponderEliminar
  10. disculpa me podrias pasar el codigo me marca error, y el diagrama del circuito gracias. chamo_avp@hotmail.com

    ResponderEliminar
  11. disculpa me podrias pasar el codigo me marca error, y el diagrama del circuito gracias. chamo_avp@hotmail.com

    ResponderEliminar
  12. Hola, podrías mandarme el código por favor, mi correo es ariadnaecamberosorio@gmail.com
    Gracias

    ResponderEliminar