Sie sind auf Seite 1von 98

INSTITUTO PROFESIONAL LOS LAGOS

CENTRO DE FORMACIÓN TÉCNICA


SEDE TALCA
CARRERA INGENIERÍA EN INFORMÁTICA

AUTO ROBOT ARDUINO UNO 4X4

Seminario presentado para obtener el


Título de Ingeniería en Informática
Docente tutor: Pedro Alquinta

ARMANDO ESTEBAN GÓMEZ SEPÚLVEDA


SEDE TALCA - CHILE
SEPTIEMBRE, 2018

0
DEDICATORIA

A mis profesores

Ingeniero Pedro Alquinta por su gran apoyo y motivación para la


culminación de nuestros estudios profesionales y para la elaboración de
este seminario; a la profesora e Ingeniera Lastenia Salinas por su apoyo
ofrecido en este trabajo por su tiempo compartido y por impulsar el
desarrollo de nuestra formación profesional.

Mis amigos.

Que me apoyaron en esta formación profesional y que hasta ahora,


seguimos siendo amigos: Jorge Flores, Alonso Castro, Rodrigo Muñoz,
Elizabeth Morales, Jorge Oyarzun, Claudio González a todos ellos dar
gracias por ser de gran ayuda y motivación en el transcurso de la
realización de este seminario.

1
AGRADECIMIENTOS

En primer lugar deseo expresar mi agradecimiento a la Exdirectora del


establecimiento a la Señora Pamela Rojas por la oportunidad y la ayuda
brindada en este difícil y largo proceso, a mi profesor guía al ingeniero Pedro
Alquinta por la dedicación y apoyo que ha brindado a este seminario, por el
respeto a mis sugerencias e ideas y por la dirección y el rigor que ha facilitado a
las mismas. Gracias por la confianza ofrecida desde que llegué a esta casa de
estudio.
Asimismo, agradezco a mis compañeros de la carrera de informática por su
apoyo personal y humano, con quienes he compartido proyectos e ilusiones
durante estos años.
Un trabajo de investigación es siempre fruto de ideas, proyectos y esfuerzos
previos que corresponden a otras personas. En este caso mi más sincero
agradecimiento a los profesores que me acompañaron en estos años de
carrera, con su trabajo estaré siempre en deuda. Gracias por su amabilidad
para facilitarme sus ideas y conocimientos y lo más importante su tiempo.
Pero este trabajo de investigación es también fruto del reconocimiento y del
apoyo vital que nos ofrecen las personas que nos estiman, sin el cual no
tendríamos la fuerza y energía que nos anima a crecer como personas y como
profesionales.
Gracias a mis amigos, que siempre me han prestado un gran apoyo moral y
humano, necesarios en los momentos difíciles de este trabajo y esta profesión.
A todos, muchas gracias.

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

El presente trabajo de Investigación se basa en el desarrollo de un proyecto


bajo la plataforma Arduino UNO, que nos permite tener el control de un auto
robot 4x4.
Su principal funcionamiento es ser manejado por cualquier usuario que
tenga un PC compatible o un dispositivo iPhone.
El software del proyecto utiliza exclusivamente soluciones libres y de uso
gratuito. Desarrollado en Sistema Operativo Windows en cualquier versión de
7,8 y 10.

6
INTRODUCCIÓN

El desafío del proyecto consiste en armar el hardware que utiliza Arduino, y


manipularlo a través de un PC compatible o un IPHONE.
El auto robot espía 4x4 funciona en los distintos sistema IOS y puede
trasmitir en vivo en tiempo real desde un pc, este auto robot posee la cualidad
de poder adaptarse a los distintos terrenos (a excepción de lugares húmedos)
La investigación entrega herramientas que permiten lograr el armado y la
interacción del Hardware y el Software, con la finalidad de mostrar el proceso
de este proyecto. Se entregan los pasos y procesos, así también el armado y
configuración.

7
CAPÍTULO I DESCRIPCIÓN Y PLANTEAMIENTO DEL PROBLEMA

8
1.1 Formulación del Problema

La tecnología se desarrolla de manera impresionante y cada vez surgen nuevos


inventos que intenta facilitar la vida del hombre. Sin embargo, en la búsqueda
de conocimiento, el hombre se ha encontrado con ciertas dificultades que un
vehículo explorador controlado a distancia podría solucionar.
Algunas de estas tareas son: la investigación de lugares poco accesibles
para el tamaño de un ser humano, ambientes contaminados y dañinos para
la salud, situaciones que pueden resultar en la muerte de un ser vivo o
comprometer su integridad física. Junto a estas actividades es importante
integrar la comodidad del control a distancia y que mejor que mediante un
dispositivo como el teléfono celular, acompañado de una de las plataforma de
vanguardia como lo es IOS .
HIPÓTESIS
Es posible controlar el vehículo explorador usando un dispositivo con
plataforma IOS, que sea capaz de enviar instrucciones para los motores y
recibir información del microcontrolador en el vehículo vía WIFI al mismo tiempo
que recibe imágenes remotas atreves del entorno vía Wi-Fi.

9
1.2 Objetivo General

Presentar un proyecto libre, relacionado al área de informática sobre la


plataforma Arduino UNO, compilada en el lenguaje de programación C.

10
1.3 Objetivos Específicos

Generar comunicación bidireccional entre una tarjeta Arduino y el módulo


de control wifi
Compactar el hardware utilizado al menor tamaño posible y que sea
funcional.
Adquirir nuevos conocimientos, tanto en el área del software, como en la
electrónica de la que haremos uso.
Comprender el funcionamiento de cada implemento utilizado en el
proyecto.
Conocer más a fondo las capacidades de un microcontrolador.

