INTRODUCCIÓN
Hoy en día la automatización es parte de la vida del hombre, al hablar de automatización esta implícito el termino de tarjeta de control, estas son programadas algorítmicamente e interactúan con una serie de componente, como los sensores, las cuales les suministran información a la tarjeta de control, para el monitoreo de las variable presente un proceso, y los actuadores, permiten la modificación de la variable, sustituyendo en cierta forma la mano del hombre, la programación de la tarjeta se realiza directamente en un circuito integrado la cual pudiera ser un microprocesador o microcontrolador, funcionando estos como el cerebro del sistema. La programación de los microprocesadores y los microcontroladores, se ha considerado una tarea compleja, inicialmente se programaba en código assembler y lenguaje C, a medida que ha avanzado la tecnología han surgido una serie de lenguaje de programación orientado a la programación de microcontroladores, MPLAB inicialmente facilitaba la tarea de la programación en código assembler, lenguaje C para programar micros solo se le era mas fácil a pocos programadores, pero estas dos herramientas eran poco didáctica y engorrosa a la hora de realizar una pequeña tarea, picbasic le dio un sentido un poco mas orientado a objeto, pero no era suficientemente didáctico, luego surgió NIPLE un software que facilitaba en gran forma la programación, pero con ciertas limitaciones como, el manejo de variable punto flotantes, limitación en el numero de micros a programar, paginación de memoria, además se tenia que disponer de tiempo, componentes y herramienta para verificar el funcionamiento del programa, hasta que llego FLOWCODE, el único programa que permite la programación y prueba virtual, contando con diversas herramienta avanzadas, programando un numero considerable de familia de microcontroladores como lo son PIC, AVR y ARM, resolviendo el problema del manejo de variable, dando paso a crear herramientas propias de usuario, en flowcode, código assembler y lenguaje C. El presente manual ilustra de forma detallada el uso de las herramientas básicas de Flowcode así como también las conexiones básicas a nivel de hardware. Esta herramienta permitirá la inclusión de nuevos programadores de microcontroladores PIC, AVR y ARM, abriendo un mundo de soluciones en el área de automatización y control, en las diversas rama de la ciencia como: robótica, meca trónica, electromedicina entre otras.
1
FLOWCODE PROGRAMA ORIENTADO A LA PROGRAMACIÓN DE MICROCONTROLADORES PIC.
Objetivo general. Estudiar y manejar el programa de Flowcode, para que los participantes puedan programar a cualquier microcontrolador PIC . Objetivo específicos. Describir de forma breve la función, programación y aplicaciones de los microcontroladores. Conocer el Entorno Flowcode. Estudiar las herramientas y configuraciones básicas que posee flowcode para realizar los ejercicios pautados en el curso. Elaborar los ejercicios establecidos en el curso, incorporando mejoras en las aplicaciones exigidas. Conocer las conexiones básicas a nivel de hardware para la elaboración de montajes prototipos. Herramientas requeridas en curso. 1. Herramientas Físicas. Los recursos utilizados para impartir el curso son: pizarra acrílica, marcador, lapto, video bean, protoboard con montaje de prueba, tarjeta programadora. 2. Herramientas Virtuales Software. Power Point, Word, Flowcode, Labview y WINPIC800 3.55B. Metodología. Basado en el método científico, una vez estudiado las aplicación y evolución de la programación de los microcontroladores, se procederá a conocer el entorno y las herramientas básicas de flowcode, posteriormente se realizaran ejercicios prácticos, siendo estos dirigidos por el instructor, cuando los mismos estén funcionando de manera virtual en el programa, cada usuario deberá compilar el programa en flowcode y extraer en un pendriver el archivo .hex generado por el compilador que posee flowcode, luego el estudiante se dirigirá al montaje de prueba, donde se cargara en el micro el programa realizado, verificando el funcionamiento real del programa a nivel de hardware. Se
2
pueden realizar los ejercicios de forma individual o en grupo (máximo de 2 personas). Dirigido. A estudiante del último nivel de su carrera y/o profesionales con conocimientos básico de electrónica analógica y digitales, con intereses a fines a la programación y diseño de tarjetas de control. Evaluado. Promediando las evaluaciones de todos ejercicios, bajo los criterios de: Deficiente: no cumplió con ninguno de los requerimientos del ejercicio. Regular: cumplió medianamente con los requerimientos del ejercicio. Bueno: cumplió con casi todos los requerimiento del ejercicio. Sobre saliente: cumplió con todos los requerimientos. Excelente: cumplió con todos los requerimiento y realizo mejoras. Número de participante: De 8 a 20 participantes máximo de acuerdo al espacio del laboratorio, donde se impartirá el curso.
3
Contenido de Flowcode para Pic. •
Definición de Flowcode.
•
Configuración del entorno Flowcode.
•
Estudio del entorno de Flowcode, conociendo las herramienta de diagrama de flujo y herramienta virtuales tipo hardware.
•
Ejemplo de programación simulación y practica, usando diodo led con secuencia de tiempo para aplicaciones de semáforos.
•
Ejemplo de programación simulación y practica, usando diodo led y potenciómetro, para aplicaciones de monitoreo y control on-off.
•
Ejemplo de programación simulación y practica, usando potenciómetro y displays , para aplicaciones de indicadores.
•
Ejemplo de programación simulación y practica, usando potenciómetro y pantalla lcd, con operaciones matemáticas, regla de tres formulas y variable punto flotante, para aplicaciones de control de precisión.
•
Ejemplo de programación simulación y practica usando pantalla lcd y teclado matricial, para aplicaciones de control de acceso.
•
Ejemplo de programación simulación y practica usando potenciómetro, pantalla lcd y comunicación rs232. con aplicaciones en Labview. para sistemas de adquisición datos y control.
•
Ejemplo de programación simulación y practica usando el modo pwm, como generador de señales.
•
Ejemplo de programación simulación y practica referente a la creación de macro o subrutina, bajo lenguaje Flowcode, lenguaje c ó código assembler.
•
Ejemplo de programación simulación y practica del uso de las interrupciones timer0 y timer1 para realizar tarea cada cierto tiempo determinado.
•
Estudio de ejercicios de comunicación usb, lcd grafico y motores pasó a paso. potenciómetro digital, y dac 10bits.
•
Estudio de circuitos para activación de cargas dc, ac (sw de estado sólidos).
4
Estudio de Flowcode para PIC y sus aplicaciones. La herramienta del futuro para la programación de Microcontroladores.
Al hablar de automatización está implícito el término de tarjeta de control, estas son programadas algorítmicamente e interactúan con una serie de componentes, como lo son los sensores y actuadores, la programación de la tarjeta se realiza directamente en un circuito integrado, las cuales pudieran ser un microprocesador o microcontrolador, funcionando estos como el cerebro del sistema. Al realizar un estudio sistemático de las diversas herramientas de programación existentes en el mercado en el área de microcontroladores y microprocesadores, arrojo como resultado que el programa mas completo para la programación de microcontroladores es Flowcode, un novedoso programa orientado a la programación de diversos microcontroladores tipo AVR, ARM y PIC, único software de programación de micro, que posee dos ambientes simultaneo, uno de programación de diagrama de flujo y otro de simulación lo que lo hace exclusivo, contando con múltiples herramientas virtuales tipo hardware como: Interruptores, Pulsadores, Diodo Led, Display, LCD, GLCD, Teclado Matricial, RS232, USB, PWM, Interrupciones, EEPROM, Timer, Bluetooth, GPS, Ethernet, X.10, Servomotores, Motores Paso a Paso, Módulos RF, Protocolo TCPIP, Webserver, entre otros, puede trabajar con mas de 47 tipos de sensores y mas 150 aplicaciones de la empresa matriz multimedia, mas otras aplicaciones externa, permitiendo además al usuario realizar herramientas propias en Flowcode, Lenguaje C o Código Assembler, contando con su propio compilador, y programador. A través del método científico se realizo un estudio teórico práctico de Flowcode, la cual permitió la elaboración de un manual de Flowcode para PIC, este brindara a los investigadores de esta área, múltiples soluciones en materia de automatización, el mismo viene sustentando por un curso teórico práctico ha impartirse en el IUT Cumana y su extensión de Punta de Mata. Con miras a ser extendido a otros institutos del país.
Palabras claves: diseño, control, programación.
5
CURSO DE FLOWCODE
Flowcode es un programa orientado a la programación de microcontroladores AVR, ARM y Microchip, la programación se realiza a través de diagrama de flujo, una vez construido el programa, Flowcode permite traducir el diagrama de flujo a lenguaje C, o a código assembler (ASM), y a su vez compila el programa dentro del mismo entorno, genera el código .HEX, que es el que finalmente se graba en el micro a través de la placa del programador y su respectivo software. Flowcode tiene 2 ambiente simultáneo, uno de diagrama de flujo y otro panel de componente hardware, permitiendo simular el comportamiento del programa a través de una serie de componentes virtuales tipo hardware colocado en el panel de componente. Flowcode posee una serie de subrutina que permiten monitorear y/o controlar los componentes virtuales hardware, permitiendo observar el comportamiento del programa. Sin necesidad de realizar montaje de pruebas, sino cuando finalmente se va a montar en la placa prototipo con la garantía que brinda Flowcode de un óptimo funcionamiento del programa según la simulación respetando sus pruebas de simulación. Este programa le permite al programador realizar subrutinas propias, bien sea Código Assembler o en Lenguaje C, según sea la preferencia del programador. Para convertirla en macro ó bloque en lenguaje Flowcode, con la salvedad que ese código no permite la simulación de los componentes. Conocimientos básicos. Antes de comenzar a explicar el programa de Flowcode para aquellos que se están iniciando en esta área de la electrónica, es necesario tener conocimientos básicos de electrónica analógica y digital, las conexiones básicas que debe tener un micro para que funcione el programa realizado en Flowcode, las cuales se va a descargar al microcontrolador a través del programador. La figura 1 muestra conexión básica de un microcontrolador, los pines comunes de conexión en los microcontroladores son: Mclr : Masterclear Gnd: Tierra Vdd: Voltaje positivo Osc1: Entrada de cristal Osc2: Salida de cristal
6
Figura 1. Conexiones Básicas de los Microcontroladores. El Programador Una vez realizado el programa en Flowcode u otro lenguaje de programación de micro, se debe compilar el programa en un software compilador, este genera un archivo con extensión .HEX, en donde el usuario debe contar con un programador. Este es una tarjeta que se conecta al PC, y dentro de ella, se inserta el micro a programar, cada programador posee un software el cual permite que se transfiera el archivo .Hex generado en el compilador al microcontrolador. Unos de los programadores más versátil económico que programa diversos microcontroladores, es el programador WINPIC800 3.55B, la cual permite detectar el micro en la tarjeta, programarlo y a la vez permite probar el programa sin necesidad de sacar el micro de la tarjeta, suministrándole la energía del puerto USB al circuito, la figura 2 muestra la conexión ha realizar, se recomienda dejar libre los pines rb6 y rb7, pudiéndose utilizar estos pines en el circuito, solo como salida de led, hay que conectar los pines de vdd y gnd del micro a 5vdc y gnd del programador.
7
Figura 2. Conexión Física del Programador.
8
Pasos para configurar el entorno FlowCode Antes de comenzar a programar, al abrir el programa lo primero que se ve es una subventana, en donde le pregunta al programador si se va crear un nuevo programa o se va abrir un programa existente, elegimos la opción nuevo. La cual se observa la figura 3.
Figura 3. Primer Entorno de Flowcode. Luego de elegir la opción nuevo se abre una nueva ventana, en la cual el programador debe elegir el modelo del microcontrolador a usar. Visto en la figura 4.
Figura 4. Elección del Micro a Utilizar. Posteriormente se abrirá el entorno de flowcode, si el entorno no esta en español, damos clic en la opción view y luego el ultimo ítems de global options ó opción y en la opción “override languaje” se cambia la opción a español.
9
Una vez establecido el idioma, procedemos a elegir el cristal que va utilizar el micro en el montaje. Volvemos a elegir la opción view y luego elegimos Project options. En la figura 5 se puede observa la ventana Project Options, en ella se encuentra la configuración del programa por ejemplo en target se observa el modelo de micro a utilizar, la velocidad del reloj que se vaya utilizar en un posible montaje, la velocidad de simulación entre otros parámetros.
Figura 5. Opciones de Proyecto En la opción view es importante que este seleccionado todas las herramientas y panel tal como se ilustra en la figura 6
Figura 6. Opciones de View (vista).
10
Herramienta de comando: son todos los comandos de diagrama de flujo. Herramienta de componentes: son todos los componentes virtuales que posee flowcode. Chip: micro utilizado en el programa. Panel: es el entorno donde se colocan los componentes virtuales. Pasos a la hora de estructurar un programa en Flowcode. Una vez configurado el entorno Flowcode referente al lenguaje, tipo de micro a utilizar, velocidad del cristal a usar en el circuito, y la visualización de todas las herramientas para realizar el programa, se procede a realizar los siguientes pasos. Establecer los elementos virtuales que requiere el programa e insertarlo en el entorno de componente. Una vez insertado el componente se selecciona el mismo y se procede a dar click a la derecha del usuario en la opción Ext Properties, allí el usuario podrá modificar las características físicas de los componentes, así como elegir otra serie del mismo componente. Luego el usuario debe entrar en la opción Connections, allí se debe establecer las conexiones del componente en el microcontrolador. En la opción ayuda el usuario podrá consultar al programa, acerca del funcionamiento del componente virtual elegido si lo desea. Los primero macros que se acostumbran a insertar son los de configuración de elementos virtuales claro esta, en el caso de utilizar elementos virtuales con operación de inicialización. Los macros de inicialización no deben estar en ciclos repetitivos. Los siguientes macros a insertar son los de interrupción si el programa utiliza interrupción. Posteriormente se acostumbran a utilizar etiquetas o ciclos repetitivos y dentro de ellos, múltiples operaciones de acuerdo a la lógica del programa. Una vez realizado toda la estructura del programa en la opción Chip se elije configurar para establecer las opciones de compilador, el cual se explica mas detalladamente en el presente manual, una vez configurado estas opciones, el usuario podrá traducir y compilar el programa en ASM (código assembler) lenguaje C y código .Hex que es el que finalmente se grabara en el microcontrolador a través de la tarjeta programadora por medio de un PC y un software.
11
ENTORNO FLOWCODE
SÍMBOLO DE HERRAMIENTAS VIRTUALES Figura Autor: Ing. Ulises Gómez www.electronicalatianoamericana.com Apure _ Venezuela
[email protected]
7. Entorno Flowcode. IUT Cumana Ext. Punta de Mata 1era Revisión
12
Símbolo para Insertar Led Símbolo Para Insertar Hasta 8 Led
Símbolo Para Insertar Display
Símbolo Para Insertar hasta 4 Display.
Símbolo Para Insertar Pantalla LCD.
Símbolo para Insertar Pantalla GLCD Gráfica.
Símbolo Para Insertar Interruptor.
Símbolo Para Insertar Hasta 8 Interruptores.
Símbolo para Insertar Potenciómetro Analógico.
Símbolo para Insertar Teclado Matricial.
Símbolo que Inserta Instrumento para Observar el Contenido de la Memoria del Micro. Símbolo que Inserta Instrumento para Observar la Señal PWM Generada.
Símbolo que Inserta Instrumento que Simula la Comunicación entre el Micro y un PC por RS232. Símbolo que Inserta Instrumento que Simula la Comunicación entre el Micro y dispositivo que Maneje i2c. Símbolo que Inserta Motores Servomotor.
Símbolo que Inserta Motor Paso a Paso.
13
Manejo del Protocolo SPI. Manejo de Protocolo Para el Manejo de USB Modo Esclavo Módulo Matriz.
Manejo de Protocolo para el Manejo de USB.
Manejo de Módulos Externos RF. Manejo de Protocolo TCPI Módulos Matriz. Manejo de Protocolo TCPI Para Publicar Datos en Servidor Web Módulos Matriz.
Manejo de Protocolo Bluetooht Módulos Matriz. Manejo de Protocolo para el Manejo de Memorias Micro SD Módulos Matriz Manejo de Protocolo Para Manejar Música Módulos Matriz Manejo del GPS Módulos Matriz Manejo de los Motores del Carrito Matriz
14
EXPLICACIÓN BÁSICA DE LOS SIMBOLOS DE FLOWCODE: el cuadro 1 denota los símbolos existentes en Flowcode y su función básica. Este símbolo se utiliza para leer en un bit o todo el puerto del micro Este símbolo se utiliza para escribir en un bit o todo el puerto del micro Este símbolo es un bloque D de delay o demora Este símbolo es un condicional usados con variable y constante con operaciones con o sin paréntesis y comandos como: =,=,>>, , , >, (rotar a la derecha),