Você está na página 1de 26

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 futuroA 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.

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.

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

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:

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:

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

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.

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:
INICIO

P=5

P=6

P=7

P=8

ENVIAR C = J

ENVIAR C = A

ENVIAR C = D

ENVIAR C = F

ENVIAR C = H

PROGRAMA:
#include <VirtualWire.h>
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,
}
else {
msg = "B";
vw_send((uint8_t *)msg,
}
// y lo enviamos
eb = digitalRead(boton2);
if( eb == HIGH){
msg = "C";
vw_send((uint8_t *)msg,
}
else {
msg = "D";
vw_send((uint8_t *)msg,

strlen(msg));

strlen(msg));

strlen(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

P=C

P=E

P=G

PIN 6, 7, 8, 9 = 0

PIN6 = 1

PIN7 = 1

PIN8 = 1

PIN9 = 1

PROGRAMA:
#include <VirtualWire.h>
int
int
int
int

led = 6;
led2 = 7;
led3 = 8;
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 <Servo.h>
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,
digitalWrite(pin3,
digitalWrite(pin4,
digitalWrite(pin5,
}
}

LOW);
LOW);
LOW);
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:

Você também pode gostar