Trabajo Prácticoso-unlam.com.ar/soa/iot-2016-c1-Control_Camara_Servo.pdf · El objetivo del...

8
Trabajo Práctico Sistema Embebido + ANDROID Cámara web manejada por servos Sistemas Operativos Avanzados Curso: Miércoles Turno: Noche Integrantes - De Brasi Ayelen DNI: 37.869.444 - do Nascimento Leandro DNI: - Surace Ezequiel DNI: - Vanini Mariano DNI: 1er cuatrimestre 2016

Transcript of Trabajo Prácticoso-unlam.com.ar/soa/iot-2016-c1-Control_Camara_Servo.pdf · El objetivo del...

Trabajo Práctico Sistema Embebido + ANDROID

Cámara web manejada por servos

Sistemas Operativos Avanzados

Curso: Miércoles Turno: Noche

Integrantes

- De Brasi Ayelen DNI: 37.869.444

- do Nascimento Leandro DNI:

- Surace Ezequiel DNI:

- Vanini Mariano DNI:

1er cuatrimestre 2016

Indice Proyecto ............................................................................................... ¡Error! Marcador no definido.

Entorno de trabajo .............................................................................................................................. 3

Hardware ......................................................................................................................................... 3

Software .......................................................................................................................................... 3

Sistema Embebido ............................................................................................................................... 4

Sensores y actuadores utilizados .................................................................................................... 4

Explicación ....................................................................................................................................... 4

Android ................................................................................................................................................ 5

Sensores y actuadores utilizados .................................................................................................... 5

Explicación ....................................................................................................................................... 5

Página 3 de 8

Objetivo El objetivo del proyecto es controlar una cámara web, conectada a dos servos, a través de un joystick, o con

una aplicación de Android que detecta los movimientos del celular. La misma se encuentra conectada a la

computadora, y permite visualizar el video por pantalla. Además, en caso de estar oscuro, se encienden

unos leds que se encuentran sobre la cámara.

Entorno de trabajo

Hardware Para el desarrollo del proyecto utilizamos:

- Placa Arduino UNO

- 2 servos

- Cables hembra – macho

- Cables jumper macho – macho

- Joystick analógico tipo PS2

- Cámara web

- Módulo bluetooth HC-05

- Leds 5V

- Cable de conexión USB Serie

- Cable microUSB – USB

- Protoboard

Software

- Para el desarrollo de la aplicación de Android: Android Studio – Versión 2.1.1

- Como compilador: Arduino para Windows – Versión 1.6.9

Página 4 de 8

Sistema Embebido

Sensores y actuadores utilizados Para el desarrollo de esta primera parte se utilizó:

- 2 Servos - analógico

- Joystick – analógico

Explicación Se conectó una cámara web a dos servos, de forma tal que permitan mover la cámara sobre dos ejes, hori-

zontal y vertical. Dicha cámara era manipulada mediante un joystick, el cual utilizaba cada uno de sus ejes

para mover cada servo.

Para poder realizar el movimiento de los servos, se utilizó

a la placa Intel Galileo Gen 1 con shield, y se programó en

Arduino. Tanto los servos como el joystick se encontraban

conectados a la placa Intel Galileo, la cámara, en cambio,

se encontraba conectada a la computadora.

El programa realizado, capturaba los movimientos del

joystick, mediante una función, mapeaba dichos movi-

mientos con los de los servos, y luego le mandaba los valo-

res para que se muevan, lo cual permitía mover la cámara.

Función de mapeo:

servoVal = map(servoVal, 0, 1023, 0, 179);

Siendo servoVal el valor capturado del joystick.

El joystick devuelve valores de 0 a 1023 y el servo se mueve

en posiciones de 0 a 179.

Página 5 de 8

Android Se continuo con el proyecto iniciado en sistemas embebidos, al cual se le agregaron más funcionalidades.

Sensores y actuadores utilizados Se utilizaron los ya usados en sistemas embebidos, y se agregaron algunos más:

- 2 servos – analógicos

- Joystick – analógico

- Acelerómetro de Android

- Sensor de luz de Android

- Leds 5v (4)

Explicación En esta parte, se cambió la placa Intel Galileo por la placa Arduino UNO más una protoboard. Lo único que

cambio fueron las conexiones, ya que para programar se siguió utilizando el software de Arduino, por lo

que el programa para el movimiento de los servos siguió siendo el mismo.

Para el desarrollo de la aplicación para Android, se utilizó Android

Studio.

La conexión del celular con la placa se hizo a través de un módulo

bluetooth, al cual se puede conectar desde el celular.

A través del Android Studio, diseñamos la aplicación, y programamos

todo lo relacionado con el celular, y mediante bluetooth, le manda-

mos a la placa arduino, las señales para que interactúe con el sistema.

Android posee muchos sensores, en este caso decidimos utilizar el acelerometro, y el sensor de luz.

Con el acelerómetro controlamos los movimientos del celular, en nuestro caso solo los ejes X Y, y manda-

mos dichos valores a la placa. El programa de Arduino recibe los valores X e Y, y al igual que hacía con el

joystick, mapea los valores del acelerómetro con los de los servos para que estos se muevan. En este caso,

los valores del acelerómetro van de -9 a 9, y los del servo siguen siendo de 0 a 179.

Página 6 de 8

Interfaz de aplicación Android

El sensor de luz, se utilizó para encender cuatro leds que se encuentran sobre la cámara, en momentos en

los que no hay luz. Se utiliza el mismo sistema con el acelerómetro, cuando el sensor detecta que no hay

luz, manda la señal a la placa, que posee el sketch de arduino, y enciende los leds, y cuando detecta luz

nuevamente, manda la señal para que los apague.

digitalWrite(sensorLuz, HIGH) Esta función (en Arduino), pemite encender los leds. En caso de decir LOW, los apaga Serial.read() Funcion en Arduino que permite leer los valores enviados por Android, a través del bluetooth

Con la aplicación de Android, se buscó que además de

manejar la cámara con el celular, se pueda seguir ma-

nejando con el joystick, como se hacía en un principio.

Para eso, se agregaron dos botones que permiten seleccionar de qué

forma se desea mover la cámara, si con el celular o con el joystick.

Página 7 de 8

Proyecto final

Campos de aplicación de nuestro proyecto

Pensamos principalmente el desarrollo del proyecto para sistemas de seguridad que les permitan utilizar

movimientos de cámaras desde un lugar remoto.

Conclusión:

En este proyecto nos introducimos en el mundo Android, ya que ninguno de los integrantes del grupo co-

nocía en profundidad el tema, además hemos aprendido a usarlo de forma conjunta con arduino, en todo

esta etapa utilizamos en gran medida información de distintas páginas web, a través de las cuales pudimos

ir entendiendo conceptos primarios y básicos para el desarrollo de cada uno de los lenguajes.

Página 8 de 8

Por otra parte hemos aplicado conocimientos aprendidos en la primera parte de la materia, tales como el

uso de sensores, actuadores y distintos tipos de conexión, como es el caso de las señales digitales y analó-

gicas y aprender en que difieren una de las otras. A su vez hemos establecido la conexión entre Android y

arduino con el uso del módulo bluetooth.