11
1.4 Pregunta De Investigación

1.4.1 ¿Arduino desarrollo tecnológico?

Las posibilidades de este microcontrolador son infinitas en la rama de la


electrónica, todo depende de la creatividad y disposición de quién la utiliza,
según técnicos del hardware. Universidades e institutos también está
interesado en enseñar a estudiantes este tipo de tecnología.
Con un tamaño de 7.5 cm de largo y 5.4 cm de ancho, menor que el
tamaño de un carnet, este microcontrolador es muy utilizado por los usuarios
ligados a la informática, electrónica y robótica. Su uso no se limita al
aprendizaje sino que cualquiera con ideas creativas puede manipular y ejecutar
proyectos debido a que su programación es fácil de utilizar.
Los estudiantes e ingenieros en informática, electrónica son los que tratan de
sacar el máximo provecho, ya que aseguran que desde la creación de dicha
placa se pueden ahorrar dinero en la compra de materiales. Otra ventaja es su
lenguaje de programación. Es decir, hoy tenemos un todo en uno.
La llegada de esta placa al mercado ha permitido que muchos estudiantes y
profesores comiencen a incluir en sus proyectos y material de estudio la
enseñanza y capacitación del microcontrolador y programación como parte
fundamental en las ramas de la informática y electrónica.
Para entender por qué un Arduino es una herramienta poderosa es necesario
entender qué es un microcontrolador. En esencia se trata del miniordenador
que se encuentra dentro de innumerables electrodomésticos y dispositivos
electrónicos -desde televisores y microondas a coches teledirigidos o
frigoríficos-. Estos chips no tienen la potencia de un PC, pero pueden realizar
muchas de sus funciones básicas, desde ejecutar programas sencillos a
controlar dispositivos como motores, o sensores capaces de detectar la
temperatura y el movimiento.

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

Un auto robot es un proyecto con Arduino, al alcance de cualquier persona con


algo de tiempo y conocimientos de electrónica y programación. Las aplicaciones
de este auto robot teledirigido con Smartphone son bastante limitadas, pero se
le puede sacar provecho con un poco de imaginación.
Por ejemplo un auto robot con estas características nos ayuda a comprender
y a imaginar los usos que cada persona puede darle a este proyecto o a
cualquier otro, en este caso nuestro auto robot tiene la particularidad de
mostrar al usuario que ve el auto a través de su cámara y el usuario la ve
reflejada en su pantalla, el Smartphone aparte de ser nuestro visor también
cuenta con joystick para dirigir nuestro auto robot.

16
CAPITULO II MARCO TEÓRICO

17
2.1 Marco Teórico

Arduino, es una plataforma de prototipos electrónica de código abierto basada


en hardware y software flexibles y sencillos de usar. Está pensado para
cualquier interesado en crear objetos o entornos interactivos. Este artefacto,
puede sentir el entorno mediante la recepción de entradas desde una variedad
de sensores y puede afectar a su alrededor mediante el control de luces,
motores y otros artefactos. El microcontrolador de la placa se programa usando
su propio software, "Arduino Programming Language" basado en Wiring y el
Arduino Development Environment basado en Processing.
Los proyectos de Arduino pueden ser autónomos o se pueden comunicar con
software en ejecución en un ordenador. Existen muchos microcontroladores y
plataformas microcontroladores disponibles para computación física. Todas
estas herramientas toman los desordenados detalles de la programación del
microcontrolador y la encierran en un paquete fácil de usar. Arduino simplifica el
proceso de trabajo con microcontroladores y ofrece grandes ventajas.
Arduino inició como un proyecto que se hizo en el Instituto de Diseño
Interactivo Ivrea en el año 2005; Aunque su origen está implícito en otros
proyectos ya trabajados, con el objetivo de hacer una herramienta para los
estudiantes más moderna que las existentes en el mercado, incluyendo a la
BASIC Stamp, con un costo aproximado de 100 dólares y que los estudiantes
no estaban dispuestos a pagar y con la necesidad de adquirir varias placas.
Además, los fundadores estaban ante la problemática de un posible cierre de la
escuela, por lo que diseñaron a Arduino como hardware open source. Así, nació
la primera placa Arduino, establecida sólo para los estudiantes, La primera
versión RS-232 para soldar. Tiempo después, se llegó a un acuerdo con otros
Institutos, con el fin de hacer comercial el producto.
Se trabajó con la versión USB ya montada, probada y lista para funcionar, y
que en el año de 2010, se llevaban vendidos más de 40,000 placas. El Arduino
contiene 14 pines de entrada/salida digital (de los cuales 6 pueden ser usados
como salidas PWM). 6 entradas analógicas, un oscilador de cuarzo a 16MHz,
una conexión USB, un conector para alimentación, una cabecera ICSP y un
botón de reset. Contiene todo lo necesario para soportar el microcontrolador
simplemente conectado a un ordenador con un cable USB o enchufado con un
adaptador AC/DC o batería para comenzar El Arduino puede ser alimentado a
través de la conexión USB o con un suministro de energía externa. La fuente de
Energía se selecciona mediante el jumper PWR_SEL La alimentación externa
(es decir, no USB) puede venir desde un adaptador AC a DC o desde una
batería.

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?

