programación robótica básica

24
CÓMO FACILITAR EL APRENDIZAJE DE PROGRAMACIÓN ROBÓTICA BÁSICA, MEDIANTE EL INTERFAZ IDEA Y MÓDULOS EN HARDWARE Raúl Fernando Martínez Oviedo 1094925433 UNIVERSIDAD DEL QUINDÍO FACULTAD DE CIENCIAS BASICAS Y TECNOLOGÍAS PROGRAMA DE TECNOLOGÍA ELECTRÓNICA Página 1

Upload: raul-fernando-martinez-oviedo

Post on 10-Mar-2016

231 views

Category:

Documents


1 download

DESCRIPTION

Planteamiento de metodología Para La enseñanza de programación en microcontroladores.

TRANSCRIPT

Page 1: Programación Robótica Básica

CÓMO FACILITAR EL APRENDIZAJE DE PROGRAMACIÓN ROBÓTICA BÁSICA, MEDIANTE EL

INTERFAZ IDEA Y MÓDULOS EN HARDWARE

Raúl Fernando Martínez Oviedo

1094925433

UNIVERSIDAD DEL QUINDÍO

FACULTAD DE CIENCIAS BASICAS Y TECNOLOGÍAS

PROGRAMA DE TECNOLOGÍA ELECTRÓNICA

ARMENIA QUINDÍO

14/03/2012

Página 1

Page 2: Programación Robótica Básica

CONTENIDO

Pág.

1. FICHA TÉCNICA…………………………………………………………………………..………….2

2. INTRODUCCIÓN………………………………………………………...

…………………...............5

3. OBJETIVO GENERAL……………….…………………………………………………….…..……..6

4. OBJETIVOS ESPECÍFICOS.………….…..………………………….……………………….…….6

5. MARCO TEÓRICO………………………………………………………………..……………….....7

5.1 Micro Procesador……………………………………………………………………………...7

5.2 Microcontrolador……………………………………………………………………………….8

5.3 Microcontroladores Pic………………………………………………………………………8

5.4 Robótica………………………………………………………………………………………..9

5.4.1 Enseñanza de la robótica…………………………………………………………....9

5.4.2 Análisis de Problemas………………………………………………………………9

5.4.3 Diseño del mundo real………………………………………………………………10

5.4.4 Programación…………………………………………………………………………10

5.3.2 Diferentes Metodologías y paquetes de enseñanza de ésta……………………………11

5.3.2.1 Flowcode 5…………………………………………………………………………………11

5.4.2.2 LEGO MINDSTORMS NXT…………………………………………………………….......12

5.4.2.3 Handy cricket…………………………………………………………………………………13

5.4.2.4 Arduino………………………………………………………………………………………14

6. METODOLOGIA……………………………………………………………………………………15

6.1 Fase 1. Creación de librerías………………………………………………………..15

6.2 Fase 2. Diseño y montaje de módulos………………………………………………15

Página 2

Page 3: Programación Robótica Básica

6.3 Fase 3. Construir un manual de usuario que permita manejar el Software y Hardware

adecuadamente…………………………………………………………………15

6.4 Fase 4. Realizar guías para la enseñanza y aprendizaje de la robótica en los colegios

técnicos de la ciudad…………………………………………………………………..16

6.5 Fase 5. Recopilar información que permita diseñar laboratorios donde interactúen

hardware y Software………………………………………………………………………………16

7. CRONOGRAMA DE ACTIVIDADES…….……………………………………………………...17

8. PRESUPUESTO Y RECURSOS NECESARIOS…...………………………………………..18

9. BIBLIOGRAFÍA…………...………………………………………………………………………..19

Página 3

Page 4: Programación Robótica Básica

FICHA TÉCNICA

Título del trabajo de

grado

¿CÓMO FACILITAR EL APRENDIZAJE DE PROGRAMACIÓN ROBÓTICA BÁSICA,

MEDIANTE EL INTERFAZ IDEA Y MÓDULOS EN HARDWARE?

Modalidad Proyecto De Grado

Involucrados

Nombre estudiante: Raúl Fernando Martínez Oviedo

Código: 1094925433

Dirección de residencia: Bogotá

Teléfono fijo: 8321092

Número Celular: 3122813023

Correo electrónico: [email protected]

Referencia familiar: Blanca Leyder Arias Esquivel

Teléfono fijo:

Número celular: 3147754732

Correo electrónico: [email protected]

Director

Nombre: Ramiro Arango

Título profesional: Licenciado en matemáticas y física

