trabajo prácticoso-unlam.com.ar/soa/iot-2016-c1-control_camara_servo.pdf · el objetivo del...
TRANSCRIPT
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.