Anda di halaman 1dari 56

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Departamento de Teora de la Seal y Comunicaciones

Integracin de kits Arduinos enlazados mediante Xbee para aplicaciones de Cartomagia

Autor: Javier Abascal Carrasco Tutor: Jose Ramn Cerquides Bueno Fecha: Mircoles, 24 de abril de 2013

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

0. ndice
0. 1. 2. 3. ndice .................................................................................................................................... 2 Introduccin ......................................................................................................................... 3 Antecedentes y motivaciones ........................................................................................... 5 Parte 1: Sensor y acondicionamiento de la seal. ........................................................ 7 3.1. 3.2. 3.3. 3.4. 4. Sensor .......................................................................................................................... 7 Acondicionamiento de la seal............................................................................... 13 Amplificador de instrumentacin INA125.............................................................. 16 Diseo del pcb .......................................................................................................... 18 Kits Arduino ............................................................................................................... 22 Arduino Duemilanove + Xbee Shield............................................................. 22 Arduino Fio ........................................................................................................ 24 Mdulos Xbee ................................................................................................... 25

Parte 2: Procesamiento y envo de la seal. ................................................................ 22 4.1.

4.1.1. 4.1.2. 4.1.3. 4.2. 4.3. 4.4. 5.

Configuracin de los mdulos Xbee ...................................................................... 26 Entorno de desarrollo Arduino ................................................................................ 28 Programacin de los microcontroladores ............................................................. 29 Posicionamiento de los elementos ........................................................................ 31 Bateras ...................................................................................................................... 35 Camuflaje ................................................................................................................... 36

Parte 3: Sistema completo. ............................................................................................. 31 5.1. 5.2. 5.3.

6. 7. 8. 9.

Funcionamiento y Aplicaciones mgicas. ..................................................................... 38 Futuras lneas de trabajo................................................................................................. 39 Conclusiones ..................................................................................................................... 40 Referencias. ...................................................................................................................... 41

9.1. Bibliografa ......................................................................................................................... 41 10. Apndice. .......................................................................................................................... 43 10.1. Efectos explicados ..................................................................................................... 43 10.2. Cdigos de programacin ......................................................................................... 46

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

1. Introduccin
La telecomunicacin es segn la ITU 1 , toda emisin, transmisin y recepcin de signos, seales, escritos e imgenes, sonidos e informaciones de cualquier naturaleza, por hilo, radioelectricidad, medios pticos u otros sistemas electromagnticos (ITU). Habitualmente las aplicaciones de los sistemas de telecomunicacin han sido los medios de transmisin de masas como el telgrafo, radio, telefona y televisin (Isabel Romn Martinez y Rafael Estepa Alonso, 2007/2008). Los nuevos servicios generados a travs de internet estn revolucionando la sociedad como son las video-llamadas, el streaming o el intercambio de archivos personales. A pesar de todo esto, todava hoy los sistemas disponen de una amplia funcin en campos de trabajo que no estamos familiarizados. Cada vez ms rpido, se descubren nuevas ocupaciones en donde el uso de estos sistemas revoluciona la prctica y posibilita una multitud de nuevos servicios al usuario (salud, educacin, administracin etc.). En este proyecto fin de carrera abordaremos un rea de trabajo poco comn, la magia. El proyecto consiste en el desarrollo y posterior realizacin de un sistema para poder realizar efectos de cartomagia. Se basa en la construccin de un soporte que permite el pesado ultrasensible de cartas de pker, en un rango de 0 a 60 y posibilita la comunicacin de forma instantnea a un receptor instalado en algn lugar y mostrar los resultados correspondientes. En primer lugar, analizaremos como generamos la seal para obtener el pesado correcto bajo la superficie del soporte, que tendr apariencia de mesa. En segundo lugar, estudiaremos el procesamiento de la seal, programacin de los equipos y el envo de la informacin al receptor inalmbrico. Y en tercer lugar, explicaremos como camuflar todo el sistema bajo una apariencia normal y aprovechar el sistema realizado para ser capaz de realizar efectos mgicos. Para comenzar, describiremos el sensor que hemos seleccionado, destacando sus caractersticas, como funciona y cmo somos capaces de realizar una lectura correcta de la medida. A su vez, conoceremos el diseo del circuito PCB creado para el acondicionamiento de la seal, el programa empleado y los resultados. A continuacin, abordaremos el procesamiento de los datos que nos genera el sensor; para ello programaremos un microcontrolador ATmega328 instalado en un kit Arduino bsico. El kit Arduino ha sido escogido por su compatibilidad con mdulos de Xbee ya prediseados, la amplia variedad de libreras de uso libre disponibles, as como su creciente popularidad. Una vez
1

ITU, siglas de International Telecommunication Union.

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

realizada la digitalizacin, gracias a los mdulos Xbee podremos ser capaces de realizar el envo del resultado al receptor. Para finalizar, detallaremos las dificultades que hemos tenido para esconder el soporte en una mesa y dar una apariencia normal a un simple tapete de cartas. Adems se explicara el uso correcto del dispositivo, enunciaremos las posibles aplicaciones mgicas de ste y futuras ampliaciones del sistema.

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

2. Antecedentes y motivaciones
La magia es un arte del entretenimiento que se apoya en determinados juegos y experimentos con el fin de ser capaz de dar la apariencia de romper las leyes naturales. Existe desde hace miles de aos y la primera mencin en la historia fue realizada en el antiguo Egipto, alrededor del 2700 a.C. (Harmening, ISSN 1406-0957) (Regling). El ilusionismo ha ido evolucionando a la par que la sociedad y hoy en da existen multitud de disciplinas que van desde la micromagia hasta las grandes ilusiones. En mi caso, la aficin por la magia se remonta al ao 2006; un ao antes de comenzar la carrera de Ingeniero de Telecomunicacin en Sevilla. A causa del gran mpetu con el que me inici en este mundo, empec a ver con claridad la idea de mi proyecto fin de carrera tras tener mis primeros conocimientos en electrnica y seales. Para poder entender rpidamente sin tener que estudiar a fondo la teora de la magia, nos gustara explicar brevemente la diferencia que existe entre tcnica y trucaje. La parte tcnica, consiste en un conjunto de movimientos, gestos y hechos que ocultan o camuflan acciones normales con acciones tramposas para ayudar a realizar un efecto mgico. El trucaje o ardid sin embargo, es el conjunto de elementos y herramientas construidas y diseadas para poder realizar tales efectos (Nelms, 1969). Un sistema de telecomunicaciones nunca nos ayudar a acrecentar nuestra tcnica, sin embargo, si nos ayudar a construir un gran trucaje. Existen una gran variedad de especialidades dentro del mundo de la magia en las que se podra insertar un sistema de telecomunicacin y desde hace relativamente poco tiempo, estn empezando a proliferar de forma creciente trucajes electrnicos realmente novedosos que consiguen ilusiones mgicas muy impactantes. Es casi imposible saber con certeza quin fue el primer ilusionista en adaptar y utilizar la electrnica en diferentes sistemas para la magia ya que es un arte que se ha ido desarrollando en paralelo a lo largo y ancho de los continentes y hasta fechas cercanas no ha habido mucho intercambio de informacin. Adems tiempo atrs la magia no era un bien compartido y muchsimos ilusionistas se llevaron sus secretos a la tumba. An as Juan Mayoral 2 (Mayoral, 2013) cree segn sus conocimientos, que Rober Houdin fue en el siglo XIX, el primero en utilizar la electrnica. Su juego ms famoso era la maleta pesada o liguera, en la que se empleaba un electroimn. A continuacin tendramos a Anverdi, Klingsor y Christian Fechner (los tres ya fallecidos), y despus cronolgicamente estara l. Como l mismo comenta, l ha podido aprovecharse de la miniaturizacin de los elementos detalle que sus
2

Juan Mayoral ha sido uno de los magos modernos en revolucionar el mundo de la magia utilizando elementos electrnicos. Es conocido mundialmente por sus novedosas invenciones y posee el primer premio FISM de 1991 en Suiza en la categora de magia general.

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

predecesores no han podido disfrutar. A partir de entonces, la electrnica y telecomunicaciones en general se pusieron al alcance de todo el mundo. Teniendo en mente esto, decid investigar y ponerme en contacto con diferentes magos de Espaa y pregunt por el tipo de dispositivos electrnicos utilizados actualmente. Rpidamente nos dimos cuenta de que no exista gran variedad. A excepcin de algunos, todos consistan en un emisor/receptor de radiofrecuencia (433Mhz habitualmente) conectados a algn tipo de servomecanismo, el cul mova o realizaba alguna accin. Como ejemplo, podramos citar una campana sostenida entre dos cuerdas que suena misteriosamente a la orden del ilusionista. En este caso, el trucaje est en la base donde cuelga la campana. Existe un pequeo motor que gira 45 un imn y debido a que el badajo de la campana es de hierro es atrado por el imn. Al golpear la superficie de la campana se produce el sonido. Despus de observar este patrn emisor-receptor-servo decid buscar ideas de trucos electrnicos que implicaran algn tipo de procesamiento de seal. Y de momento, slo unos pocos juegos son de este estilo. As pues, desarroll unas cuantas ideas, me reun con mis compaeros, comparamos las ventajas y desventajas de las diferentes alternativas as como el rango de aplicaciones mgicas de cada opcin y elegimos la idea que a continuacin os presento como proyecto fin de carrera.

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