Arduino es una plataforma de prototipos electrónica de código abierto (open-


source) basada en hardware y software flexibles y fáciles de usar. Está pensado
para artistas, diseñadores, como hobby y para cualquiera interesado en crear
objetos o entornos interactivos.
Arduino puede sentir el entorno mediante la recepción de entradas desde una
variedad de sensores y puede afectar a su alrededor mediante el control de
luces, motores y otros artefactos. El microcontrolador de la placa se programa
usando el Arduino Programming Language (basado en Wiring) y el Arduino
Development Environment (basado en Processing). Los proyectos de Arduino
pueden ser autónomos o se pueden comunicar con software en ejecución en un
ordenador (por ejemplo con Flash, Processing, MaxMSP, etc.).
Las placas se pueden ensamblar a mano o encargarlas pre ensambladas; el
software se puede descargar gratuitamente. Los diseños de referencia del
hardware (archivos CAD) están disponibles bajo licencia open-source, por lo
que son libres de adaptarlas a nuestras necesidades.

20
2.3 ¿Por qué ARDUINO UNO?

Existen muchas otras placas de diferentes fabricantes que, aunque incorporan


diferentes modelos de microcontroladores, son comparables y ofrecen una
funcionalidad más o menos similar a la de las placas Arduino. Todas ellas
también vienen acompañadas de un entorno de desarrollo agradabl, cómodo y
de un lenguaje de programación sencillo y completo. No obstante, la plataforma
Arduino (hardware + software + lenguaje de programación) ofrece una serie de
ventajas:
Arduino es libre y extensible: esto quiere decir que cualquiera que desee
ampliar y mejorar tanto el diseño hardware de las placas como el entorno de
desarrollo software y el propio lenguaje de programación, puede hacerlo sin
problemas.
Arduino tiene una gran comunidad: muchas personas lo utilizan, enriquecen la
documentación y comparten continuamente sus ideas.
Su entorno de programación es multiplataforma: se puede instalar y ejecutar en
sistemas Windows, Mac OS X y Linux. Esto no ocurre con el software de
muchas otras placas.
Su entorno y el lenguaje de programación son simples y claros: son muy fáciles
de aprender y de utilizar, a la vez son flexibles y completos para que los
usuarios avanzados puedan aprovechar y exprimir todas las posibilidades del
hardware.
Las placas Arduino son económicas: la placa Arduino estándar ya pre
ensamblado y listo para funcionar cuesta menos de 20 euros. Incluso, uno
mismo se la podría construir adquiriendo los componentes por separado, con lo
que el precio total de la placa resultante sería incluso menor.
Las placas Arduino son reutilizables y versátiles: reutilizables porque se puede
aprovechar la misma placa para varios proyectos (ya que es muy fácil de
desconectarla, reconectarla y reprogramarla), y versátiles porque las placas
Arduino proveen varios tipos diferentes de entradas y salidas de datos, los
cuales permiten capturar información de sensores y enviar señales a
actuadores de múltiples formas.

21
2.4 Sistema Operativo IOS

IOS es un sistema operativo móvil de la multinacional Apple Inc. Originalmente


desarrollado para el iPhone (iPhone OS), después se ha usado en dispositivos
como el iPod touch y el iPad. No permite la instalación de iOS en hardware de
terceros.
Actualmente es el segundo sistema operativo móvil más utilizado del mundo,
detrás de Android, con una cuota de mercado de entre 10-15% al año 2017. La
última versión del sistema operativo es iOS 12 aparecida en junio de 2018
sustituye a iOS 112 con el objetivo principal de mejorar la experiencia del
usuario.
Los elementos de control consisten de deslizadores, interruptores y botones.
La respuesta a las órdenes del usuario es inmediata y provee una interfaz
fluida. La interacción con el sistema operativo incluye gestos como deslices,
toques, pellizcos, los cuales tienen definiciones diferentes dependiendo del
contexto de la interfaz. Se utilizan acelerómetros internos para hacer que
algunas aplicaciones respondan a sacudir el dispositivo (por ejemplo, para el
comando deshacer) o rotarlo en tres dimensiones (un resultado común es
cambiar de modo vertical al apaisado u horizontal).
En el marco de las filtraciones acerca de los programas de vigilancia mundial
de 2013-2014 de Edward Snowden, Der Spiegel publicó que la NSA
estadounidense tiene grupos de trabajo dedicados a descifrar los sistemas de
seguridad de iOS; además tiene pequeños programas conocidos como scripts
que permiten a la agencia vigilar a los usuarios de las distintas versiones del
sistema iOS su geolocalización, notas de voz, fotos y otras aplicaciones como
Google Earth, Facebook o Yahoo! Messenger.3
iOS se deriva de macOS, que a su vez está basado en Darwin BSD, y por lo
tanto es un sistema operativo Tipo Unix. iOS cuenta con cuatro capas de
abstracción: la capa del núcleo del sistema operativo, la capa de "Servicios
Principales", la capa de "Medios" y la capa de "Cocoa Touch".

22
2.5 Historia De IOS

Apple reveló la existencia de iPhone OS en la Macworld Conference & Expo del


