informeproyectos2terminado-141227160107-conversion-gate01.pdf
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: