Proyecto Simón: DISEÑO SISTEMAS MÓVILES Y EMPOTRADOS DSEM. Ángel Castillo Sergi Martínez Héctor Ortiz Toni Torronteras

Proyecto Simón: DISEÑO SISTEMAS MÓVILES Y EMPOTRADOS DSEM Ángel Castillo Sergi Martínez Héctor Ortiz Toni Torronteras 1 ÍNDICE 1. 2. INTRODUCCIÓ

1 downloads 99 Views 568KB Size

Recommend Stories


The Bluest Eye; Toni Morrison
Contemporary Literature. Novel. History of American civil rights. Plot Summary Characters. Themes

Proyecto de lectura. Un viaje inesperado. Llort & Macip. Ilustraciones de Sergi Càmara
Proyecto de lectura Un viaje inesperado Llort & Macip Ilustraciones de Sergi Càmara © Grupo Anaya, S. A., Madrid, 2015 Proyecto realizado por Rocío

PROYECTO DE GRADO AUTOR: ANTONIO COMAS. PROYECTO DE GRADO Presentado a: MAURICIO ORTIZ
PROYECTO DE GRADO ANALISIS DEL PROCESO DE COMERCIALIZACION DE LA CADENA DE RESTAURANTES PIKO RIKO EN LA COSTA CARIBE COLOMBIANA PARA EL ESTABLECIMIENT

Story Transcript

Proyecto Simón:

DISEÑO SISTEMAS MÓVILES Y EMPOTRADOS DSEM

Ángel Castillo Sergi Martínez Héctor Ortiz Toni Torronteras

1

ÍNDICE 1. 2.

INTRODUCCIÓN ......................................................................................................... 3 DISEÑO ANALÓGICO.................................................................................................. 4 2.1. Pulsadores .......................................................................................................... 5 2.2. Caja..................................................................................................................... 7 3. Placa Wiring............................................................................................................... 8 4. Código...................................................................................................................... 10 4.1. Funcionamiento del programa ........................................................................ 11 4.2. Modo 1 player .................................................................................................. 11 4.3. Modo 2 player .................................................................................................. 12 5. Presupuesto............................................................................................................. 15 6. Conclusiones............................................................................................................ 15 7. Anexo código placa esclavo..................................................................................... 16 8. Anexo código placa maestro ................................................................................... 22

2

1. INTRODUCCIÓN DSEM (Diseño de Sistemas Móviles y Empotrados) es una de las optativas de la ingeniería técnica de telecomunicaciones, en la cual hemos aprendido a desarrollar aplicaciones para PDA’s, teléfonos móviles y además a programar en un nuevo lenguaje para nosotros, Processing. Es un lenguaje basado en Java, pero de mucho mas alto nivel, es decir, mucho mas entendible para el usuario, ya que no utiliza un código demasiado complejo. Este lenguaje nació precisamente para que gente poco habituada a la programación pudiera realizar proyectos de un cierto grado de complejidad. A partir de haber descubierto esta nuevo tipo de lenguaje y su facilidad para la programación, habiendo realizado una serie de pruebas, estudio de librerías y diferentes tipos de programas realizados por variedad de programadores, conocimos la programación Wiring, muy similar a Processing, pero con un dispositivo hardware por en medio. Este dispositivo hardware consta principalmente de una placa donde tenemos una BIOS donde cargamos el código del programa, puertos de entrada/salida, entrada USB, para conectar con el ordenador y una entrada para la alimentación después de aprender el funcionamiento de Wiring se decidió realizar un proyecto final de asignatura basado en este lenguaje. Para ello y tras una selección de diferentes propuestas de proyectos, decidimos elaborar el proyecto sobre un juego tradicional, “Simón Dice”. Este juego trata de seguir la secuencia de colores, pulsando el botón adecuado a cada color, en el que además incluye la opción de dos jugadores. A priori, parece que no tiene gran complejidad, pero como veremos mas adelante, tiene mas de la que parece. Para hacer este proyecto mas atractivo, y como el mismo nombre de la asignatura indica, decidimos realizar todo el montaje del proyecto, es decir, tanto la parte de programación como mecánica, la construcción física del aparato a partir de la placa Wiring.

3