9 de enero de 2007,4 aunque el sistema no tuvo un nombre oficial hasta que
salió la primera versión beta del iPhone SDK un año más tarde, el 6 de marzo
de 2008. Antes de esto se consideraba simplemente que el iPhone ejecutaba
OS X o una versión modificada de NewtonOS.5 Desde ese momento se
llamaría iPhone OS. El lanzamiento del iPhone OS tuvo lugar el 29 de junio de
2010 y no es hasta el lanzamiento del iPad - que también lo utiliza como
sistema operativo - que pasa a llamarse simplemente iOS.
El interés en el SDK aumentaría en meses siguientes debido al aumentante
crecimiento de la plataforma iPhone, que se vio incrementado en septiembre de
2007 del iPod Touch, un dispositivo con las capacidades multimedia del iPhone
pero sin la capacidad de hacer llamadas telefónicas solo por redes.6
El 27 de enero de 2010 Steve Jobs, CEO de Apple, anunció el iPad, un
dispositivo muy similar al iPod Touch pero con un propósito orientado hacia la
industria de contenidos. Este dispositivo, apoyado en una pantalla táctil de
mayor dimensión, compartiría sistema operativo con sus dos exitosos
hermanos, y vendría acompañado de una aplicación oficial para la compra y
lectura de libros electrónicos, iBooks.
A fecha de abril de 2010 se estima por encima de 185 000 las aplicaciones
disponibles para iPhone OS a través de la App Store8 El 7 de junio de 2010,
durante la presentación del iPhone 4, Steve Jobs anunció que iPhone OS
pasaría a ser llamado oficialmente como iOS.9
El 12 de septiembre de 2012 se presenta iOS 6 durante la pres1 El 10 de
junio de 2013 es presentado iOS 7 en la WWDC 2013 a las 10:00 tiempo de
San Francisco como "El mayor cambio de iOS desde el iPhone original", cambia
por completo el diseño gráfico del sistema, haciéndolo más plano y con nuevos
íconos, trae nuevas características como AirDrop, Filtros de cámara, Fondo
dinámico entre muchas otras, ese mismo día se liberó la beta 1 para
desarrolladores. En la misma conferencia se dieron a conocer los datos oficiales
de iOS a la fecha, indican que han sido vendidos más de 600 millones de
iDevices, los usuarios de iOS utilizan un 50 % más sus dispositivos que los de
Android, el mercado web lo domina iOS con un 60 % y en tabletas el iPad tiene
el 82 % del tráfico web, se ubica en el lugar #1 de satisfacción al cliente con un
73 % seguido por Windows Phone con el 53 %, y el 93 % de los usuarios tienen
instalada la versión actual del sistema.

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

2.6.1 Desarrollo de aplicaciones para iOS


Para el desarrollo de aplicaciones para iOS se emplea el iOS SDK. Fue
lanzado en marzo de 2008 y le permite a los desarrolladores crear aplicaciones
para iPhone, iPad, iPod, etc. Permite probarlas en el "simulador de iPhone",
pero ejecutarlas en el dispositivo o distribuirlas en el Apple Store sólo es posible
tras pagar el iPhone Developer Program que cuesta 99 dólares al año. Las
aplicaciones deben ser escritas en Objective-C El 70% de lo que cuesta una
aplicación queda para su desarrollador y el 30% para Apple.

25
2.7 OBJECTIVE-C

Objective-C es un lenguaje de programación orientado a objetos que


incorpora mensajes tipo Smalltalk a la programación en lenguaje C. Es el
lenguaje principal empleado para el desarrollo de aplicaciones para los
sistemas operativos iOS y OS X de la compañía Apple.

El código fuente de un programa escrito en Objective-C suele tener la


extensión de archivo.m. Comenzó a desarrollarse a principios de los
1980 para los sistemas operativos NeXT y NeXTSTEP, de los cuales
derivan el OS X y el iOS.

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

2.10.1 Método de instalación 1

Descargar la lectura de códigos de dos dimensiones directamente debajo del


teléfono de Apple con un micro-canal o iPad, o cualquier otra herramienta de
escaneo de código de dos dimensiones.

2.10.2 Método de instalación 2

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

El modo de joystick motor control.


8 canal de servo de control / robótico.
De dos grados de libertad PTZ de control.
Un almacenamiento de la cámara de vídeo solo con computador.
La cabeza, la función de bloqueo del servo.

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.

Arquitectura de software basadas en el marco framework4.5 .Net, C # usando el


desarrollo del lenguaje .NET. Este software tiene las siguientes funciones:

Captura de vídeo y la pantalla.


Robot de control del motor.
Robot de control del motor.
Control servo del robot.
Control PTZ de vídeo.
Pantalla de radar rango de adquisición de datos del sensor una pantalla.

Este software se basa en el desarrollo .Net ambiente Framework4.5 de Microsoft, por


lo que antes de ejecutar este software requiere

Figuras 2.

La instalación marco Framework4.5 .Net, esto puede llevar a un componente


que falta. NET Framework descarga:

https://www.microsoft.com/zh-cn/downlo ad / Identificación del details.aspx =


30653?

32
2.12.1 Uso del Asistente

La señal inalámbrica (Wi-Fi módulo de señal), o el uso de un cable para


conectar el robot al PC ordenador conectado a la tarjeta de red inalámbrica.
La primera vez que se ejecuta, el programa se abrirá mediante una interfaz de
asistente, de acuerdo a sus hábitos para seleccionar el idioma apropiado, si no
quiere ver utilizando el asistente próxima vez que ejecute el programa, puede
seleccionar la opción "asistente no pop-up".

Figuras 2.

2.12.2 Control PTZ

La cabeza se compone de dos servos SG90, permitiendo que el cabezal de la


cámara y mecanismo que gira alrededor sea manipulado por el software de
control en el PC, hay dos maneras de controlar PTZ :
En primer lugar, el software de control de la dirección con el PC, el plato de
control de servo control deslizante.
En segundo lugar, seleccionamos la barra de menú de la "Accesibilidad" - "con
el ratón PTZ" cuadrado azul a aparecer en la imagen Block, utilizando el ratón
para arrastrar bloque PTZ.

33
2.13 Relación Entre La Electrónica Y La Informática

La Informática: es una disciplina emergente-integradora que surge producto de