3. Parte 1: Sensor y acondicionamiento de la seal. 3.1. Sensor


Comenzamos con la eleccin del sensor que vamos a emplear para poder medir el peso de las cartas. Ya que una carta pesa aproximadamente 1.7 (Baraja de Pker Bycycle, la ms utilizada mundialmente por los ilusionistas) (Wikipedia), la seleccin del sensor es un punto principal del proyecto. Necesitamos disponer de un sensor lo suficientemente sensible para ser capaz de detectar la diferencia de 1 carta, pero a su vez lo suficientemente robusto para poder extender y mover los naipes sin limitaciones y sin riesgo de quebrar el sensor. Estas dos caractersticas son difciles de encontrar puesto que como regla general cuanta mayor sensibilidad menor capacidad de carga. Con el fin de cumplir estos objetivos, en un principio optamos por una sensibilidad mnima de 0.1 y una capacidad de carga entre 3 5 . Veamos las caractersticas de dos tipos de sensores de peso: Sensores del tipo FSR y las clulas de carga. Los sensores de tipo FSR (Force Sensitive Resistor) (Luis Carrin, 2009) son dispositivos de pelcula de polmetro (PTF) y se fundamentan en una superficie de resistencia variable segn la presin que se ejerce sobre esa superficie. A mayor fuerza sobre la superficie, se obtiene una lectura de resistencia menor en sus terminales. Es decir, acta como un simple potencimetro, pero debido principalmente a que no poseen una buena sensibilidad no son de utilidad para nuestro propsito. Normalmente se utilizan para detectar cambios y no para medirlos, como puede ser accionar pulsadores. Estn sobre todo optimizados para uso en el control por toque humano de dispositivos electrnicos.

Figura 1. Construccin del FSR.

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Figura 2. Sensor de presin IEE FSR-154NS 10g.

Las clulas de cargas o load cells. Son capaces de obtener una gran sensibilidad, aunque su funcionamiento es complejo a causa de ser un elemento activo y tener la necesidad de alimentacin. Este transductor convierte la fuerza ejercida en una seal elctrica mediante el uso de cuatro galgas extensiomtricas colocadas en configuracin tipo Puente de Wheatstone. La salida elctrica de este tipo de transductores son de muy bajo rango y es necesario una etapa de amplificacin posterior para su lectura (Senel Technologies S.A, 2013).

Figura 3. Puente de Wheatstone. Texas Instruments.

Por razones de sensibilidad optamos por el uso de load cells. Sus parmetros a tener en cuenta son: a) Rated load: Carga nominal de la clula, es decir, el peso mximo que es capaz de medir de forma lineal.

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

b) Rated output: Salida nominal de la clula. Su unidad es / que nos genera 1 por cada de alimentacin cuando el sensor est a carga mxima. A mayor valor, menor ser la amplificacin necesaria. c) Zero output: Salida de la clula de carga sin estar sometida a ninguna carga. Se mide en porcentaje del fondo de escala % . .

e) Precision temperature: Variabilidad de nuestra salida segn la temperatura a la que se encuentre el sensor. Al igual que los dos anteriores se mide en porcentaje del fondo de escala % . .

d) Overall precision: Precisin de sensibilidad que disponemos en nuestro transductor. Al igual que el anterior se mide en porcentaje del fondo de escala % . .

f) Safety Overload: Sobrecarga mxima que aguanta el sensor sin averiarse, generalmente es un 150 % del valor de carga nominal. g) Recommend excitation Voltage: Voltaje de alimentacin recomendado por el fabricante del transductor. Es de vital importancia que est conectado a una fuente regulada de tensin, para evitar errores en la lectura del transductor.

Para ayudar a entender y afrontar qu nos encontramos en una load cell estndar, vase el siguiente clculo (Anastasios Karidis, 2011): Especificaciones: -Carga nominal de 3 -Salida nominal de 1 / -Alimentacin de 10 -Precisin 0.04 % . -Precisin por temperatura 0.01 % .
10

A carga completa (3) el sensor generar 10 , es decir, una seal de salida de:
3000

El error de precisin (0.04 % . ) genera un error en la medida de:


10 0.04 100

= 0.0034 mV/g.

El error de precisin por temperatura lo podemos descartar por ser menor y fijo. Por lo tanto el mnimo cambio de salida en el sensor que vamos a detectar es 0.004 . Sin tener que analizar nada observemos que el mnimo cambio distinguible es mayor que un gramo, debido a que el error es mayor que la propia precisin por gramo. Con este sensor genrico encontraremos

= 0.004 .

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

problemas a la hora de poder diferenciar cartas, ya que el peso de una carta (1.7 ) ser: y apenas superar en un 40 % el error de la medida. Si sumamos los futuros problemas que tendremos con el CAD 3 del kit Arduino, ms errores de calentamiento y simples imprecisiones de la tensin de alimentacin u oscilaciones, hace que la load cell aqu expuesta no sea correcta al no disponer de un amplio margen de sensibilidad. Para poder disponer de un mayor margen lemos los catlogos de fabricantes y nos pusimos en contacto con distintas empresas del sector con el fin de localizar un sensor que se adapte a nuestras especificaciones. Consultando el precio de un sensor que se adaptaba al proyecto, obtuvimos una respuesta de 490 . Finalmente decidimos ceder en los requerimientos de carga nominal, la cual reduje hasta 1 , y calidad del sensor por el elevado precio. La siguiente load cell fue comprada directamente a la distribuidora AliExpress, la cual importa desde Mainland (China) a un precio de 9.89$/unidad (Aliexpress, 2012). 1.7 0.0034 / 0.0057

Alluminium Alloy weighing Load Cell 1kg for Electronic Scale

Figura 4. Load cell de un kilogramo. Obsrvese el tamao reducido, y los cuatro orificios para fijar el sensor y la bandeja.

Conversor analgico digital. De aqu en adelante nos referiremos a el por sus siglas.

10

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Cuya reducida hoja de especificaciones podemos ver a continuacin


Product Description
The 1Kg 2.2 lbs load cell is great for used in hopper scales, platform scales, platform balance, belt scales and other electronic weighing devices.

Product Name Rated Load Rated Output Zero Output Overall Precision Precision Temperature Working Temperature Compensated Temperature Range Safety Overload Recommend Excitation Voltage Max Excitation VoltageM Total Size Thead Hole Diameter Cable Length Material Color Weight Package Content

Load Cell 1Kg/2.2lbs 1mV/V 0.05%F.S 0.02%F.S 0.02%F.S -10C~+50C -10C~+40C 150% 10V DC 15V DC 80 x 13 x 12mm / 3.1" x 0.5" x 0.47"(L*W*T) 3.5mm / 0.138" 4.3mm / 0.169" 230mm/ 9'' Aluminium Alloy Silver Tone 29g 1 x Load Cell

Tabla 1. Hoja de especificaciones.

Si realizamos los mismos clculos para la load cell adquirida: A carga completa (1 ) generamos una salida de 10 , o una seal de salida de:
1000 10

El error de precisin (0.02 % . ) produce un error en la medida de:


10 0.02 100

= 0.01 /.

Esta vez la lectura de un gramo supera en un 500 % la precisin del error que disponemos, lo que no asegura un margen ms amplio de error. Cabe remarcar este margen de seguridad, ya que el comportamiento del sensor es bastante diferente de la teora que pone en los manuales. Gracias a que garantizamos un gran rango de seguridad, hemos logrado conseguir que todo funcione segn lo previsto y ser capaz de distinguir las cartas sin fallos.

= 0.002 .

11

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Por ltimo, aadimos una bandeja al sensor para poder situar el tapete encima, y tener una superficie de juego para el correcto empleo de las cartas y objetos. El material empleado ser el metacrilato con el fin de no sobrecargar el sensor y no reducir nuestro rango de funcionamiento.

12

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

3.2. Acondicionamiento de la seal


A continuacin se enumeran los cuatro puntos que fueron estudiados para alcanzar que la seal generada por el sensor sea de utilidad. -Punto 1. Una referencia de tensin de 10 fija y estable para el sensor (excitacin recomendada). Sin referencia de tensin, la salida de nuestro sensor variara a medida que se gastaran las bateras de la alimentacin (Areny, 1989). -Punto 2. Requerimos de una amplificacin de la seal de salida de la load cell. Lo primero es advertir el CAD posterior en el kit Arduino, el cual est referenciado a 5 . Si deseamos ajustar todo el rango de medida, es decir hasta 1 , necesitamos que la amplificacin de la salida mxima ( 10 a carga completa) se iguale a 5 . La amplificacin mnima viable es de: Esta situacin sera el caso ideal ya que hay que prestar atencin a la resolucin disponible en el CAD. El CAD dispone de 10 , lo que supone 1024 . Si dividimos 1 en 1024 , obtenemos que cada escaln en el CAD supondr:
210 5 1000 10 5

= 500 .

Si lo expresamos en Voltios:

= 0.9765625 /. = 4.8828 /.