Título de postgrado: Maestría en Instrumentación Física

Teléfono fijo:

Número Celular: ¿?????????

Correo electrónico: [email protected]

1

Página 4

Page 5: Programación Robótica Básica

INTRODUCCIÓN

El presente trabajo surge a partir de la observación del entorno educativo, experiencias personales

como estudiante y de vivencias de algunos compañeros del programa de Tecnología en Electrónica,

las cuales apuntan a que las instituciones educativas técnicas de la ciudad de Armenia no cuentan

con el suficiente material de trabajo para la enseñanza de la robótica, además, no tienen una

herramienta de fácil acceso, que les brinde la información necesaria para poder realizar proyectos y

experimentar con ellos de forma física, sin necesidad de poseer un vasto conocimiento acerca de la

programación.Y no sólo las instituciones técnicas conservan esta problemática, por otro lado el

programa de Tecnología en Electrónica tiene material que no es muy práctico cuando se realizan

montajes o desarrollan prácticas.

En consecuencia se ha planteado este proyecto que consiste en implementar una metodología de

estudio para la enseñanza de programación robótica básica a la comunidad educativa en colegios

técnicos de la ciudad de Armenia, con la ayuda del software IDEA y módulos en hardware con sus

respectivas librerías de manejo, que permitan la creación de algoritmos que darán origen a un robot.;

Cabe mencionar que el proyecto no se restringe únicamente al software IDEA , y además de éste los

módulos pueden ser programados con el compilador MP_LAB y el Arduino, de tal manera que los

módulos funcionan con cualquier aplicación Arduino, ésta es una de las grandes ventajas de su

diseño.

Para esto, se ofrecerá un paquete que incluye lo dicho en el párrafo anterior. De manera que, uno de

estos módulos se cataloga como la tarjeta principal, que posee el microcontrolador PIC18F4550

“cerebro funcional del robot”, el más grande de la familia PIC18F2455/2550/4455/4550 [1], además

La placa viene pre programada con un bootloader para cargar las nuevas aplicaciones sin la

necesidad de utilizar un programador externo.Sumado a esto, como ya se había mencionado

anteriormente, el módulo principal se pueden programar usando el compilador MP_LAB en lenguaje

c o con el compilador de Arduino , para aplicaciones más complejas y menos restringidas.

El proyecto pretende aportar conocimiento a los estudiantes que decidan tomar el camino de la

programación robótica, y por ende, tener un gran soporte que les permita enfrentarse a cualquier

problema relacionado con el área, resolverlo de forma estructurada y con gran facilidad, de tal

manera que desarrollarán su pensamiento encaminado a la resolución de estos.

Página 5

Page 6: Programación Robótica Básica

OBJETIVOS GENERALES

Diseñar y construir MÓDULOS EN HARDWARE, que nos permitan implementar una metodología de

enseñanza de programación robótica básica en colegios técnicos de la ciudad junto con el interfaz

IDEA.

OBJETIVOS ESPECÍFICOS

Realizar Las respectivas rutinas de manejo y algunos programas de prueba que permita la

comunicación de LA TARJETAPRINCIPAL con el IDEA.

Diseñar y construir los módulos en HARDWARE que sean compatibles con los módulos Arduino.

Construir un manual de usuario que permita manejar el Software y Hardware adecuadamente.

Realizar guías para la enseñanza y aprendizaje de la robótica en los colegios técnicos de la ciudad.

Recopilar información que permita diseñar laboratorios donde interactúen hardware y Software.

Página 6

Page 7: Programación Robótica Básica

5. MARCO TEÓRICO

Hoy día, el entorno se mueve constantemente alrededor de las máquinas, por consiguiente nosotros

también lo hacemos; aunque para muchos no es de gran importancia, para otros si lo es,

especialmente para personas con carreras afines, como lo son los electrónicos, eléctricos,

ingenieros de sistemas, etc. Estas personas trabajan en nuevos proyectos con el fin de hacer la vida

más placentera para el ser humano, además de que contribuyen a otras ciencias.

5.1 EL MICROPROCESADOR

Desde el punto de vista funcional, un microprocesador es un circuito integrado que incorpora en su

interior una unidad central de proceso (CPU) y todo un conjunto de elementos lógicos que permiten

enlazar otros dispositivos como memorias y puertos de entrada y salida (I/O), formando un sistema

completo para cumplir con una aplicación específica.[2]

Por esto eventualmente suele confundirse el término microprocesador con el microcontrolador,