la aplicación-interacción sinérgica de varias ciencias, como la computación, la
electrónica, la cibernética, las telecomunicaciones, la matemática, la lógica, la
lingüística, la ingeniería, la inteligencia artificial, la robótica, la biología, la
psicología, las ciencias de la información, cognitivas, organizacionales, entre
otras, al estudio y desarrollo de los productos, servicios, sistemas e
infraestructuras de la nueva sociedad de la información.
La electrónica: es el campo de la ingeniería y de la física aplicada relativo al
diseño y aplicación de dispositivos, por lo general circuitos electrónicos, cuyo
funcionamiento depende del flujo de electrones para la generación, transmisión,
recepción, almacenamiento de información, entre otros. Esta información puede
consistir en voz o música como en un receptor de radio, en una imagen en una
pantalla de televisión, o en números u otros datos en un ordenador o
computadora.
Por lo tanto mirando los siguientes conceptos anteriores La electrónica Va
ligada a la informática muy estrechamente, y a medida que la electrónica
mejora, reduciendo el tamaño y el precio, y aumentando la calidad del producto,
así por ejemplo se consiguen ordenadores más rápidos, económicos y eficaces.
La informática es, probablemente la ciencia que más rápido avanza, creando
nuevos dispositivos más rápidos, más fiables y en definitiva mejores casi a
diario. Gracias a la informática se ha avanzado mucho en el diagnóstico de
enfermedades usando métodos diversos como mini cámaras-robots, scanner,
aparatos de rayos, etc., controlados por ordenadores. La electrónica médica a
llegado hasta a sistemas que pueden diferenciar aún más los órganos del
cuerpo humano. Se han desarrollado asimismo dispositivos que permiten ver
los vasos sanguíneos y el sistema respiratorio. También la alta definición
promete sustituir a numerosos procesos fotográficos al eliminar la necesidad de
utilizar plata.
La investigación actual dirigida a aumentar la velocidad y capacidad de las
computadoras se centra sobre todo en la mejora de la tecnología de los
circuitos integrados y en el desarrollo de componentes de conmutación aún más
rápidos. Se han construido circuitos integrados a gran escala que contienen
varios centenares de miles de componentes en un solo chip.

34
2.14 ¿Qué Componentes Utiliza El Auto Robot 4x4?

2.14.1 ARDUINO UNO R3

El Arduino es una plataforma computacional


física open-source basada en una simple tarjeta
de I/O y un entorno de desarrollo que
implementa el lenguaje Processing/Wiring.

El Arduino Uno R3 puede ser utilizado para


desarrollar objetos interactivos o puede ser
conectado a software de tu computadora.

2.14.2 SERVO MOTOR

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, y mantenerse estable en dicha
posición. El servomotor es un motor eléctrico
que puede ser controlado tanto en velocidad
como en posición.

2.14.3 MOTOR REDUCTOR

Toda máquina cuyo movimiento sea generado


por un motor (ya sea eléctrico, de explosión u
otro) necesita que la velocidad de dicho motor
se adapte a la velocidad necesaria para el buen
funcionamiento de la máquina. Además de esta
adaptación de velocidad, se deben contemplar
otros factores como la potencia mecánica a
transmitir, la potencia térmica, rendimientos
mecánicos (estáticos y dinámicos).

35
2.14.4 MÓDULO WIFI PARA ARDUINO

El wifi es un mecanismo de conexión de


dispositivos electrónicos de forma inalámbrica.
Los dispositivos habilitados con wifi como
Arduino, pueden conectarse a internet a través
de un punto de acceso de red inalámbrica.

2.14.5 CÁMARA HD VISIÓN NOCTURNA

Una cámara web necesita una computadora


para transmitir las imágenes. Sin embargo,
existen otras cámaras autónomas que
únicamente necesitan un punto de acceso a la
red informática, bien sea ethernet o inalámbrico.

Para diferenciarlas de las cámaras web se las


denomina cámaras de red. Ambas son útiles en
tareas de seguridad, para video-vigilancia.

2.14.6 CABLE USB

Un cable es un cordón que está compuesto por


diferentes conductores, los cuales están
aislados entre ellos, y que se encuentra
recubierto por una envoltura a modo de
protección. USB, por otra parte, es la sigla
correspondiente a Universal Serial Bus: un
estándar que, en el terreno de la computación,
establece los protocolos y los conectores que se
emplean en un bus para la conexión de
dispositivos.

36
2.14.7 LLANTA PARA MOTOR PLÁSTICO

La llanta es la única parte del auto que toca el


camino. Las llantas deben lograr un equilibrio
entre la tracción, el confort, la durabilidad, la
eficiencia energética y el costo general. Como
resultado de estas necesidades en
competencia, las llantas son más complejas en
cuanto a diseño y construcción de lo que
podrías pensar.

2.14.8 CABLES PUENTES

Un cable puente para prototipos (o simplemente


puente para prototipos), es un cable con un
conector en cada punta (o a veces sin ellos), que
se usa normalmente para interconectar entre sí
los componentes en una placa de pruebas

2.14.9 CHASIS

Consiste en una estructura interna que sostiene,


aporta rigidez y da forma a un vehículo u objeto
en su construcción y uso. Es análogo al
esqueleto de un animal. Para el caso de un
vehículo, consta de un armazón2 que integra
entre sí y sujeta tanto los componentes
mecánicos

37
2.14.10 BATERÍAS O PILAS

Es un dispositivo que convierte energía química


en energía eléctrica por un proceso químico
transitorio, tras lo cual cesa su actividad y han
de renovarse sus elementos constituyentes,
puesto que sus características resultan
alteradas durante el mismo

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

MICRO USB CABLE


ARDUINO UNO

Cámara

Cable De Energía

Batería
Interfaz USB 2.0 Módulo WIFI

39
Conexión del hardware.

Instalación de hardware para Arduino UNO.

Figura 2.8

