informeproyectos2terminado-141227160107-conversion-gate01.pdf

41
UNIVERSIDAD ANDINA NÉSTOR CÁCERES VELÁSQUEZ FACULTAD DE INGENIERIAS Y CIENCIAS PURAS INGENIERIA ELECTRONICA Y TELECOMUNICACIONES PROYECTOS II “DISEÑO Y CONSTRUCCION DE UN ROBOT HEXÁPODO” Integrantes: - Wilmar Percy Yampara López - Adolfo William Humpire Chalco 2014

Upload: juan-gallardo

Post on 03-Oct-2015

13 views

Category:

Documents


2 download

TRANSCRIPT

  • UNIVERSIDAD ANDINA NSTOR CCERES

    VELSQUEZ

    FACULTAD DE INGENIERIAS Y CIENCIAS PURAS

    INGENIERIA ELECTRONICA Y

    TELECOMUNICACIONES

    PROYECTOS II

    DISEO Y CONSTRUCCION DE UN ROBOT

    HEXPODO

    Integrantes:

    - Wilmar Percy Yampara Lpez

    - Adolfo William Humpire Chalco

    2014

  • AGRADECIMIENTOS:

    A mis Padres por su apoyo

    Moral y econmico.

  • INTRODUCCION:

    Se ha llevado a cabo el diseo y construccin de un robot mvil articulado con

    patas controlado por ordenador. Se parti de un objetivo primordial: realizar el

    diseo de un robot experimental con presupuesto y complejidad reducidos. El

    prototipo construido, denominado Merlini, cumple este objetivo y sirve de

    precedente para futuras investigaciones en este campo.

    Merlini es el primer robot de este tipo construido en esta Universidad, aunque

    existen antecedentes en otras Universidades y Departamentos de Investigacin,

    tanto Dentro como fuera de nuestro pas.

    No se parti de ningn trabajo previo, salvo la documentacin citada en la

    bibliografa, disendose todos los sistemas mecnicos, electrnicos e

    informticos que se consideraron necesarios. Se experiment con diversas

    estructuras mecnicas, servomecanismos de posicionamiento, electrnica de

    generacin de seales. Finalmente, se implant e integr todo ello, logrando un

    sistema completo y preparado para futuras extensiones

  • OBJETIVOS Y JUSTIFICACION DEL PROYECTO:

    El principal objetivo de este proyecto es el diseo y construccin de un robot mvil

    con patas, con presupuesto y complejidad reducidos.

    Este objetivo plantea esfuerzos de investigacin en los siguientes campos:

    -Diseo de estructuras mecnicas poliarticuladas, capaces de posicionar de

    manera eficiente el sistema robot (maximizacin del espacio alcanzable frente a

    minimizacin de colisiones entre los elementos).

    -Estudio y bsqueda de sistemas mecnicos de servocontrol (minimizacin del

    tamao, peso y coste frente a optimizacin del control en el sentido de fuerza

    ejercida y reduccin del error).

    - Arquitecturas de control (autonoma frente a control remoto).

    - Diseo de la electrnica de control y de los interfaces (estructuras

    digitales para el mantenimiento de las seales de posicionamiento

    y eleccin de dispositivos de entrada/salida para el control desde

    el software).

  • En la implantacin de todos estos sistemas se han encontrado los problemas y

    restricciones enumerados a continuacin:

    -Limitacin de presupuesto.

    -Limitada disponibilidad de materiales y de medios de mecanizacin de los

    mismos.

    -Escasez de documentacin sobre los dispositivos de servocontrol utilizados, y en

    general, sobre los robots de este tipo realizados en otros Lugares.

    -Limitacin de tiempo.

    -Espacio de trabajo reducido.

    En general, estos problemas no se han podido obviar. El resultado final se ha

    adaptado a las restricciones expuestas, consiguiendo pese a ello sus objetivos.

    Estos objetivos incluyen, aparte del ya mencionado criterio de bajo coste, otros

    ms generales:

    -Facilidad de reemplazo de componentes.

    -Modularidad y reusabilidad del software.

    -Sencillez de diseo.

    -Preparacin para futuras ampliaciones y/o mejoras.

  • ANTECEDENTES:

    La documentacin existente en el campo de los robots mviles con patas es

    relativamente escasa, y se limita al desarrollo de sistemas dirigidos a objetivos

    muy concretos. Por ello, durante la realizacin de este proyecto se pusieron en

    marcha ideas, que si no son nuevas en el campo de la computacin y la robtica,

    si lo son aplicadas a este tipo de robots. Tambin es a causa de esto por lo que el

    diseo tuvo una gran componente de invencin y experimentacin, apartndose

    en muchos casos de lo ya aplicado en este campo.

    Existen varias formas de clasificar robots. Desde un primer punto de vista,

    podemos dividir stos en Experimentales y aplicados La primera categora incluye

    aquellos robots de propsito general diseados para realizar un conjunto bastante

    amplio de experiencias, es decir, aquellos pensados con un estricto enfoque de

    investigacin. La segunda categora abarca los robots construidos con algn

    propsito especfico (industrial, de exploracin, etc...). En esta clasificacin Merlini

    entrara en el primer grupo, debido a que su construccin persigue la creacin de

    una lnea de investigacin en principio slo limitada por la estructura fsica del

    robot, estando abierta a cualquier tipo de experiencias que se adapten a esta

    restriccin.

    Desde otro punto de vista, se pueden encontrar robots mviles o estticos. Los

    robots industriales son fundamentalmente estticos, es decir, incapaces de

    desplazarse libremente por un entorno no limitado. Merlini es un robot mvil, por lo

    que a partir de ahora la clasificacin se centrar en este tipo de dispositivos.

    Dentro de los robots mviles, se encuentra una primera divisin en robots

    autnomos y no autnomos. Los primeros portan todo el software y hardware de

    control sobre la estructura mecnica. Esto les da un rango de alcance limitado

    nicamente por la duracin de las fuentes de alimentacin que utilicen, pero

    encarece y produce una mayor complejidad en el sistema. Merlini es un robot no

    autnomo. Es gobernado por un ordenador externo al que se comunica a travs

    de un Arduino Uno y Mdulos de RF.

  • Desde un segundo punto de vista, los robots mviles pueden clasificarse

    atendiendo al medio de locomocin que utilicen. Los robots con patas permiten

    desplazamientos ms eficientes sobre terrenos de cualquier tipo (rugosos, con

    obstculos o desniveles,...), adems de ofrecer un control de estabilidad ms

    completo y requerir menor potencia. Los robots con otro tipo de locomocin

    (ruedas, orugas, ...) simplifican el posicionamiento y los clculos necesarios para

    el mismo.

    Existen diversos sistemas con patas desarrollados por Universidades u otras

    entidades en los aos precedentes. A continuacin se comentan las

    caractersticas ms notables de algunos de ellos.

    ROBOTS DE UNA PATA: El ejemplo ms representativo es un robot desarrollado

    por el Instituto de Robtica y el Departamento de Informtica de la Universidad

    americana Carnegie-Mellon. Este dispositivo salta sobre su nica extremidad,

    buscando continuamente la estabilidad dinmica, ya que la esttica es imposible

    en general sobre menos de cuatro patas. Supone un gran esfuerzo en el

    desarrollo del sistema de control.

    ROBOTS BIPEDOS: Los robots de la serie VIPER,(diseados en la Universidad

    de Tokyo, pueden caminar lateralmente, avanzar y retroceder, simulando ms o

    menos aproximadamente el modo de andar humano.

    ROBOTS CUADRUPEDOS: Este tipo tiene ms representantes fuera de nuestro

    pas. En el Instituto Tecnolgico de Tokyo fue construido un vehculo de cuatro

    patas dotado de sensores tctiles y detector de posturas. Cada pata tiene 3

    grados de libertad. El control se realiza desde un microordenador que asegura la

    existencia de un tringulo de apoyo sobre 3 de las patas continuamente.

    ROBOTS HEXAPODOS: En la Universidad Estatal de Ohio ha sido desarrollado

    un robot con 6 patas que permite al operador tomar decisiones estratgicas,

    independientemente del posicionado particular de cada extremidad. Est basado

    en un sistema de control consistente en 13 computadores de a bordo Intel 86/30.

    En el Instituto de Robtica de la Carnegie-Mellon (EEUU) ha sido desarrollado el

    AMBLER, un robot hexpodo dirigido por programas especficamente diseados

    para optimizar el movimiento de avance sobre terrenos abruptos.

  • DISEO PRELIMINAR

    En este captulo se detalla el diseo que se llev a cabo previamente a la

    construccin de Merlini. En el mismo se exponen los problemas encontrados en la

    eleccin de la configuracin mecnica y electrnica del robot, y las soluciones a

    las que dieron lugar.

    CONFIGURACION Y DISTRIBUCION DE LAS PATAS:

    Existen varias configuraciones posibles para un robot con patas:

    -Aquellas que contemplan menos de cuatro patas presentan problemas ms

    propios de la Ingeniera de Control que de la Computacin. Dentro de los robots

    de ms de tres patas, los que nos interesan adoptan la forma de cuadrpedos o

    hexpodos.

    -Los robots cuadrpedos y hexpodos permiten un mayor desarrollo de los

    aspectos de planificacin del movimiento. En ellos los problemas derivados de la

    estabilidad estn relativamente simplificados o son susceptibles de simplificacin,

    con lo que el diseo del hardware de control se hace ms sencillo. Esto aade

    cierta complejidad al software, pero esa es la orientacin que se pretenda dar al

    proyecto.

    -No hay ninguna ventaja en usar una configuracin pentagonal (en todo caso

    puede presentar inconvenientes debido a la ms compleja simetra).

    -Robots de ms de seis patas slo son tiles en campos mucho ms especficos,

    adems de presentar un mayor coste.

  • Un concepto importante a la hora de elegir el nmero de patas del robot es el de

    estabilidad esttica. Este trmino se refiere a la capacidad del robot para

    permanecer estable (sin caerse) cuando no est en movimiento. Es ms fcil

    mantener la estabilidad esttica en un robot hexpodo que en uno cuadrpedo por

    un motivo muy sencillo: hay ms patas libres para reposicionar el cuerpo del robot

    mientras ste se apoya en tres de ellas. En un robot cuadrpedo, sin embargo,

    estamos obligados a utilizar un algoritmo de avance en el que las patas vayan

    alternndose, puesto que slo una est disponible una vez apoyado el robot en las

    otras tres.

    Por todos estos motivos, se escogi la configuracin hexpoda.

  • ESTRUCTURA DE PATAS:

    Para posicionar completamente el extremo de una pata hacen falta seis grados de libertad: tres para especificar la posicin y tres para especificar la orientacin. Sin embargo, puesto que el extremo de la pata se considerar puntual, no har falta especificar su orientacin. Por consiguiente, son necesarios solamente tres grados de libertad.

    ARQUITECTURA DE CONTROL:

    Arduino/RF

  • MARCO TEORICO:

    ARDUINO:

    Arduino es una plataforma de hardware libre, basada en una placa con un

    microcontrolador y un entorno de desarrollo, diseada para facilitar el uso de la

    electrnica en proyectos multidisciplinares.

    El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos

    de entrada/salida. Los microcontroladores ms usados son el Atmega168,

    Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el

    desarrollo de mltiples diseos. Por otro lado el software consiste en un entorno

    de desarrollo que implementa el lenguaje de programacin Processing/Wiring y el

    cargador de arranque que es ejecutado en la placa.

    Desde octubre de 2012, Arduino se usa tambin con microcontroladoras CortexM3

    de ARM de 32 bits, que coexistirn con las ms limitadas, pero tambin

    econmicas AVR de 8 bits. ARM y AVR no son plataformas compatibles a nivel

    binario, pero se pueden programar con el mismo IDE de Arduino y hacerse

    programas que compilen sin cambios en las dos plataformas. Eso s, las

    microcontroladoras CortexM3 usan 3,3V, a diferencia de la mayora de las placas

    con AVR que generalmente usan 5V. Sin embargo ya anteriormente se lanzaron

    placas Arduino con Atmel AVR a 3,3V como la Arduino Fio y existen compatibles

    de Arduino Nano y Pro como Meduino en que se puede conmutar el voltaje.

    Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede

    ser conectado a software tal como Adobe Flash, Processing, Max/MSP, Pure

    Data). Las placas se pueden montar a mano o adquirirse. El entorno de desarrollo

    integradolibre se puede descargar gratuitamente.

    Arduino puede tomar informacin del entorno a travs de sus entradas analgicas

    y digitales, puede controlar luces, motores y otros actuadores. El microcontrolador

    en la placa Arduino se programa mediante el lenguaje de programacin Arduino

    (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los

    proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un

    computador.

    http://es.wikipedia.org/wiki/Hardware_librehttp://es.wikipedia.org/wiki/Circuito_impresohttp://es.wikipedia.org/wiki/Microcontroladorhttp://es.wikipedia.org/wiki/Entorno_de_desarrollohttp://es.wikipedia.org/wiki/Hardwarehttp://es.wikipedia.org/wiki/AVRhttp://es.wikipedia.org/wiki/Entrada/salidahttp://es.wikipedia.org/w/index.php?title=Atmega168&action=edit&redlink=1http://es.wikipedia.org/wiki/Atmega328http://es.wikipedia.org/wiki/Atmega1280http://es.wikipedia.org/w/index.php?title=ATmega8&action=edit&redlink=1http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Processinghttp://es.wikipedia.org/wiki/Cargador_de_arranquehttp://es.wikipedia.org/wiki/Adobe_Flash_Professionalhttp://es.wikipedia.org/wiki/Processinghttp://es.wikipedia.org/wiki/Max/MSPhttp://es.wikipedia.org/wiki/Pure_Datahttp://es.wikipedia.org/wiki/Pure_Datahttp://es.wikipedia.org/wiki/Entorno_de_desarrollo_integradohttp://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado

  • El proyecto Arduino recibi una mencin honorfica en la categora de

    Comunidades Digital en el Prix Ars Electrnica de 2006

    MODULOS RF:

    Un radiotransmisor es un dispositivo electrnico que, mediante una antena, irradia ondas

    electromagnticas que contienen (o pueden contener) informacin, como ocurre en el caso de las

    seales de radio, televisin, telefona mvil o cualquier otro tipo de radiocomunicacin.

    Transmisor en el rea de comunicaciones es el origen de una sesin de comunicacin. Un

    transmisor es un equipo que emite una seal, cdigo o mensaje a travs de un medio. Para lograr

    una sesin de comunicacin se requiere: un transmisor, un medio y un receptor. En el ejemplo de

    una conversacin telefnica cuando Juan llama a Mara, Juan es el transmisor, Mara es el

    receptor, y el medio es la lnea telefnica.

    El transmisor de radio es un caso particular de transmisor, en el cual el soporte fsico de la

    comunicacin son ondas electromagnticas. El transmisor tiene como funcin codificar seales

    pticas, mecnicas o elctricas, amplificarlas, y emitirlas como ondas electromagnticas a travs

    de una antena. La codificacin elegida se llama modulacin. Ejemplos de modulacin son: la

    amplitud modulada o la frecuencia modulada.

    http://es.wikipedia.org/w/index.php?title=Prix_Ars_Electr%C3%B3nica&action=edit&redlink=1http://es.wikipedia.org/wiki/Electr%C3%B3nicohttp://es.wikipedia.org/wiki/Antenahttp://es.wikipedia.org/wiki/Onda_electromagn%C3%A9ticahttp://es.wikipedia.org/wiki/Onda_electromagn%C3%A9ticahttp://es.wikipedia.org/wiki/Radio_(medio_de_comunicaci%C3%B3n)http://es.wikipedia.org/wiki/Televisi%C3%B3nhttp://es.wikipedia.org/wiki/Telefon%C3%ADa_m%C3%B3vilhttp://es.wikipedia.org/wiki/Radiocomunicaci%C3%B3nhttp://es.wikipedia.org/wiki/Teor%C3%ADa_de_la_comunicaci%C3%B3nhttp://es.wikipedia.org/wiki/Comunicaci%C3%B3nhttp://es.wikipedia.org/wiki/Se%C3%B1alhttp://es.wikipedia.org/wiki/Medio_de_transmisi%C3%B3nhttp://es.wikipedia.org/wiki/Receptorhttp://es.wikipedia.org/wiki/Ondas_electromagn%C3%A9ticashttp://es.wikipedia.org/wiki/Antenahttp://es.wikipedia.org/wiki/Modulaci%C3%B3n_(telecomunicaci%C3%B3n)http://es.wikipedia.org/wiki/Amplitud_moduladahttp://es.wikipedia.org/wiki/Frecuencia_modulada

  • SERVOMOTORES:

    Un servomotor (tambin llamado servo) es un dispositivo similar a un motor de corriente continua

    que tiene la capacidad de ubicarse en cualquier posicin dentro de su rango de operacin, y

    mantenerse estable en dicha posicin.

    Un servomotor es un motor elctrico que puede ser controlado tanto en velocidad como en

    posicin.

    Es posible modificar un servomotor para obtener un motor de corriente continua que, si bien ya

    no tiene la capacidad de control del servo, conserva la fuerza, velocidad y baja inercia que

    caracteriza a estos dispositivos.

    Los servomotores hacen uso de la modulacin por ancho de pulsos (PWM) para controlar la

    direccin o posicin de los motores de corriente continua. La mayora trabaja en la frecuencia de

    los cincuenta hercios, as las seales PWM tendrn un periodo de veinte milisegundos. La

    electrnica dentro del servomotor responder al ancho de la seal modulada. Si los circuitos

    dentro del servomotor reciben una seal de entre 0,5 a 1,4 milisegundos, ste se mover en

    sentido horario; entre 1,6 a 2 milisegundos mover el servomotor en sentido antihorario; 1,5

    milisegundos representa un estado neutro para los servomotores estndares

    http://es.wikipedia.org/wiki/Motor_de_corriente_continuahttp://es.wikipedia.org/wiki/Modulaci%C3%B3n_por_ancho_de_pulsoshttp://es.wikipedia.org/wiki/Motor_de_corriente_continuahttp://es.wikipedia.org/wiki/Herciohttp://es.wikipedia.org/wiki/Milisegundo

  • RASPBERRY PI:

    Raspberry Pi es un ordenador de placa reducida o (placa nica) (SBC) de bajo coste, desarrollado

    en Reino Unido por la Fundacin Raspberry Pi, con el objetivo de estimular la enseanza de

    ciencias de la computacin en las escuelas.

    El diseo incluye un System-on-a-chip Broadcom BCM2835, que contiene un procesador central

    (CPU) ARM1176JZF-S a 700 MHz (el firmware incluye unos modos Turbo para que el usuario

    pueda hacerle overclock de hasta 1 GHz sin perder la garanta), un procesador grfico (GPU)

    VideoCore IV, y 512 MiB de memoria RAM (aunque originalmente al ser lanzado eran 256 MiB). El

    diseo no incluye un disco duro ni unidad de estado slido, ya que usa una tarjeta SD para el

    almacenamiento permanente; tampoco incluye fuente de alimentacin ni carcasa. El 29 de febrero

    de 2012 la fundacin empez a aceptar rdenes de compra del modelo B, y el 4 de febrero de

    2013 del modelo A.

    La fundacin da soporte para las descargas de las distribuciones para arquitectura ARM, Raspbian

    (derivada de Debian), RISC OS 5, Arch Linux ARM (derivado de Arch Linux) y Pidora (derivado de

    Fedora); y promueve principalmente el aprendizaje dellenguaje de programacin Python . Otros

    lenguajes tambin soportados son Tiny BASIC C, Perl y Ruby.

    http://es.wikipedia.org/wiki/Placa_computadorahttp://es.wikipedia.org/wiki/Reino_Unidohttp://es.wikipedia.org/wiki/Ciencias_de_la_computaci%C3%B3nhttp://es.wikipedia.org/wiki/System_on_a_chiphttp://es.wikipedia.org/wiki/Broadcomhttp://es.wikipedia.org/wiki/Unidad_central_de_procesamientohttp://es.wikipedia.org/wiki/Arquitectura_ARMhttp://es.wikipedia.org/wiki/MHzhttp://es.wikipedia.org/wiki/Unidad_de_procesamiento_gr%C3%A1ficohttp://es.wikipedia.org/w/index.php?title=VideoCore&action=edit&redlink=1http://es.wikipedia.org/wiki/MiBhttp://es.wikipedia.org/wiki/Memoria_RAMhttp://es.wikipedia.org/wiki/Disco_durohttp://es.wikipedia.org/wiki/Unidad_de_estado_s%C3%B3lidohttp://es.wikipedia.org/wiki/Tarjeta_SDhttp://es.wikipedia.org/wiki/Fuente_de_alimentaci%C3%B3nhttp://es.wikipedia.org/wiki/Raspbianhttp://es.wikipedia.org/wiki/Debianhttp://es.wikipedia.org/wiki/RISC_OShttp://es.wikipedia.org/wiki/Arch_Linuxhttp://es.wikipedia.org/wiki/Fedora_(distribuci%C3%B3n_Linux)http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Pythonhttp://es.wikipedia.org/wiki/Tiny_BASIChttp://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)http://es.wikipedia.org/wiki/Perl

  • CARACTERISTICAS:

    En enero de 2012, encuestas hechas en el Reino Unido acerca de la penetracin en las aulas de

    Raspberry Pi concluyeron que por cada placa que haba en un colegio pblico, haba cinco en

    colegios privados. Por ello se espera que en un futuro empresas patrocinen la adquisicin de

    placas en colegios pblicos

    El CEO de Premier Farnell declar que el gobierno de un pas de medio oriente expres inters en

    proveer una placa a cada chica estudiante, con el objetivo de mejorar sus expectativas de empleo

    en el futuro-

    A finales de enero de 2013, se dio a conocer que Google, junto con la ayuda de otros 6 socios,

    repartira 15.000 placas entre estudiantes del Reino Unido que mostraran motivacin por las

    ciencias de la computacin.

    http://es.wikipedia.org/wiki/Colegio_p%C3%BAblicohttp://es.wikipedia.org/wiki/Medio_oriente

  • Software de Desarrollo de Sistemas NI LabVIEW:

    El software LabVIEW es ideal para cualquier sistema de medidas y control y el

    corazn de la plataforma de diseo de NI. Al integrar todas las herramientas que

    los ingenieros y cientficos necesitan para construir una amplia variedad de

    aplicaciones en mucho menos tiempo, NI LabVIEW es un entorno de desarrollo

    para resolver problemas, productividad acelerada y constante innovacin.

    LabVIEW es una plataforma de programacin grfica que ayuda a ingenieros a

    escalar desde el diseo hasta pruebas y desde sistemas pequeos hasta grandes

    sistemas. Ofrece integracin sin precedentes con software legado existente, IP y

    hardware al aprovechar las ltimas tecnologas de cmputo. LabVIEW ofrece

    herramientas para resolver los problemas de hoy en da y la capacidad para la

    futura innovacin, ms rpido y de manera ms eficiente.

    El software de diseo de sistemas NI LabVIEW est en el centro de la plataforma

    de National Instruments. Al proporcionar extensas herramientas que usted

    necesita para construir cualquier aplicacin de medida o control en mucho menos

    tiempo, NI LabVIEW es el entorno de desarrollo ideal para la innovacin,

    descubrimiento y resultados acelerados. Combine la potencia del software

    LabVIEW con hardware modular y reconfigurable para resolver la creciente

    complejidad involucrada de proporcionar sistemas de medida y control a tiempo y

    dentro del presupuesto

  • DIAGRAMA EJEMPLO DE LABVIEW:

    Cmara Web LOGITECHC170:

    Una cmara web o cmara de red1 (en ingls: webcam) es una pequea cmara

    digital conectada a una computadora la cual puede capturar imgenes y

    transmitirlas a travs de Internet, ya sea a una pgina web o a otra u otras

    computadoras de forma privada.

    Las cmaras web necesitan una computadora para transmitir las imgenes. Sin

    embargo, existen otras cmaras autnomas que tan slo necesitan un punto de

    acceso a la red informtica, bien sea ethernet o inalmbrico. Para diferenciarlas de

    las cmaras web se las denominacmaras de red.

    http://es.wikipedia.org/wiki/C%C3%A1mara_web#cite_note-1http://es.wikipedia.org/wiki/Idioma_ingl%C3%A9shttp://es.wikipedia.org/wiki/C%C3%A1mara_digitalhttp://es.wikipedia.org/wiki/C%C3%A1mara_digitalhttp://es.wikipedia.org/wiki/Computadorahttp://es.wikipedia.org/wiki/Internethttp://es.wikipedia.org/wiki/P%C3%A1gina_webhttp://es.wikipedia.org/wiki/Ethernethttp://es.wikipedia.org/wiki/Red_inal%C3%A1mbricahttp://es.wikipedia.org/wiki/C%C3%A1mara_de_red

  • Tambin son muy utilizadas en mensajera instantnea y chat como en Windows

    Live Messenger,Yahoo! Messenger, Ekiga, Skype etc. En el caso del MSN

    Messenger aparece un icono indicando que la otra persona tiene cmara web. Por

    lo general puede transmitir imgenes en vivo, pero tambin puede capturar

    imgenes o pequeos videos (dependiendo del programa de la cmara web) que

    pueden ser grabados y transmitidos por Internet. Este se clasifica como dispositivo

    de entrada, ya que por medio de l podemos transmitir imgenes hacia la

    computadora.

    En astronoma amateur las cmaras web de cierta calidad pueden ser utilizadas

    para registrar tomas planetarias, lunares y hasta hacer algunos estudios

    astromtricos de estrellas binarias. Ciertas modificaciones pueden lograr

    exposiciones prolongadas que permiten obtener imgenes de objetos tenues de

    cielo profundo como galaxias, nebulosas, etc.

    Gracias a la instalacin Plug and play, la calidad de vdeo VGA y el micrfono

    integrado, esta cmara web es la manera ms sencilla de iniciar videoconferencias

    y enviar bonitas fotografas de alta resolucin

    http://es.wikipedia.org/wiki/Mensajer%C3%ADa_instant%C3%A1neahttp://es.wikipedia.org/wiki/Chathttp://es.wikipedia.org/wiki/Windows_Live_Messengerhttp://es.wikipedia.org/wiki/Windows_Live_Messengerhttp://es.wikipedia.org/wiki/Yahoo!_Messengerhttp://es.wikipedia.org/wiki/Ekigahttp://es.wikipedia.org/wiki/Skypehttp://es.wikipedia.org/wiki/Astronom%C3%ADa

  • METODOS Y PROCEDIMIENTOS:

    Instalacin del Sistema Operativo en la Raspberry Pi:

    Raspbian es una distribucin (por supuesto libre) basada en Debian optimizada

    para correr sobre el hardware de la Raspberry Pi.

    A modo de ejemplo, se instalara Raspbian utilizando una tarjeta de memoria SD.

    En mi sistema la tarjeta de memoria es detectada como el dispositivo /dev/sdc.

    Se observa que la tarjeta no posee tabla de particiones:

    A continuacin descargamos la ltima versin de Raspbian desde el siguiente

    enlace:

    http://downloads.raspberrypi.org/raspbian_latest

    Encendemos la Raspberry, como no posee botn de encendido slo se debe

    conectar la alimentacin en el puerto Micro USB:

    http://downloads.raspberrypi.org/raspbian_latest

  • Luego del proceso de inicio del sistema se abre la herramienta raspi-config, la cual se utiliza

    para configurar Raspbian.

    Expansin del sistema de archivos

    La imagen est preparada para utilizar cualquier dispositivo de al menos 4Gb. El primer paso

    consiste en expandir el filesystem para que ocupe toda la capacidad de la tarjeta SD:

    Luego de seleccionar "Expand Filesystem" el proceso de expansin se realizar en el siguiente

    reinicio (boot):

  • Configuracin de la interfaz ethernet

    Una vez reiniciado podemos ver el bonito escritorio LXDE:

    El ltimo paso es configurar la interfaz ethernet eth0:

    http://www.lxde.org/

  • Como usuario root (sudo su) editar el archivo /etc/network/interfaces:

    Guardar y cerrar el archivo. En el siguiente reinicio, levanta la direccin IP configurada:

  • INSTALACION DE WEBCAM:

    Aplicacin para visualizar la imagen a travs de un navegador: mjpg-streamer-code-181

    Putty para conectarnos a la raspberry.

    Una vez conectada la cmara ejecutamos lsusb para comprobar que nos la reconoce el

    sistema.

    -lsusb

    Debera aparecer algo asi:

    Bus 001 Device 004: ID 046d:0804 Logitech, Inc. Webcam C250

    Actualizamos y instalamos librerias necerias

    sudo apt-get update

    sudo apt-get install libjpeg8-dev imagemagick subversion

    Descomprimimos la aplicacin streamer descargada y compilamos

    cd mjpg-streamer/mjpg-streamer

    make

    Lanzamos la aplicacin

    ./mjpg\_streamer -i "./input\_uvc.so -y -n " -o "./output_http.so -n -w ./www" &

    Y nos debera mostrar las configuraciones predeterminadas

    MJPG Streamer Version: svn rev: 3:172

    i: Using V4L2 device.: /dev/video0 i: Desired Resolution: 640 x 480

    i: Frames Per Second.: 5

    i: Format............: YUV

    i: JPEG Quality......: 80

    o: www-folder-path...: ./www/

    o: HTTP TCP port.....: 808

    0 o: username:password.: disabled

    o: commands..........: disabled

    http://sistemas01.com/wp-content/uploads/2013/07/mjpg-streamer-code-181.zip

  • Finalmente desde un navegador abrimos

    http://ip_del_raspberry:8080

    ESTRUCTURA DE ACRILICO:

    Primero se empez Realizando las estructuras en acrlico tomando en cuenta el

    tamao de los servomotores.

    http://ip_del_raspberry:8080/

  • Seguidamente se empez a armar las piezas con los Servomotores.

    Finalmente Quedando de esta Forma.

  • PROGRAMACION:

    Posteriormente se Realiz la programacin para el control del robot hexpodo. La

    programacin se realiz en Procesing que es el lenguaje del Arduino.

    TRANSMISOR

    Diagrama de Flujo:

    P = 5 ENVIAR C = A

    P = 6 ENVIAR C = D

    P = 7 ENVIAR C = F

    P = 8 ENVIAR C = H

    ENVIAR C = J

    INICIO

  • PROGRAMA:

    #include

    int boton = 5;

    int boton2 = 6;

    int boton3 = 7;

    int boton4 = 8;

    char *msg = "";

    int ab = 0;

    int eb = 0;

    int ib = 0;

    int ob = 0;

    void setup(){

    vw_setup(7000);

    pinMode(boton, INPUT);

    pinMode(boton2, INPUT);

    pinMode(boton3, INPUT);

    pinMode(boton4, INPUT);

    }

    void loop () {

    ab = digitalRead(boton);

    if ( ab == HIGH) {

    msg = "A";

    vw_send((uint8_t *)msg, strlen(msg));

    }

    else {

    msg = "B";

    vw_send((uint8_t *)msg, strlen(msg));

    } // y lo enviamos

    eb = digitalRead(boton2);

    if( eb == HIGH){

    msg = "C";

    vw_send((uint8_t *)msg, strlen(msg));

    }

    else {

    msg = "D";

    vw_send((uint8_t *)msg, strlen(msg));

    }

    ib = digitalRead(boton3);

    if ( ib == HIGH) {

    msg = "E";

    vw_send((uint8_t *)msg, strlen(msg));

    }

    else {

    msg = "F";

    vw_send((uint8_t *)msg, strlen(msg));

    }

    ob = digitalRead(boton4);

    if ( ob == HIGH) {

    msg = "G";

    vw_send((uint8_t *)msg, strlen(msg));

    }

    else {

  • msg = "H";

    vw_send((uint8_t *)msg, strlen(msg));

    }

    }

    RECEPTOR:

    Diagrama de Flujo:

    INICIO

    C = A PIN6 = 1

    P = C PIN7 = 1

    P = E PIN8 = 1

    P = G PIN9 = 1

    PIN 6, 7, 8, 9 = 0

  • PROGRAMA:

    #include

    int led = 6;

    int led2 = 7;

    int led3 = 8;

    int led4 = 9;

    void setup() {

    vw_setup(7000);

    vw_rx_start();

    pinMode(led, OUTPUT);

    pinMode(led2, OUTPUT);

    pinMode(led3, OUTPUT);

    pinMode(led4, OUTPUT);

    }

    void loop(){

    uint8_t msg[VW_MAX_MESSAGE_LEN];

    uint8_t len = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(msg, &len)){

    if ( msg[0] == 'A') {

    digitalWrite(led, HIGH);

    delay (100);

    }

    if (msg[0] == 'B'){

    digitalWrite(led, LOW);

    delay(100);

    }

    if ( msg[0] == 'C') {

    digitalWrite(led2, HIGH);

    delay (100);

    }

    if (msg[0] == 'D'){

    digitalWrite(led2, LOW);

    delay(100);

    }

    if ( msg[0] == 'E') {

    digitalWrite(led3, HIGH);

    delay (100);

    }

    if (msg[0] == 'F'){

    digitalWrite(led3, LOW);

    delay(100);

    }

    if ( msg[0] == 'G') {

    digitalWrite(led4, HIGH);

    delay (100);

    }

    if (msg[0] == 'H'){

    digitalWrite(led4, LOW);

    delay(100);

    }

    }

  • CONTROLADOR DE SERVOS (ARDUINO MEGA):

    Diagrama de Flujo:

    INICIO

    PIN6

    = 1 AVANZAR

    PIN7

    = 1 RETROCEDER

    PIN8

    = 1 DERECHA

    PIN9

    = 1 IZQUIERDA

    PIN 6, 7, 8, 9 = 0

  • PROGRAMA:

    #include

    int pin2 = 2;

    int pin3 = 3;

    int pin4 = 4;

    int pin5 = 5;

    int pin6 = 6;

    int pin7 = 7;

    int pin8 = 8;

    int pin9 = 9;

    int valor6 = 0;

    int valor7 = 0;

    int valor8 = 0;

    int valor9 = 0;

    Servo servo20;

    Servo servo21;

    Servo servo22;

    Servo servo24;

    Servo servo26;

    Servo servo28;

    Servo servo30;

    Servo servo32;

    Servo servo34;

    Servo servo36;

    Servo servo38;

    Servo servo40;

    Servo servo42;

    Servo servo44;

    Servo servo46;

    Servo servo48;

    Servo servo50;

    Servo servo52;

    void setup() {

    pinMode(pin2, OUTPUT);

    pinMode(pin3, OUTPUT);

    pinMode(pin4, OUTPUT);

    pinMode(pin5, OUTPUT);

    pinMode(pin6, INPUT);

    pinMode(pin7, INPUT);

    pinMode(pin8, INPUT);

    pinMode(pin9, INPUT);

    servo20.attach(20);

    servo21.attach(21);

    servo22.attach(22);

    servo24.attach(24);

    servo26.attach(26);

    servo28.attach(28);

    servo30.attach(30);

    servo32.attach(32);

    servo34.attach(34);

    servo36.attach(36);

    servo38.attach(38);

    servo40.attach(40);

    servo42.attach(42);

  • servo44.attach(44);

    servo46.attach(46);

    servo48.attach(48);

    servo50.attach(50);

    servo52.attach(52);

    servo52.write(90);

    servo40.write(90);

    servo26.write(90);

    servo20.write(90);

    servo21.write(90);

    servo22.write(90);

    servo24.write(90);

    servo28.write(90);

    servo30.write(90);

    servo32.write(90);

    servo34.write(90);

    servo36.write(90);

    servo38.write(90);

    servo42.write(90);

    servo44.write(90);

    servo46.write(90);

    servo48.write(90);

    servo50.write(90);

    }

    void loop(){

    valor6 = digitalRead(pin6); //Adelante

    if (valor6 == HIGH) {

    digitalWrite(pin2, HIGH);

    digitalWrite(pin3, LOW);

    digitalWrite(pin4, LOW);

    digitalWrite(pin5, LOW);

    servo52.write(95);

    servo50.write(110);

    servo48.write(100);

    servo40.write(95);

    servo38.write(110);

    servo36.write(100);

    servo26.write(85);

    servo28.write(70);

    servo24.write(80);

    servo22.write(90);

    servo34.write(90);

    servo46.write(90);

    delay(250);

    servo50.write(90);

    servo48.write(90);

    servo38.write(90);

    servo36.write(90);

    servo28.write(90);

    servo24.write(90);

    servo22.write(95);

    servo34.write(95);

    servo46.write(85);

    delay(250);

    servo22.write(85);

    servo21.write(70);

  • servo20.write(80);

    servo34.write(85);

    servo32.write(70);

    servo30.write(80);

    servo46.write(95);

    servo44.write(110);

    servo42.write(100);

    servo52.write(90);

    servo40.write(90);

    servo26.write(90);

    delay(250);

    servo20.write(90);

    servo21.write(90);

    servo30.write(90);

    servo32.write(90);

    servo44.write(90);

    servo42.write(90);

    servo52.write(85);

    servo40.write(85);

    servo26.write(95);

    delay(250);

    }

    else {

    digitalWrite(pin2, LOW);

    digitalWrite(pin3, LOW);

    digitalWrite(pin4, LOW);

    digitalWrite(pin5, LOW);

    }

    valor7 = digitalRead(pin7); //Atras

    if (valor7 == HIGH){

    digitalWrite(pin2, LOW);

    digitalWrite(pin3, HIGH);

    digitalWrite(pin4, LOW);

    digitalWrite(pin5, LOW);

    servo52.write(85);

    servo50.write(110);

    servo48.write(100);

    servo40.write(85);

    servo38.write(110);

    servo36.write(100);

    servo26.write(95);

    servo28.write(70);

    servo24.write(80);

    servo22.write(90);

    servo34.write(90);

    servo46.write(90);

    delay(250);

    servo50.write(90);

    servo48.write(90);

    servo38.write(90);

    servo36.write(90);

    servo28.write(90);

    servo24.write(90);

    servo22.write(85);

    servo34.write(85);

    servo46.write(95);

    delay(250);

  • servo22.write(95);

    servo21.write(70);

    servo20.write(80);

    servo34.write(95);

    servo32.write(70);

    servo30.write(80);

    servo46.write(85);

    servo44.write(110);

    servo42.write(100);

    servo52.write(90);

    servo40.write(90);

    servo26.write(90);

    delay(250);

    servo20.write(90);

    servo21.write(90);

    servo30.write(90);

    servo32.write(90);

    servo44.write(90);

    servo42.write(90);

    servo52.write(95);

    servo40.write(95);

    servo26.write(85);

    delay(250);

    }

    else{

    digitalWrite(pin2, LOW);

    digitalWrite(pin3, LOW);

    digitalWrite(pin4, LOW);

    digitalWrite(pin5, LOW);

    }

    valor8 = digitalRead(pin8); //Derecha

    if (valor8 == HIGH){

    digitalWrite(pin2, LOW);

    digitalWrite(pin3, LOW);

    digitalWrite(pin4, HIGH);

    digitalWrite(pin5, LOW);

    servo52.write(95);

    servo50.write(110);

    servo48.write(100);

    servo40.write(95);

    servo38.write(110);

    servo36.write(100);

    servo26.write(95);

    servo28.write(70);

    servo24.write(80);

    servo22.write(90);

    servo34.write(90);

    servo46.write(90);

    delay(250);

    servo50.write(90);

    servo48.write(90);

    servo38.write(90);

    servo36.write(90);

    servo28.write(90);

    servo24.write(90);

    servo22.write(85);

    servo34.write(85);

  • servo46.write(85);

    delay(250);

    servo22.write(95);

    servo21.write(70);

    servo20.write(80);

    servo34.write(95);

    servo32.write(70);

    servo30.write(80);

    servo46.write(95);

    servo44.write(110);

    servo42.write(100);

    servo52.write(90);

    servo40.write(90);

    servo26.write(90);

    delay(250);

    servo20.write(90);

    servo21.write(90);

    servo30.write(90);

    servo32.write(90);

    servo44.write(90);

    servo42.write(90);

    servo52.write(85);

    servo40.write(85);

    servo26.write(85);

    delay(250);

    }

    else{

    digitalWrite(pin2, LOW);

    digitalWrite(pin3, LOW);

    digitalWrite(pin4, LOW);

    digitalWrite(pin5, LOW);

    }

    valor9 = digitalRead(pin9); //Izquierda

    if (valor9 == HIGH){

    digitalWrite(pin2, LOW);

    digitalWrite(pin3, LOW);

    digitalWrite(pin4, LOW);

    digitalWrite(pin5, HIGH);

    servo52.write(85);

    servo50.write(110);

    servo48.write(100);

    servo40.write(85);

    servo38.write(110);

    servo36.write(100);

    servo26.write(85);

    servo28.write(70);

    servo24.write(80);

    servo22.write(90);

    servo34.write(90);

    servo46.write(90);

    delay(250);

    servo50.write(90);

    servo48.write(90);

    servo38.write(90);

    servo36.write(90);

    servo28.write(90);

    servo24.write(90);

  • servo22.write(95);

    servo34.write(95);

    servo46.write(95);

    delay(250);

    servo22.write(85);

    servo21.write(70);

    servo20.write(80);

    servo34.write(85);

    servo32.write(70);

    servo30.write(80);

    servo46.write(85);

    servo44.write(110);

    servo42.write(100);

    servo52.write(90);

    servo40.write(90);

    servo26.write(90);

    delay(250);

    servo20.write(90);

    servo21.write(90);

    servo30.write(90);

    servo32.write(90);

    servo44.write(90);

    servo42.write(90);

    servo52.write(95);

    servo40.write(95);

    servo26.write(95);

    delay(250);

    }

    else{

    digitalWrite(pin2, LOW);

    digitalWrite(pin3, LOW);

    digitalWrite(pin4, LOW);

    digitalWrite(pin5, LOW);

    }

    }

  • CONCLUSIONES:

    Me ha gustado mucho el compendio de acciones llevadas a cabo para la

    consecucin del robot. Los objetivos alcanzados han sido la realizacin de:

    Streaming en tiempo real Con la Raspberry Pi.

    Funcionamiento Correcto de los modulos de RF.

    Locomocion del Robot.

    REFERENCIAS BIBLIOGRAFICAS:

    -Diseo e implementacin de un robot mvil hexpodo Alejandor Arango S.

    -Desarrollo de Proyecto RPi. TEC Bolivia

    -Robot Hexapodo Spidi Rodrigo Garcia.

    -Diseo de un Robot Hexapodo Juan Antonio Fernandez Madrigal.

  • ANEXOS: