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

AGRADECIMIENTOS:

A mis Padres por su apoyo
Moral y económico.

INTRODUCCION:

Se ha llevado a cabo el diseño y construcción de un robot móvil articulado con
patas controlado por ordenador. Se partió de un objetivo primordial: realizar el
diseño 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 Investigación,
tanto Dentro como fuera de nuestro país.
No se partió de ningún trabajo previo, salvo la documentación citada en la
bibliografía, diseñándose todos los sistemas mecánicos, electrónicos e
informáticos que se consideraron necesarios. Se experimentó con diversas
estructuras mecánicas, servomecanismos de posicionamiento, electrónica de
generación de señales. 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 diseño y construcción de un robot móvil
con patas, con presupuesto y complejidad reducidos.

Este objetivo plantea esfuerzos de investigación en los siguientes campos:

-Diseño de estructuras mecánicas poliarticuladas, capaces de posicionar de
manera eficiente el sistema robot (maximización del espacio alcanzable frente a
minimización de colisiones entre los elementos).

-Estudio y búsqueda de sistemas mecánicos de servocontrol (minimización del
tamaño, peso y coste frente a optimización del control en el sentido de fuerza
ejercida y reducción del error).

- Arquitecturas de control (autonomía frente a control remoto).

- Diseño de la electrónica de control y de los interfaces (estructuras
digitales para el mantenimiento de las señales de posicionamiento
y elección de dispositivos de entrada/salida para el control desde
el software).

. -Modularidad y reusabilidad del software.En la implantación de todos estos sistemas se han encontrado los problemas y restricciones enumerados a continuación: -Limitación de presupuesto. -Escasez de documentación sobre los dispositivos de servocontrol utilizados. sobre los robots de este tipo realizados en otros Lugares. -Espacio de trabajo reducido. Estos objetivos incluyen. y en general. En general. -Limitación de tiempo. consiguiendo pese a ello sus objetivos. -Limitada disponibilidad de materiales y de medios de mecanización de los mismos. -Sencillez de diseño. El resultado final se ha adaptado a las restricciones expuestas. -Preparación para futuras ampliaciones y/o mejoras. aparte del ya mencionado criterio de bajo coste. estos problemas no se han podido obviar. otros más generales: -Facilidad de reemplazo de componentes.

Es gobernado por un ordenador externo al que se comunica a través de un Arduino Uno y Módulos de RF. pero encarece y produce una mayor complejidad en el sistema. Merlini es un robot no autónomo. Existen varias formas de clasificar robots. durante la realización de este proyecto se pusieron en marcha ideas.). de exploración. . debido a que su construcción persigue la creación de una línea de investigación en principio sólo limitada por la estructura física del robot.. aquellos pensados con un estricto enfoque de investigación. etc. y se limita al desarrollo de sistemas dirigidos a objetivos muy concretos. Por ello. por lo que a partir de ahora la clasificación se centrará en este tipo de dispositivos.ANTECEDENTES: La documentación existente en el campo de los robots móviles con patas es relativamente escasa.. Los robots industriales son fundamentalmente estáticos. También es a causa de esto por lo que el diseño tuvo una gran componente de invención y experimentación. Merlini es un robot móvil. si lo son aplicadas a este tipo de robots. Desde un primer punto de vista. La segunda categoría abarca los robots construidos con algún propósito específico (industrial. se pueden encontrar robots móviles o estáticos. En esta clasificación Merlini entraría en el primer grupo. es decir. Esto les da un rango de alcance limitado únicamente por la duración de las fuentes de alimentación que utilicen. podemos dividir éstos en Experimentales y aplicados La primera categoría incluye aquellos robots de propósito general diseñados para realizar un conjunto bastante amplio de experiencias. es decir. que si no son nuevas en el campo de la computación y la robótica. estando abierta a cualquier tipo de experiencias que se adapten a esta restricción. Los primeros portan todo el software y hardware de control sobre la estructura mecánica. Dentro de los robots móviles. apartándose en muchos casos de lo ya aplicado en este campo. incapaces de desplazarse libremente por un entorno no limitado. Desde otro punto de vista. se encuentra una primera división en robots autónomos y no autónomos.

Supone un gran esfuerzo en el desarrollo del sistema de control. . buscando continuamente la estabilidad dinámica.. con obstáculos o desniveles. ROBOTS CUADRUPEDOS: Este tipo tiene más representantes fuera de nuestro país.(diseñados en la Universidad de Tokyo. El control se realiza desde un microordenador que asegura la existencia de un triángulo de apoyo sobre 3 de las patas continuamente. avanzar y retroceder. pueden caminar lateralmente. Existen diversos sistemas con patas desarrollados por Universidades u otras entidades en los años precedentes. En el Instituto de Robótica de la Carnegie-Mellon (EEUU) ha sido desarrollado el AMBLER. Está basado en un sistema de control consistente en 13 computadores de a bordo Intel 86/30. ROBOTS DE UNA PATA: El ejemplo más representativo es un robot desarrollado por el Instituto de Robótica y el Departamento de Informática de la Universidad americana Carnegie-Mellon. simulando más o menos aproximadamente el modo de andar humano.Desde un segundo punto de vista. un robot hexápodo dirigido por programas específicamente diseñados para optimizar el movimiento de avance sobre terrenos abruptos. además de ofrecer un control de estabilidad más completo y requerir menor potencia. los robots móviles pueden clasificarse atendiendo al medio de locomoción que utilicen. A continuación se comentan las características más notables de algunos de ellos. En el Instituto Tecnológico de Tokyo fue construido un vehículo de cuatro patas dotado de sensores táctiles y detector de posturas. Los robots con patas permiten desplazamientos más eficientes sobre terrenos de cualquier tipo (rugosos. Cada pata tiene 3 grados de libertad.. ya que la estática es imposible en general sobre menos de cuatro patas.).) simplifican el posicionamiento y los cálculos necesarios para el mismo.. . Los robots con otro tipo de locomoción (ruedas. independientemente del posicionado particular de cada extremidad.. orugas. Este dispositivo salta sobre su única extremidad. ROBOTS HEXAPODOS: En la Universidad Estatal de Ohio ha sido desarrollado un robot con 6 patas que permite al operador tomar decisiones estratégicas. ROBOTS BIPEDOS: Los robots de la serie VIPER..

Dentro de los robots de más de tres patas. pero esa es la orientación que se pretendía dar al proyecto. y las soluciones a las que dieron lugar. -Robots de más de seis patas sólo son útiles en campos mucho más específicos. -No hay ninguna ventaja en usar una configuración pentagonal (en todo caso puede presentar inconvenientes debido a la más compleja simetría). -Los robots cuadrúpedos y hexápodos permiten un mayor desarrollo de los aspectos de planificación del movimiento. .DISEÑO PRELIMINAR En este capítulo se detalla el diseño que se llevó a cabo previamente a la construcción de Merlini. En el mismo se exponen los problemas encontrados en la elección de la configuración mecánica y electrónica del robot. con lo que el diseño del hardware de control se hace más sencillo. CONFIGURACION Y DISTRIBUCION DE LAS PATAS: Existen varias configuraciones posibles para un robot con patas: -Aquellas que contemplan menos de cuatro patas presentan problemas más propios de la Ingeniería de Control que de la Computación. En ellos los problemas derivados de la estabilidad están relativamente simplificados o son susceptibles de simplificación. además de presentar un mayor coste. Esto añade cierta complejidad al software. los que nos interesan adoptan la forma de cuadrúpedos o hexápodos.

Un concepto importante a la hora de elegir el número de patas del robot es el de estabilidad estática. se escogió la configuración hexápoda. En un robot cuadrúpedo. puesto que sólo una está disponible una vez apoyado el robot en las otras tres. Por todos estos motivos. . estamos obligados a utilizar un algoritmo de avance en el que las patas vayan alternándose. Es más fácil mantener la estabilidad estática en un robot hexápodo que en uno cuadrúpedo por un motivo muy sencillo: hay más patas libres para reposicionar el cuerpo del robot mientras éste se apoya en tres de ellas. sin embargo. Este término se refiere a la capacidad del robot para permanecer estable (sin caerse) cuando no está en movimiento.

Por consiguiente. son necesarios solamente tres grados de libertad. no hará falta especificar su orientación. puesto que el extremo de la pata se considerará puntual. Sin embargo.ESTRUCTURA DE PATAS: Para posicionar completamente el extremo de una pata hacen falta seis grados de libertad: tres para especificar la posición y tres para especificar la orientación. ARQUITECTURA DE CONTROL: Arduino/RF .

que coexistirán con las más limitadas. las microcontroladoras CortexM3 usan 3.3V como la Arduino Fio y existen compatibles de Arduino Nano y Pro como Meduino en que se puede conmutar el voltaje.MARCO TEORICO: ARDUINO: Arduino es una plataforma de hardware libre. basada en una placa con un microcontrolador y un entorno de desarrollo. pero también económicas AVR de 8 bits. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranque que es ejecutado en la placa. motores y otros actuadores. Sin embargo ya anteriormente se lanzaron placas Arduino con Atmel AVR a 3. Las placas se pueden montar a mano o adquirirse. puede controlar luces. Atmega328. El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Max/MSP. pero se pueden programar con el mismo IDE de Arduino y hacerse programas que compilen sin cambios en las dos plataformas. Desde octubre de 2012. Pure Data). Eso sí. Arduino puede tomar información del entorno a través de sus entradas analógicas y digitales. Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un computador. diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares. El entorno de desarrollo integradolibre se puede descargar gratuitamente. . Arduino se usa también con microcontroladoras CortexM3 de ARM de 32 bits. a diferencia de la mayoría de las placas con AVR que generalmente usan 5V. Atmega1280. Processing.3V. Los microcontroladores más usados son el Atmega168. ARM y AVR no son plataformas compatibles a nivel binario. ATmega8 por su sencillez y bajo coste que permiten el desarrollo de múltiples diseños. Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software tal como Adobe Flash. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programación Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing).