40
Conexión del hardware.

Instalación de hardware para Arduino

Encendido Y Placa Controladores


De Motores

Placa ARDUINO UNO R3


(PRINCIPAL)

Figura 2.9

41
Conexión del hardware.

Moduló WiFi Link instalación

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.

Montaje de cámara y base de giratoria de la cámara.

Cruceta de base para servo motor

Figura 2.12

Instalar la base, utilizar tornillo para fijar piezas

Figura 2.13

43
Conexión del hardware.

Figura 2.14

Figura 2.15

44
Conexión del hardware.

Unir las partes de la base y el servo motor.

Figura 2.16

45
Conexión del hardware.

Montaje para la cámara y la base.

Instalación de la cámara y la base

Figura 2.17

46
Conexión del hardware.

La conexión de soporte con la placa principal ARDUINO UNO R3.

Figura 2.18

LA CONEXIÓN DEL SERVO


El amarillo es PWM
El rojo es un color marrón VCC es el GND.

Figura 2.19

47
Conexión del hardware.

Montaje de motores al chasis

Figura 2.20

48
Conexión del hardware.

Conexión de motores

Conectar en paralelo el mismo lado de motores en cruz, a continuación,


conectarse a la interfaz de motor M1 +, M1-M2 + o, M2- en la placa base.

Figura 2.21

49
2.16 Materiales

Nylon hex bolt 8


Long screws gb-m3
Screwa gb-m3
Bloques de aluminio
Nuts gb-m3
Chasis
Antena 2dbi
Motres reductores y ruedas
Una cámara web
Modulo wifi para arduino
Arduino UNO R3
baterias de litio 7.7 volt
servo motor

50
2.17 El Diseño

Antes de comenzar la construcción, es importante tener una visión


completa de cómo va a funcionar, una vez construido el chasis nos
ponemos a integrar cada motor y rueda para así poder llevar la
construcción de los soportes para el micro controlador ARDUINO y sus
módulo wifi, también tenemos que ter en cuenta el módulo de control de
voltaje de cada uno de los motores, después nos dedicamos a instalar la
cámara con nuestro módulo wifi para poder así transmitir la señal de lo
que observa nuestro auto y poder verla reflejada en tiempo real en
nuestro Smartphone.

Figura 2.22 diseño y armado de motor reductor.

51
2.17 EL DISEÑO

Figura 2.23 Instalación De Motores Al Chasis.

Figura 2.24 Instalación De Ruedas Al Chasis.

52
Figura 2.25 Armado De Módulo Wifi.

Figura 2.26 Instalación Módulo Wifi Al Chasis.

53
Figura 2.27 Instalación Placa Arduino Y Placa Controladora De Motores.

Figura 2.28 Instalación De Baterías Al Chasis.

54
Figura 2.29 Instalación De Cámara Wifi.

Figura 2.30 Auto Robot Arduino.

55
Figura 2.31 Dimensiones Auto Robot Arduino.

Figura 2.32 Conexión De Motores A La Placa Controladora Del 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.

Figura 2.36 Encendido Y Test Auto Robot Arduino.

58
CAPITULO III ASPECTOS METODOLÓGICOS

59
3.1 Aspectos Metodológicos

La metodología utilizada para este proyecto se basa sobre todo en el método


constructivo, que consisten en:

Descubrir ideas
Valoración positiva
Corrección de posibles errores por medio de estrategias de
indagación

Toda situación de aprendizaje debe partir de los contenidos, tanto


conceptuales como procedimentales o actitudinales, y de las experiencias, es
decir, de aquello que constituye su esquema de conocimientos previos. Los
contenidos deben organizarse en esquemas conceptuales, es decir en
conjuntos ordenados de información que pueda ser conectada a la estructura
tanto física como cognitiva.
Para la adquisición de los nuevos conocimientos, es útil presentar al principio
un conjunto de conceptos y relaciones de materia objeto del aprendizaje,
organizado de tal manera que permita la inclusión de el y de otros contenidos:
conceptos, procedimientos y actitudes. La organización del conocimiento de
esta forma supone un esfuerzo de adaptación de las estructura interna de los
conocimientos informáticos y electrónicos a la estructura cognitiva generando
así un aprendizaje significativo.

60
CAPITULO IV ANÁLISIS DE DATOS

61
4.1 Análisis De Datos

Teniendo en cuenta que generalmente en toda investigación se persigue


un propósito señalado y se busca un determinado resultado. En las
investigaciones de tipo descriptiva, llamadas también investigaciones
diagnósticas, buena parte de lo que se escribe y estudia sobre lo social no va
mucho más allá de este nivel. Consiste, fundamentalmente, en caracterizar un
fenómeno o situación concreta indicando sus rasgos más peculiares o
diferenciadores. En el caso del auto robot 4x4, las características de este,
están por medio de una cámara, el movimiento de los motores en este caso 4
(cuatro), por medio de un módulo WIFI, y también un micro controlador Arduino
UNO para administrar el movimiento de dichos motores lo que nos permite usar
todos en la aplicación IOS, ya que, nos facilita dirigir tanto nuestra cámara como
nuestro proyecto.

62
4.2 Arquitectura

Este dispositivo funciona a través de un Arduino uno, el cual administrará el


movimiento de los 4 Motor-reductores, esto se hace por medio de un puente H
(MODULO DRIVER DE MOTORES) quien dispone la dirección y potencia
aplicada para cada motor según lo haga el usuario, además el usuario puede
ver la captura de video en vivo por medio de un dispositivo móvil, esta cámara
también captura fotografías pedidas atreves de la misma aplicación. Esta
comunicación entre diferentes dispositivos, que permite El funcionamiento se da
con la ayuda de un módulo WIFI, quien envía las peticiones proporcionadas por
el usuario para mover la cámara en la dirección que se quiere, y esta responde
a través de dicho modulo con la reproducción del video y el movimiento
indicado.