Esto no es un buen dato, ya que la misma limitacin del rango del CAD nos deja muy poco rango para discernir entre varias cartas. Estamos restringiendo la sensibilidad del sensor, imponiendo un rango de lectura del CAD demasiado grande. Para ilustrar lo referido, hacemos esta pequea tabla;

210

Nmero de cartas sobre el sensor 1 (1.7 ) 2 (3.4 )

Salida del sensor antes de la amplificacin 0.01 1.7 = 0.017 0.01 3.4 = 0.034

Salida del sensor tras la amplificacin Lectura del CAD (multiplicamos por 500) (4.8828 /) 8.5 17 1.7408 = 2

3.4816 = 3

13

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

3 (5.1 ) 4 (6.8 ) 5 (8.5 ) 6 (10.2 )

Tabla 2.Clculo de la lectura del CAD en funcin de las cartas situadas sobre el sensor. Amplificacin de 500 unidades.

0.01 = 0.051 0.01 6.8 = 0.068 0.01 8.5 = 0.085 0.01 10.2 = 0.102 5.1

25.5 34 42.5 51

5.2224 = 5 6.9632 = 7 8.704 = 9 10.4448 = 10

La consecuencia es que cualquier mnimo error que modifique el ltimo o los dos ltimos bits nos impedir distinguir las cartas4. Despus de esta tabla, Qu debemos modificar para poder mejorar nuestra resolucin en el CAD? La respuesta es amplificar nicamente la regin deseada, que hemos acotado de 0 60 cartas5. El clculo para amplificar solamente esa regin es: Es decir, vamos a amplificar 10 veces ms, o lo que es lo mismo 5000 . Con este resultado una baraja de 60 cartas situada encima del sensor, generar una salida de 5 aproximadamente y si situsemos 1 en el sensor obtendramos 10 5000 = 50 6. Al realizar esta modificacin, la lectura de nuestro CAD no va a disminuir la sensibilidad de nuestro sensor, es decir, el que limita que no podamos discernir un peso ms pequeo no va a ser el CAD, sino el propio sensor. Esa amplificacin nos permite obtener en la lectura un mximo de tres bits del CAD incorrectos y aun as ser capaces de dar una respuesta correcta, ya que las diferencias mostradas ahora en el CAD entre carta y carta son unas 17 18 7. Reescribiendo la tabla anterior con la nueva amplificacin podemos observar como disponemos de una gran distancia entre las medidas.
6F

60

1.7 = 102 10% (1)

4 5

Debido a la sensibilidad y calidad del sensor los ltimos bits del CAD variarn arbitrariamente. Con el objetivo de poder utilizar diferentes barajas que posean distinto peso. 6 Este resultado sera hipottico ya que estara limitado por la alimentacin y el amplificador. 7 A partir de cuatro bits, superaramos la mitad de la distancia y no podramos discernir correctamente; 24 = 16 > 9.

14

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Nmero de cartas sobre el sensor 1 (1.7) 2 (3.4) 3 (5.1) 4 (6.8) 5 (8.5) 6 (10.2)

Tabla 3. .Clculo de la lectura del CAD en funcin de las cartas situadas sobre el sensor. Amplificacin de 5000 unidades.

Salida del sensor antes de la amplificacin 0.01 1.7 = 0.017 0.01 3.4 = 0.034 0.01 5.1 = 0.051 0.01 6.8 = 0.068 0.01 8.5 = 0.085 0.01 10.2 = 0.102

Salida del sensor tras la Lectura del CAD amplificacin (4.8828 /) ( ) 85 17.408 = 17

170 255 340 425 510

34.816 = 35 52.224 = 52 69.632 = 70 87.04 = 88 104.448 = 104

-Punto 3. Es imprescindible colocar un limitador de tensin para asegurar que la tensin recibida por el CAD no sea nunca superior a 5 aunque aadamos ms peso sobre la superficie de la mesa. Si superamos ese lmite podra causar daos en el kit Arduino. -Punto 4. Por ltimo necesitamos buscar la forma de realizar la llamada puesta a cero. Con este recurso podemos quitar de nuestra medida el peso inicial de la bandeja, el tapete, y todos aquellos elementos que influyan desde el inicio en el sensor8. Haber definido claramente los puntos a cumplir por el circuito de acondicionamiento de la seal, nos ha facilitado enormemente la labor de solventar los problemas. Solucionaremos el punto 3 por medio de la utilizacin de un diodo Zenner a 5 , y el punto 1, punto 2 y punto 4 lo conseguimos resolver gracias al amplificador de instrumentacin INA125 y un pequeo divisor resistivo, con alimentacin regulada, que nos permitir realizar la puesta a cero generando la tensin deseada a restar en la salida del sensor.
8

Factores como la presin, viento o gravedad podran causar cambios de gramos en el sensor.

15

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

3.3. Amplificador de instrumentacin INA125


El datasheet puede obtenerse directamente en la web de Texas Instruments (Burr-Brown INA125, 1997). Principales caractersticas: -Precision voltaje reference 1.24 , 2.5 , 5 y 10 incorporado (slo se puede utilizar uno al mismo tiempo) -Low offset Voltage. Muy positivo ya que introducir poco error en la amplificacin y posterior medida. -Amplificacin desde 4 a 10000, regulada segn una resistencia Rg por la siguiente ecuacin: = 4 +
60

El datasheet recomienda el uso de resistencias con tolerancias menores o iguales al uno por ciento. Para una amplificacin de 5000 debemos disponer de una resistencia de 12 .

Figura 5. Amplificador INA125 y ganancia en funcin del valor de la resistencia Rg.

-Offset trimming incorporado en el amplificador en uno de los pines del encapsulado. Este pin nos posibilitar restar a la salida cualquier tensin para poder alcanzar una correcta puesta a cero. -Wide supply range, nos permite alimentar a Single Supply de 2.7 hasta 36 o Dual Supply de 1.35 hasta 18 . A causa de la utilizacin del Offset trimming nos ser obligatorio alimentar el circuito con una fuente dual. Llegado a este punto del trabajo somos capaces de generar una seal analgica variable entre 0 y 5 Voltios segn qu cantidad de naipes sean

16

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

colocados en la plataforma. Para finalizar la informacin sobre el INA125, expongo la configuracin de pines y un esquema del mismo 9.

Figura 6. Configuracin de pines.

Figura 7. Esquema del amplificador INA125.

Para ms informacin consultar el datasheet del dispositivo

17

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

3.4. Diseo del pcb


Despus de saber qu es lo que pretendemos hacer y con qu elementos vamos a realizarlo, solo queda disear el esquemtico del circuito y el posterior PCB del mismo. Para ello hemos utilizado el programa de CAD 10 EAGLE v6.3.0. Debido a la baja complejidad del circuito, con la versin gratuita nos es suficiente (tenemos restricciones en el nmero de capas, tamao de la placas etc.). Tras disear y aprender a utilizar este programa, me gustara mencionar, que me ha sorprendido gratamente por su facilidad y similitud a otros programas orientados al diseo. EAGLE dispone de tres mdulos integrados en su programa. El editor de Layout, el editor de esquemas y el autorouter, aunque este ltimo no lo vamos a utilizar por la sencillez del circuito (Cadsoft, 2008). Adems de disear el acondicionamiento de la seal realic dos pequeos esquemas, para poder colocar 2 displays de 7 segmentos en un espacio reducido. A continuacin los esquemas y tras ellos, sus posteriores explicaciones.

Figura 8. Esquemtico del circuito diseado para acondicionar la seal del sensor de carga. Realizado con el programa EAGLE.

10

En este caso, las siglas provienen de Computer aided design.

18

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

En el esquemtico 1 se localiza el amplificador INA125 en la parte izquierda. Los Pines 6 y 7 son la entrada del amplificador. Estos 2 pines son la pequea seal que genera el puente de Wheatstone en la load cell. Entre los pines 8 y 9 situamos la resistencia Rg 11. En el pin 12 vemos la referencia a GND. El pin 4, es el que conectado con alguno de los pines 13, 14, 15 o 16 genera los correspondientes voltajes de referencia 1.24V, 2.5V, 5V o 10V correspondientemente. En los pines 10 y 11 observamos la seal de salida tras la amplificacin de la entrada as como el diodo Zenner que limita la tensin de salida a 5 , estos pines van unidos por definicin. Y en los pines 1 y 3 se encuentra la alimentacin del amplificador. El pin 2 (sleep mode), no va a tener uso, por lo que lo conectamos a +. Por ltimo conectado al pin 5, tenemos dos jumpers para poder elegir si restar una tensin positiva o negativa. Son dos pequeos circuitos con dos reguladores de tensin (uno positivo y otro negativo) y un divisor de tensiones. Segn se rote la rueda del potencimetro correspondiente, sumaremos o restaremos la cada de tensin en JP1 y JP3 a la seal de salida del INA125. Los 2 reguladores de tensin utilizados 12 son LM337 (Texas Instruments, 2004) (negativo) y el uA7800 (Texas Instruments, Revised 2012) (positivo). Tanto el INA125, y todos los reguladores de tensin utilizados, fueron adquiridos de las muestras gratuitas cedidas por Texas Instruments.