aunque estén muy relacionados, podemos decir con certeza que el primero se encuentra dentro del

segundo, además de que también hay que calcar que al microprocesador se le pueden adaptar

dispositivos periféricos - en el caso de las computadoras – como: impresoras, mouse, teclado etc.

En el siguiente subtema se hablará un poco acerca de el microcontrolador y su aplicación.

Página 7

Page 8: Programación Robótica Básica

5.2 EL MICROCONTROLADOR

Un microcontrolador es un circuito integrado digital monolítico que contiene todos los elementos de

un procesador digital secuencial síncrono programable de arquitectura Harvard o Princeton (Von

Neumann). Se suele denominar también microcomputador integrado o embebido (Embedded

Processor) y está especialmente orientado a tareas de control y comunicaciones a pequeña escala.

Gracias a su tamaño, los microcontroladores permiten empotrar un procesador programable en

diversidad de productos industriales. Por su bajo costo y reducido consumo de energía y velocidad

adaptable, resultan apropiados para innumerables aplicaciones. Además poseen mecanismos de

seguridad de funcionamiento y proporcionan protección del equipo electrónico contra copias y

modificaciones del programa no autorizados. [3]

Los microcontroladores son una maravilla en el campo del la automatización y el control, por eso son

de gran utilidad en la industria, debido a que puede controlar máquinas que realicen multiples tareas

al mismo tiempo, además pueden ser reprogramadas fácilmente. Esto hace que, en caso de avería,

el sistema pueda ser configurado de forma rápida y sin necesidad de desmantelarlo, de ésta manera

se gana tiempo y las perdidas se reducen al mínimo.

Sumado a esto, un microcontrolador es perfecto para un medio tan amplio como la robótica, ya que

por su tamaño, éste puede operar desde un robot en movimiento, de tal forma que el robot se vuelve

autónomo, y puede tomar decisiones por si solo - según su algoritmo de funcionamiento -, en este

caso, ya se convierte en un micocontrolador embebido,

5.3 MICROCONTROLADORES PIC

La marca fabricante de microprocesadores “Microchip” creó su propio grupo de circuitos integrados llamados

PIC, los cuales han invadido los mercados mundiales, gracias a su versatilidad y amplia gama,

también es de anotar que son “open Source”, lo cual constituye el factor detonante que lleva a su amplio

uso. De acuerdo a los requerimientos de cada aplicación, Microchip ofrece un tipo de PIC, es así

como los hay de gama baja, media, alta y mejorada, cubriendo asítodos los flancos de los posibles

usuarios, y llenado todas las expectativas. Es así como se conocen las familias PIC12CXX,

PIC16CXX, PIC16FXX, PIC17CXX, PIC18FXX, y PIC18VTXX. Cada una con un número de

instrucciones en particular, número de bits a procesar y un tipo de encapsulado. [3]

Página 8

Page 9: Programación Robótica Básica

5.4 LA ROBÓTICA

Realmente la palabra robot se le atribuye a Karel Capek, un escritor checo, acuñó en 1921 el

término “Robot” en su obra dramática “Rossum’s Universal Robots / R.U.R “, a partir de la palabra

checa robota, que significa servidumbre o trabajo forzado. El término robótica es acuñado por Isaac

Asimov, definiendo a la ciencia que estudia los robots. Asimov creó también las tres leyes de la

robótica. [4]

Actualmente en algunas películas de ciencia ficción, existen grandes máquinas metálicas que son

llamadas robots y realizan trabajos asombrosos, que en la vida real seria muy descabellado llegar a

ver. Pero necesariamente no somos tan ajenos a esto; En nuestro entorno diario, es decir, la vida

común, estamos rodeados de “Robots” que la hacen mas placentera, es cierto, aun no vuelan por los

aires con super fuerza y ni preparándonos el desayuno, ni realizando los quehaceres de nuestro

hogar, Pero poseemos máquinas similares que hacen casi todo nuestro trabajo, por esto no estamos

muy lejos de llegar a construir máquinas como las que nos presentan las películas; y con la ayuda

de los microcontroladores se podrá alcanzar proyectos inimaginables.

5.3.1 Enseñanza de la Robótica

La robótica es una forma de enseñar ciencia a las personas de diferentes edades, ya que incluye

cualquier área de las ciencias según sea el enfoque; además de que es interactiva desarrolla

algunas capacidades y promueve ciertos aspectos como:

5.3.2Análisis de Problemas:

La Robótica anima a los estudiantes para tener una mirada amplia a la situación y determinar con

