SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Escuela de electrónica y telecomunicaciones

   Proyecto de Fundamentos de la
             Programación
                    Avance 4

     Brazo Robótico Multifuncional


Nombres y apellidos:
             María Enid Pineda Rivas
             Vanessa Uchuari
             Katherine Llanes


              Loja – Ecuador
                 2009 - 2010


                                                    1
Fundamentos de la programación
Robótica                                  Brazo Robótico Multifuncional

           Tema:

                                 Brazo Robótico Multifuncional

           Objetivo general:

                Construir un brazo mecánico con movimiento en los ejes X, Y para recolección de
                 objetos y colocación de los mismos ya sea en forma aleatoria o en un punto específico.

           Objetivos específicos:

                Implementar algoritmos eficientes y claros dentro del lenguaje C++.
                Lograr la interacción Usuario-PC para controlar el brazo robótico con ayuda del puerto
                 serial.
                Lograr que la colocación de los objetos sea de dos formas: aleatoria y en un punto
                 específico.
                Ordenar por medio del brazo robótico objetos de acuerdo a su tamaño.

           Descripción:


                 USUARIO                         PC                        PIC                        BRAZO
                                                                                                     ROBÓTICO
                                 Puerto                  Algoritmos de                  Algoritmos
                                 serial                  envió y                        de control
                                                         recepción



                     Interfaz amigable




               Nuestro proyecto constara de las siguientes etapas:




                                                                                 Posicionamiento
                                                  Detección y
             Envio-Recepcion                                                     de los objetos en
                                                recolección de
                 de datos                                                        forma aleatoria y
                                                   objetos
                                                                                     específica



                                          DESCRIPICION DE SU FUNCIONAMIENTO

           En cuanto a la recolección de objetos: el brazo robótico funcionara de la siguiente forma su
           movimiento se realizará en los tres ejes X, Y y tendrá tres articulaciones: el brazo, la base y la
           pinza, terminado en una mano con tres dedos lo que permitirá una mayor facilidad para
           recolectar objetos.
           En cuanto a la colocación de objetos: El usuario podrá elegir entre dos modalidades
                En posición específica: la misma que será elegida con anterioridad.
                En posición aleatoria: la misma que será elegida por el brazo al azar.




                                                                                                                2
Fundamentos de la programación
Robótica                                Brazo Robótico Multifuncional

           Herramientas:
           Hardware:                                                     Pinza
               4 Servomotores.                                          Proto Board.
               Aluminio.                                                Cable DB9.
               Micro controlador PIC-16F819.                            Fuente de Alimentación
               Resistencias.                                            PC con puerto serial.
               Transistores.

               Software:

                  PC
                                                        Puerto            Algoritmos para controlar el robot
                                                        Serial
                  PIC (Implementado en C++)




           Metodología
           La primera fase de la resolución de un proyecto es el análisis del problema o lo que es lo
           mismo la elección de un tema. Esta fase requiere una clara definición, donde se contemple
           exactamente lo que debe hacer el programa y el resultado o solución deseada en nuestro caso
           es la resolución del robot seguidor de una línea negra en donde hay que analizar el algoritmo e
           implementarlo a lenguaje de alto nivel.
           Los métodos más eficaces para el proceso de diseño se basan en el conocido método: “divide y
           vencerás”, es decir la resolución de un problema complejo se realiza dividiendo el problema en
           subproblemas y dividir estos subproblemas en otros de nivel más bajo, hasta que pueda ser
           implementada una solución en la computadora. Este método se conoce técnicamente como
           diseño modular.
           Nuestro proyecto tendrá un programa bien diseñado que tendrá un modulo principal y de este
           se desprenden los subprogramas (módulos de nivel más bajo) que a su vez pueden llamar a
           otros subprogramas dependiendo de las necesidades.

           El método a usar en el proyecto es el científico-experimental 1
           La razón de utilizar el método científico es porque en la robótica y la programación se debe
           conocer y definir los conceptos científicos como por ejemplo: que es un diodo, PIC, sensores,
           servos, transistores, resistores y condensadores. Además debemos tener claro lo que es la
           microelectrónica y la programación; además se usa la observación como principal medio para
           resolver las inquietudes y dudas que se presentan en la elaboración del proyecto.
           El experimental porque para poder elaborar el proyecto hay que realizar varias experiencias
           para ir perfeccionando el modelo hasta que cumpla las necesidades del usuario.

           A continuación detallaremos las herramientas que vamos a usar en las fases de resolución:




           1
             Método científico, método de estudio sistemático de la naturaleza que incluye las técnicas de
           observación, reglas para el razonamiento y la predicción, ideas sobre la experimentación planificada y
           los modos de comunicar los resultados experimentales y teóricos.


                                                                                                                    3