Figura 9. Esquemtico del circuito diseado para facilitar las entradas a los displays 7-segmentos. Realizado con el programa EAGLE.

Se colocaron cuatro espacios en el diseo para dar la posibilidad de ajustar la resistencia a un valor muy concreto. 12 En los diferentes datasheets se puede consultar la posicin y utilidad de los condensadores aadidos.

El esquemtico 2 es de los displays de 7-segmentos. Son displays AC (nodo Comn) y colocamos los pines correspondientes para poder conectar directamente todos los cables al kit Arduino y ser capaces de controlarlos con el microcontrolador. Se asign la resistencia tpica de valor 330 en el pin de
11

19

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

activacin para alimentar los displays a 5 sin quemarlos (salida de los pines digitales de propsito general del kit Arduino). Una vez diseado el esquemtico, la realizacin del Layout fue muy sencilla, quedando como resultado el siguiente esquema, en donde las lneas rojas marcan la capa superior, y las azules la capa inferior.

Figura 10. Layout del circuito acondicionador del sensor. Realizado con el programa EAGLE.

Figura 11. Layout del circuito para facilitar las entradas a los displays 7-segmentos. Realizado con el programa EAGLE.

20

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Tras esquematizar el Layout, convertimos este diseo a formato GERBER y de ah a CircuitCAM, con el fin de poder elaborar el corte en el laboratorio 13. Una vez impresos los circuitos, soldamos todos los componentes a la placa, quedando el siguiente resultado;

Figura 12. Circuito acondicionador del sensor.

Figura 13. Circuito para faclitar las entradas a los displays 7-segmentos.

Agradezco a Luis Javier Reina Tosina la ayuda prestada para realizar en el laboratorio la placa de este circuito (profesor titular de la Universidad y del departamento de Teora de la seal y Comunicaciones).

13

21

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

4. Parte 2: Procesamiento y envo de la seal. 4.1. Kits Arduino


Arduino naci como un proyecto educativo en el ao 2005 y a da de hoy es el lder en el sector DIY (Do It Yourself). El proyecto recibi una mencin honorfica en la categora de Comunidad Digital en el Prix Ars Electrnica de 2006. Ellos mismos definen el concepto de este modo: Arduino es una plataforma de electrnica abierta para la creacin de prototipos basada en software y hardware flexibles y fciles de usar. Se cre para artistas, diseadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos. Para realizar este proyecto se requera un microcontrolador instalado en una pequea placa ya preparada, con variedad de pines y compatibilidad con telecomunicaciones inalmbricas. Arduino satisface todas nuestras necesidades. En el envo y recepcin de datos aprovecharemos la compaginacin existente entre Arduino y los mdulos Xbee 14. En el mercado actual del kit existen multitud de posibilidades diferentes focalizadas a distintos objetivos (energa, compatibilidad, tamao etc.) y son de especial atractivo debido a su facilidad de uso, reducido precio y su gran soporte tcnico actual que permite resolver cualquier tipo de duda en diversas webs, foros y proyectos ya creados. Debido a la amplia informacin existente del entorno de desarrollo Arduino, remitimos al lector a consultar la bibliografa en caso de desear conocer ms profundamente su historia, posibilidades y creadores (Arduino, 2005-2013), (Iglesias, 2013), (Wikipiedia, 2009). Los productos adquiridos para completar este proyecto fueron el Arduino Duemilanove y el Arduino Fio al precio de 23.00 y 16.00 respectivamente. Adems se compraron dos mdulos Xbee por 18.00 cada uno y el Xbee Shield para el Duemilanove por 15.00 15. 4.1.1. Arduino Duemilanove + Xbee Shield

Arduino Duemilanove es la ms avanzada revisin del primer entorno de desarrollo bsico creado por Arduino. Debe su nombre italiano al ao 2009, fecha en la cual fue lanzado el producto; sus caractersticas ms importantes son las siguientes:

14 15

Xbee ser explicado en el siguiente punto Ninguno de los precios contiene el IVA

22

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Microcontrolador Voltaje de funcionamiento Voltaje de entrada (recomendado) Voltaje de entrada (lmite) Pines E/S digitales Pines de entrada analgica Intensidad por pin Intensidad en pin 3.3V Memoria Flash SRAM EEPROM Velocidad de reloj

ATmega368 5V 7-12V 6-20V 14 (6 proporcionan salida PWM) 6 40 mA 50 mA 32 KB de las cuales 2 KB las usa el gestor de arranque (bootloader) 2 KB 1 KB 16 MHz

Tabla 4. Caractersticas del Arduino Duemilanove.

Figura 14. Esquema general Arduino Duemilanove.

A su vez Duemilanove es compatible con Xbee Shield, el cual es una ampliacin de la placa que puede ser emplazada encima de la anterior, dando la posibilidad de conectar en un zcalo habilitado para ello un mdulo Xbee. Esta configuracin es muy cmoda ya que permite conectar debidamente el mdulo sin necesidad de perder ningn pin. Este pack estar localizado dentro de la mesa, al lado del sensor. La funcin principal del dispositivo ser la de ir leyendo constantemente la seal analgica del sensor. Una vez recibida y digitalizada, el microcontrolador trabajar con diferentes subrutinas segn lo que se le comande. Los objetivos primordiales son tener la capacidad de representar en dos displays 7-segmentos el nmero de cartas ledas, realizar una puesta a

23

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

cero del sensor, enviar el resultado al Arduino Fio mediante Xbee y detectar el nmero de naipes que han sido cortados 16 (Arduino, 2005-2013).

Figura 15. En la imagen izquierda se encuentra el Xbee Shield. A la derecha, la superposicin de Xbee Shield y el Arduino Duemilanove

4.1.2. Arduino Fio

Arduino Fio ha sido fundamentalmente desarrollado para el uso en aplicaciones inalmbricas, donde el espacio y consumo son importantes. La placa tiene incorporado un zcalo para un mdulo Xbee, debido a eso no es imprescindible el uso de una expansin (Shield) como en el caso anterior. Sus principales caractersticas son:
Microcontrolador Voltaje de trabajo Voltaje de Entrada Voltaje de Entrada en Carga Pines E/S Digital Pines de Entrada Analgica Corriente DC por pin E/S Memoria Flash SRAM EEPROM Frecuencia de Reloj ATmega328P 3.3V 3.35 -12 V 3.7 - 7 V 14 (6 proporcionan salida PWM) 8 40 mA 32 KB de los cuales 2 KB las usa el gestor de arranque (bootloader) 2 KB 1 KB 8 MHz

Tabla 5. Caractersticas del Arduino Fio.

Cortar en este mbito se refiere a la accin de levantar un grupo de cartas de la baraja, colocarlas al lado y colocar las restantes encima de las anteriores.

16

24

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Figura 16. En la imagen izquierda tenemos el esquema general del Arduino FIO. A la derecha, instalado con el mdulo Xbee

Adems de por sus caractersticas, el Arduino Fio ha sido elegido por su tamao (1.1 x 2.6 pulgadas), el cual facilita su ocultamiento en diferentes localizaciones. La funcin principal del segundo kit, ser la de recibir a tiempo real el resultado calculado por el Arduino Duemilanove y mostrarlo en dos displays 7-segmentos. Simultneamente dispondremos de la posibilidad de mandar las diferentes rdenes al sistema situado en la mesa mediante el uso de distintos pulsadores (Arduino, 2005-2013). 4.1.3. Mdulos Xbee

Xbee es el nombre de fbrica de Digi International para una familia de mdulos compatibles de radio. El mayor productor de estos mdulos es la empresa MaxStream, que fue la primera en comenzar la distribucin con la homologacin oficial en 2005. Estn basados en el estndar IEEE 802.15.4, que fija las comunicaciones por aire punto a punto y punto a multipunto a una tasa variable de hasta 250 /. Sus caractersticas principales son parecidas a las del protocolo de comunicaciones para redes de sensores Zigbee, es decir, bajo consumo de potencia (1 100 ), capacidad para crear redes con identificadores nicos bajo un coordinador y un rango de hasta 25 en sus ltimas versiones. Adems ofrecen una interfaz serial, 9 entradas/salidas analgicas y digitales y un rango de 65.000 direcciones para cada uno de los 16 canales disponibles. Para el proyecto hemos seleccionado el Xbee 2mW PCB Antena Series 2-, que nos proporciona una distancia de hasta 120 (30 en interiores) con un consumo limitado en 2 .

Xbee provee dos procedimientos de comunicacin: transmisin serial transparente (modo AT) y el modo API. En la primera de ellas, el mdulo sustituye una lnea serie, encolando todo dato recibido por el UART a travs del pin DIN para transmitir por radio. La segunda opcin trabaja con una interfaz

25

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

ms compleja. Est basada en frames, y la interaccin del mdulo con el sistema se realiza utilizando estructuras predefinidas para la entrada y salida (Xbee, 2009-2013) (Digi Internacional, 1996-2013).

Figura 17. Mdulo Xbee serie 2.

La compatibilidad existente entre los kits Arduino simplificar enormemente la programacin del sistema, y nos permitir servirnos con funciones ya predefinidas. Una vez conectados y configurados los mdulos Xbee podremos escribir y leer por el puerto serie asegurando que estaremos estableciendo una comunicacin directa, segura e inalmbrica entre los Arduinos.