mecánicas o eléctricas. En el ejemplo de una conversación telefónica cuando Juan llama a María. como ocurre en el caso de las señales de radio. y el medio es la línea telefónica. Transmisor en el área de comunicaciones es el origen de una sesión de comunicación.El proyecto Arduino recibió una mención honorífica en la categoría de Comunidades Digital en el Prix Ars Electrónica de 2006 MODULOS RF: Un radiotransmisor es un dispositivo electrónico que. código o mensaje a través de un medio. . La codificación elegida se llama modulación. María es el receptor. telefonía móvil o cualquier otro tipo de radiocomunicación. televisión. Un transmisor es un equipo que emite una señal. y emitirlas como ondas electromagnéticas a través de una antena. Para lograr una sesión de comunicación se requiere: un transmisor. amplificarlas. El transmisor tiene como función codificar señales ópticas. El transmisor de radio es un caso particular de transmisor. irradia ondas electromagnéticas que contienen (o pueden contener) información. Ejemplos de modulación son: la amplitud modulada o la frecuencia modulada. mediante una antena. Juan es el transmisor. un medio y un receptor. en el cual el soporte físico de la comunicación son ondas electromagnéticas.

.

4 milisegundos. y mantenerse estable en dicha posición. La electrónica dentro del servomotor responderá al ancho de la señal modulada. Es posible modificar un servomotor para obtener un motor de corriente continua que. conserva la fuerza.5 milisegundos representa un estado neutro para los servomotores estándares . Los servomotores hacen uso de la modulación por ancho de pulsos (PWM) para controlar la dirección o posición de los motores de corriente continua. Si los circuitos dentro del servomotor reciben una señal de entre 0. La mayoría trabaja en la frecuencia de los cincuenta hercios.6 a 2 milisegundos moverá el servomotor en sentido antihorario. si bien ya no tiene la capacidad de control del servo. así las señales PWM tendrán un periodo de veinte milisegundos. velocidad y baja inercia que caracteriza a estos dispositivos.5 a 1. éste se moverá en sentido horario. Un servomotor es un motor eléctrico que puede ser controlado tanto en velocidad como en posición.SERVOMOTORES: Un servomotor (también llamado servo) es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación. entre 1. 1.

