Documente Academic
Documente Profesional
Documente Cultură
0
DEDICATORIA
A mis profesores
Mis amigos.
1
AGRADECIMIENTOS
2
ÍNDICE
DEDICATORIA ............................................................................................................................ 1
AGRADECIMIENTOS ................................................................................................................ 2
ÍNDICE .......................................................................................................................................... 3
RESUMEN.................................................................................................................................... 6
INTRODUCCIÓN ........................................................................................................................ 7
CAPÍTULO I DESCRIPCIÓN Y PLANTEAMIENTO DEL PROBLEMA .............................. 8
1.1 Formulación del Problema .................................................................................................. 9
1.2 Objetivo General ................................................................................................................. 10
1.3 Objetivos Específicos ......................................................................................................... 11
1.4 Pregunta De Investigación ................................................................................................ 12
1.4.1 ¿Arduino desarrollo tecnológico? ............................................................................. 12
1.4.2 ¿Inteligencia artificial con Arduino? .......................................................................... 13
1.4.3 302 neuronas secuenciadas, una placa de Arduino y paciencia ......................... 14
1.5 Justificación ......................................................................................................................... 15
1.6 Viabilidad.............................................................................................................................. 16
CAPITULO II MARCO TEÓRICO .......................................................................................... 17
2.1 Marco Teórico ..................................................................................................................... 18
2.2 ¿Qué es ARDUINO? .......................................................................................................... 20
2.3 ¿Por qué ARDUINO UNO? ............................................................................................... 21
2.4 Sistema Operativo IOS ...................................................................................................... 22
2.5 Historia De IOS ................................................................................................................... 23
2.6 Desarrollo De Aplicaciones ............................................................................................... 25
2.6.1 Desarrollo de aplicaciones para iOS ........................................................................ 25
2.7 OBJECTIVE-C .................................................................................................................... 26
2.8 Aplicación WIFIROBOT ..................................................................................................... 27
2.9 Descripción .......................................................................................................................... 28
2.10 Métodos De Instalación ................................................................................................... 29
2.10.1 Método de instalación 1 ........................................................................................... 29
3
2.10.2 Método de instalación 2 ............................................................................................... 29
2.11 Características De La Aplicación ................................................................................... 30
2.12 Software De Control Para Computadora ...................................................................... 32
2.12.1 Uso del Asistente ...................................................................................................... 33
2.12.2 Control PTZ ................................................................................................................ 33
2.13 Relación Entre La Electrónica Y La Informática .......................................................... 34
2.14 ¿Qué Componentes Utiliza El Auto Robot 4x4? ......................................................... 35
2.14.1 ARDUINO UNO R3 ................................................................................................... 35
2.14.2 SERVO MOTOR ....................................................................................................... 35
2.14.3 MOTOR REDUCTOR ............................................................................................... 35
2.14.4 MÓDULO WIFI PARA ARDUINO ........................................................................... 36
2.14.5 CÁMARA HD VISIÓN NOCTURNA ....................................................................... 36
2.14.6 CABLE USB ............................................................................................................... 36
2.14.7 LLANTA PARA MOTOR PLÁSTICO ..................................................................... 37
2.14.8 CABLES PUENTES.................................................................................................. 37
2.14.9 CHASIS ...................................................................................................................... 37
2.14.10 BATERÍAS O PILAS.............................................................................................. 38
2.15 Armando Del Auto Robot ................................................................................................ 39
2.16 Materiales .......................................................................................................................... 50
2.17 El Diseño............................................................................................................................ 51
CAPITULO III ASPECTOS METODOLÓGICOS ................................................................ 59
3.1 Aspectos Metodológicos.................................................................................................... 60
CAPITULO IV ANÁLISIS DE DATOS ................................................................................... 61
4.1 Análisis De Datos ............................................................................................................... 62
4.2 Arquitectura ......................................................................................................................... 63
CAPITULO V CONCLUSIONES ............................................................................................. 64
5.1 Conclusión ........................................................................................................................... 65
5.2 Bibliografía ........................................................................................................................... 67
5.2.1 PAGANIAS WEB DE REFERENCIA. ...................................................................... 67
ANEXOS I................................................................................................................................... 68
4
1.1 Anexo Instalación Driver ARDUINO UNO ...................................................................... 69
1.2 Anexos Códigos De Programación.................................................................................. 75
Antecedentes Personales Del Estudiante ............................................................................. 97
E-MAIL PARTICULAR .............................................................................................................. 97
5
RESUMEN
6
INTRODUCCIÓN
7
CAPÍTULO I DESCRIPCIÓN Y PLANTEAMIENTO DEL PROBLEMA
8
1.1 Formulación del Problema
9
1.2 Objetivo General
10
1.3 Objetivos Específicos
11
1.4 Pregunta De Investigación
12
1.4.2 ¿Inteligencia artificial con Arduino?
Esta placa de Arduino simula todas las neuronas del cerebro de un gusano.
Reproducir de manera artificial el cuerpo humano es uno de los objetivos que
tenemos desde hace siglos. Los ordenadores, los robots y la inteligencia
artificial parece ser que nos hacen dar pasos agigantados, sin embargo, imitar
por completo el cuerpo humano requiere de una complejidad que aún no
podemos alcanzar. A pesar de todo, de momento hemos conseguido simular el
cerebro más primitivo de todos, el de un gusano.
13
1.4.3 302 neuronas secuenciadas, una placa de Arduino y paciencia
Caenorhabditis elegans es una especie de gusano con uno de los cerebros más
primitivos que conocemos. De hecho, tiene tan pocas neuronas que cuesta
considerarlo cerebro. Las neuronas varían según la especie animal, podría
parecer que entre un gusano y una mosca no puede ser tan grande la
diferencia, pero se pasa de 302 neuronas a aproximadamente 300.000. ¿El ser
humano? Se calcula que el cerebro humano tiene unos 100 mil millones de
neuronas.
Obviamente las neuronas del ser humano aún no se han secuenciado, por no
decir que resulta casi imposible. El único ser del que conocemos el
comportamiento de todas sus neuronas es el gusano Caenorhabditis elegans,
básicamente por su cantidad. Proporcional a sus neuronas, este ser vivo no
hace mucho a lo largo de su vida. Sus funciones se limitan a desplazarse según
los estímulos que recibe de una especie de nariz capaz de detectar sutiles
señales químicas.
Nathan Griffith, uno de los creadores de Arduino, ha aprovechado la
simplicidad de este gusano para simular el funcionamiento de su cerebro en
una placa de Arduino. Las neuronas son células que reaccionan a estímulos,
así que tan sólo se tenían que adaptar estas respuestas en la placa Arduiono,
concretamente 302 respuestas.
14
1.5 Justificación
Las tecnologías como robots wifi y dispositivos móviles han adquirido una
importancia creciente en diversos ámbitos, lo que hace atractivo, explorar los
recursos de estas tecnologías.
Los robot móviles son dispositivos electromecánicos empleados actualmente
en muchos campos de la industria informática, pero en general su interfaz
puede servir para cualquier dispositivo que pueda tomar señales inalámbricas.
La suma de estas tecnologías permite desarrollar una nueva aplicación
tecnológica que pueda emplearse en diferentes entornos de forma económica,
funcional y con las ventajas de poder ser mejorada y portátil.
ROBOT MÓVIL
DISPOSITIVO INTERFAZ DE CONTROL
MÓVIL TECNOLOGÍA WIFI ARDUINO UNO WIFI
Figura 1.1
15
1.6 Viabilidad
16
CAPITULO II MARCO TEÓRICO
17
2.1 Marco Teórico
18
El adaptador puede ser conectado mediante un enchufe centro-positivo en el
conector de alimentación de la placa. Los cables de la batería pueden
insertarse en las cabeceras de los pines Gnd y bin del conector POWER.
Un regulador de bajo abandono proporciona eficiencia energética. La placa
puede operar con un suministro externo de 6 a 20 volts. Si es suministrada con
menos de 7V, sin embargo, el pin de 5V puede suministrar menos de 5 V y la
placa podría ser inestable. Si se usa más de 12 V, el regulador de tensión
puede sobrecalentarse y dañar la placa. El rango recomendado es de 7 a 12 V.
19
2.2 ¿Qué es ARDUINO?
20
2.3 ¿Por qué ARDUINO UNO?
21
2.4 Sistema Operativo IOS
22
2.5 Historia De IOS
23
iOS 8 es el sucesor de iOS 7, compatible con estos dispositivos de iPhone:
4s, 5, 5c, 5s, 6, 6 Plus, iPod Touch: 5, 6 y el iPad 2 en adelante, que fue
presentado el 2 de junio de 2014 en la Conferencia Mundial de Desarrolladores
de este año. En estos momentos, según Mixpanel, el 82% de los dispositivos
iOS compatibles con iOS 8 corren con alguna de las diferentes versiones de
este sistema operativo.
El 13 de junio de 2016, Apple presentó la próxima versión del sistema
operativo. Una nueva versión con algunas novedades interesantes como un
completo rediseño de la pantalla de bloqueo, notificaciones más interactivas,
mayor presencia de widgets gracias al apoyo de la tecnología 3D Touch y
muchas otras novedades muy necesarias para usuarios de iPhone, iPad y iPod
Touch.10.
24
2.6 Desarrollo De Aplicaciones
25
2.7 OBJECTIVE-C
26
2.8 Aplicación WIFIROBOT
Figura 2.1
27
2.9 Descripción
Proyecto de Robot de tracción en las 4 ruedas y con una tarjeta Arduino UNO
R3 compatible: Cámara de visión nocturna 720P Full HD DVR DV 200M
píxeles, incluye 2 baterías ion-litio recargables y con cargador.
Podrás ver en tiempo real la imagen de la cámara en tu teléfono celular
Android para indagar todos los rincones de tu casa o patio en forma remota,
además utilizando los códigos de programación directamente desde tu
Smartphone de preferencia IPhone IOS. Piezas de aluminio de alta calidad,
resistentes a la corrosión.
28
2.10 Métodos De Instalación
Abra Apple Store, busque palabras clave: wifi-robots, icono azul R es nuestra
aplicación.
Figura 2.2
29
2.11 Características De La Aplicación
Figura 2.3
30
Figura 2.4
Figura 2.5
31
2.12 Software De Control Para Computadora
Versión R Micro PC del software de control del robot de vídeo WiFi vehículos pequeños
es una plataforma de software para robots WiFi con un control inteligente.
Figuras 2.
32
2.12.1 Uso del Asistente
Figuras 2.
33
2.13 Relación Entre La Electrónica Y La Informática
34
2.14 ¿Qué Componentes Utiliza El Auto Robot 4x4?
35
2.14.4 MÓDULO WIFI PARA ARDUINO
36
2.14.7 LLANTA PARA MOTOR PLÁSTICO
2.14.9 CHASIS
37
2.14.10 BATERÍAS O PILAS
38
2.15 Armando Del Auto Robot
Este auto robot utiliza un microcontrolador Arduino Uno para crear una
inter conexión entre el módulo wifi, que este nos permite recibir una señal
con nuestro Smartphone y así poder utilizar las funciones de nuestro
auto, a comunicación veremos el armado de nuestro proyecto.
USB 2.0
Cámara
Cable De Energía
Batería
Interfaz USB 2.0 Módulo WIFI
39
Conexión del hardware.
Figura 2.8
40
Conexión del hardware.
Figura 2.9
41
Conexión del hardware.
Utilizar columnas de nylon cortos para fijar el tablero del WiFi en Robot
Figura 2.10
Utilizamos columnas de nylon largos para fijar el tablero del WiFi en chasis del
auto Robot
Figura 2.11
42
Conexión del hardware.
Figura 2.12
Figura 2.13
43
Conexión del hardware.
Figura 2.14
Figura 2.15
44
Conexión del hardware.
Figura 2.16
45
Conexión del hardware.
Figura 2.17
46
Conexión del hardware.
Figura 2.18
Figura 2.19
47
Conexión del hardware.
Figura 2.20
48
Conexión del hardware.
Conexión de motores
Figura 2.21
49
2.16 Materiales
50
2.17 El Diseño
51
2.17 EL DISEÑO
52
Figura 2.25 Armado De Módulo Wifi.
53
Figura 2.27 Instalación Placa Arduino Y Placa Controladora De Motores.
54
Figura 2.29 Instalación De Cámara Wifi.
55
Figura 2.31 Dimensiones Auto Robot Arduino.
56
Figura 2.33 Conexión De Motores Lado Izquierdo Del Auto Robot Arduino.
Figura 2.34 Conexión De Motores Lado Derecho Del Auto Robot Arduino.
57
Figura 2.35 conexión e encendido auto robot Arduino.
58
CAPITULO III ASPECTOS METODOLÓGICOS
59
3.1 Aspectos Metodológicos
Descubrir ideas
Valoración positiva
Corrección de posibles errores por medio de estrategias de
indagación
60
CAPITULO IV ANÁLISIS DE DATOS
61
4.1 Análisis De Datos
62
4.2 Arquitectura
MODULO DRIVER
DISPOCITIBO MODULO WIFI ARDUINO UNO MOTORES
MOVIL O PC
MOTOR 3 MOTOR 4
63
CAPITULO V CONCLUSIONES
64
5.1 Conclusión
65
Hay que destacar que en la realización del proyecto se han utilizado conceptos
vistos en el grado relacionados con la programación de microcontroladores , el
control automático, circuitos eléctricos, utilización de motores reductores, uso
sistemas de comunicación, diseño de circuitos impresos, etc. Además se han
usado programas vistos en el grado como la aplicación WIFIROBOT para
sistema IOS, el uso de del depurador de código Arduino IDE, la instalación del
programa WIFIROBOT en la computadora.
Por todo esto el desarrollo del proyecto ha sido todo un desafío en el que ha
supuesto un gran aprendizaje, no solo en l realización de un proyecto completo
sino también en llevar a la práctica lo aprendido durante los años académicos
de formación, la que conyeva a una gran satisfacción dentro de la formación
profesional.
66
5.2 Bibliografía
http://www.wifi-robots.com/
http://www.xiao-r.com/
https://www.arduino.cc/
http://arduino.cl/
67
ANEXOS I
68
1.1 Anexo Instalación Driver ARDUINO UNO
https://www.arduino.cc/en/main/software
Conectar la placa y espera a que Windows comience su proceso de
instalación del controlador. Después de unos momentos, el proceso va a
dar error. Haz clic en el menú Inicio y abre el Panel de control. En el
Panel de control ve a Sistema y seguridad. A continuación, haz clic en
Sistema y abre el Administrador de dispositivos. Busca en Puertos (COM
& LPT).
Aparecerá un puerto abierto llamado “arduino uno (comxx)”. Si no hay una lpt com,
busca en “otros dispositivos”, “dispositivo desconocido”.
69
Figura anexo 1.0 Y 1.1
Hacer click derecho en el puerto “Arduino UNO (COMxx)” y haz click en “Actualizar
software de controlador”.
70
Figura anexo 1.3
71
Figura anexo 1.5
72
Figura anexo 1.7
73
Figura anexo 1.9
Instalación del driver de Arduino uno listo para ser utilizado por puerto USB.
74
1.2 Anexos Códigos De Programación
* File name:Motor
* Version:2.5
* Author:KM Team
*/
/*
*******************************************************************************************
**************
*******************************************************************************************
**************
*/
void forward(int adjust)
{
75
switch (adjust)
{
*******************************************************************************************
**************
*/
void back(int adjust)
{
76
switch (adjust)
{
case 1: MOTOR_GO_BACK; return;
*******************************************************************************************
**************
*/
void left(int adjust)
77
{
switch (adjust)
{
case 1: MOTOR_GO_LEFT; return;
case 2: MOTOR_GO_RIGHT; return;
case 3: MOTOR_GO_LEFT; return;
*******************************************************************************************
**************
*/
void right(int adjust)
78
{
switch (adjust)
{
case 1: MOTOR_GO_RIGHT; return;
case 2: MOTOR_GO_LEFT; return;
case 3: MOTOR_GO_RIGHT; return;
case 4: MOTOR_GO_LEFT; return;
case 5: MOTOR_GO_BACK; return;
*******************************************************************************************
**************
79
*/
void Avoiding()
{
IR = digitalRead(Input_Detect);
if ((IR == LOW))
{
80
2.2 MOTOR_GO_STOP;
}
}
/*
*******************************************************************************************
**************
** function feature :Detect the black line between the two infrared
positions, and then make the direction change of the car by logical
judgment
*******************************************************************************************
**************
*/
void TrackLine()
{
IR_L = digitalRead(Input_Detect_LEFT); //read the date of the left sensor
IR_R = digitalRead(Input_Detect_RIGHT); //read the date of the right
sensor
{
forward(adjust);
return;
81
}
if ((IR_L == HIGH) && (IR_R == HIGH)) //detect a cross tape on the right and
left side as shown in the video
{
MOTOR_GO_STOP;
return;
}
}
/*
*******************************************************************************************
**************
82
** function name :AvoidByRadar
*******************************************************************************************
**************
*/
void AvoidByRadar(int distance)
{
int leng = Get_Distance(); //get distance
if(distance<10)distance=10; //Limit minimum distance of obstacle
avoidance
83
2.3 CÓDIGO ULTRASONIC (CONTROL DE DISTANCIA)
* File name:Ultrasonic
* Version:2.5
* Author:KM Team
*/
/*
*******************************************************************************************
**************
*******************************************************************************************
**************
*/
char Get_Distance()
{
digitalWrite(Trig, LOW); // transmit low voltage 2μs by ultrasonic
84
delayMicroseconds(2);
digitalWrite(Trig, HIGH); // transmit high voltage at least 10μs by
ultrasonic
delayMicroseconds(10);
digitalWrite(Trig, LOW); // keep transmitting the low voltage by ultrasonic
float Ldistance = pulseIn(Echo, HIGH,5000); // read time difference
*******************************************************************************************
**************
*/
void Send_Distance()
{
int dis = Get_Distance();
Sendbyte(0xff);
Sendbyte(0x03);
85
Sendbyte(0x00);
Sendbyte(dis);
Sendbyte(0xff);
delay(1000);
}
Código puerto serie Configura y analiza el archivo
* File name:Uart
* Version:2.5
* Author:KM Team
*/
#define BAUD 9600 //Set the baud rate for 9600
/*
*******************************************************************************************
**************
86
*******************************************************************************************
**************
*/
void USART_init()//Serial port Settings
{
SREG = 0x80;
//bitSet(UCSR0A,U2X0);
bitSet(UCSR0B,RXCIE0);
bitSet(UCSR0B,RXEN0);
bitSet(UCSR0B,TXEN0);
bitSet(UCSR0C,UCSZ01);
bitSet(UCSR0C,UCSZ00);
UBRR0=(F_CPU/16/BAUD-1);
}
/*
*******************************************************************************************
**************
** inlet parameter :c
*******************************************************************************************
**************
*/
87
void Sendbyte(char c)
{
loop_until_bit_is_set(UCSR0A,UDRE0);
UDR0=c;
}
/*
*******************************************************************************************
**************
*******************************************************************************************
**************
*/
//ISR(USART0_RX_vect) // 2560
ISR(USART_RX_vect) //UNO
{
UCSR0B &= ~(1 << RXCIE0);
Get_uartdata();
UCSR0B |= (1 << RXCIE0);
}
/*
*******************************************************************************************
**************
88
** function name :SendString
*******************************************************************************************
**************
*/
void SendString(char *str)
{
while(*str)
{
Sendbyte(*str);
str++;
}
Sendbyte(0x0d);
Sendbyte(0x0a);
}
/*
*******************************************************************************************
**************
89
*******************************************************************************************
**************
*/
void Get_uartdata(void)
{
static int i;
serial_data = UDR0;
if (rec_flag == 0)
{
if (serial_data == 0xff)
{
rec_flag = 1;
i = 0;
Costtime = 0;
}
}
else
{
if (serial_data == 0xff)
{
rec_flag = 0;
if (i == 3)
{
Communication_Decode();
}
90
i = 0;
}
else
{
buffer[i] = serial_data;
i++;
}
}
}
/*
*******************************************************************************************
**************
*******************************************************************************************
**************
*/
void UartTimeoutCheck(void)
{
if (rec_flag == 1)
{
Costtime++;
91
if (Costtime == 100000)
{
rec_flag = 0;
}
}
}
/*
*******************************************************************************************
**************
*/
void Communication_Decode()
{
if(buffer[0]==0x00)
{
switch(buffer[1])
{
case 0x01:MOTOR_GO_FORWARD; return;
case 0x02:MOTOR_GO_BACK; return;
case 0x03:MOTOR_GO_LEFT; return;
case 0x04:MOTOR_GO_RIGHT; return;
92
case 0x00:MOTOR_GO_STOP; return;
default: return;
}
}
else if(buffer[0]==0x01)
{
if (buffer[2] > 170)return;
switch(buffer[1])
{
case 0x01:angle1 = buffer[2];servo1.write(angle1);return;
case 0x02:angle2 = buffer[2];servo2.write(angle2);return;
case 0x03:angle3 = buffer[2];servo3.write(angle3);return;
case 0x04:angle4 = buffer[2];servo4.write(angle4);return;
//case 0x05:angle5 = buffer[2];servo5.write(angle5);return;
//case 0x06:angle6 = buffer[2];servo6.write(angle6);return;
case 0x07:angle7 = buffer[2];servo7.write(angle7);return;
case 0x08:angle8 = buffer[2];servo8.write(angle8);return;
default:return;
}
}
else if(buffer[0]==0x02)//speed adjustment
{
if(buffer[2]>100)return;
if(buffer[1]==0x01)//left speed adjustment
93
{
Left_Speed_Hold=buffer[2]*2+55; //the speed range is0~100 Convert to
pwm,the servo stop when the speed is less than 55 pwm
analogWrite(ENB,Left_Speed_Hold);
EEPROM.write(0x09,Left_Speed_Hold);//Storage speed
}
if(buffer[1]==0x02)//right speed adjustment
{
Right_Speed_Hold=buffer[2]*2+55;//the speed range is0~100 Convert to
pwm,the servo stop when the speed is less than 55 pwm
analogWrite(ENA,Right_Speed_Hold);
EEPROM.write(0x0A,Right_Speed_Hold);//Storage speed
}else return;
}
else if(buffer[0]==0x33)//reab the servo angle valye and assign
{
Init_Steer();return;
}
else if(buffer[0]==0x32)//save the command
{
EEPROM.write(0x01,angle1);
EEPROM.write(0x02,angle2);
EEPROM.write(0x03,angle3);
EEPROM.write(0x04,angle4);
//EEPROM.write(0x05,angle5);
//EEPROM.write(0x06,angle6);
94
EEPROM.write(0x07,angle7);
EEPROM.write(0x08,angle8);
return;
}
else if(buffer[0]==0x13)//mode switch
{
switch(buffer[1])
{
case 0x02: Cruising_Flag = 2; return; //track line
case 0x03: Cruising_Flag = 3; return; //obstacle avoidence
case 0x04: Cruising_Flag = 4; return; //obstacle avoidence
case 0x05: Cruising_Flag = 5; return; //ultrasonic distance showing on PC
case 0x00: Cruising_Flag = 0; return; //normal mode
default:Cruising_Flag = 0; return; //normal mode
}
}
else if(buffer[0]==0x04)
{
switch(buffer[1])
{
case 0x00:Open_Light(); return; //Turn on the light
case 0x01:Close_Light(); return; //Turn off the light
default: return;
}
}
95
else if(buffer[0]==0x40)//save the Motor flag
{
adjust=buffer[1];
EEPROM.write(0x10,adjust);
}
}
96
Antecedentes Personales Del Estudiante
97