CAMARA MOTOR 1 MOTOR 2

MODULO DRIVER
DISPOCITIBO MODULO WIFI ARDUINO UNO MOTORES
MOVIL O PC

MOTOR 3 MOTOR 4

63
CAPITULO V CONCLUSIONES

64
5.1 Conclusión

Nuestro principal objetivo fue basado en el desarrollo de un auto robot, desde el


diseño del circuito conexiones de motores, hasta conexión del dispositivo
inalámbrico, pasándo por la programación o la elección de componentes. Por
supuesto el desarrollo del proyecto no ha estado exento de problemas e
inconvenientes, a los que se hace frente investigando de forma autónoma y
aprendiendo de los propios errores.
Un aprendizaje fundamental a la hora de diseñar y montar las distintas
tarjetas y conexión de motores la soldadura, a priori un aspecto no demasiado
relevante, se convierte en crucial y completamente determinante en el buen
funcionamiento del circuito. Ya que puede tener todo el circuito bien diseñado y
planteado pero si hay un pequeño error de soldadura, nos va a dar problemas
que además son muy difíciles de detectar ya que incluso cuando el test de
continuidad con el multi-tester nos dice que está bien soldado, no garantiza que
vaya a funcionar de manera correcta ya que igual hay algún contacto que se
mueve o el estaño no recubre al pin de forma adecuada. En el desarrollo del
proyecto se ha presentado en varias ocasiones este problema.
Otra conclusión de aprendizaje ha sido que al realizar un proyecto siempre
hay que estar sujetos a la posibilidad de que se produzcan imprevistos ajenos a
nuestra voluntad y responsabilidad. En el desarrollo del proyecto se produjeron
dos imprevistos importantes como son que el módulo inalámbrico no funcionara
o que el Arduino IDE uno no dejara programar.
Derivado de lo anterior se puede concluir que no hay que centrarse
demasiado en una cosa y que hay que intentar buscar siempre alternativas para
solucionar los problemas e imprevistos. Esto en base a la experiencia ya que se
perdió muchísimo tiempo con el problema de configuración que daba el módulo
inalámbrico con el navegador 192.168.1.1 y con el error que daba el Arduino
uno al intentar programarlo desde el ordenador. Con estos dos problemas se
perdieron semanas, pasando horas y horas en foros y páginas intentando
solucionarlo y al final la solución fue un Arduino UNO nuevo.

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

5.2.1 PAGANIAS WEB DE REFERENCIA.

https://www.microsoft.com/zh-cn/downlo ad / Identificación del


details.aspx = 30653?

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

Instalación de los controladores para Arduino Uno con Windows 10, 7.

Descarga el IDE de arduino correspondiente a tu sistema operativo

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

Figura anexo 1.0 Y 1.1

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

Figura anexo 1.2

Hacer click derecho en el puerto “Arduino UNO (COMxx)” y haz click en “Actualizar
software de controlador”.

70
Figura anexo 1.3

A continuación, selecciona la opción “Buscar software de controlador de forma manual”

Figura anexo 1.4

71
Figura anexo 1.5

Y buscamos el controlador llamado “arduino.inf”, ubicado en la carpeta “Drivers” de la


descarga del software de Arduino.

Figura anexo 1.6

72
Figura anexo 1.7

Figura anexo 1.8

73
Figura anexo 1.9

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

2.1 CÓDIGO MOTORES.

* File name:Motor

* File tag:Motor control related documents

* Preview:wifi robot car control

* Version:2.5

* Author:KM Team

* Completion date:April 1st,2015

*/
/*
*******************************************************************************************
**************

** function name :forward

** function feature :After the calibration forward direction

** inlet parameter :adjust

** outlet parameter :none

*******************************************************************************************
**************
*/
void forward(int adjust)
{

75
switch (adjust)
{

case 1: MOTOR_GO_FORWARD; return;


case 2: MOTOR_GO_FORWARD; return;
case 3: MOTOR_GO_BACK; return;
case 4: MOTOR_GO_BACK; return;
case 5: MOTOR_GO_LEFT; return;
case 6: MOTOR_GO_LEFT; return;
case 7: MOTOR_GO_RIGHT; return;
case 8: MOTOR_GO_RIGHT; return;
default: return;
}
}
/*
*******************************************************************************************
**************

** function name :back

** function feature :After the calibration of backward direction

** inlet parameter :adjust

** outlet parameter :none

*******************************************************************************************
**************
*/
void back(int adjust)
{

76
switch (adjust)
{
case 1: MOTOR_GO_BACK; return;

case 2: MOTOR_GO_BACK; return;


case 3: MOTOR_GO_FORWARD; return;
case 4: MOTOR_GO_FORWARD; return;
case 5: MOTOR_GO_RIGHT; return;
case 6: MOTOR_GO_RIGHT; return;
case 7: MOTOR_GO_LEFT; return;
case 8: MOTOR_GO_LEFT; return;
default: return;
}
}
/*
*******************************************************************************************
**************

** function name :left

** function feature :After the calibration of left direction

** inlet parameter :adjust

** outlet parameter :none

*******************************************************************************************
**************
*/
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;

case 4: MOTOR_GO_RIGHT; return;