4.2. Configuracin de los mdulos Xbee


La nica posibilidad existente de configurar nuestros mdulos Xbee es acceder a ellos a travs de una comunicacin serie. Esta conexin se puede llevar a cabo remotamente o con el uso de un conector USB. Una vez realizado el enlace, debemos comprender el direccionamiento para conseguir que los distintos mdulos puedan comunicarse entre ellos. Los parmetros internos son los siguientes:

Comando ID CH SH y SL

Descripcin El ID de la red del mdulo Xbee. El canal del mdulo Xbee.

Valores vlidos 0 - 0xFFFF 0x0B - 0x1A

Valor por defecto 3332 0X0C

El nmero serie del mdulo Xbee 0Diferente para (SH devuelve los 32 bits 0xFFFFFFFF cada mdulo superiores, SL los 32 inferiores). De solo(para lectura. ambos SH y SL) La direccin de 16-bit del mdulo. 0 - 0xFFFF 0

MY

26

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

DH y DL

La direccin de destino para las comunicaciones inalmbricas (DH son los 32 bits superiores, DL son los 32 inferiores). La velocidad de transmisin usada para las comunicaciones con el Arduino o el ordenador.

00 (para 0xFFFFFFFF ambos DH y DL) (para ambos DH y DL) 0 (1200 bps) 1 (2400 bps) 2 (4800 bps) 3 (9600 bps) 4 (19200 bps) 5 (38400 bps) 6 (57600 bps) 7 (115200 bps) 3 (9600 bps)

BD

Tabla 6. Principales parmetros internos a configurar dentro del mdulo Xbee

En primer lugar los dos mdulos Xbee tienen que situarse en la misma red definida por el valor de ID, asimismo deben estar en el idntico canal precisado por el valor de CH. Finalmente la direccin destino ser dada por DH y DL y especificar qu mdulo en esa red y canal recibir los datos transmitidos. Por supuesto existen posibilidades de enviar mensajes broadcast a todos los mdulos dentro de un canal y red determinado fijando valores especiales en los registros DH y DL. En la bibliografa estn disponibles todos los casos posibles as como las rdenes de entrada, salida, restaurar valores de fbrica y guardado para los Xbee. Digi International suministra un software de configuracin con el fin de simplificar esta tarea. El programa X-CTU posee con una interfaz sencilla y una amplia base de datos con los diferentes mdulos existentes. Permite obtener el valor de los registros, as como modificarlos en un instante sin necesidad de conocer los comandos adecuados (Digi Internacional, 1996-2013). Para el proyecto el mdulo Xbee correspondiente a la mesa (localizado en el Arduino Duemilanove) fue elegido como coordinador y todos los datos emitidos son transmitidos a todo el canal (modo API). El planteamiento fue de realizar la comunicacin punto a multipunto para ser capaz de adaptar cualquier ampliacin del sistema, y permitir recibir los datos del sensor de la mesa sin necesidad de modificar nada. Tambin se escogi la velocidad ms rpida disponible 115200 (BD 7) con el fin de evitar cualquier tipo de retraso. El segundo mdulo Xbee (Arduino Fio) fue definido como end device y podr comunicarse con el coordinador y recibir los mensajes de ste.

27

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Figura 18.Entorno del software X-CTU.

4.3. Entorno de desarrollo Arduino


El entorno de Desarrollo Arduino est constituido por un editor de texto, un rea de mensajes, la consola de texto, una barra de herramientas con las funciones comunes y una serie de mens. Permite la conexin con el hardware Arduino para cargar los programas y comunicarse con ellos. El puerto serie y el modelo de placa a utilizar se pueden especificar en uno de los mens. Cada programa creado es denominado sketch y el propio entorno de desarrollo provee un comprobador de errores, compilador y volcado del texto creado en la placa. Como en cualquier otro entorno de desarrollo, se proveen libreras y ejemplos ya creados. stos ltimos estn en las definidas libreras de sketches. Adems, en el programa se dispone de un Monitor Serie que muestra los datos enviados desde la placa Arduino y simplifica el trabajo. El lenguaje de programacin empleado es C/C++ con excepciones (Arduino, 2005-2013).

28

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Figura 19. Entorno de desarrollo del software Arduino.

4.4. Programacin de los microcontroladores


En la labor del trabajo est incluida la programacin de los sistemas anteriores. Debido a la reducida dificultad de entendimiento de las rutinas empleadas en el proyecto, destacaremos nicamente ciertas consideraciones que se han tenido en cuenta a la hora de escribir el cdigo y no los archivos completos. No obstante, en el apndice final se encuentra el cdigo completo de cada fichero. Lectura Analgica La velocidad de lectura de las placas Arduino es aproximadamente 10.000 lecturas por segundo. Con el fin de obtener una mejor medida y evitar picos de errores, se realiza una media aritmtica de muchas medidas tomadas en un espacio corto de tiempo. Tras realizar unas pequeas pruebas experimentales, obtuve que a partir de las 2.000 lecturas la oscilacin de la seal digitalizada no mejoraba y se quedaba en un marco cercano a las 8 unidades.

29

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Activacin de los displays de 7-segementos Para evitar el uso de salidas digitales diferentes en cada display, stos nunca se encienden simultneamente. La conmutacin se realiza en intervalos de 20 para que sea imperceptible al ojo humano. Puesta a cero digital Con el objetivo de disponer de un valor digital lo ms preciso posible de una carta se realizan dos mediciones. La primera de ellas se realiza sin ningn tipo de peso sobre el sensor (plataforma y el tapete), y la segunda lectura aadiendo el peso de la baraja seleccionada para trabajar. Una vez realizado esto, se restan los valores y se obtiene el valor digital de una carta. Ese nmero ser el escogido posteriormente en todos los clculos.

30

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

5. Parte 3: Sistema completo. 5.1. Posicionamiento de los elementos


Todos los elementos del sistema a excepcin del receptor sern instalados dentro de un habitculo hueco de madera de 60404.6 . Para obtener la suficiente robustez, los tableros poseen un espesor de 1 17.
16F

En las siguientes imgenes se pueden observar con mejor detalle el emplazamiento de cada una de las partes del circuito, adems de mostrar las perforaciones necesarias para los interruptores On/Off y los displays 7segmentos.

Figura 20. Sistema completo en el interior del tablero. De izquierda a derecha: Interruptores On/Off, circuito de acondicionamiento de la seal, sensor, displays 7-segmentos, Arduino Duemilanove+ Xbee Shield, circuito regulador de tensin y bateras.

La altura mxima permitida con estas medidas es de 2.6cm. El arduino Duemilanove + Xbee Shield dispone de esa medida.

17

31

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Figura 21. Vista lateral del tablero. Obsrvese las dos perforaciones realizadas para acceder a los interruptores.

Figura 22. Vista lateral del tablero. Perforacin realizada para la colocacin de los displays 7-segmentos.

El sensor est ubicado debajo de la plataforma de metacrilato 18 de 2mm de espesor. La plataforma se divide en dos capas para adquirir una mayor estabilidad. El segundo nivel sobresale ligeramente 1.5 mm por encima de la superficie del habitculo con el fin de focalizar el peso de los naipes sobre el tapete. Adems, existe una holgura aproximada de 0.5mm entre los 4 laterales de la superficie y la plancha de metacrilato.

Como ya se coment, el uso del metacrilato fue crucial para poder poseer una superficie resistente y a la vez ligera.

18

32

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Figura 23.Sistema cubierto con la tapa del tablero, en el medio se encuentra el sensor con la primera plancha de metacrilato.

Figura 24. Vista interior de la tapa del tablero de madera.

33

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Figura 25. Sistema cubierto con la tapa del tablero, en el medio el sensor ya queda cubierto por la segunda tapa de metacrilato, ajustada por milmetros a los bordes de la tapadera.

Existen diversas alternativas donde ubicar el sistema receptor. No se debe de olvidar que ser con el que podamos controlar la mesa y por ello debe de ser accesible en todo momento. Por todo lo anterior, localizamos el receptor en el interior de la chaqueta del ilusionista. Los displays 7-segmentos y el Arduino Fio sern cosidos y fijados en la manga izquierda de la chaqueta. Adems se colocarn varios interruptores en el lado izquierdo y uno de los pulsadores dentro del zapato derecho. Como se explicar en un apartado posterior, esta configuracin permitir el manejo sin sospechas del conjunto.

34

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Figura 26. Botones de funcionamiento del receptor instalados en la chaqueta.

5.2. Bateras
Para el correcto funcionamiento del equipo es imprescindible el uso de tres fuentes de alimentacin. Las bateras del circuito de acondicionamiento de la seal y sensor son cuatro pilas recargables 9.0 350 Ni-MH 17R8H. Obtendremos una tensin de 18 que, tras ser regulada, alimentar al amplificador INA125 a 12.35 V. Para los dos kits Arduinos sern destinadas 2 bateras recargables AA 7.2 1800 Ni-MH.

35

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Figura 27. A la izquierda se muestran las pilas de 9V para alimentar el circuito acondicionador del sensor, a la derecha la batera del Arduino.