2. DISEÑO ANALÓGICO Antes de empezar a elaborar todo el proyecto, empezamos a tomar ideas para realizar el diseño del aparato en cuestión que el usuario debería tener para poder jugar. El diseño en estaría basado en una caja de metraquilato donde colocaríamos la placa Wiring y toda la electrónica que necesitáramos. Esta caja debe tener unas dimensiones adecuadas para que dentro de ella cupiera la placa, circuitería interna, una pequeña fuente de alimentación en forma de pila. En un principio la caja no debía ser cerrada, ya que los pulsadores deberían estar por fuera y necesitábamos tener la cara de arriba libre, pero tras la adquisición de la caja cerrada, con la posibilidad de abrirla por la parte superior, decidimos que sería una mejor opción hacer los agujeros en la tapa para la colocación de los pulsadores. La caja en cuestión tiene las siguientes medidas 160mm de largo, 100mm de ancho y 50mm de alto. Para el montaje de los pulsadores desde el principio teníamos en mente soldar cuatro botones en las esquinas de una placa de baquelita de unos 35cmx35cm, con suficiente espacio para poder pegarla en la parte superior de la caja de metraquilato de exactamente 35cm. y colocar 4 led’s en el centro de la placa como muestra la figura 1, haciendo así que la cabeza del led saliera dos milímetros por encima de la placa de baquelita, y las dos patas por cada led por debajo, que quedarían dentro de la caja de metraquilto. Una vez hecho esto, pensamos en una primera instancia sacar dos cables por cada botón, pero al final fue una idea descartada, ya que era inviable la idea de sacar 8 cables de los 4 botones mas las 8 patas de los led’s, por cada pulsador por falta de espacio dentro de la caja, por lo tanto, decidimos unir las pistas de la placa de metraquilato, uniendo así los cuatro botones en paralelo y sacar únicamente 3 cables por cada pulsador mas las dos patas de cada led.

FIG. 1 Esquema pulsador

Una vez definido el esquema de este pulsador, decidimos colocar encima de los cuatro botones, una placa de metraquilato de cada color y la uniríamos con pegamento. Con lo que quedaría un prototipo como el de ver Fig. 2.

4

FIG. 2 Vista aérea del prototipo

Una vez realizado esto, teníamos que decidir como colocar de manera visible el nivel de la partida elegida y el jugador activo en ese momento, para ello colocamos en nuestro diseño, tres led`s indicando la dificultad. Un led encendido significa nivel fácil, dos led’s encendidos, nivel medio, tres led`s encendidos significa nivel difícil. El jugador que esta activo lo mostraría mediante un siete segmentos.

Fig. 3 Vista aérea del prototipo versión 2.

2.1.

Pulsadores

Empezamos cortando la placa de baquelita para realizar los pulsadores. Aquí tuvimos el primer problema, ya que si cortábamos mal, la placa se rompería fácilmente, por lo tanto no era posible cortar esta placa con tijeras, ni con cutex, así que al final optamos por utilizar una Dremel, herramienta óptima para cortar, perforar este tipo de material, de una manera limpia y segura. Empezamos serrando cuadrados de baquelita de 30x 30, un total de 8. Una vez cortados, tuvimos que realizar cuatro perforaciones por cada cuadrado de baquelita, para introducir los led’s. Continuamos soldando los botones en las esquinas como mostraba la Fig. 1, acto seguido, usando estaño creamos las pistas necesarias para poder colocar los botones en paralelo y finalmente enganchamos los leds. En resumen, de cada placa de baquelita nos salen 2 cables por led, un cable común para todos los pulsadores y 2 cables que se unirán para el otro polo de los pulsadores.

5

Fig. 4 Esquema electrónico pulsador.

En la FIG. 4, se muestran en rojo las conexiones a los cables de salida. Estas 4 placas de baquelita van pegadas con loctite a la caja del juego. En la siguiente FIG. 5, se muestra el modo en el que van conectados los pulsadores en la placa. De este modo conseguimos un ‘0’ o un ‘1’ lógico evitando el estado de alta impedancia.

Fig. 5 Esquema electrónico pulsador individual.

Los 4 leds deben estar conectados en paralelo con una resistencia de valor resistivo bajo y en serie.

Fig. 6 Esquema electrónico leds boton.

El resultado final se puede observar en la siguiente imagen (ver FIG. 7) :

6

Fig. 7 Fotografía pulsador final.

2.2. Caja El montaje de la caja tiene menor complejidad que los pulsadores, ya que la caja de metraquilatro ya estaba fabricada a medida, como hemos dicho anteriormente, aprovechábamos la tapa de la caja para insertar los pulsadores, para ello perforamos la caja con una Dremel en las cuatro posiciones indicadas en la Fig. 2 para marcarlas y posteriormente hacer un agujero mucho mayor con una corona, con unas dimensiones adecuadas inferior a los 30x30, para que la placa de baquelita no caiga dentro de la perforación. Una vez perforamos realizado este paso, queda enganchar los pulsadores y el resultado es el siguiente (ver FIG. 8) :