precisión cuál es el problema que necesita ser resuelto. Aplicaciones del mundo real se encuentran

con facilidad, dando a los estudiantes contexto de su proyecto. Antes de que pueda iniciarse la

Página 9

Page 10: Programación Robótica Básica

construcción, los estudiantes deben identificar "lo que se necesita cumplir con este robot". Con esto

en mente, ¿cómo debería ser el robot que necesito para ponerlo al servicio de estos? [5]

5.3.3 Diseño en el mundo real:

Con una aplicación en mente, y una idea de la aplicación, los estudiantes ahora pueden comenzar el

proceso de diseño. Esta etapa ofrece grandes recompensas para los estudiantes como los que

producen realizaciones físicas de las ideas conceptuales. Hay un montón de oportunidades para el

perfeccionamiento y mejora a medida que descubren errores en sus planes y problemas que nunca

habría considerado durante la etapa de diseño. Los prototipos se construyen y se descartan

rápidamente con las lecciones aprendidas, esto es un progreso de los estudiantes hacia una

solución óptima. Los recursos deben ser gestionados y el compromiso entre forma, función y costo.

[5]

5.3.4 Programación:

Hay una variedad de lenguajes de programación disponibles para la robótica, desde los entornos de

desarrollo gráfico para lenguajes basados en texto. Conocimientos del programa, enseñar a los

estudiantes a pensar de manera lógica y considerar múltiples situaciones, a medida que aprenden

que un robot hace exactamente lo que se le dice, ni más ni menos. Información de una variedad de

sensores deben ser procesadas y tratadas de manera lógica y al igual que con la fase de diseño,

hay una amplia oportunidad para el ensayo y error, con esto los estudiantes pueden afinar sus

robots para hacerlo funcionar en su mejor momento. [5]

Página 10

Page 11: Programación Robótica Básica

Debido a la importancia de enseñar robótica, existen diversas tecnologías que han querido facilitar y

promover el desarrollo de nuevos proyectos, como lo son las siguientes:

5.4.2 Diferentes Metodologías y paquetes de enseñanza de ésta

5.4.2.1 Flowcode 5

Flowcode software permite a las personas con poca o ninguna experiencia en programación para

crear complejos sistemas electrónicos en cuestión de minutos.

Flowcode está disponible en 20 idiomas y es utilizado por miles de ingenieros y educadores. [6]

Figura1. Módulos o tarjetas de aplicación (E-blocks).

Página 11

Page 12: Programación Robótica Básica

5.4.2.2 LEGO MINDSTORMS NXT

LEGO MINDSTORMS NXT está de vuelta y mejor que nunca: los nuevos modelos, más

personalizable de programación y tecnologías completamente nuevas! MINDSTORMS NXT 2.0

combina la versatilidad del sistema de construcción de LEGO con todas las nuevas tecnologías, un

ladrillo microprocesador inteligente e intuitiva de arrastrar y soltar de software de programación. El

nuevo kit de herramientas 2.0 cuenta con todo lo que necesitas para crear tu robot por primera vez

en 30 minutos y luego miles de otras invenciones robótica que hacer lo que quieras. [7]

Figura2.Lego Mindstorms nxt.

Página 12

Page 13: Programación Robótica Básica

5.4.2.3 Handy cricket

El cricket es un equipo pequeño, que se puede programar usando Logo.

Puede controlar los motores y las luces con el cricket.

El cricket puede recibir información de los sensores, como sensores táctiles y sensores de luz.

Los cricket pueden "hablar" el uno al otro, el envío de mensajes a través de infrarrojos (IR).

La gente ha utilizado cricket para construir pequeños robots, caballos mecedores animados, cajas

automáticas de regalo, y otros juguetes animados de carácter personal.

La gente ha utilizado cricket para recoger un montón de lecturas de temperatura y verlas más tarde.

Los crickets se han desarrollado en una importante universidad de investigación y ahora están a

disposición del público. [8]

Figura3. Tarjeta, Handy cricket.

Página 13

Page 14: Programación Robótica Básica

5.4.2.4 Arduino

El sistema Arduino desarrollado en Italia está basado en el microcontrolador ATmega168 o el

ATmega328 de Atmel, este sistema cuenta con comunicación USB para el computador, 14 pines de

entrada/salida digital, 6 pines de entrada analógica. Este sistema es tal vez uno de los más utilizados

actualmente para desarrollar prototipos de una manera fácil y rápida.[9]