Otros lenguajes también soportados son Tiny BASIC C. . y 512 MiB de memoria RAM (aunque originalmente al ser lanzado eran 256 MiB). RISC OS 5. y promueve principalmente el aprendizaje dellenguaje de programación Python . 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 garantía). Raspbian (derivada de Debian). El diseño incluye un System-on-a-chip Broadcom BCM2835. y el 4 de febrero de 2013 del modelo A. un procesador gráfico (GPU) VideoCore IV. La fundación da soporte para las descargas de las distribuciones para arquitectura ARM. Perl y Ruby. El diseño no incluye un disco duro ni unidad de estado sólido. Arch Linux ARM (derivado de Arch Linux) y Pidora (derivado de Fedora). tampoco incluye fuente de alimentación ni carcasa. ya que usa una tarjeta SD para el almacenamiento permanente. con el objetivo de estimular la enseñanza de ciencias de la computación en las escuelas. El 29 de febrero de 2012 la fundación empezó a aceptar órdenes de compra del modelo B. desarrollado en Reino Unido por la Fundación Raspberry Pi.RASPBERRY PI: Raspberry Pi es un ordenador de placa reducida o (placa única) (SBC) de bajo coste.

había cinco en colegios privados. Por ello se espera que en un futuro empresas patrocinen la adquisición de placas en colegios públicos El CEO de Premier Farnell declaró que el gobierno de un país de medio oriente expresó interés en proveer una placa a cada chica estudiante. . con el objetivo de mejorar sus expectativas de empleo en el futuroA finales de enero de 2013. se dio a conocer que Google.CARACTERISTICAS: En enero de 2012. encuestas hechas en el Reino Unido acerca de la penetración en las aulas de Raspberry Pi concluyeron que por cada placa que había en un colegio público. junto con la ayuda de otros 6 socios. repartiría 15.000 placas entre estudiantes del Reino Unido que mostraran motivación por las ciencias de la computación.

El software de diseño de sistemas NI LabVIEW está en el centro de la plataforma de National Instruments. NI LabVIEW es el entorno de desarrollo ideal para la innovación. IP y hardware al aprovechar las últimas tecnologías de cómputo. productividad acelerada y constante innovación. descubrimiento y resultados acelerados. NI LabVIEW es un entorno de desarrollo para resolver problemas. 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 . Al integrar todas las herramientas que los ingenieros y científicos necesitan para construir una amplia variedad de aplicaciones en mucho menos tiempo. Al proporcionar extensas herramientas que usted necesita para construir cualquier aplicación de medida o control en mucho menos tiempo.Software de Desarrollo de Sistemas NI LabVIEW: El software LabVIEW es ideal para cualquier sistema de medidas y control y el corazón de la plataforma de diseño de NI. más rápido y de manera más eficiente. LabVIEW ofrece herramientas para resolver los problemas de hoy en día y la capacidad para la futura innovación. LabVIEW es una plataforma de programación gráfica que ayuda a ingenieros a escalar desde el diseño hasta pruebas y desde sistemas pequeños hasta grandes sistemas. Ofrece integración sin precedentes con software legado existente.