Fundamentos de la programación
Robótica                              Brazo Robótico Multifuncional




                                                           La prueba de ejecución manual para ver si el
                                   Del análisis de          algoritmo es consistente
                                      Algoritmos           Comprobar si los módulos están bien
                                                            estructurados, subdivididos y si son eficientes
                                                            finitos y claros

           Fases de

           Comprobación

                                     Para el programa     Una vez hecho el robot probar si los algoritmos
                                                          logran que haga la tarea y si su masa y velocidad
                                                          influyen de alguna manera o si son despreciables




           Los pasos a describir son secuenciales:
           1ra Etapa:
           Implantar objeto de transmisión serial.
           2da Etapa:
           Implantar puntos de comunicación serial.
           3ra Etapa:
           Empezar comunicación serial.
           4ta Etapa:
           Ingreso de instrucciones por teclado y su almacenamiento en sus respectivas variables.
           5ta Etapa:
           Transmisión de datos vía comunicación serial.
           6ta Etapa:
           Recepción y ejecución de instrucciones.


           Fundamentos Teóricos:
           Servomotor:

                                “Un servomotor de modelismo —conocido generalmente como servo o
                                servo de modelismo—es un dispositivo actuador que tiene la capacidad
                                de ubicarse en cualquier posición dentro de
                                su rango de operación, y de mantenerse estable en dicha posición. Está
                                formado por un motor de corriente continua, una caja reductora y un
                Imagen 1        circuito de control, y su margen de funcionamiento generalmente es de
           menos de una vuelta completa. Los servos de modelismo se utilizan frecuentemente en
           sistemas de radiocontrol y en robótica, pero su uso no está limitado a estos”.


                                                                                                              4
