Herramientas de Software Programador de Microcontroladores PIC Kit 2
El PICkit 2 es un programador fabricado por Microchip para programar toda su línea de microcontroladores.
El programador fue diseñado para programar los microcontroladores en circuito (ICSP) lo que significa que puede programar los microcontro-ladores montados directamente en tu aplicación y/o protoboard.
Implementación del proyecto El desarrollo del proyecto consistió en 2 etapas, una de ellas el la construcción de un prototipo utilizando las herramientas de Lego Mindstorms,
La segunda etapa consiste en la mejora del prototipo, pero esta vez utilizando las herramientas de software de Matlab y Simulink, con el fin de obtener mediciones en tiempo real de los sensores, visualizar estos valores en una escala de tiempo y tomar decisiones desde el entorno de Matlab.
Prototipo Inicial Utilizando el principio del llenado de botellas de cola, diseñamos un robot capaz de seleccionar botellas completamente llenas de otras que no contengan el nivel exacto de líquido, esto puede ser utilizado en el control de calidad para un proceso de llenado de botellas.
Prototipo Inicial Programación:
Prototipo Inicial Creamos un bloque llamado SENSOR_LUZ, aquí verificamos el nivel de líquido en la botella, si el nivel es el requerido, simplemente la banda continua girando, en caso de detectar un nivel inferior, activamos en brazo robótico
Proyecto Final Luego de la construcción y programación del prototipo, notamos ciertos errores en el diseño del mismo, ya que el sensor de ultrasonido lo utilizábamos para medir presencia de objetos y no para su función básica que es medir distancias, entonces se decidió hacer un cambie en a ubicación de los sensores.
Diseño electrónico del controlador de la Banda. Circuito del Sensor de luz Para obtener señales analógicas en el microcontrolador, proveniente de los sensores de luz, utilizaremos un amplificador operacional, para nuestro caso elegimos el LM324, el cual contiene 4 Opams (Amplificadores Operacionales) en su interior.
Diseño electrónico del controlador de la Banda. Circuito del Microcontrolador Para controlar la banda utilizamos el PIC16F628A, al tener muy pocas entradas y salidas que manejar se eligió este microcontrolador, también por su facilidad al momento de armar el circuito ya que este PIC posee un oscilador interno.
PROGRAMACION EN MATLAB
Rango Sensor ultrasónico: 0 – 255
Rango Sensor de luz: 0 -1024
Estado Sensor Tacto: 0 (off) – 1(on)
PROGRAMACION EN MATLAB ENTRADAS NXT: Sensor Tacto = SENSOR_1 Sensor Luz = SENSOR_3 Sensor Ultrasonido = SENSOR_4
SALIDAS NXT: puerto1 = MOTOR_A; puerto2 = MOTOR_B; puerto3 = MOTOR_C;
PROGRAMACION EN MATLAB CONFIGURACION SE SENSORES:
Sensor Luz: Light > 400 » Presencia de Recipiente Sensor Ultrasonido: US < 7 » Nivel Recipiente Correcto US > 8 » Nivel Recipiente Incorrecto Sensor Tacto: SW = 1 » Se detiene Secuencia Brazo
PROGRAMACION EN MATLAB COMANDOS ULIZADOS
h = COM_OpenNXT() OpenLight() GetLight() OpenUltrasonic() GetUltrasonic() USMakeSnapshot() USGetSnapshotResults()
PROGRAMACION EN MATLAB OpenSwitch() GetSwitch() SetMotor() SetPower() SetAngleLimit () NXT_PlayTone(Hz,time) CloseSensor(); COM_CloseNXT(); xlswrite (‘dta.xls’,name)
Simulación y Pruebas
El proyecto final esta equipado con 5 sensores distribuidos en diferentes posiciones, los sensores del Lego NXT presentan digitales, en el caso del sensor de ultrasonido 8 bits de resolución y el sensor de Luz 10 bits.
Configuración y Funcionamiento del equipo Tarjetas electrónicas (PCBs)
Básicamente el control de la banda contiene 3 tarjetas electrónicas independientes: Tarjeta Controladoras, Sensor Infrarrojo y fuente de Poder.
Los elementos de entrada al microcontrolador son 2 sensores infrarrojos y un sensor de tacto, mientras que la salida es un servomotor.
Configuración y Funcionamiento del equipo Fig. 4.1.4 Esquema de conexión entre las tarjetas electrónicas
Configuración y Funcionamiento del equipo Circuito Controlador El controlador está montado sobre la tarjeta universal Ctrl Pics V1.1, la cual me permite programar y probar los microcontroladores de microchip 16F84A, 16F628A, 16F876 y 16F88X.
Configuración y Funcionamiento del equipo Fig. 4.1.5 Componentes de la tarjeta universal Ctrl. Pics V1.1
Configuración y Funcionamiento del equipo Circuito Sensor Infrarrojo
Esta tarjeta está diseñada para manejar hasta 4 sensores infrarrojos, en su interior contiene un amplificador operacional, el LM339N, este integrado trabaja como un comparador. La señal proveniente de Los fototransistores varia entre 2 y 4.7 voltios dependiendo del brillo de los objetos a medir. Fig. 4.1.8: Circuito del Sensor Infrarrojo
Configuración y Funcionamiento del equipo Fig. 4.1.9 Componentes de la tarjeta Sensor Luz V4.0
Seteo y Configuración de los sensores. Calibración de Sensores del NXT Dentro del toolbox de Matlab RWTH – Mindstorms NXT se encuentra la herramienta Watch Sensor GUI, esto nos permite una visualización gráfica de los valores analógicos medidos por los sensores de Lego NXT.
Seteo y Configuración de los sensores. El proyecto contiene 2 sensores, uno infrarrojo y otro de Ultrasonido.
El sensor de luz tiene una resolución de 10 bits, es decir presenta valores de 0 a 1124, se lo ha conectado en el puerto 3 del NXT. En la figura 4.2.2 se presentan valores inferiores a 350 bits, todo lo que esta por debajo de este valor significa que no hay presencia de algún objeto frente al sensor. Fig. 4.2.2 Rango de Valores de sensor de luz
Seteo y Configuración de los sensores. Calibración de Sensores de la banda transportadora
Para el control de banda transportadora se utilizaron 2 diodos emisores de luz infrarroja y 2 fototransistores, con ello se diseño el circuito de sensores de luz, mencionado en la sección 3.4.1.
Tabla 4.2.2: Valores medidos en el sensor de Ultrasonido
Conclusiones y Recomendaciones Se usó Matlab para desarrollar la programación de la secuencia del Brazo Robótico y de igual manera para obtener la adquisición de datos del sensor de ultrasonido en tiempo real.
Para la alimentación de la tarjeta de control de la Banda Trasportadora, se diseñó una fuente independiente, con este circuito también se consiguió tener la corriente necesaria de 180 mA para mover el servomotor debido que la alimentación que proporciona Lego Mindstorms NXT no es la requerida.
Programar la secuencia del brazo robótico en Matlab, utilizando los comandos de rotación para mover los servomotores, los cuales dan un valor exacto de giro para el servo, ya que si es realizado con comandos de tiempo presenta margen de error en cuanto al posicionamiento del brazo.
Conclusiones y Recomendaciones Para calibrar el sensor de luz, tomar en cuenta que ésta es afectada por la luz del ambiente ya que el sensor del NXT funciona con luz visible roja, por lo que puede dar error al momento de la calibración.
Se recomienda trabajar con sensores de luz infrarroja ya que estos no son afectados por la luz del ambiente.
Página anterior | Volver al principio del trabajo | Página siguiente |