Debido al elevado consumo de los Arduinos 19 el tiempo prctico de funcionamiento es de 8 horas. Sin embargo, las bateras de 9V perduran hasta un mximo de 24 horas (10mAh de consumo). No hay que olvidar fijar una tierra comn en el circuito instalado en la mesa. De otra manera, sera imposible realizar la correcta lectura de la seal analgica.

5.3. Camuflaje
Uno de los aspectos primordiales en el mundo de la magia al manejar objetos poco comunes, es transmitir la sensacin de claridad. En nuestro caso, una mesa es un elemento ya conocido por los espectadores y eso es una gran ventaja. La mayora de las personas estn familiarizadas con la idea de los naipes, los casinos, tapetes de cartasetc. Gracias a esto, forraremos nuestra superficie con una tela. Este tejido camuflar diferentes cosas: -Ocultar los pulsadores de encendido y apagado. Tambin esconder los displays 7-segmentos cuando estn apagados.
19

Existen pocos datos tcnicos del consumo del dispositivo. Alrededor de 100 mAh.

36

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

-Har inexistente la divisin del tablero de madera, evitando as la presencia de que la mesa est construida en dos partes. Por ltimo situamos un tapete de cartas por esttica y para focalizar la atencin al centro. Como puede observarse en la imagen, se hace totalmente imperceptible el sistema creado.

Figura 28. Situacin final del tablero. Obsrvese como son imperceptibles los orificios laterales.

37

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

6. Funcionamiento y Aplicaciones mgicas. El ilusionista dispone de dos grupos de displays 7-segmentos donde
poder mirar el nmero de cartas sobre el sensor para dar la posibilidad al mago de actuar tanto de pie ante el pblico como sentado. Los displays son activados con un interruptor localizado encima del dedo pulgar del pie derecho, dentro del calcetn. Esta preparacin es forzosa puesto que al actuar de pie focalizamos ms la atencin en nosotros, y nos es mucho ms difcil ocultar el movimiento de pulsar un botn con las manos. De esta forma, nuestras manos quedan libres. Mediante uno de los pulsadores de la chaqueta podemos alternar entre mostrar los resultados en la manga, o en el borde de la mesa. Para la ejecucin perfecta de los efectos hay muchos factores que entran en juego. Empezando por la construccin del efecto mgico a la correcta utilizacin del sistema, por ejemplo, se debe de explicar perfectamente al espectador la manera y forma de manejar y colocar las cartas sobre la mesa, para facilitar esto, podemos realizar nosotros antes los movimientos y as el pblico copiar nuestras acciones. Tambin tenemos que aprovechar los momentos de distraccin generados para hacer los vistazos a los displays y averiguar el nmero de cartas sin que puedan llegar a descubrir el secreto. Llegar a entender en un primer instante todas las aplicaciones mgicas del proyecto realizado implicara poseer un entendimiento muy elevado en el arte del ilusionismo. Como ejemplo el dispositivo nos permite localizar cartas, realizar forzajes, distinguir entre diferentes objetos, adivinaciones directas de cartas etc. Ya que ste no es el objetivo primordial del trabajo, pasaremos por alto la explicacin detallada de cada aplicacin. No obstante, en el apndice final pueden consultarse pequeos ejemplos con el fin de ilustrar al lector la potencia del sistema desarrollado.

38

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

7. Futuras lneas de trabajo.


Despus de haber elaborado este proyecto fin de carrera queda todava un largo camino por recorrer. Para empezar, reunir todos los efectos, tcnicas y usos posibles en una mini enciclopedia sera un buen comienzo. Adems, al realizar esta labor, obtendramos muchsimas opciones e ideas de ampliacin del sistema para ser capaces de aadir rutinas de juego que actualmente no se puedan realizar con nuestro circuito. Contar con la ayuda de algunos maestros cartomagos que utilicen y pongan a prueba las diferentes posibilidades mejorara de forma abismal las aplicaciones que hasta hoy en da hemos encontrado. Somos conscientes de que existe una gran mejora en el mbito de la programacin. Gracias a los kits Arduinos, podemos ser capaces de realizar rutinas de magia completas paso a paso y obtener un nico resultado final. Hasta ahora slo nos hemos aventurado a crear un corte 20 y que el sistema sea capaz de contar las cartas, pero si se programa una secuencia de cortes y mezclas, estoy seguro de que la potencia de los efectos aumentara enormemente. Otras de las ideas sugeridas ha sido la de aumentar la cantidad de sensores utilizados. Si dividiramos la superficie de trabajo en una matriz de 3x3, podramos detectar casi cualquier cambio producido en la mesa. Averiguaramos en que parte de la mesa est ocurriendo el movimiento y podramos aprovecharlo para obtener efectos mgicos basados en eso. Asimismo, se podran combinar diferentes sensores de sonido o magnticos con el fin de adquirir nuevas captaciones de datos del exterior. En determinadas situaciones el tener que mirar a la manga o al borde de la mesa puede obligar a realizar alguna accin que deteriore la limpieza del juego. Ocultar otro receptor en objetos comunes al pblico puede ayudar a superar este obstculo. Por ejemplo, en la magia con hilos, existen carretes ocultos en los propios estuches de cartas. Introducir un Arduino con una pequea batera y sus correspondientes displays dentro de un estuche nos permitira poder mover nuestra pantalla dnde ver los resultados. Esta idea tambin sera aplicable a monederos, vasos, botellas etc. En definitiva, investigando cualquiera de los puntos anteriores, lograramos un progreso continuo en la magia con electrnica. Nada de lo que hemos realizado ser permanente y estoy seguro de que actualmente se est avanzando para alcanzar el perfeccionamiento.
Cortar en este mbito se refiere a la accin de levantar un grupo de cartas de la baraja, colocarlas al lado y colocar las restantes encima de las anteriores.
20

39

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

8. Conclusiones
Tras los resultados obtenidos, manifestamos nuestra plena satisfaccin por todo lo ejecutado. La resolucin obtenida, la velocidad de transmisin, la duracin de las bateras y la cantidad aplicaciones mgicas descubiertas, superan con creces la idea inicial del proyecto planteado. Pese a que existen una multitud de mejoras ya comentadas, y si volviramos a comenzar el proyecto modificaramos el diseo, la elaboracin de este trabajo nos ha permitido adquirir una gran cantidad de conocimientos prcticos sobre las materias recibidas durante los estudios universitarios. Hemos reafirmado los conocimientos sobre electrnica, diseo de circuitos, instrumentacin, envo y recepcin de seales y programacin. Adems tambin son de gran valor las competencias conseguidas en el contacto con diferentes proveedores y en la bsqueda y recopilacin de datos para el proyecto. Por ltimo, en Junio pretendo presentar el proyecto en el 32 Congreso Nacional de magia en la categora de invencin. Me gustara agradecer enormemente la oportunidad recibida para realizar algo que quizs est algo apartado de un clsico proyecto fin de carrera, pero que me ha generado ilusin y ganas para crear algo nuevo.

40

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

9. Referencias. 9.1. Bibliografa


Aliexpress, S. o. (2012). Aliexpress. Recuperado el November de 2012, de http://www.aliexpress.com/store/product/Aluminium-Alloy-Weighing-Load-Cell-1Kg-forElectronic-Scale/319674_561592896.html Anastasios Karidis, R. G. (20 de October de 2011). Hardware to Software. Recuperado el February de 2013, de http://www.hw2sw.com/2011/10/20/weight-sensors-and-arduino/2/ Arduino. (2005-2013). Arduino. Recuperado el 2012/2013, de http://arduino.cc/en/Guide/HomePage Areny, R. P. (1989). Transductores y acondicionadores de seal. 08007 Barcelona (Espaa): MARCOMBO, S.A. Burr-Brown INA125. (1997). Texas Instruments. Recuperado el November de 2012, de Texas Instruments: http://www.ti.com/lit/ds/symlink/ina125.pdf Cadsoft. (2008). Cadsoftusa. Retrieved December 2013, from http://www.cadsoftusa.com/eagle-pcb-design-software/?language=en Digi Internacional. (1996-2013). Digi. Recuperado el November de 2012, de http://www.digi.com/support/productdetail?pid=3352 Harmening, D. (ISSN 1406-0957). THE HISTORY OF WESTERN MAGIC. the Folk Belief and Media Group of ELM (-ISSN 1406-0957-). Iglesias, P. F. (25 de February de 2013). Pablo Yglesias. Recuperado el March de 2013, de http://www.pabloyglesias.com/arduino-i-do-it-yourself/ Isabel Romn Martinez y Rafael Estepa Alonso. (2007/2008). Trajano. Recuperado el February de 2013, de http://trajano.us.es/~isabel/publicaciones/ARSS/0708/01_07_08.pdf ITU. (s.f.). International Telecommunication Union. Recuperado el 2013, de International Telecommunication Union: http://www.itu.int/es/Pages/default.aspx Luis Carrin, D. O. (2009). ANALISIS DEL FUNCIONAMIENTO DEL SENSOR DE FUERZA RESISTIVO (FSR) CON LabVIEW. Cuenca: Programa de Pasantas Acadmicas. Mayoral, J. (March de 2013). Questions by e-mail. (J. Abascal, Entrevistador) Nelms, H. (1969). Magia y Presentacin. Barcelona: Editorial CYMYS -ISBN: 978-84-85-060-016. Regling, D. (s.f.). Bella Online. Recuperado el 2013, March, de http://www.bellaonline.com/articles/art28692.asp