Fundamentos de la programación
Robótica                              Brazo Robótico Multifuncional




           Microcontrolador PIC 16F819:
                                    Tarjeta de control: contiene un micro controlador que se encarga
                                   de tomar el control del motor y las decisiones que debe de realizar
                                   el robot. Su código debe ser escrito en lenguaje de programación
                                   orientada a micro controlador PIC y existen varias opciones como
                                   por ejemplo: C++, phyton o java.

                Imagen 2


           Puerto serial:
                                                      “Un puerto serie o puerto serial es una interfaz de
                                                      comunicaciones de datos digitales, frecuentemente
                                                      utilizado por computadoras y periféricos, en donde la
                                                      información es transmitida bit a bit enviando un solo
                                                      bit a la vez, en contraste con el puerto paralelo que
                          Imagen 3                    envía varios bits simultáneamente. La comparación
           entre la transmisión en serie y en paralelo se puede explicar usando una analogía con las
           carreteras. Una carretera tradicional de un sólo carril por sentido sería como la transmisión en
           serie y una autovía con varios carriles por sentido sería la transmisión en paralelo, siendo los
           vehículos los bits que circulan por el cable”.

           Leguaje de programación C++:

           Es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup.
           La intención de su creación fue el extender al exitoso lenguaje de programación C con
           mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista
           de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.
           Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros
           dos paradigmas que ya estaban admitidos (programación estructurada y la programación
           orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programación
           multiparadigma.
           Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de
           los fabricantes de compiladores más modernos. Existen también algunos intérpretes, tales
           como ROOT.
           Una particularidad del C++ es la posibilidad de redefinir los operadores (sobrecarga de
           operadores), y de poder crear nuevos tipos que se comporten como tipos fundamentales.
           El nombre C++ fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado
           por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con
           clases". En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una
           extensión de C.


           Alcance:


                                                                                                              5
Fundamentos de la programación
Robótica                                        Brazo Robótico Multifuncional

           El alcance máximo de nuestro proyecto es lograr movimiento del brazo mecánico en los ejes X,
           Y para la recolección de objetos livianos y su traslado a un destino diferente el mismo que será
           en un punto pre-establecido o en un lugar aleatorio elegido por el usuario.

             Resultados esperados:

           Una vez terminado el proyecto, se tendrá un brazo mecánico capaz de recolectar objetos
           livianos por medio de una pinza, posteriormente trasladarlos a su destino final dentro del
           rango de movimiento del brazo, donde podrá elegir una posición final de los objetos una
           aleatoria o una específica

           Desarrollo de módulos:

                                                                  Descripción de
                                                                módulos principales




                                                                                                        Recleccion y
                             Envio-
                                                                                                        colocacion de
                          Recepcion de
                                                                                                          un objeto
                            archivos




            Cofiguracion de la           Envio-recepcion                                    Posición                    Posicion
            comunicación PC-               de datos y                                      especifica                   Aleatoria
              PIC por puerto             diseño interfaz
                  serial                    amigable




           Modulo de Envio-recepción de la comunicación PC-PIC por puerto serial:

                       Configuración PC-puerto serial
                       Envio -recepción y diseño de interfaz amigable




                                                                                                                          6
Fundamentos de la programación
Robótica           Brazo Robótico Multifuncional

                                        Inicio
                                (envio-recepción de
                                   PIC <-> PC)




           Inicialización de variables ruta=1 //significa que esta en la
           ruta correcta
           variables :bandera //respuesta si hay o no comunicacion
           COM1 (PC)




                                Mientras {bandera
                                =ERROR} Hacer




                             abrir COM1
                             bandera =OK




                   configurar comunicación del COM1
                   mediante el puerto serial:
                            velocidad = 9600 bandios (bits/s)
                            número de bit = 8
                            bits de parada = 1
                            control de flujo = OFF
                            Pariedad ninguna




                                        Fin




                                                                           7
Fundamentos de la programación
Robótica                         Brazo Robótico Multifuncional


                                   Inicio(Desarrollo_interfazamigable_interraccion_PC-
                                            Usuario(tramsmicion de ordenes)




                                          Constantes: salir, entrar, posición
                                          Variable, posición




                                            Inicializar modo gráfico




            Llamar a GUI (biblioteca grafica de C++)
            Detectar posición del MOUSE
                Ir a cordenadas de entrar
                          Trazar cuadro
                          Pintarlo
                          guardar en variable entrar
                            Ir a cordenadas de posicion
                           Trazar cuadro
                           Pintarlo
                           Guardar en variable posicion

                                                           Ir a cordenadas de salir
                                                           Trazar cuadro
                                                           Pintarlo
                                                            Guardar en variable Salir




                                            Transmitir la orden por puerto
                                            serial: //Interaccion PC-usuario
                                            Compración con constantes




                                                     Leer posicion




                                                Guardar en variable
                                                posición (x,y)




                                         De otro
                                          modo        Si {posicion}
           No moverse                                     Hacer




                                                          Posicion



                                                     envie orden
                                                     A control de
                                                     motores




                                                            Fin




                                                                                         8
Fundamentos de la programación
Robótica                                Brazo Robótico Multifuncional

                                                                Inicio




                                                          Varialbles para los
                                                             servos: m1,
                                                              m2,m3,m4




                                                          Ingresar posicion:
                                                          Leer y almacenar:
                                                               posicion




                                                Si (m1=encendido y m2=encendido y
                                                  m3=encendido y m4=encendido)                     Presentar (Alerta)
                                                            Entonces




                                                          Según (posición )
            No moverse         Caso contrario
                                                                sea




                                                                                                                          Motor4=
           Posicion=”derec   Posicion=”izquie                                   Posicion=”abajo”
                                                                                                                         encendido
                 ha”               rda”         Posicion=”arriba”


                                        si                 si                             si                                   si
                      si




             m1=Mover           m1=Mover
                                                m2=Mover arriba                 m3=Mover abajo                          m4=apagado
              derecha           izquierda




                                                             Preguntar
                                                             continuar




                                                              Mientras
                                                           (continuar=si)




                                                                Fin




                                                                                                                                     9
Fundamentos de la programación
Robótica                              Brazo Robótico Multifuncional


           DESARROLLO DE ALGORITMOS:

           Desarrollo comunicación PIC-puerto serial

           Primero:

               1. Proceso envio-recepción de PIC <-> PC
               2. Inicialización de variables ruta=1 //significa que esta en la ruta correcta
               3. variables :bandera //respuesta si hay o no comunicacion
               4. COM1 (PC)
               5. Mientras {bandera =ERROR} Hacer
                              {
                              abrir COM1
                              bandera =OK
                              }
              6. FinMientras
                       configurar comunicación del COM1 mediante el puerto serial:
                       velocidad = 9600 bandios (bits/s)
                       número de bit = 8
                       bits de parada = 1
                       control de flujo = OFF
                       Pariedad ninguna //comprobacion de que es correcto el dato recido o
                  //enviado va al final de los bits y luego el bit de parada
              7. FinProceso
           Segundo:

               1. Proceso         Desarrollo_interfazamigable_interraccion_PC-Usuario(tramsmicion   de
                   ordenes)
               2. constantes entrar, salir
               3. variable posicion
               4. Inicializar modo gráfico
               5.    Llamar a GUI (biblioteca grafica de C++)
               6.    Detectar posición del MOUSE
               7.    Ir a coordenadas de entrar
               8.    Trazar cuadro
               9.    Pintarlo
               10. guardar en variable entrar
               11.           Ir a coordenadas de posición
               12.          Trazar cuadro
               13.          Pintarlo
               14.          Guardar en variable posición
               15.             Ir a coordenadas de salir
               16.             Trazar cuadro
               17.              Pintarlo
               18.            Guardar en variable salir


                                                                                                         10
Fundamentos de la programación
Robótica                             Brazo Robótico Multifuncional

              19. Transmitir la orden por puerto serial: //Interacción PC-usuario
              20. Comparación con constantes
              21. Leer posición
              22. Guardar en variable rta posición (x,y)
              23.          Si (posicion) Hacer
                                  Enviar orden a motores

                                                De otro modo
                                                   No moverse

              24.              Fin si
              25. FinProceso
           Modulo de recolección de objetos
                  1. Proceso recolección_deobjetos
                  2. Variables para los servos m1, m2,m3,m4
                  3. Repetir
                  4.      Ingresar posición xy
                  5.       Leer y almacenar en posición
                  6.        Si (m1=encendido y m2=encendido y m3=encendido y m4=encendido)
                  7.           Según (posición ) sea
                  8.              Caso1: “derecha”
                                         m1=mover derecha
                  9.               Caso2: “arriba”
                                         m2= mover arriba
                  10.              Caso3:”abajo”
                                        m3=mover abajo
                  11.              Caso4: “izquierda”
                                        m1=mover izquierda
                  12.              Caso 5: m4=encendido
                                         m4=apagado
                  13.                  Caso contrario
                  14.                         Apagar motores y no moverse
                  15.             Fin según
                  16.          Si no
                  17.           Presentar <<”alerta”
                  18.          Fin si
                  19. Fin mientras
                  20. Mientras (continuar==si)
                  21. Fin proceso
           Referencias:
               [1]www.conocimientoenlinea.com/index.php?option=content&task=view&id=771http
                  ://articulo.mercadolibre.com.mx/MLM-29976788-proyectos-electronicos-
                  microcontrolador-pic-asesoria-diseno-_JM
               [2]Nell Dale universidad de Texas /Programación y resolución de problemas con
                  C++/página 4/Impreso en México

                                                                                                11
Fundamentos de la programación
Robótica                        Brazo Robótico Multifuncional

            [3]Nell Dale /Fundamentos de la programación/página 42/Impreso en México
            [4]Imagen “Diagrama de circuitos”, disponible en:
             http://www.xbot.es/microplans/servos4.htm
            [5]http://es.wikipedia.org/wiki/Puerto_serie
            [6] “C++”, disponible en:
            [7] http://es.wikipedia.org/wiki/C%2B%2B




                                                                                        12

Más contenido relacionado

La actualidad más candente

Algoritmos TECNICO EN DESARROLLO DE SOFTWARE
Algoritmos TECNICO EN DESARROLLO DE SOFTWAREAlgoritmos TECNICO EN DESARROLLO DE SOFTWARE
Algoritmos TECNICO EN DESARROLLO DE SOFTWAREPedro Alvarez
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificialzpcabron
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcionalAlejandra MA
 
Algoritmos de victor gelvez
Algoritmos de victor gelvezAlgoritmos de victor gelvez
Algoritmos de victor gelvezDaniel Gelvez
 
Operaciones basicas
Operaciones basicasOperaciones basicas
Operaciones basicaskenia14
 
Lenguajes de programación en robótica
Lenguajes de programación en robótica �Lenguajes de programación en robótica �
Lenguajes de programación en robótica Laureano Zantedeschi
 
Programacion Logica
Programacion LogicaProgramacion Logica
Programacion LogicaNatalia
 
Temario por etapas para la estatal
Temario por etapas para la estatalTemario por etapas para la estatal
Temario por etapas para la estatalANgel Xipootle
 

La actualidad más candente (16)

Taller 2 conceptualizacion
Taller 2 conceptualizacionTaller 2 conceptualizacion
Taller 2 conceptualizacion
 
Algoritmos TECNICO EN DESARROLLO DE SOFTWARE
Algoritmos TECNICO EN DESARROLLO DE SOFTWAREAlgoritmos TECNICO EN DESARROLLO DE SOFTWARE
Algoritmos TECNICO EN DESARROLLO DE SOFTWARE
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificial
 
Algoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujoAlgoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujo
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcional
 
Qué es un algoritmo
Qué es un algoritmoQué es un algoritmo
Qué es un algoritmo
 
Algoritmos de victor gelvez
Algoritmos de victor gelvezAlgoritmos de victor gelvez
Algoritmos de victor gelvez
 
Qué es un algoritmo
Qué es un algoritmoQué es un algoritmo
Qué es un algoritmo
 
Programación aplicada a robots (Gestual y textual)
Programación aplicada a robots (Gestual y textual)Programación aplicada a robots (Gestual y textual)
Programación aplicada a robots (Gestual y textual)
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Transp objetos
Transp objetosTransp objetos
Transp objetos
 
Operaciones basicas
Operaciones basicasOperaciones basicas
Operaciones basicas
 
Lenguajes de programación en robótica
Lenguajes de programación en robótica �Lenguajes de programación en robótica �
Lenguajes de programación en robótica
 
Sesión 01 NXT
Sesión 01 NXTSesión 01 NXT
Sesión 01 NXT
 
Programacion Logica
Programacion LogicaProgramacion Logica
Programacion Logica
 
Temario por etapas para la estatal
Temario por etapas para la estatalTemario por etapas para la estatal
Temario por etapas para la estatal
 

Similar a Avance 4

TECNOLOGIA.docx (2).pdf
TECNOLOGIA.docx (2).pdfTECNOLOGIA.docx (2).pdf
TECNOLOGIA.docx (2).pdfCoffe9
 
Ingeniería del Software: Nuestro producto debe funcionar
Ingeniería del Software: Nuestro producto debe funcionarIngeniería del Software: Nuestro producto debe funcionar
Ingeniería del Software: Nuestro producto debe funcionarFrancisco Sanchez Cid
 
Diapositivas Robotica!
Diapositivas Robotica!Diapositivas Robotica!
Diapositivas Robotica!Plan24
 
Brazo
BrazoBrazo
Brazoroger
 
Procesamiento de imagenes python con raspberri pi 2
Procesamiento de imagenes python con raspberri pi 2Procesamiento de imagenes python con raspberri pi 2
Procesamiento de imagenes python con raspberri pi 2Franklin J.
 
Utp pdiva_lab1 introduccion a mat_lab
 Utp pdiva_lab1 introduccion a mat_lab Utp pdiva_lab1 introduccion a mat_lab
Utp pdiva_lab1 introduccion a mat_labjcbenitezp
 
SecondNug Robotics, Kinect y un par de demos más
SecondNug Robotics, Kinect y un par de demos másSecondNug Robotics, Kinect y un par de demos más
SecondNug Robotics, Kinect y un par de demos másBruno Capuano
 
Copia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdfCopia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdfMissPotato2
 
Copia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdfCopia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdfSharonGalindez1
 
Microbit - Gabriela Samboni
Microbit - Gabriela SamboniMicrobit - Gabriela Samboni
Microbit - Gabriela SamboniGabrielaSamboni1
 
Taller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdfTaller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdfGabrielaParedes63
 

Similar a Avance 4 (20)

Robo Taller
Robo TallerRobo Taller
Robo Taller
 
TECNOLOGIA.docx (2).pdf
TECNOLOGIA.docx (2).pdfTECNOLOGIA.docx (2).pdf
TECNOLOGIA.docx (2).pdf
 
Robotica educativa
Robotica educativaRobotica educativa
Robotica educativa
 
Ingeniería del Software: Nuestro producto debe funcionar
Ingeniería del Software: Nuestro producto debe funcionarIngeniería del Software: Nuestro producto debe funcionar
Ingeniería del Software: Nuestro producto debe funcionar
 
Publicidad
PublicidadPublicidad
Publicidad
 
Estimación temprana de proyectos software #pmot #pmlat @iprocuratio
Estimación temprana de proyectos software #pmot #pmlat @iprocuratioEstimación temprana de proyectos software #pmot #pmlat @iprocuratio
Estimación temprana de proyectos software #pmot #pmlat @iprocuratio
 
Diapositivas Robotica!
Diapositivas Robotica!Diapositivas Robotica!
Diapositivas Robotica!
 
Brazo
BrazoBrazo
Brazo
 
Procesamiento de imagenes python con raspberri pi 2
Procesamiento de imagenes python con raspberri pi 2Procesamiento de imagenes python con raspberri pi 2
Procesamiento de imagenes python con raspberri pi 2
 
Introduccion.ppt
Introduccion.pptIntroduccion.ppt
Introduccion.ppt
 
Utp pdiva_lab1 introduccion a mat_lab
 Utp pdiva_lab1 introduccion a mat_lab Utp pdiva_lab1 introduccion a mat_lab
Utp pdiva_lab1 introduccion a mat_lab
 
SecondNug Robotics, Kinect y un par de demos más
SecondNug Robotics, Kinect y un par de demos másSecondNug Robotics, Kinect y un par de demos más
SecondNug Robotics, Kinect y un par de demos más
 
Copia de microbit.pdf
Copia de microbit.pdfCopia de microbit.pdf
Copia de microbit.pdf
 
Presentacion wrc
Presentacion wrcPresentacion wrc
Presentacion wrc
 
Copia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdfCopia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdf
 
Copia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdfCopia de microbit gabriela samboni grup.pdf
Copia de microbit gabriela samboni grup.pdf
 
Microbit - Gabriela Samboni
Microbit - Gabriela SamboniMicrobit - Gabriela Samboni
Microbit - Gabriela Samboni
 
funciones de la microbit .docx
funciones de la microbit .docxfunciones de la microbit .docx
funciones de la microbit .docx
 
Estimación temprana de proyectos software #pmot #pmlat
Estimación temprana de proyectos software #pmot #pmlatEstimación temprana de proyectos software #pmot #pmlat
Estimación temprana de proyectos software #pmot #pmlat
 
Taller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdfTaller Tecnología Actividad #2.pdf
Taller Tecnología Actividad #2.pdf
 

Más de Vanessita Uchuari

Más de Vanessita Uchuari (7)

Pres Web2.0
Pres Web2.0Pres Web2.0
Pres Web2.0
 
Pres Web2.0
Pres Web2.0Pres Web2.0
Pres Web2.0
 
Sli
SliSli
Sli
 
Brazito
BrazitoBrazito
Brazito
 
Cap I V E S T R A T E G I A B A S I C A D E M E D I O S
Cap  I V  E S T R A T E G I A  B A S I C A  D E  M E D I O SCap  I V  E S T R A T E G I A  B A S I C A  D E  M E D I O S
Cap I V E S T R A T E G I A B A S I C A D E M E D I O S
 
Estrategia Basica De Medios
Estrategia Basica De MediosEstrategia Basica De Medios
Estrategia Basica De Medios
 
Pa Q Lo Pienses
Pa Q Lo PiensesPa Q Lo Pienses
Pa Q Lo Pienses
 

Avance 4

  • 1. Escuela de electrónica y telecomunicaciones Proyecto de Fundamentos de la Programación Avance 4 Brazo Robótico Multifuncional Nombres y apellidos:  María Enid Pineda Rivas  Vanessa Uchuari  Katherine Llanes Loja – Ecuador 2009 - 2010 1
  • 2. Fundamentos de la programación Robótica Brazo Robótico Multifuncional Tema: Brazo Robótico Multifuncional Objetivo general:  Construir un brazo mecánico con movimiento en los ejes X, Y para recolección de objetos y colocación de los mismos ya sea en forma aleatoria o en un punto específico. Objetivos específicos:  Implementar algoritmos eficientes y claros dentro del lenguaje C++.  Lograr la interacción Usuario-PC para controlar el brazo robótico con ayuda del puerto serial.  Lograr que la colocación de los objetos sea de dos formas: aleatoria y en un punto específico.  Ordenar por medio del brazo robótico objetos de acuerdo a su tamaño. Descripción: USUARIO PC PIC BRAZO ROBÓTICO Puerto Algoritmos de Algoritmos serial envió y de control recepción Interfaz amigable Nuestro proyecto constara de las siguientes etapas: Posicionamiento Detección y Envio-Recepcion de los objetos en recolección de de datos forma aleatoria y objetos específica DESCRIPICION DE SU FUNCIONAMIENTO En cuanto a la recolección de objetos: el brazo robótico funcionara de la siguiente forma su movimiento se realizará en los tres ejes X, Y y tendrá tres articulaciones: el brazo, la base y la pinza, terminado en una mano con tres dedos lo que permitirá una mayor facilidad para recolectar objetos. En cuanto a la colocación de objetos: El usuario podrá elegir entre dos modalidades  En posición específica: la misma que será elegida con anterioridad.  En posición aleatoria: la misma que será elegida por el brazo al azar. 2
  • 3. Fundamentos de la programación Robótica Brazo Robótico Multifuncional Herramientas: Hardware:  Pinza  4 Servomotores.  Proto Board.  Aluminio.  Cable DB9.  Micro controlador PIC-16F819.  Fuente de Alimentación  Resistencias.  PC con puerto serial.  Transistores. Software:  PC Puerto Algoritmos para controlar el robot Serial  PIC (Implementado en C++) Metodología La primera fase de la resolución de un proyecto es el análisis del problema o lo que es lo mismo la elección de un tema. Esta fase requiere una clara definición, donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada en nuestro caso es la resolución del robot seguidor de una línea negra en donde hay que analizar el algoritmo e implementarlo a lenguaje de alto nivel. Los métodos más eficaces para el proceso de diseño se basan en el conocido método: “divide y vencerás”, es decir la resolución de un problema complejo se realiza dividiendo el problema en subproblemas y dividir estos subproblemas en otros de nivel más bajo, hasta que pueda ser implementada una solución en la computadora. Este método se conoce técnicamente como diseño modular. Nuestro proyecto tendrá un programa bien diseñado que tendrá un modulo principal y de este se desprenden los subprogramas (módulos de nivel más bajo) que a su vez pueden llamar a otros subprogramas dependiendo de las necesidades. El método a usar en el proyecto es el científico-experimental 1 La razón de utilizar el método científico es porque en la robótica y la programación se debe conocer y definir los conceptos científicos como por ejemplo: que es un diodo, PIC, sensores, servos, transistores, resistores y condensadores. Además debemos tener claro lo que es la microelectrónica y la programación; además se usa la observación como principal medio para resolver las inquietudes y dudas que se presentan en la elaboración del proyecto. El experimental porque para poder elaborar el proyecto hay que realizar varias experiencias para ir perfeccionando el modelo hasta que cumpla las necesidades del usuario. A continuación detallaremos las herramientas que vamos a usar en las fases de resolución: 1 Método científico, método de estudio sistemático de la naturaleza que incluye las técnicas de observación, reglas para el razonamiento y la predicción, ideas sobre la experimentación planificada y los modos de comunicar los resultados experimentales y teóricos. 3
  • 4. Fundamentos de la programación Robótica Brazo Robótico Multifuncional  La prueba de ejecución manual para ver si el Del análisis de algoritmo es consistente Algoritmos  Comprobar si los módulos están bien estructurados, subdivididos y si son eficientes finitos y claros Fases de Comprobación Para el programa Una vez hecho el robot probar si los algoritmos logran que haga la tarea y si su masa y velocidad influyen de alguna manera o si son despreciables Los pasos a describir son secuenciales: 1ra Etapa: Implantar objeto de transmisión serial. 2da Etapa: Implantar puntos de comunicación serial. 3ra Etapa: Empezar comunicación serial. 4ta Etapa: Ingreso de instrucciones por teclado y su almacenamiento en sus respectivas variables. 5ta Etapa: Transmisión de datos vía comunicación serial. 6ta Etapa: Recepción y ejecución de instrucciones. Fundamentos Teóricos: Servomotor: “Un servomotor de modelismo —conocido generalmente como servo o servo de modelismo—es un dispositivo actuador que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y de mantenerse estable en dicha posición. Está formado por un motor de corriente continua, una caja reductora y un Imagen 1 circuito de control, y su margen de funcionamiento generalmente es de menos de una vuelta completa. Los servos de modelismo se utilizan frecuentemente en sistemas de radiocontrol y en robótica, pero su uso no está limitado a estos”. 4
  • 5. Fundamentos de la programación Robótica Brazo Robótico Multifuncional Microcontrolador PIC 16F819: Tarjeta de control: contiene un micro controlador que se encarga de tomar el control del motor y las decisiones que debe de realizar el robot. Su código debe ser escrito en lenguaje de programación orientada a micro controlador PIC y existen varias opciones como por ejemplo: C++, phyton o java. Imagen 2 Puerto serial: “Un puerto serie o puerto serial es una interfaz de comunicaciones de datos digitales, frecuentemente utilizado por computadoras y periféricos, en donde la información es transmitida bit a bit enviando un solo bit a la vez, en contraste con el puerto paralelo que Imagen 3 envía varios bits simultáneamente. La comparación entre la transmisión en serie y en paralelo se puede explicar usando una analogía con las carreteras. Una carretera tradicional de un sólo carril por sentido sería como la transmisión en serie y una autovía con varios carriles por sentido sería la transmisión en paralelo, siendo los vehículos los bits que circulan por el cable”. Leguaje de programación C++: Es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido. Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma. Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes, tales como ROOT. Una particularidad del C++ es la posibilidad de redefinir los operadores (sobrecarga de operadores), y de poder crear nuevos tipos que se comporten como tipos fundamentales. El nombre C++ fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C. Alcance: 5
  • 6. Fundamentos de la programación Robótica Brazo Robótico Multifuncional El alcance máximo de nuestro proyecto es lograr movimiento del brazo mecánico en los ejes X, Y para la recolección de objetos livianos y su traslado a un destino diferente el mismo que será en un punto pre-establecido o en un lugar aleatorio elegido por el usuario. Resultados esperados: Una vez terminado el proyecto, se tendrá un brazo mecánico capaz de recolectar objetos livianos por medio de una pinza, posteriormente trasladarlos a su destino final dentro del rango de movimiento del brazo, donde podrá elegir una posición final de los objetos una aleatoria o una específica Desarrollo de módulos: Descripción de módulos principales Recleccion y Envio- colocacion de Recepcion de un objeto archivos Cofiguracion de la Envio-recepcion Posición Posicion comunicación PC- de datos y especifica Aleatoria PIC por puerto diseño interfaz serial amigable Modulo de Envio-recepción de la comunicación PC-PIC por puerto serial:  Configuración PC-puerto serial  Envio -recepción y diseño de interfaz amigable 6
  • 7. Fundamentos de la programación Robótica Brazo Robótico Multifuncional Inicio (envio-recepción de PIC <-> PC) Inicialización de variables ruta=1 //significa que esta en la ruta correcta variables :bandera //respuesta si hay o no comunicacion COM1 (PC) Mientras {bandera =ERROR} Hacer abrir COM1 bandera =OK configurar comunicación del COM1 mediante el puerto serial: velocidad = 9600 bandios (bits/s) número de bit = 8 bits de parada = 1 control de flujo = OFF Pariedad ninguna Fin 7
  • 8. Fundamentos de la programación Robótica Brazo Robótico Multifuncional Inicio(Desarrollo_interfazamigable_interraccion_PC- Usuario(tramsmicion de ordenes) Constantes: salir, entrar, posición Variable, posición Inicializar modo gráfico Llamar a GUI (biblioteca grafica de C++) Detectar posición del MOUSE Ir a cordenadas de entrar Trazar cuadro Pintarlo guardar en variable entrar Ir a cordenadas de posicion Trazar cuadro Pintarlo Guardar en variable posicion Ir a cordenadas de salir Trazar cuadro Pintarlo Guardar en variable Salir Transmitir la orden por puerto serial: //Interaccion PC-usuario Compración con constantes Leer posicion Guardar en variable posición (x,y) De otro modo Si {posicion} No moverse Hacer Posicion envie orden A control de motores Fin 8
  • 9. Fundamentos de la programación Robótica Brazo Robótico Multifuncional Inicio Varialbles para los servos: m1, m2,m3,m4 Ingresar posicion: Leer y almacenar: posicion Si (m1=encendido y m2=encendido y m3=encendido y m4=encendido) Presentar (Alerta) Entonces Según (posición ) No moverse Caso contrario sea Motor4= Posicion=”derec Posicion=”izquie Posicion=”abajo” encendido ha” rda” Posicion=”arriba” si si si si si m1=Mover m1=Mover m2=Mover arriba m3=Mover abajo m4=apagado derecha izquierda Preguntar continuar Mientras (continuar=si) Fin 9
  • 10. Fundamentos de la programación Robótica Brazo Robótico Multifuncional DESARROLLO DE ALGORITMOS: Desarrollo comunicación PIC-puerto serial Primero: 1. Proceso envio-recepción de PIC <-> PC 2. Inicialización de variables ruta=1 //significa que esta en la ruta correcta 3. variables :bandera //respuesta si hay o no comunicacion 4. COM1 (PC) 5. Mientras {bandera =ERROR} Hacer { abrir COM1 bandera =OK } 6. FinMientras configurar comunicación del COM1 mediante el puerto serial: velocidad = 9600 bandios (bits/s) número de bit = 8 bits de parada = 1 control de flujo = OFF Pariedad ninguna //comprobacion de que es correcto el dato recido o //enviado va al final de los bits y luego el bit de parada 7. FinProceso Segundo: 1. Proceso Desarrollo_interfazamigable_interraccion_PC-Usuario(tramsmicion de ordenes) 2. constantes entrar, salir 3. variable posicion 4. Inicializar modo gráfico 5. Llamar a GUI (biblioteca grafica de C++) 6. Detectar posición del MOUSE 7. Ir a coordenadas de entrar 8. Trazar cuadro 9. Pintarlo 10. guardar en variable entrar 11. Ir a coordenadas de posición 12. Trazar cuadro 13. Pintarlo 14. Guardar en variable posición 15. Ir a coordenadas de salir 16. Trazar cuadro 17. Pintarlo 18. Guardar en variable salir 10
  • 11. Fundamentos de la programación Robótica Brazo Robótico Multifuncional 19. Transmitir la orden por puerto serial: //Interacción PC-usuario 20. Comparación con constantes 21. Leer posición 22. Guardar en variable rta posición (x,y) 23. Si (posicion) Hacer Enviar orden a motores De otro modo No moverse 24. Fin si 25. FinProceso Modulo de recolección de objetos 1. Proceso recolección_deobjetos 2. Variables para los servos m1, m2,m3,m4 3. Repetir 4. Ingresar posición xy 5. Leer y almacenar en posición 6. Si (m1=encendido y m2=encendido y m3=encendido y m4=encendido) 7. Según (posición ) sea 8. Caso1: “derecha” m1=mover derecha 9. Caso2: “arriba” m2= mover arriba 10. Caso3:”abajo” m3=mover abajo 11. Caso4: “izquierda” m1=mover izquierda 12. Caso 5: m4=encendido m4=apagado 13. Caso contrario 14. Apagar motores y no moverse 15. Fin según 16. Si no 17. Presentar <<”alerta” 18. Fin si 19. Fin mientras 20. Mientras (continuar==si) 21. Fin proceso Referencias:  [1]www.conocimientoenlinea.com/index.php?option=content&task=view&id=771http ://articulo.mercadolibre.com.mx/MLM-29976788-proyectos-electronicos- microcontrolador-pic-asesoria-diseno-_JM  [2]Nell Dale universidad de Texas /Programación y resolución de problemas con C++/página 4/Impreso en México 11
  • 12. Fundamentos de la programación Robótica Brazo Robótico Multifuncional  [3]Nell Dale /Fundamentos de la programación/página 42/Impreso en México  [4]Imagen “Diagrama de circuitos”, disponible en: http://www.xbot.es/microplans/servos4.htm  [5]http://es.wikipedia.org/wiki/Puerto_serie  [6] “C++”, disponible en:  [7] http://es.wikipedia.org/wiki/C%2B%2B 12