Fig. 8 Fotografía montage botones.

7

Una vez realizados estos pasos, hicimos tres perforaciones para indicar el grado de dificultad de la partida; Dos más para indicar cuál de los dos jugadores tiene el turno y además un 7 segmentos para indicar las vidas restantes. En la misma caja, incluimos un botón especial para seleccionar estos parámetros del juego.

3. Placa Wiring El corazón de la placa lo integra un microcontrolador modelo ATMEGA128 del fabricante ATMEL. Hemos extraido las características del datasheet que proporciona este fabricante y son las siguientes:

Fig. 9 caracteristicas atmel128, 8-Bit microcontroller with 128KBytes In-System Programmable Flash.

8

La placa Wiring esta adaptada a este microcontrolador mediante un esquema electrónico con las conexiones I/O realizadas mediante agrupaciones de pines, es decir, PUERTOS. Tambien incluye una conexión USB para facilitar la conexión al PC y con ello su programación, un led de power, un botón de reset, etc.

Fig. 10 Placa Wiring.

       

43 Pines digitales I/O. 5 Puertos digitales (8 bits por puerto). 8 Entradas analógicas (10 bits de resolución). 6 Salidas analógicas de Pulse Width Modulation PWM. 2 Puertos series. 2 Pines Two Wire Interface, más conocido como i2c. 8 Interrupciones externas. Conector para alimentación, fuente 7-13 V a 800mA.

El entorno de programación consiste en un software de libre descarga y diseñado para la programación de la placa Wiring. El lenguaje de programación utilizado es C pero con unas series de librerías (ya integradas en el software) que facilitan la tarea. No olvidemos que esta iniciativa esta enfocada a un publico no familiarizado con la electrónica ni con programación.

9

Fig. 11 Entorno de programación wiring.

Tal como vemos en la FIG. 11 se trata de un software bastante sencillo comparado con otros entornos de programación (Microsoft Visual Studio, MPLAB, …). Unicamente disponemos de 7 botones: play (compila), stop, new, save, load, upload to I/O board (grabar en placa wiring) y serial monitor (herramienta más próxima a un debuger).

4. Código Nuestro programa se puede dividir en cuatro partes: 1. Variables globales: aquí se declaran aquellas variables que podemos utilizar en cualquier momento del programa. También declaramos nombres a los pines a utilizar. 2. Funciones: en esta parte del programa, definiremos todas aquellas funciones que necesitaremos a lo largo del programa. Estas funciones puden ser llamadas en la parte Loop y dentro de otras funciones. 3. Setup: esta parte consiste en la configuración de la placa, es decir, estableceremos que pines serán de salida o de entrada y activaremos la interfaz para los pines de comunicación. 4. Loop: es el equivalente al main() de cualquier lenguaje de programación, con la diferencia que se ejectua en modo bucle infinito. 10

4.1. Funcionamiento del programa Nuestro proyecto consiste en emular el juego conocido por todos como SIMON tanto para 1 jugador como para 2 jugadores. Cuando encendemos (conectamos alimentación) la placa wiring espera 10 segundos para introducirle el número de jugadores, esto será indicado mediante ledPlayer1 en pin 20 y ledPlayer2 en pin 21 usando el pulsador central conectado al pin 19. Si queremos jugar en modo multijador debemos establecer player 2 en las dos placas. Sino cada placa funcionaran de manera independiente. El siguiente paso consiste en elegir el modo de dificultad deseada. Hemos programa tres niveles de dificultad para un máximo de 10 turnos. Disponemos de otros 10 segundos para elegir modo mediante el mismo pulsador central (pin19) y se visualiza mediante tres leds conectados a los pines 16, 17, 18. A continuación describimos las cabeceras de las funciones:  int seleccionaplayer();  int seleccionadificultad();  int hazturno(int turnos, int aleatorio[],int error);  void apagarLEDS();  void leeentrada(int vectoruser[],int turnos);  void muestravector(int vector[],int turnos);  int comparavector(int vector_random[], int vector_user[], int turnos);  void segmentos_off();  void segmentos_on(int number);  void receiveEvent(int howMany);  void requestEvent();

4.2. Modo 1 player . . . if(prueva==0) { player=seleccionaplayer(); } if (player==1) { for(i=0;i

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.