case 5: MOTOR_GO_FORWARD; return;
case 6: MOTOR_GO_BACK; return;
case 7: MOTOR_GO_FORWARD; return;
case 8: MOTOR_GO_BACK; return;
default: return;
}
}
/*
*******************************************************************************************
**************

** function name :right

** function feature :After the calibration of right direction

** inlet parameter :adjust

** outlet parameter :none

*******************************************************************************************
**************
*/
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;

case 6: MOTOR_GO_FORWARD; return;


case 7: MOTOR_GO_BACK; return;
case 8: MOTOR_GO_FORWARD; return;
default: return;
}
}
/*
*******************************************************************************************
**************

** function name :Avoiding

** function feature:detect if there is the obstacle in front of the robot, the


robot car will stop if yes

** inlet parameter :none

** outlet parameter :none

*******************************************************************************************
**************

79
*/
void Avoiding()

{
IR = digitalRead(Input_Detect);
if ((IR == LOW))
{

80
2.2 MOTOR_GO_STOP;
}
}
/*

*******************************************************************************************
**************

** function name :FollowLine

** function feature :Detect the black line between the two infrared
positions, and then make the direction change of the car by logical
judgment

** inlet parameter :none

** outlet parameter :none

*******************************************************************************************
**************
*/
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

if ((IR_L == LOW) && (IR_R == LOW)) //detect obstacles on either side

{
forward(adjust);
return;

81
}

if ((IR_L == LOW) && (IR_R == HIGH)) //obstacle on the right


{
left(adjust);
return;
}

if ((IR_L == HIGH) && ( IR_R == LOW)) //obstacle on the left


{
right(adjust);
return;
}

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

** function feature :when the distance gotten by the ultrasonic is less


than 1 cm, the robot car stop

** inlet parameter :distance

** outlet parameter :none

*******************************************************************************************
**************
*/
void AvoidByRadar(int distance)
{
int leng = Get_Distance(); //get distance
if(distance<10)distance=10; //Limit minimum distance of obstacle
avoidance

if((leng>1)&&(leng < distance))//Is greater than 1 in order to avoid the


detecting precision of the ultrasonic sensors
{
while((Get_Distance()>1)&&(Get_Distance() < distance))
{
back(adjust);
}
MOTOR_GO_STOP;
}
}

83
2.3 CÓDIGO ULTRASONIC (CONTROL DE DISTANCIA)

* File name:Ultrasonic

* File tag:Ultrasonic File

* Preview:wifi robot car control

* Version:2.5

* Author:KM Team

* Completion date:April 1st,2015

*/
/*
*******************************************************************************************
**************

** function name :Get_Distence

** function feature:get the distance by the ultrasonic signal and return


(unit:cm)

** inlet parameter :none

** outlet parameter :Ldistance

*******************************************************************************************
**************
*/
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

Ldistance = Ldistance / 5.8 / 10; // turn time into distance(unit:cm)

//Serial.println(Ldistance); //Serial display the distance


return Ldistance;
}
/*
*******************************************************************************************
**************

** function name :Send_Distance

** function feature :transmit the ultrasonic data to the upper system(data


formats:0XFF,0X03,angle(default 0X00),distance(dis),0XFF)

** inlet parameter :none

** outlet parameter :none

*******************************************************************************************
**************
*/

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

* File tag:Serial port Settings and parse the file

* Preview:wifi robot car control

* Version:2.5

* Author:KM Team

* Completion date:April 1st,2015

*/
#define BAUD 9600 //Set the baud rate for 9600
/*
*******************************************************************************************
**************

** function name :USART_init

** function feature :Serial port Settings

** inlet parameter :none

** outlet parameter :none

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);
}
/*
*******************************************************************************************
**************

** function name :Sendbyte

** function feature :Send one byte

** inlet parameter :c

** outlet parameter :none

*******************************************************************************************
**************
*/

87
void Sendbyte(char c)

{
loop_until_bit_is_set(UCSR0A,UDRE0);
UDR0=c;
}
/*
*******************************************************************************************
**************

** function name :ISR

** function feature :A serial port interrupt function

** inlet parameter :USART_RX_vect

** outlet parameter :none

*******************************************************************************************
**************
*/
//ISR(USART0_RX_vect) // 2560
ISR(USART_RX_vect) //UNO
{
UCSR0B &= ~(1 << RXCIE0);
Get_uartdata();
UCSR0B |= (1 << RXCIE0);
}
/*
*******************************************************************************************
**************

88
** function name :SendString

** function feature :A serial port for sending characters

** inlet parameter :str

** outlet parameter :none

*******************************************************************************************
**************
*/
void SendString(char *str)
{
while(*str)
{
Sendbyte(*str);
str++;
}
Sendbyte(0x0d);
Sendbyte(0x0a);
}
/*
*******************************************************************************************
**************

** function name :Get_uartdata()

** function feature :read serial port command

** inlet parameter :none

** outlet parameter :none

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++;
}
}
}
/*
*******************************************************************************************
**************

** function name :UartTimeoutCheck()

** function feature :serial port timeout detection

** inlet parameter :none

** outlet parameter :none

*******************************************************************************************
**************
*/
void UartTimeoutCheck(void)
{
if (rec_flag == 1)
{
Costtime++;

91
if (Costtime == 100000)
{

rec_flag = 0;
}
}
}
/*
*******************************************************************************************
**************

** function name :Communication_Decode()

** function feature :Serial command decoding

** inlet parameter :none

** outlet parameter :none

*/
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

NOMBRE ARMANDO ESTEBAN GÓMEZ SEPÚLVEDA


RUN: 16.997.732-1
TELÉFONO MÓVIL +569-52117013 MOVISTAR
E-MAIL
PARTICULAR ARMANDOESTEBANGOMEZ@GMAIL.COM
:

97

Das könnte Ihnen auch gefallen