41

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Senel Technologies S.A. (25 de Februar de 2013). http://celdasdecarga.blogspot.com.es/. Recuperado el March de 2013, de http://celdasdecarga.blogspot.com.es/ Texas Instruments. (2004). Texas Instruments. Retrieved December 2012, from http://www.ti.com/lit/ds/symlink/lm137.pdf Texas Instruments. (Revised 2012, August). Texas Instruments. Retrieved December 2012, from http://www.ti.com/lit/ds/symlink/ua7805.pdf Wikipedia. (s.f.). Bicycle. Recuperado el February de 2013, de Playing card: http://en.wikipedia.org/wiki/Playing_card Wikipiedia. (2009). Wikipedia. Recuperado el December de 2012, de http://es.wikipedia.org/wiki/Arduino Xbee. (2009-2013). Xbee.CL Mdulos de transmisin inalmbrica. Recuperado el December de 2012, de http://www.xbee.cl/

42

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

10. Apndice. 10.1. Efectos explicados


Localizacin de Cartas: Existen multitud de tcnicas para lograr el perfecto control de un naipe dentro de una baraja. Algunas de ellas son totalmente tcnicas, mientras otras se fundamentan en distracciones o confusiones visuales. Gracias al sistema diseado, el procedimiento sera el siguiente: 1) Una vez seleccionada una carta por el espectador, pedirle que levante un nmero cualesquiera de cartas. 2) Realizar la medicin del nmero de cartas sin cortar. Ese valor ser X. 3) Introducir la carta del espectador en la posicin correspondiente al corte 4) Depositar el resto de cartas encima de la carta escogida. 5) Una vez realizado esto, habremos obtenido un nmero de la medicin. Sumndole uno a ese nmero adquirimos la posicin de la carta elegida por el espectador empezando a contar desde las caras de las cartas. Si queremos saber en qu posicin se encuentra desde los dorsos, tendremos que realizar el clculo 52 X (o 54 si la baraja contiene los comodines), siendo X la lectura de la medicin. Con todo lo anterior logramos localizar perfectamente cualquier carta sin necesidad de tcnica. Forzajes: En el argot mgico un forzaje es la accin de entregar una carta a un espectador, conocida anteriormente por el mago, con la conviccin de que sta ha sido elegida libremente. Al igual que en el caso anterior, hay cientos de maneras de efectuar estas maniobras. Suponiendo que quisiramos forzar el As de corazones, el procedimiento sera el siguiente: 1) Colocar el As de corazones en la ltima posicin de la baraja y pedir al espectador que escoja un grupito de cartas de arriba de la baraja (tiene que ser inferior a 26). 2) A continuacin dirigirse al espectador y comentarle que tiene que contar el nmero de cartas que ha cogido. Mientras tanto, leer el dato del sensor de las cartas restantes de la baraja. Ese valor ser X.

43

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

3) Mientras el espectador cuenta coger el resto de la baraja y contar desde abajo 52 X cartas. Cortar por las cartas contadas, quedando as el As de corazones en la posicin correcta. Colocar de nuevo la baraja en la mesa 4) Pedir al espectador que cuente el nmero de cartas que cort en el otro montn. Y que seleccione la carta. La carta que elegir el espectador no ser otra que el As de corazones. Diferenciacin de objetos: Con esta idea somos capaces de averiguar que objeto falta de un grupo dentro de un habitculo cerrado. Como ejemplo, pensemos en un monedero y en 3 monedas. Una de plata, otra de cobre y otra de oro. Es importante que las monedas posean un peso muy diferente entre ellas. Anteriormente medimos el monedero con todas las combinaciones posibles de monedas en su interior. Es decir, medimos el monedero con la/s moneda/s: -Vaco. -Plata. -Cobre. -Oro. -Plata y cobre. -Plata y oro. -Cobre y oro. Plata, cobre y oro. Memorizar cada resultado no ser problema debido a la gran diferencia de pesos de las monedas. Una vez sabido esto, tan solo queda contar al espectador que puede escoger cualquier combinacin de monedas del interior y guardrselas en el bolsillo, mientras nosotros nos damos la vuelta y no miramos. Con tan solo mirar el resultado de la medicin sabremos que moneda escogi el espectador. Adivinacin inmediata de la carta elegida: En este efecto vamos a combinar nuestro proyecto con las barajas en posicin de mnmonica. En el mundo de la Cartomagia existen multitud de barajas ordenadas de diferentes maneras, que ofrecen la posibilidad al ilusionista de saber la carta seleccionada del espectador con tan slo mirar la carta anterior o posterior a esta o saber la posicin de la carta en la baraja. Como ejemplo pensemos en que tenemos una baraja ordenada de As a Rey y por palos Picas, Corazones, Diamantes y Trboles. Nadie sabe que la baraja est ordenada, y sabemos que la carta de

44

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

abajo es el As de picas. A continuacin pedimos al espectador que corte por donde quiera, y escoja la caja de corte. En el momento del corte realizamos la medicin y obtenemos que sobre la mesa todava quedan 33 cartas. Con ese nmero ya podemos saber que la carta elegida ser la nmero 34, es decir, el 8 de Diamantes (13+13+8). Con todos estos efectos, hemos intentado que el lector comprenda las posibilidades que ofrece el proyecto. En definitiva, esta parte del proyecto entra ms profundamente en el mundo del ilusionismo y por ello consideramos que no es adecuado desarrollarlo extensamente. En las futuras lneas de trabajo queda pendiente realizar una recopilacin de todas las tcnicas, efectos y usos posibles.

45

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

10.2. Cdigos de programacin


Rutina del Arduino UNO
// Arduino controlador interior a la mesa int activacion1 = 11; //Activacin del primer display 7-segmentos int activacion2= 12; //Activacin del segundo display 7-segmentos int barra1 = 2; //Variables para manejar las barras de los displays 7-segmentos int barra2 = 3; int barra3 = 4; int barra4 = 5; int barra5 = 6; int barra6 = 7; int barra7 = 8; int analogPin=5; int valor_analogico=0; int cartas_enviadas=0; int valor_recibido=0; int numero_carta_baraja=52; int cartas_cortadas=0; int cartas_antes_de_cortar=0; int visualizar=1; float frontera=00; //Pin de entrada de la seal analgica //Valor ledo del sensor //Valor enviado al receptor //Valor de lectura de los pulsadores del receptor //Nmero de cartas de la baraja a utilizar //El nmero que queda en la mesa tras hacer el corte //El nmero de cartas

//Si su valor es 0, no se muestra en el borde de la mesa, si es 1 si se //muestra // Nmero de cartas que tiene que sobrepasar para que se considere //"corte"

float peso_base=0; //Variables utilizadas para la calibracin del sensor float peso_carta=0; float numero_cartas=00; int cifra1; int cifra2; int i; int a; // primera cifra a mostrar en los displays // segunda cifra a mostrar en los displays //variable para bucle //variable para bucle

// La rutina setup solo se inicia una vez al resetar void setup() { // Inicializamos los pines como salidas y entradas pinMode(barra1, OUTPUT); pinMode(barra2, OUTPUT); pinMode(barra3, OUTPUT); pinMode(barra4, OUTPUT); pinMode(barra5, OUTPUT); pinMode(barra6, OUTPUT); pinMode(barra7, OUTPUT); pinMode(activacion1,OUTPUT); pinMode(activacion2,OUTPUT);

46

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

// Fijamos la velocidad de la conexin serie Serial.begin(115200); delay(5000); //Calculamos el peso base de la plataforma sin cartas. for(a=0; a<10000;a++) { valor_analogico= analogRead(analogPin); numero_cartas=numero_cartas+valor_analogico; } numero_cartas=numero_cartas/10000; peso_base=numero_cartas; mostrar_numero(round(peso_base)); //Calculamos el peso de una carta delay(5000); numero_cartas=0; for(a=0;a<10000;a++) { valor_analogico=analogRead(analogPin); numero_cartas=numero_cartas+valor_analogico; } numero_cartas=numero_cartas/10000; peso_carta=(numero_cartas-peso_base)/numero_carta_baraja; } //Funcin para mostrar los dgitos en los displays 7-segmentos void mostrar_numero(float numero) { numero=round(numero); cifra1=floor((numero)/10); cifra2=round(((numero/10)-cifra1)*10); for (i=0; i < 20; i++) { digitalWrite(activacion1,HIGH); switch (cifra1) { case 0: display(1,0,0,0,0,0,0); break; case 1: display(1,1,1,0,1,1,0); break; case 2:

47

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

} delay(10); digitalWrite(activacion1,LOW); digitalWrite(activacion2,HIGH); switch (cifra2) { case 0: display(1,0,0,0,0,0,0); break; case 1: display(1,1,1,0,1,1,0); break; case 2: display(0,1,0,0,0,0,1); break; case 3: display(0,1,0,0,1,0,0); break; case 4: display(0,0,1,0,1,1,0); break; case 5: display(0,0,0,1,1,0,0); break; case 6: display(0,0,0,1,0,0,0); break;

display(0,1,0,0,0,0,1); break; case 3: display(0,1,0,0,1,0,0); break; case 4: display(0,0,1,0,1,1,0); break; case 5: display(0,0,0,1,1,0,0); break; case 6: display(0,0,0,1,0,0,0); break; case 7: display(1,1,0,0,1,1,0); break; case 8: display(0,0,0,0,0,0,0); break; case 9: display(0,0,0,0,1,0,0); break;

48

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

} digitalWrite(activacion1,LOW); digitalWrite(activacion2,LOW); }

} delay(10); digitalWrite(activacion2,LOW);

case 7: display(1,1,0,0,1,1,0); break; case 8: display(0,0,0,0,0,0,0); break; case 9: display(0,0,0,0,1,0,0); break;

//Funcin que enciende los displays void display(int a,int b, int c, int d, int e, int f, int g) { digitalWrite(barra1,a); digitalWrite(barra2,b); digitalWrite(barra3,c); digitalWrite(barra4,d); digitalWrite(barra5,e); digitalWrite(barra6,f); digitalWrite(barra7,g); } // Rutina principal, se ejecuta en bucle. void loop() { // La rutina principal consiste en leer el peso del sensor, enviarlo por el puerto serie, // mostrarlo en los displays si procede y ver si tenemos alguna seal de los interruptores del //receptor. numero_cartas=0; for(a=0; a<1000; a++) { valor_analogico=analogRead(analogPin); numero_cartas=(numero_cartas+valor_analogico); } numero_cartas=numero_cartas/1000; cartas_enviadas=round((numero_cartas-peso_base)/peso_carta); Serial.write(cartas_enviadas); if(visualizar==1) { mostrar_numero(cartas_enviadas); } else

49

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

delay(200); if(Serial.available()>0) { valor_recibido= Serial.read(); switch(valor_recibido) { case 1: //Este caso es el RESET delay(2000); //Calculamos el peso base de la plataforma sin cartas. for(a=0; a<10000;a++) { valor_analogico= analogRead(analogPin); numero_cartas=numero_cartas+valor_analogico; } numero_cartas=numero_cartas/10000; peso_base=numero_cartas; mostrar_numero(round(peso_base)); //Calculamos el peso de una carta delay(5000); numero_cartas=0; for(a=0;a<10000;a++) { valor_analogico=analogRead(analogPin); numero_cartas=numero_cartas+valor_analogico; } numero_cartas=numero_cartas/10000; peso_carta=(numero_cartas-peso_base)/numero_carta_baraja; break; case 2: //Este caso es el corte numero_cartas=0; frontera=0; cartas_cortadas=0; for(a=0; a<1000; a++) {

} numero_cartas=numero_cartas/1000; numero_cartas=round(((numero_cartas-peso_base)/peso_carta)); cartas_cortadas=numero_cartas; cartas_antes_de_cortar=numero_cartas; if(visualizar==1); { mostrar_numero(99); } //Medimos una frontera de +/- 5 cartas. for(a=0;a<100;a++) { valor_analogico=analogRead(analogPin);

//aqu vemos cuantas hay ahora mismo (por si la hay //un grupito de cartas) valor_analogico=analogRead(analogPin); numero_cartas=numero_cartas+valor_analogico;

50

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

frontera=frontera+valor_analogico; } frontera=frontera/100; frontera=round(((frontera-peso_base)/peso_carta)); while(((numero_cartas-5)<=frontera)&&(frontera<=(numero_cartas +5))) { frontera=0; for(a=0;a<100;a++) { valor_analogico=analogRead(analogPin); frontera=frontera+valor_analogico; } frontera=frontera/100; frontera=round(((frontera-peso_base)/peso_carta)); } //Necesitamos los valores ms pequeos, para saber cual es el nmero menor de cartas //que ha habido en la mesa. for(i=0; i<10; i++){ //De este nmero depende de que salga bien si corta //pocas cartas o muchas. numero_cartas=0; for(a=0; a<1000; a++) { valor_analogico=analogRead(analogPin); numero_cartas=numero_cartas+valor_analogico; } numero_cartas=numero_cartas/1000; numero_cartas=round(((numero_cartas-peso_base)/peso_carta)); cartas_cortadas=min(cartas_cortadas,numero_cartas); } //Aqu ya sabremos cuantas cartas se han cortado cartas_cortadas=cartas_antes_de_cortar-cartas_cortadas; //Mandamos 5 veces esas cartas cortadas for (a=0;a<5;a++) { Serial.write(cartas_cortadas); if (visualizar==1) { mostrar_numero(cartas_cortadas); } delay(200); } break; case 3: //Este caso muestra o no en los displays situados en la mesa. visualizar = !visualizar; if (visualizar==0) { mostrar_numero(00);

51

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

} } }

} else mostrar_numero(11); break;

52

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

Rutina del Arduino FIO (inalmbrico)


// Arduino FIO (exterior a la mesa) int activacion1 = 11; //Activacin del primer display 7-segmentos int activacion2= 12; //Activacin del segundo display 7-segmentos int barra1 = 2; //Variables para manejar las barras de los displays 7-segmentos int barra2 = 3; int barra3 = 4; int barra4 = 5; int barra5 = 6; int barra6 = 7; int barra7 = 8; int pulsador1= 9; int pulsador2= 10; char pulsador3= A3; char pulsador4= A4; //Pulsadores a utilizar. Sirven para mandar rdenes a la mesa y manejar //la visibilidad del display

float numero_cartas=00; int cifra1; int cifra2; int i; int a;

//Nmero de cartas recibido. //variable para bucle 1 //variable para bucle 2

// La rutina setup solo se inicia una vez al resetar void setup() { // Inicializamos los pines como salidas y entradas pinMode(barra1, OUTPUT); pinMode(barra2, OUTPUT); pinMode(barra3, OUTPUT); pinMode(barra4, OUTPUT); pinMode(barra5, OUTPUT); pinMode(barra6, OUTPUT); pinMode(barra7, OUTPUT); pinMode(activacion1,OUTPUT); pinMode(activacion2,OUTPUT); pinMode(pulsador1,INPUT); pinMode(pulsador2,INPUT); pinMode(pulsador3,INPUT); pinMode(pulsador4,INPUT); // Fijamos la velocidad de la conexin serie Serial.begin(115200); //Funcin para mostrar los dgitos en los displays 7-segmentos void mostrar_numero(float numero) {

53

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

numero=round(numero); cifra1=floor((numero)/10); cifra2=round(((numero/10)-cifra1)*10); for (i=0; i < 20; i++) { digitalWrite(activacion1,HIGH); switch (cifra1) { case 0: display(1,0,0,0,0,0,0); break; case 1: display(1,1,1,0,1,1,0); break; case 2: display(0,1,0,0,0,0,1); break; case 3: display(0,1,0,0,1,0,0); break; case 4: display(0,0,1,0,1,1,0); break; case 5: display(0,0,0,1,1,0,0); break; case 6: display(0,0,0,1,0,0,0); break; case 7: display(1,1,0,0,1,1,0); break; case 8: display(0,0,0,0,0,0,0); break; case 9: display(0,0,0,0,1,0,0); break; } delay(10); digitalWrite(activacion1,LOW); digitalWrite(activacion2,HIGH); switch (cifra2) { case 0: display(1,0,0,0,0,0,0); break;

54

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

} digitalWrite(activacion1,LOW); digitalWrite(activacion2,LOW); }

} delay(10); digitalWrite(activacion2,LOW);

case 1: display(1,1,1,0,1,1,0); break; case 2: display(0,1,0,0,0,0,1); break; case 3: display(0,1,0,0,1,0,0); break; case 4: display(0,0,1,0,1,1,0); break; case 5: display(0,0,0,1,1,0,0); break; case 6: display(0,0,0,1,0,0,0); break; case 7: display(1,1,0,0,1,1,0); break; case 8: display(0,0,0,0,0,0,0); break; case 9: display(0,0,0,0,1,0,0); break;

//Funcin que enciende los displays void display(int a,int b, int c, int d, int e, int f, int g) { digitalWrite(barra1,a); digitalWrite(barra2,b); digitalWrite(barra3,c); digitalWrite(barra4,d); digitalWrite(barra5,e); digitalWrite(barra6,f); digitalWrite(barra7,g); }

55

Proyecto fin de carrera de Ingeniera de Telecomunicaciones

// Rutina principal, se ejecuta en bucle. void loop() { //La rutina principal consiste en leer los datos recibidos y obedecer a los distintos pulsadores. if (Serial.available() > 0) { numero_cartas = Serial.read(); if (digitalRead(pulsador1)== HIGH) { mostrar_numero(numero_cartas); }

if (digitalRead(pulsador2)== HIGH) //Enviamos la orden RESET { delay(1000); Serial.write(1); delay(1000); } if (digitalRead(pulsador3)== HIGH) //Enviamos la orden CORTE { delay(1000); Serial.write(2); delay(1000); } if (digitalRead(pulsador4)== HIGH) //Enviamos la orden para VISUALIZAR en la mesa { delay(1000); Serial.write(3); delay(1000); } numero_cartas=0; }

56