Figura4. Sistema Arduino.

Página 14

Page 15: Programación Robótica Básica

METODOLOGÍA

Fase 1. Creación de librerías:

Como primera instancia se pretende crear las librerías correspondientes a cada módulo que

comuniquen el IDEA con el microcontrolador.

Para esto se llevaran a cabo las rutinas en el compilador MP_LAB, posteriormente serán acopladas

al IDEA de manera tal que el programador no conocerá el código fuente, esto evita posibles

inconvenientes más adelante.

En caso de no usar el IDEA, la tarjeta principal puede ser programada directamente con otro

compilador. (MPLA_B y Arduino)

Fase 2. Diseño y montaje de módulos:

Diseñar el circuito de cada módulo:

-Etapa de potencia motores

-Motor paso a paso

-Servo motor

-Módulo principal (ésta tarjeta contiene el microcontrolador)

Estos serán realizados en el programa EAGLES, guardando así la filosofía Arduino, y

posibilitando que los módulos físicos funcionen para proyectos Arduino y viceversa.

Luego serán impresos y montados en baquelas los respectivos circuitos.

Fase 3. Construir un manual de usuario que permita manejar el Software y Hardware adecuadamente:

Página 15

Page 16: Programación Robótica Básica

Se recopilará la información necesaria en una guía para que el usuario lo use adecuadamente, de

esta menera evita el mal uso que conlleve a su deterioro.

Fase 4. Realizar guías para la enseñanza y aprendizaje de la robótica en los colegios técnicos de la ciudad:

Estas guías serán el resultado de una investigación, en donde se planteará la metodología

más adecuada para la enseñanza de la robótica en colegios técnicos de la ciudad de

Armenia. Por consiguiente los estudiantes tendrán el suficiente conocimiento para realizar

sus propios diseños

Fase 5. Recopilar información que permita diseñar laboratorios donde interactúen hardware y Software:

Diseñar laboratorios que permitan que el programador se familiarice con el proyecto, en éstos

laboratorios, él aprenderá a usarlos adecuadamente, además de que podrá interactuar con ellos,

construir sus propios proyectos y verlos funcionar inmediatamente.

Página 16

Page 17: Programación Robótica Básica

1. CRONOGRAMA DE ACTIVIDADES

Tiempo

Fase

Mayo Junio

1 2 3 4 1 2 3 4

1 X

2 X X X

3 X

4 X

5 X

Página 17

Page 18: Programación Robótica Básica

PRESUPUESTO Y RECURSOS NECESARIOS

Cantidad Material Precio en pesos ($)

1 Motor paso a paso C.C $ 18.000

1 Servo motor C.C $ 50.000

2 Puente H l293b $ 10.000

6 Capacitores 0.1 microfaradios $ 1.200

12 Diodos zener de 3.5 voltios $ 3.600

5 Leds Rojos $ 1.000

5 Lesds Azules $ 1.500

1 1m Correa $ 600

1 Base de 8 pines $ 1.000

3 Baquelas vírgenes 1 capa 10cm x 8cm $ 7.500

1 Baquelas vírgenes doble capa 10cm x 8cm $ 4.500

Imprevistos 10% del total

Página 18

Page 19: Programación Robótica Básica

TOTAL presupuestado $ 98.900

Los materiales que se presentan en esta tabla serán reemplazados por otros en el trascurso del

proyecto.

Bibliografía

[1] http://www.bairesrobotics.com.ar/

[2]http://books.google.com.co/books?id=vbXYgr3AdAkC&pg=PA31&dq=definicion+de+un+microprocesador&hl=es&sa=X&ei=naiuT6aHJ4qItwfWvajaCA&ved=0CDoQ6AEwAA#v=onepage&q=definicion%20de%20un%20microprocesador&f=false

[3] González Londoño Jorge Iván, Santana Caldas Obeymar. Diseño e implementación de un sistema de compensación de juntura fría para termocuplas, mediante la técnica de inserción de metal y ajuste por software [Proyecto de grado].

Universidad de Antioquia. Facultad de Ingeniería, Medellín 2010.

[4] http://www.slideshare.net/sorbivi/historia-de-la-robtica

[5] http://grupoeducativa.blogspot.com/2010/08/porque-ensenar-robotica-en-las-escuelas.html

[6] http://www.matrixmultimedia.com/eblocks.php

[7] http://mindstorms.lego.com/en-us/products/default.aspx

[8] http://handyboard.com/cricket/

[9] http://arduino.cc/es/

Página 19