Las cámaras web necesitan una computadora para transmitir las imágenes. bien sea ethernet o inalámbrico. ya sea a una página web o a otra u otras computadoras de forma privada. existen otras cámaras autónomas que tan sólo necesitan un punto de acceso a la red informática.DIAGRAMA EJEMPLO DE LABVIEW: Cámara Web LOGITECHC170: Una cámara web o cámara de red1 (en inglés: webcam) es una pequeña cámara digital conectada a una computadora la cual puede capturar imágenes y transmitirlas a través de Internet. Para diferenciarlas de las cámaras web se las denominacámaras de red. . Sin embargo.

Este se clasifica como dispositivo de entrada. nebulosas. Gracias a la instalación Plug and play.Yahoo! Messenger. Ekiga. En astronomía amateur las cámaras web de cierta calidad pueden ser utilizadas para registrar tomas planetarias. lunares y hasta hacer algunos estudios astrométricos de estrellas binarias. ya que por medio de él podemos transmitir imágenes hacia la computadora. etc. pero también puede capturar imágenes o pequeños videos (dependiendo del programa de la cámara web) que pueden ser grabados y transmitidos por Internet. Ciertas modificaciones pueden lograr exposiciones prolongadas que permiten obtener imágenes de objetos tenues de cielo profundo como galaxias.También son muy utilizadas en mensajería instantánea y chat como en Windows Live Messenger. En el caso del MSN Messenger aparece un icono indicando que la otra persona tiene cámara web. Skype etc. Por lo general puede transmitir imágenes en vivo. la calidad de vídeo VGA y el micrófono integrado. esta cámara web es la manera más sencilla de iniciar videoconferencias y enviar bonitas fotografías de alta resolución .

como no posee botón de encendido sólo se debe conectar la alimentación en el puerto Micro USB: . En mi sistema la tarjeta de memoria es detectada como el dispositivo /dev/sdc.raspberrypi. A modo de ejemplo.org/raspbian_latest Encendemos la Raspberry. Se observa que la tarjeta no posee tabla de particiones: A continuación descargamos la última versión de Raspbian desde el siguiente enlace: http://downloads.METODOS Y PROCEDIMIENTOS: Instalación del Sistema Operativo en la Raspberry Pi: Raspbian es una distribución (por supuesto libre) basada en Debian optimizada para correr sobre el hardware de la Raspberry Pi. se instalara Raspbian utilizando una tarjeta de memoria SD.

Luego del proceso de inicio del sistema se abre la herramienta raspi-config. Expansión 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 expansión se realizará en el siguiente reinicio (boot): . la cual se utiliza para configurar Raspbian.

Configuración de la interfaz ethernet Una vez reiniciado podemos ver el bonito escritorio LXDE: El último paso es configurar la interfaz ethernet eth0: .

Como usuario root (sudo su) editar el archivo /etc/network/interfaces: Guardar y cerrar el archivo. En el siguiente reinicio. levanta la dirección IP configurada: .

: 5 i: Format.INSTALACION DE WEBCAM: Aplicación para visualizar la imagen a través de un navegador: mjpg-streamer-code-181 Putty para conectarnos a la raspberry.....: .. -lsusb Debería aparecer algo asi: Bus 001 Device 004: ID 046d:0804 Logitech....... Webcam C250 Actualizamos y instalamos librerias necerias sudo apt-get update sudo apt-get install libjpeg8-dev imagemagick subversion Descomprimimos la aplicación streamer descargada y compilamos cd mjpg-streamer/mjpg-streamer make Lanzamos la aplicación ../www" & Y nos debería mostrar las configuraciones predeterminadas MJPG Streamer Version: svn rev: 3:172 i: Using V4L2 device..so -y -n " -o "..: disabled o: commands../www/ o: HTTP TCP port../mjpg\_streamer -i ".. Una vez conectada la cámara ejecutamos “lsusb” para comprobar que nos la reconoce el sistema..../input\_uvc...: YUV i: JPEG Quality....so -n -w .: 808 0 o: username:password..: /dev/video0 i: Desired Resolution: 640 x 480 i: Frames Per Second.. Inc..: 80 o: www-folder-path..../output_http.: disabled .

Finalmente desde un navegador abrimos http://ip_del_raspberry:8080 ESTRUCTURA DE ACRILICO: Primero se empezó Realizando las estructuras en acrílico tomando en cuenta el tamaño de los servomotores. .

Finalmente Quedando de esta Forma. .Seguidamente se empezó a armar las piezas con los Servomotores.

PROGRAMACION: Posteriormente se Realizó la programación para el control del robot hexápodo. TRANSMISOR Diagrama de Flujo: INICIO P=5 P=6 P=7 P=8 ENVIAR C = J ENVIAR C = A ENVIAR C = D ENVIAR C = F ENVIAR C = H . La programación se realizó en Procesing que es el lenguaje del Arduino.

void setup(){ vw_setup(7000). vw_send((uint8_t *)msg. strlen(msg)). INPUT). strlen(msg)). pinMode(boton3. pinMode(boton4. if( eb == HIGH){ msg = "C". int ab = 0. } else { msg = "B". if ( ab == HIGH) { msg = "A".h> int boton = 5. vw_send((uint8_t *)msg. vw_send((uint8_t *)msg. vw_send((uint8_t *)msg. int ib = 0. INPUT). int ob = 0. if ( ob == HIGH) { msg = "G". } else { msg = "F". int boton4 = 8. } // y lo enviamos eb = digitalRead(boton2). vw_send((uint8_t *)msg. vw_send((uint8_t *)msg. } else { msg = "D". strlen(msg)). if ( ib == HIGH) { msg = "E". INPUT). } ib = digitalRead(boton3). int eb = 0. INPUT). pinMode(boton2. pinMode(boton. strlen(msg)). strlen(msg)). int boton2 = 6. strlen(msg)). strlen(msg)). int boton3 = 7. char *msg = "". } void loop () { ab = digitalRead(boton). } else { . vw_send((uint8_t *)msg. } ob = digitalRead(boton4).PROGRAMA: #include <VirtualWire.

9 = 0 PIN6 = 1 PIN7 = 1 PIN8 = 1 PIN9 = 1 .msg = "H". } } RECEPTOR: Diagrama de Flujo: INICIO C=A P=C P=E P=G PIN 6. vw_send((uint8_t *)msg. 7. 8. strlen(msg)).

pinMode(led3. delay(100). } if (msg[0] == 'B'){ digitalWrite(led. void setup() { vw_setup(7000). delay(100). delay (100).h> int int int int led = 6. OUTPUT). uint8_t len = VW_MAX_MESSAGE_LEN. HIGH). HIGH). HIGH). if (vw_get_message(msg. } if ( msg[0] == 'E') { digitalWrite(led3. delay(100). LOW). OUTPUT).PROGRAMA: #include <VirtualWire. } if (msg[0] == 'H'){ digitalWrite(led4. led2 = 7. } void loop(){ uint8_t msg[VW_MAX_MESSAGE_LEN]. } if ( msg[0] == 'G') { digitalWrite(led4. LOW). pinMode(led2. } } . delay (100). LOW). &len)){ if ( msg[0] == 'A') { digitalWrite(led. pinMode(led. led4 = 9. HIGH). OUTPUT). vw_rx_start(). } if (msg[0] == 'D'){ digitalWrite(led2. } if ( msg[0] == 'C') { digitalWrite(led2. OUTPUT). led3 = 8. delay (100). } if (msg[0] == 'F'){ digitalWrite(led3. delay (100). pinMode(led4. LOW). delay(100).

8.CONTROLADOR DE SERVOS (ARDUINO MEGA): Diagrama de Flujo: INICIO PIN6 =1 AVANZAR PIN7 =1 RETROCEDER PIN8 =1 DERECHA PIN9 =1 IZQUIERDA PIN 6. 9 = 0 . 7.

servo36. servo34. pinMode(pin6.attach(32).attach(42). OUTPUT). servo20.attach(30). Servo servo26. int valor6 = 0. servo21. Servo servo46. OUTPUT). servo28. pinMode(pin4.attach(40). Servo servo42. Servo servo21. Servo servo32. Servo servo36. servo38. void setup() { pinMode(pin2. Servo servo30. OUTPUT). int pin9 = 9.attach(38). int pin7 = 7. Servo servo52. servo42.attach(24). pinMode(pin7. INPUT). Servo servo38. int pin6 = 6. servo24. servo32.attach(26). servo22.attach(21). int pin3 = 3. INPUT).PROGRAMA: #include <Servo. Servo servo24. Servo servo20. pinMode(pin9.attach(34).attach(22). . Servo servo22. Servo servo48.attach(28). servo30.attach(20). pinMode(pin8. Servo servo50.h> int pin2 = 2. int valor7 = 0. INPUT). INPUT). Servo servo40. int pin8 = 8. OUTPUT). Servo servo34. pinMode(pin3. int pin5 = 5. int valor9 = 0. int pin4 = 4. servo26. int valor8 = 0. Servo servo28. Servo servo44. servo40. pinMode(pin5.attach(36).

servo22.write(90).write(110). servo38. servo36. servo21. //Adelante if (valor6 == HIGH) { digitalWrite(pin2. servo22.write(90). servo50. servo34. servo24. servo42. servo38. servo46.write(95).write(90). servo52.write(90).write(90). servo40. servo46.servo44.write(90).write(90). servo52.attach(44).write(100). servo34. servo52.write(70). LOW). servo22. digitalWrite(pin5.write(100). delay(250).attach(52).write(90). servo50.write(90). servo22.write(90). servo48.write(90).write(90).write(90).write(90). servo38.write(80).write(95).attach(50). . servo28. servo36.write(90).write(85). HIGH).write(110). servo48. servo46. servo40. servo48. servo32.write(90).write(90). digitalWrite(pin4.write(90). servo48.write(85).write(85). servo50. digitalWrite(pin3. servo30.write(95). servo24.write(90).write(90).attach(46). servo20. servo21. } void loop(){ valor6 = digitalRead(pin6). LOW).write(90). servo24. servo26. servo28. servo44.write(95). LOW).write(90). delay(250). servo34.write(90). servo26.attach(48). servo28. servo46.write(90). servo36.write(90).write(70).write(90). servo50.write(90).

write(90). servo34. servo40.write(95). servo38. servo46.write(110). digitalWrite(pin5. HIGH).write(100). servo21. LOW).write(95).servo20. servo26.write(100). digitalWrite(pin5.write(90). servo36. servo36. servo22. servo24. servo42.write(90).write(85). LOW).write(90). servo48. servo46.write(110). servo32.write(95).write(90).write(85). servo40. delay(250). digitalWrite(pin4. LOW). } else { digitalWrite(pin2. digitalWrite(pin3.write(100). servo44.write(90). servo52. servo50. LOW). LOW). servo34. servo24. servo26.write(85). LOW). delay(250). digitalWrite(pin4.write(110). servo28. servo32. .write(95).write(90). servo40.write(80).write(80).write(90). servo30. servo42. servo28.write(85).write(90).write(70). digitalWrite(pin3. servo52.write(80). } valor7 = digitalRead(pin7). servo38.write(90). servo20. servo48.write(70). servo52. //Atras if (valor7 == HIGH){ digitalWrite(pin2. servo30. delay(250).write(90). servo50. servo44.write(90).write(90).write(85). servo46.write(90). servo22.write(90). LOW). servo26. delay(250).write(85).write(85).write(90).write(90). servo34.write(90).

servo24. servo32. digitalWrite(pin5.write(70).write(85). servo46. LOW). } else{ digitalWrite(pin2.write(95). servo40.write(110). servo52. delay(250). servo26.write(95). servo38. servo28.write(95).write(90). HIGH).write(70).write(100). delay(250). servo24.write(100).write(100).write(80). } valor8 = digitalRead(pin8).write(110). servo36.write(90).write(80).write(85).servo22.write(90).write(90).write(90).write(90).write(110). servo34. digitalWrite(pin4.write(95). digitalWrite(pin3. servo34.write(90).write(90). servo52. delay(250).write(90).write(95). servo26. servo22. servo50. servo21. servo32.write(85). digitalWrite(pin5. servo52. servo22. servo36.write(90). .write(90).write(90). servo26. digitalWrite(pin3. servo42. servo44.write(95). LOW). servo20. LOW). servo40. LOW). servo44. //Derecha if (valor8 == HIGH){ digitalWrite(pin2. servo30. servo42.write(90).write(95). LOW).write(85). servo46.write(90). digitalWrite(pin4. servo40.write(70).write(90). servo48. LOW).write(90). LOW).write(80). servo28. servo30.write(90). servo20. servo38. servo50.write(90). servo48. servo34. servo21.

digitalWrite(pin5.write(90). LOW).write(85). servo48. digitalWrite(pin3.write(90).write(90). servo38.write(70). //Izquierda if (valor9 == HIGH){ digitalWrite(pin2. servo44. servo21. servo22.write(90). digitalWrite(pin4. } valor9 = digitalRead(pin9). servo24. servo48. servo44.write(90). servo52. servo34.write(80).write(85). servo46. HIGH). } else{ digitalWrite(pin2.write(90).write(90). servo40. servo46. digitalWrite(pin3. LOW). servo50. servo32. delay(250).write(80). servo50. servo36.write(90).write(95).write(90). servo32.write(110).write(90).write(85). . servo24.write(90).servo46.write(100).write(90).write(85). servo38. servo34. servo20. delay(250).write(85). servo40.write(90).write(80). servo20. servo42. servo52. LOW). digitalWrite(pin5.write(85).write(95).write(110). LOW). LOW).write(90). servo26.write(85).write(70).write(95). digitalWrite(pin4. servo26.write(90).write(90). servo28. servo52.write(90). servo30. servo36. servo26.write(100). delay(250).write(110). servo22.write(90). LOW). servo40. servo28.write(70). LOW).write(100). servo42. servo30. servo21. delay(250).

servo32. servo26.write(100). servo30. } } LOW). } else{ digitalWrite(pin2. servo44.write(90). servo21. servo52.write(85).write(90).write(90). digitalWrite(pin4.write(90). delay(250). delay(250).write(90).write(90). servo20.write(90). servo34. servo42. servo44. servo46. servo42. servo40.write(95).write(85). delay(250). digitalWrite(pin5. servo22.write(95).write(95). servo26. digitalWrite(pin3. servo34.write(95). servo21. . LOW).write(70).write(80).write(110). servo30. servo32.write(80). servo40. servo52.write(95).write(70). LOW).write(85).write(90). servo20.write(90).servo22.write(95). LOW). servo46.

-Desarrollo de Proyecto RPi. .CONCLUSIONES: Me ha gustado mucho el compendio de acciones llevadas a cabo para la consecución del robot. Los objetivos alcanzados han sido la realización de:   Streaming en tiempo real Con la Raspberry Pi.  Locomocion del Robot. REFERENCIAS BIBLIOGRAFICAS: -Diseño e implementación de un robot móvil hexápodo Alejandor Arango S. Funcionamiento Correcto de los modulos de RF. TEC Bolivia -Robot Hexapodo Spidi Rodrigo Garcia. -Diseño de un Robot Hexapodo Juan Antonio Fernandez Madrigal.

ANEXOS: .