56
Proyecto fin de carrera de Ingeniería de Telecomunicaciones Departamento de Teoría de la Señal y Comunicaciones Integración de kits Arduinos enlazados mediante Xbee para aplicaciones de Cartomagia Autor: Javier Abascal Carrasco Tutor: Jose Ramón Cerquides Bueno Fecha: Miércoles, 24 de abril de 2013

Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Embed Size (px)

Citation preview

Page 1: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

Departamento de Teoría de la Señal y Comunicaciones

Integración de kits Arduinos enlazados mediante Xbee para aplicaciones de

Cartomagia

Autor: Javier Abascal Carrasco Tutor: Jose Ramón Cerquides Bueno Fecha: Miércoles, 24 de abril de 2013

Page 2: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

2

0. Índice

0. Índice .................................................................................................................................... 2

1. Introducción ......................................................................................................................... 3

2. Antecedentes y motivaciones ........................................................................................... 5

3. Parte 1: Sensor y acondicionamiento de la señal. ........................................................ 7

3.1. Sensor .......................................................................................................................... 7

3.2. Acondicionamiento de la señal ............................................................................... 13

3.3. Amplificador de instrumentación INA125 .............................................................. 16

3.4. Diseño del pcb .......................................................................................................... 18

4. Parte 2: Procesamiento y envío de la señal. ................................................................ 22

4.1. Kits Arduino ............................................................................................................... 22

4.1.1. Arduino Duemilanove + Xbee Shield ............................................................. 22

4.1.2. Arduino Fio ........................................................................................................ 24

4.1.3. Módulos Xbee ................................................................................................... 25

4.2. Configuración de los módulos Xbee ...................................................................... 26

4.3. Entorno de desarrollo Arduino ................................................................................ 28

4.4. Programación de los microcontroladores ............................................................. 29

5. Parte 3: Sistema completo. ............................................................................................. 31

5.1. Posicionamiento de los elementos ........................................................................ 31

5.2. Baterías ...................................................................................................................... 35

5.3. Camuflaje ................................................................................................................... 36

6. Funcionamiento y Aplicaciones mágicas. ..................................................................... 38

7. Futuras líneas de trabajo. ................................................................................................ 39

8. Conclusiones ..................................................................................................................... 40

9. Referencias. ...................................................................................................................... 41

9.1. Bibliografía ......................................................................................................................... 41

10. Apéndice. .......................................................................................................................... 43

10.1. Efectos explicados ..................................................................................................... 43

10.2. Códigos de programación ......................................................................................... 46

Page 3: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

3

1. Introducción

La telecomunicación es según la ITU 1 , toda emisión, transmisión y recepción de signos, señales, escritos e imágenes, sonidos e informaciones de cualquier naturaleza, por hilo, radioelectricidad, medios ópticos u otros sistemas electromagnéticos (ITU). Habitualmente las aplicaciones de los sistemas de telecomunicación han sido los medios de transmisión de masas como el telégrafo, radio, telefonía y televisión (Isabel Román Martinez y Rafael Estepa Alonso, 2007/2008). Los nuevos servicios generados a través de internet están revolucionando la sociedad como son las video-llamadas, el streaming o el intercambio de archivos personales. A pesar de todo esto, todavía hoy los sistemas disponen de una amplia función en campos de trabajo que no estamos familiarizados. Cada vez más rápido, se descubren nuevas ocupaciones en donde el uso de estos sistemas revoluciona la práctica y posibilita una multitud de nuevos servicios al usuario (salud, educación, administración… etc.). En este proyecto fin de carrera abordaremos un área de trabajo poco común, la magia.

El proyecto consiste en el desarrollo y posterior realización de un sistema para poder realizar efectos de cartomagia. Se basa en la construcción de un soporte que permite el pesado ultrasensible de cartas de póker, en un rango de 0 a 60 y posibilita la comunicación de forma instantánea a un receptor instalado en algún lugar y mostrar los resultados correspondientes.

En primer lugar, analizaremos como generamos la señal para obtener el pesado correcto bajo la superficie del soporte, que tendrá apariencia de mesa. En segundo lugar, estudiaremos el procesamiento de la señal, programación de los equipos y el envío de la información al receptor inalámbrico. 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 mágicos.

Para comenzar, describiremos el sensor que hemos seleccionado, destacando sus características, como funciona y cómo somos capaces de realizar una lectura correcta de la medida. A su vez, conoceremos el diseño del circuito PCB creado para el acondicionamiento de la señal, el programa empleado y los resultados.

A continuación, abordaremos el procesamiento de los datos que nos genera el sensor; para ello programaremos un microcontrolador ATmega328 instalado en un kit Arduino básico. El kit Arduino ha sido escogido por su compatibilidad con módulos de Xbee ya prediseñados, la amplia variedad de librerías de uso libre disponibles, así como su creciente popularidad. Una vez 1 ITU, siglas de International Telecommunication Union.

Page 4: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

4

realizada la digitalización, gracias a los módulos Xbee podremos ser capaces de realizar el envío 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. Además se explicara el uso correcto del dispositivo, enunciaremos las posibles aplicaciones mágicas de éste y futuras ampliaciones del sistema.

Page 5: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

5

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 años y la primera mención 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 día existen multitud de disciplinas que van desde la micromagia hasta las grandes ilusiones. En mi caso, la afición por la magia se remonta al año 2006; un año antes de comenzar la carrera de Ingeniero de Telecomunicación 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 electrónica y señales.

Para poder entender rápidamente sin tener que estudiar a fondo la teoría de la magia, nos gustaría explicar brevemente la diferencia que existe entre técnica y trucaje. La parte técnica, consiste en un conjunto de movimientos, gestos y hechos que ocultan o camuflan acciones normales con acciones tramposas para ayudar a realizar un efecto mágico. El trucaje o ardid sin embargo, es el conjunto de elementos y herramientas construidas y diseñadas para poder realizar tales efectos (Nelms, 1969). Un sistema de telecomunicaciones nunca nos ayudará a acrecentar nuestra técnica, 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 podría insertar un sistema de telecomunicación y desde hace relativamente poco tiempo, están empezando a proliferar de forma creciente trucajes electrónicos realmente novedosos que consiguen ilusiones mágicas muy impactantes. Es casi imposible saber con certeza quién fue el primer ilusionista en adaptar y utilizar la electrónica 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 información. Además tiempo atrás la magia no era un bien compartido y muchísimos ilusionistas se llevaron sus secretos a la tumba. Aún así Juan Mayoral2 (Mayoral, 2013) cree según sus conocimientos, que Rober Houdin fue en el siglo XIX, el primero en utilizar la electrónica. Su juego más famoso era la maleta pesada o liguera, en la que se empleaba un electroimán. A continuación tendríamos a Anverdi, Klingsor y Christian Fechner (los tres ya fallecidos), y después cronológicamente estaría él. Como él mismo comenta, él ha podido aprovecharse de la miniaturización 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 electrónicos. Es conocido mundialmente por sus novedosas invenciones y posee el primer premio FISM de 1991 en Suiza en la categoría de magia general.

Page 6: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

6

predecesores no han podido disfrutar. A partir de entonces, la electrónica 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 España y pregunté por el tipo de dispositivos electrónicos utilizados actualmente. Rápidamente nos dimos cuenta de que no existía gran variedad. A excepción de algunos, todos consistían en un emisor/receptor de radiofrecuencia (433Mhz habitualmente) conectados a algún tipo de servomecanismo, el cuál movía o realizaba alguna acción. Como ejemplo, podríamos 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 pequeño motor que gira 45º un imán y debido a que el badajo de la campana es de hierro es atraído por el imán. Al golpear la superficie de la campana se produce el sonido.

Después de observar este patrón “emisor-receptor-servo” decidí buscar ideas de trucos electrónicos que implicaran algún tipo de procesamiento de señal. Y de momento, sólo unos pocos juegos son de este estilo. Así pues, desarrollé unas cuantas ideas, me reuní con mis compañeros, comparamos las ventajas y desventajas de las diferentes alternativas así como el rango de aplicaciones mágicas de cada opción y elegimos la idea que a continuación os presento como proyecto fin de carrera.

Page 7: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

7

3. Parte 1: Sensor y acondicionamiento de la señal. 3.1. Sensor

Comenzamos con la elección del sensor que vamos a emplear para poder medir el peso de las cartas. Ya que una carta pesa aproximadamente 1.7𝑔𝑔 (Baraja de Póker Bycycle, la más utilizada mundialmente por los ilusionistas) (Wikipedia), la selección 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 características son difíciles 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 mínima de 0.1 𝑔𝑔 y una capacidad de carga entre 3 − 5 𝑘𝑘𝑔𝑔. Veamos las características de dos tipos de sensores de peso: Sensores del tipo FSR y las células de carga.

Los sensores de tipo FSR (Force Sensitive Resistor) (Luis Carrión, 2009) son dispositivos de película de polímetro (PTF) y se fundamentan en una superficie de resistencia variable según la presión que se ejerce sobre esa superficie. A mayor fuerza sobre la superficie, se obtiene una lectura de resistencia menor en sus terminales. Es decir, actúa como un simple potenciómetro, pero debido principalmente a que no poseen una buena sensibilidad no son de utilidad para nuestro propósito. Normalmente se utilizan para detectar cambios y no para medirlos, como puede ser accionar pulsadores. Están sobre todo optimizados para uso en el control por toque humano de dispositivos electrónicos.

Figura 1. Construcción del FSR.

Page 8: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

8

Figura 2. Sensor de presión IEE FSR-154NS 10g.

Las células 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 alimentación. Este transductor convierte la fuerza ejercida en una señal eléctrica mediante el uso de cuatro galgas extensiométricas colocadas en configuración tipo Puente de Wheatstone. La salida eléctrica de este tipo de transductores son de muy bajo rango y es necesario una etapa de amplificación 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 parámetros a tener en cuenta son:

a) Rated load: Carga nominal de la célula, es decir, el peso máximo que es capaz de medir de forma lineal.

Page 9: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

9

b) Rated output: Salida nominal de la célula. Su unidad es 𝑚𝑚𝑚𝑚/𝑚𝑚 que nos genera 1 𝑚𝑚𝑚𝑚 por cada 𝑚𝑚 de alimentación cuando el sensor está a carga máxima. A mayor valor, menor será la amplificación necesaria.

c) Zero output: Salida de la célula de carga sin estar sometida a ninguna carga. Se mide en porcentaje del fondo de escala % 𝐹𝐹. 𝑆𝑆.

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

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

f) Safety Overload: Sobrecarga máxima que aguanta el sensor sin averiarse, generalmente es un 150 % del valor de carga nominal.

g) Recommend excitation Voltage: Voltaje de alimentación recomendado por el fabricante del transductor. Es de vital importancia que esté conectado a una fuente regulada de tensión, para evitar errores en la lectura del transductor.

Para ayudar a entender y afrontar qué nos encontramos en una load cell estándar, véase el siguiente cálculo (Anastasios Karidis, 2011):

Especificaciones:

-Carga nominal de 3 𝑘𝑘𝑔𝑔 -Salida nominal de 1 𝑚𝑚𝑚𝑚/𝑚𝑚 -Alimentación de 10 𝑚𝑚 -Precisión 0.04 % 𝐹𝐹. 𝑆𝑆 -Precisión por temperatura 0.01 % 𝐹𝐹. 𝑆𝑆 A carga completa (3𝑘𝑘𝑔𝑔) el sensor generará 10 𝑚𝑚𝑚𝑚, es decir, una señal de salida de:

10𝑚𝑚𝑚𝑚3000𝑔𝑔

= 0.0034 mV/g.

El error de precisión (0.04 % 𝐹𝐹. 𝑆𝑆) genera un error en la medida de:

10𝑚𝑚𝑚𝑚 ·0.04100

= ±0.004 𝑚𝑚𝑚𝑚.

El error de precisión por temperatura lo podemos descartar por ser menor y fijo. Por lo tanto el mínimo cambio de salida en el sensor que vamos a detectar es 0.004 𝑚𝑚𝑚𝑚 . Sin tener que analizar nada observemos que el mínimo cambio distinguible es mayor que un gramo, debido a que el error es mayor que la propia precisión por gramo. Con este sensor genérico encontraremos

Page 10: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

10

problemas a la hora de poder diferenciar cartas, ya que el peso de una carta (1.7 𝑔𝑔) será:

1.7𝑔𝑔 · 0.0034𝑚𝑚𝑚𝑚/𝑔𝑔 ≈ 0.0057 𝑚𝑚𝑚𝑚

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, más errores de calentamiento y simples imprecisiones de la tensión de alimentación 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 leímos los catálogos 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).

Alluminium Alloy weighing Load Cell 1kg for Electronic Scale

Figura 4. Load cell de un kilogramo. Obsérvese el tamaño reducido, y los cuatro orificios para fijar el sensor y la bandeja.

3 Conversor analógico digital. De aquí en adelante nos referiremos a el por sus siglas.

Page 11: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

11

Cuya reducida hoja de especificaciones podemos ver a continuación

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 Load Cell Rated Load 1Kg/2.2lbs

Rated Output 1mV/V Zero Output 0.05%F.S

Overall Precision 0.02%F.S Precision Temperature 0.02%F.S Working Temperature -10°C~+50°C

Compensated Temperature Range -10°C~+40°C

Safety Overload 150% Recommend Excitation Voltage 10V DC

Max Excitation VoltageM 15V DC

Total Size 80 x 13 x 12mm / 3.1" x 0.5" x 0.47"(L*W*T)

Thead Hole Diameter 3.5mm / 0.138" 4.3mm / 0.169"

Cable Length 230mm/ 9'' Material Aluminium Alloy

Color Silver Tone Weight 29g

Package Content 1 x Load Cell Tabla 1. Hoja de especificaciones.

Si realizamos los mismos cálculos para la load cell adquirida:

A carga completa (1 𝑘𝑘𝑔𝑔) generamos una salida de 10 𝑚𝑚𝑚𝑚, o una señal de salida de:

10𝑚𝑚𝑚𝑚1000𝑔𝑔

= 0.01 𝑚𝑚𝑚𝑚/𝑔𝑔.

El error de precisión (0.02 % 𝐹𝐹. 𝑆𝑆) produce un error en la medida de:

10𝑚𝑚𝑚𝑚 ·0.02100

= ±0.002 𝑚𝑚𝑚𝑚.

Esta vez la lectura de un gramo supera en un 500 % la precisión del error que disponemos, lo que no asegura un margen más amplio de error. Cabe remarcar este margen de seguridad, ya que el comportamiento del sensor es bastante diferente de la teoría que pone en los manuales. Gracias a que garantizamos un gran rango de seguridad, hemos logrado conseguir que todo funcione según lo previsto y ser capaz de distinguir las cartas sin fallos.

Page 12: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

12

Por último, añadimos 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.

Page 13: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

13

3.2. Acondicionamiento de la señal

A continuación se enumeran los cuatro puntos que fueron estudiados para alcanzar que la señal generada por el sensor sea de utilidad.

-Punto 1. Una referencia de tensión de 10 𝑚𝑚 fija y estable para el sensor (excitación recomendada). Sin referencia de tensión, la salida de nuestro sensor variaría a medida que se gastaran las baterías de la alimentación (Areny, 1989).

-Punto 2. Requerimos de una amplificación de la señal 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 amplificación de la salida máxima (10 𝑚𝑚𝑚𝑚 a carga completa) se iguale a 5 𝑚𝑚. La amplificación mínima viable es de:

5𝑚𝑚10𝑚𝑚𝑚𝑚

= 500 𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢.

Esta situación sería el caso ideal ya que hay que prestar atención a la resolución disponible en el CAD. El CAD dispone de 10 𝑏𝑏𝑢𝑢𝑏𝑏𝑢𝑢, lo que supone 1024 𝑝𝑝𝑢𝑢𝑢𝑢𝑝𝑝𝑢𝑢. Si dividimos 1 𝑘𝑘𝑔𝑔 en 1024 𝑝𝑝𝑢𝑢𝑢𝑢𝑝𝑝𝑢𝑢, obtenemos que cada escalón en el CAD supondrá:

1000𝑔𝑔210𝑏𝑏𝑢𝑢𝑏𝑏𝑢𝑢

= 0.9765625 𝑔𝑔/𝑏𝑏𝑢𝑢𝑏𝑏.

Si lo expresamos en Voltios:

5𝑚𝑚210𝑏𝑏𝑢𝑢𝑏𝑏𝑢𝑢

= 4.8828𝑚𝑚𝑚𝑚/𝑏𝑏𝑢𝑢𝑏𝑏.

Esto no es un buen dato, ya que la misma limitación 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 pequeña tabla;

Número de cartas sobre

el sensor

Salida del sensor antes de la

amplificación

Salida del sensor tras la amplificación

(multiplicamos por 500)

Lectura del CAD (4.8828 𝑚𝑚𝑚𝑚/𝑏𝑏𝑢𝑢𝑏𝑏)

1 (1.7 𝑔𝑔) 1.7𝑔𝑔 ·0.01𝑚𝑚𝑚𝑚

𝑔𝑔= 0.017𝑚𝑚𝑚𝑚

8.5 𝑚𝑚𝑚𝑚 1.7408 = 2

2 (3.4 𝑔𝑔) 3.4𝑔𝑔 ·0.01𝑚𝑚𝑚𝑚

𝑔𝑔= 0.034𝑚𝑚𝑚𝑚

17 𝑚𝑚𝑚𝑚 3.4816 = 3

Page 14: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

14

3 (5.1 𝑔𝑔) 5.1𝑔𝑔 ·0.01𝑚𝑚𝑚𝑚

𝑔𝑔= 0.051𝑚𝑚𝑚𝑚

25.5 𝑚𝑚𝑚𝑚 5.2224 = 5

4 (6.8 𝑔𝑔) 6.8𝑔𝑔 ·0.01𝑚𝑚𝑚𝑚

𝑔𝑔= 0.068𝑚𝑚𝑚𝑚

34 𝑚𝑚𝑚𝑚 6.9632 = 7

5 (8.5 𝑔𝑔) 8.5𝑔𝑔 ·0.01𝑚𝑚𝑚𝑚

𝑔𝑔= 0.085𝑚𝑚𝑚𝑚

42.5 𝑚𝑚𝑚𝑚 8.704 = 9

6 (10.2 𝑔𝑔) 10.2𝑔𝑔 ·0.01𝑚𝑚𝑚𝑚

𝑔𝑔= 0.102𝑚𝑚𝑚𝑚

51 𝑚𝑚𝑚𝑚 10.4448 = 10

… … … … Tabla 2.Cálculo de la lectura del CAD en función de las cartas situadas sobre el sensor. Amplificación de 500

unidades.

La consecuencia es que cualquier mínimo error que modifique el último o los dos últimos bits nos impedirá distinguir las cartas4. Después de esta tabla, ¿Qué debemos modificar para poder mejorar nuestra resolución en el CAD? La respuesta es amplificar únicamente la región deseada, que hemos acotado de 0 𝑢𝑢 60 cartas5. El cálculo para amplificar solamente esa región es:

60𝑐𝑐𝑢𝑢𝑐𝑐𝑏𝑏𝑢𝑢𝑢𝑢 ·1.7𝑔𝑔𝑐𝑐𝑢𝑢𝑐𝑐𝑏𝑏𝑢𝑢

= 102𝑔𝑔 ≈ 10% 𝑢𝑢𝑢𝑢𝑑𝑑 𝑝𝑝𝑢𝑢𝑢𝑢𝑝𝑝 𝑚𝑚á𝑥𝑥𝑢𝑢𝑚𝑚𝑝𝑝 𝑢𝑢𝑝𝑝𝑝𝑝𝑝𝑝𝑐𝑐𝑏𝑏𝑢𝑢𝑢𝑢𝑝𝑝 𝑝𝑝𝑝𝑝𝑐𝑐 𝑢𝑢𝑑𝑑 𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑝𝑝𝑐𝑐 (1𝑘𝑘𝑔𝑔)

Es decir, vamos a amplificar 10 veces más, 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 situásemos 1 𝑘𝑘𝑔𝑔 en el sensor obtendríamos 10 𝑚𝑚𝑚𝑚 · 5000 = 50 𝑚𝑚 6. Al realizar esta modificación, 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 más pequeño no va a ser el CAD, sino el propio sensor. Esa amplificación nos permite obtener en la lectura un máximo 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 𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢𝑢6F

7. Reescribiendo la tabla anterior con la nueva amplificación podemos observar como disponemos de una gran distancia entre las medidas.

4 Debido a la sensibilidad y calidad del sensor los últimos bits del CAD variarán arbitrariamente. 5 Con el objetivo de poder utilizar diferentes barajas que posean distinto peso. 6 Este resultado sería hipotético ya que estaría limitado por la alimentación y el amplificador. 7 A partir de cuatro bits, superaríamos la mitad de la distancia y no podríamos discernir correctamente; 24 = 16 > 9.

Page 15: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

15

Número de cartas sobre

el sensor

Salida del sensor antes

de la amplificación

Salida del sensor tras la amplificación

(𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎𝒎 𝒎𝒎𝒎𝒎𝒑𝒑 𝟓𝟓𝟓𝟓𝟓𝟓𝟓𝟓)

Lectura del CAD (4.8828 𝑚𝑚𝑚𝑚/𝑏𝑏𝑢𝑢𝑏𝑏)

1 (1.7𝑔𝑔) 1.7𝑔𝑔 ·0.01𝑚𝑚𝑚𝑚

𝑔𝑔= 0.017𝑚𝑚𝑚𝑚

85 𝑚𝑚𝑚𝑚 17.408 = 17

2 (3.4𝑔𝑔) 3.4𝑔𝑔 ·0.01𝑚𝑚𝑚𝑚

𝑔𝑔= 0.034𝑚𝑚𝑚𝑚

170 𝑚𝑚𝑚𝑚 34.816 = 35

3 (5.1𝑔𝑔) 5.1𝑔𝑔 ·0.01𝑚𝑚𝑚𝑚

𝑔𝑔= 0.051𝑚𝑚𝑚𝑚

255 𝑚𝑚𝑚𝑚 52.224 = 52

4 (6.8𝑔𝑔) 6.8𝑔𝑔 ·0.01𝑚𝑚𝑚𝑚

𝑔𝑔= 0.068𝑚𝑚𝑚𝑚

340 𝑚𝑚𝑚𝑚 69.632 = 70

5 (8.5𝑔𝑔) 8.5𝑔𝑔 ·0.01𝑚𝑚𝑚𝑚

𝑔𝑔= 0.085𝑚𝑚𝑚𝑚

425 𝑚𝑚𝑚𝑚 87.04 = 88

6 (10.2𝑔𝑔) 10.2𝑔𝑔 ·0.01𝑚𝑚𝑚𝑚

𝑔𝑔= 0.102𝑚𝑚𝑚𝑚

510 𝑚𝑚𝑚𝑚 104.448 = 104

… … … … Tabla 3. .Cálculo de la lectura del CAD en función de las cartas situadas sobre el sensor. Amplificación de 5000

unidades.

-Punto 3. Es imprescindible colocar un limitador de tensión para asegurar que la tensión recibida por el CAD no sea nunca superior a 5 𝑚𝑚 aunque añadamos más peso sobre la superficie de la mesa. Si superamos ese límite podría causar daños 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 señal, nos ha facilitado enormemente la labor de solventar los problemas. Solucionaremos el punto 3 por medio de la utilización de un diodo Zenner a 5 𝑚𝑚, y el punto 1, punto 2 y punto 4 lo conseguimos resolver gracias al amplificador de instrumentación INA125 y un pequeño divisor resistivo, con alimentación regulada, que nos permitirá realizar la “puesta a cero” generando la tensión deseada a restar en la salida del sensor.

8 Factores como la presión, viento o gravedad podrían causar cambios de gramos en el sensor.

Page 16: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

16

3.3. Amplificador de instrumentación INA125

El datasheet puede obtenerse directamente en la web de Texas Instruments (Burr-Brown INA125, 1997). Principales características:

-Precision voltaje reference 1.24 𝑚𝑚, 2.5 𝑚𝑚, 5 𝑚𝑚 y 10 𝑚𝑚 incorporado (sólo se puede utilizar uno al mismo tiempo)

-Low offset Voltage. Muy positivo ya que introducirá poco error en la amplificación y posterior medida.

-Amplificación desde 4 a 10000, regulada según una resistencia Rg por la siguiente ecuación:

𝐺𝐺 = 4 + 60𝑘𝑘Ω𝑅𝑅𝑔𝑔

.

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

Figura 5. Amplificador INA125 y ganancia en función 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 tensión 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 utilización del Offset trimming nos será obligatorio alimentar el circuito con una fuente dual.

Llegado a este punto del trabajo somos capaces de generar una señal analógica variable entre 0 y 5 Voltios según qué cantidad de naipes sean

Page 17: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

17

colocados en la plataforma. Para finalizar la información sobre el INA125, expongo la configuración de pines y un esquema del mismo9.

Figura 6. Configuración de pines.

Figura 7. Esquema del amplificador INA125.

9 Para más información consultar el datasheet del dispositivo

Page 18: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

18

3.4. Diseño del pcb

Después de saber qué es lo que pretendemos hacer y con qué elementos vamos a realizarlo, solo queda diseñar el esquemático del circuito y el posterior PCB del mismo. Para ello hemos utilizado el programa de CAD10 EAGLE v6.3.0. Debido a la baja complejidad del circuito, con la versión gratuita nos es suficiente (tenemos restricciones en el número de capas, tamaño de la placas… etc.). Tras diseñar y aprender a utilizar este programa, me gustaría mencionar, que me ha sorprendido gratamente por su facilidad y similitud a otros programas orientados al diseño.

EAGLE dispone de tres módulos 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). Además de diseñar el acondicionamiento de la señal realicé dos pequeños esquemas, para poder colocar 2 displays de 7 segmentos en un espacio reducido. A continuación los esquemas y tras ellos, sus posteriores explicaciones.

Figura 8. Esquemático del circuito diseñado para acondicionar la señal del sensor de carga. Realizado con el programa EAGLE.

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

Page 19: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

19

En el esquemático 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 pequeña señal que genera el puente de Wheatstone en la load cell. Entre los pines 8 y 9 situamos la resistencia Rg11. 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 señal de salida tras la amplificación de la entrada así como el diodo Zenner que limita la tensión de salida a 5 𝑚𝑚, estos pines van unidos por definición. Y en los pines 1 y 3 se encuentra la alimentación 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 tensión positiva o negativa. Son dos pequeños circuitos con dos reguladores de tensión (uno positivo y otro negativo) y un divisor de tensiones. Según se rote la rueda del potenciómetro correspondiente, sumaremos o restaremos la caída de tensión en JP1 y JP3 a la señal de salida del INA125. Los 2 reguladores de tensión utilizados12 son LM337 (Texas Instruments, 2004) (negativo) y el uA7800 (Texas Instruments, Revised 2012) (positivo). Tanto el INA125, y todos los reguladores de tensión utilizados, fueron adquiridos de las muestras gratuitas cedidas por Texas Instruments.

El esquemático 2 es de los displays de 7-segmentos. Son displays AC (Ánodo Común) 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 típica de valor 330 Ω en el pin de 11 Se colocaron cuatro espacios en el diseño para dar la posibilidad de ajustar la resistencia a un valor muy concreto. 12 En los diferentes datasheets se puede consultar la posición y utilidad de los condensadores añadidos.

Figura 9. Esquemático del circuito diseñado para facilitar las entradas a los displays 7-segmentos.

Realizado con el programa EAGLE.

Page 20: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

20

activación para alimentar los displays a 5 𝑚𝑚 sin quemarlos (salida de los pines digitales de propósito general del kit Arduino).

Una vez diseñado el esquemático, la realización del Layout fue muy sencilla, quedando como resultado el siguiente esquema, en donde las líneas 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.

Page 21: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

21

Tras esquematizar el Layout, convertimos este diseño a formato GERBER y de ahí a CircuitCAM, con el fin de poder elaborar el corte en el laboratorio13. 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. 13 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 Teoría de la señal y Comunicaciones).

Page 22: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

22

4. Parte 2: Procesamiento y envío de la señal. 4.1. Kits Arduino

Arduino nació como un proyecto educativo en el año 2005 y a día de hoy es el líder en el sector DIY (Do It Yourself). El proyecto recibió una mención honorífica en la categoría de Comunidad Digital en el Prix Ars Electrónica de 2006.

Ellos mismos definen el concepto de este modo: Arduino es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos.

Para realizar este proyecto se requería un microcontrolador instalado en una pequeña placa ya preparada, con variedad de pines y compatibilidad con telecomunicaciones inalámbricas. Arduino satisface todas nuestras necesidades. En el envío y recepción de datos aprovecharemos la compaginación existente entre Arduino y los módulos Xbee14. En el mercado actual del kit existen multitud de posibilidades diferentes focalizadas a distintos objetivos (energía, compatibilidad, tamaño …etc.) y son de especial atractivo debido a su facilidad de uso, reducido precio y su gran soporte técnico actual que permite resolver cualquier tipo de duda en diversas webs, foros y proyectos ya creados. Debido a la amplia información existente del entorno de desarrollo Arduino, remitimos al lector a consultar la bibliografía en caso de desear conocer más 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. Además se compraron dos módulos 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 más avanzada revisión del primer entorno de desarrollo básico creado por Arduino. Debe su nombre italiano al año 2009, fecha en la cual fue lanzado el producto; sus características más importantes son las siguientes:

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

Page 23: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

23

Figura 14. Esquema general Arduino Duemilanove.

A su vez Duemilanove es compatible con Xbee Shield, el cual es una ampliación de la placa que puede ser emplazada encima de la anterior, dando la posibilidad de conectar en un zócalo habilitado para ello un módulo Xbee. Esta configuración es muy cómoda ya que permite conectar debidamente el módulo sin necesidad de perder ningún pin. Este pack estará localizado dentro de la mesa, al lado del sensor.

La función principal del dispositivo será la de ir leyendo constantemente la señal analógica del sensor. Una vez recibida y digitalizada, el microcontrolador trabajará con diferentes subrutinas según lo que se le comande. Los objetivos primordiales son tener la capacidad de representar en dos displays 7-segmentos el número de cartas leídas, realizar una puesta a

Microcontrolador ATmega368 Voltaje de funcionamiento 5V

Voltaje de entrada (recomendado) 7-12V Voltaje de entrada (límite) 6-20V

Pines E/S digitales 14 (6 proporcionan salida PWM) Pines de entrada analógica 6

Intensidad por pin 40 mA Intensidad en pin 3.3V 50 mA

Memoria Flash 32 KB de las cuales 2 KB las usa el gestor de arranque (bootloader)

SRAM 2 KB EEPROM 1 KB

Velocidad de reloj 16 MHz Tabla 4. Características del Arduino Duemilanove.

Page 24: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

24

cero del sensor, enviar el resultado al Arduino Fio mediante Xbee y detectar el número de naipes que han sido cortados16 (Arduino, 2005-2013).

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

4.1.2. Arduino Fio

Arduino Fio ha sido fundamentalmente desarrollado para el uso en aplicaciones inalámbricas, donde el espacio y consumo son importantes. La placa tiene incorporado un zócalo para un módulo Xbee, debido a eso no es imprescindible el uso de una expansión (Shield) como en el caso anterior. Sus principales características son:

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

Microcontrolador ATmega328P Voltaje de trabajo 3.3V Voltaje de Entrada 3.35 -12 V

Voltaje de Entrada en Carga 3.7 - 7 V

Pines E/S Digital 14 (6 proporcionan salida PWM)

Pines de Entrada Analógica 8 Corriente DC por pin E/S 40 mA

Memoria Flash 32 KB de los cuales 2 KB las usa el gestor de arranque (bootloader)

SRAM 2 KB EEPROM 1 KB

Frecuencia de Reloj 8 MHz

Tabla 5. Características del Arduino Fio.

Page 25: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

25

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

Además de por sus características, el Arduino Fio ha sido elegido por su tamaño (1.1 x 2.6 pulgadas), el cual facilita su ocultamiento en diferentes localizaciones. La función 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. Simultáneamente 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. Módulos Xbee

Xbee es el nombre de fábrica de Digi International para una familia de módulos compatibles de radio. El mayor productor de estos módulos es la empresa MaxStream, que fue la primera en comenzar la distribución con la homologación oficial en 2005. Están basados en el estándar 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 características 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. Además ofrecen una interfaz serial, 9 entradas/salidas analógicas 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 comunicación: transmisión serial transparente (modo AT) y el modo API. En la primera de ellas, el módulo sustituye una línea serie, encolando todo dato recibido por el UART a través del pin DIN para transmitir por radio. La segunda opción trabaja con una interfaz

Page 26: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

26

más compleja. Está basada en frames, y la interacción del módulo con el sistema se realiza utilizando estructuras predefinidas para la entrada y salida (Xbee, 2009-2013) (Digi Internacional, 1996-2013).

Figura 17. Módulo Xbee serie 2.

La compatibilidad existente entre los kits Arduino simplificará enormemente la programación del sistema, y nos permitirá servirnos con funciones ya predefinidas. Una vez conectados y configurados los módulos Xbee podremos escribir y leer por el puerto serie asegurando que estaremos estableciendo una comunicación directa, segura e inalámbrica entre los Arduinos.

4.2. Configuración de los módulos Xbee

La única posibilidad existente de configurar nuestros módulos Xbee es acceder a ellos a través de una comunicación serie. Esta conexión 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 módulos puedan comunicarse entre ellos. Los parámetros internos son los siguientes:

Comando Descripción Valores válidos Valor por defecto

ID El ID de la red del módulo Xbee. 0 - 0xFFFF 3332 CH El canal del módulo Xbee. 0x0B - 0x1A 0X0C

SH y SL El número serie del módulo Xbee (SH devuelve los 32 bits

superiores, SL los 32 inferiores). De solo-lectura.

0 - 0xFFFFFFFF

(para ambos SH y SL)

Diferente para cada módulo

MY La dirección de 16-bit del módulo. 0 - 0xFFFF 0

Page 27: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

27

DH y DL La dirección de destino para las comunicaciones inalámbricas (DH son los 32 bits superiores, DL son los 32

inferiores).

0 - 0xFFFFFFFF

(para ambos DH y DL)

0 (para ambos DH y DL)

BD La velocidad de transmisión usada para las comunicaciones con el Arduino o el

ordenador.

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)

Tabla 6. Principales parámetros internos a configurar dentro del módulo Xbee

En primer lugar los dos módulos Xbee tienen que situarse en la misma red definida por el valor de ID, asimismo deben estar en el idéntico canal precisado por el valor de CH. Finalmente la dirección destino será dada por DH y DL y especificará qué módulo en esa red y canal recibirá los datos transmitidos. Por supuesto existen posibilidades de enviar mensajes broadcast a todos los módulos dentro de un canal y red determinado fijando valores especiales en los registros DH y DL. En la bibliografía están disponibles todos los casos posibles así como las órdenes de entrada, salida, restaurar valores de fábrica y guardado para los Xbee.

Digi International suministra un software de configuración 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 módulos 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 módulo 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 comunicación punto a multipunto para ser capaz de adaptar cualquier ampliación del sistema, y permitir recibir los datos del sensor de la mesa sin necesidad de modificar nada. También se escogió la velocidad más rápida disponible 115200 𝑏𝑏𝑝𝑝𝑢𝑢 (BD 7) con el fin de evitar cualquier tipo de retraso. El segundo módulo Xbee (Arduino Fio) fue definido como end device y podrá comunicarse con el coordinador y recibir los mensajes de éste.

Page 28: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

28

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 menús. Permite la conexión 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 menús.

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 librerías y ejemplos ya creados. Éstos últimos están en las definidas “librerías de sketches”. Además, 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 programación empleado es C/C++ con excepciones (Arduino, 2005-2013).

Page 29: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

29

Figura 19. Entorno de desarrollo del software Arduino.

4.4. Programación de los microcontroladores

En la labor del trabajo está incluida la programación 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 código y no los archivos completos. No obstante, en el apéndice final se encuentra el código completo de cada fichero.

Lectura Analógica

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 aritmética de muchas medidas tomadas en un espacio corto de tiempo. Tras realizar unas pequeñas pruebas experimentales, obtuve que a partir de las 2.000 lecturas la oscilación de la señal digitalizada no mejoraba y se quedaba en un marco cercano a las 8 unidades.

Page 30: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

30

Activación de los displays de 7-segementos

Para evitar el uso de salidas digitales diferentes en cada display, éstos nunca se encienden simultáneamente. La conmutación 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 más preciso posible de una carta se realizan dos mediciones. La primera de ellas se realiza sin ningún tipo de peso sobre el sensor (plataforma y el tapete), y la segunda lectura añadiendo 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 número será el escogido posteriormente en todos los cálculos.

Page 31: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

31

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

Todos los elementos del sistema a excepción del receptor serán instalados dentro de un habitáculo hueco de madera de 60𝑥𝑥40𝑥𝑥4.6 𝑐𝑐𝑚𝑚. Para obtener la suficiente robustez, los tableros poseen un espesor de 1 𝑐𝑐𝑚𝑚16F

17.

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

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

regulador de tensión y baterías.

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

Page 32: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

32

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

Figura 22. Vista lateral del tablero. Perforación realizada para la colocación de los displays 7-segmentos.

El sensor está ubicado debajo de la plataforma de metacrilato18 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 habitáculo con el fin de focalizar el peso de los naipes sobre el tapete. Además, existe una holgura aproximada de 0.5mm entre los 4 laterales de la superficie y la plancha de metacrilato.

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

Page 33: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

33

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.

Page 34: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

34

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 milímetros 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 serán cosidos y fijados en la manga izquierda de la chaqueta. Además se colocarán varios interruptores en el lado izquierdo y uno de los pulsadores dentro del zapato derecho. Como se explicará en un apartado posterior, esta configuración permitirá el manejo sin sospechas del conjunto.

Page 35: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

35

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

5.2. Baterías

Para el correcto funcionamiento del equipo es imprescindible el uso de tres fuentes de alimentación. Las baterías del circuito de acondicionamiento de la señal y sensor son cuatro pilas recargables 9.0 𝑚𝑚 350 𝑚𝑚𝑚𝑚ℎ Ni-MH 17R8H. Obtendremos una tensión de ±18 𝑚𝑚 que, tras ser regulada, alimentará al amplificador INA125 a ±12.35 V. Para los dos kits Arduinos serán destinadas 2 baterías recargables AA 7.2 𝑚𝑚 1800 𝑚𝑚𝑚𝑚ℎ Ni-MH.

Page 36: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

36

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

Debido al elevado consumo de los Arduinos 19 el tiempo práctico de funcionamiento es de 8 horas. Sin embargo, las baterías de 9V perduran hasta un máximo de 24 horas (10mAh de consumo).

No hay que olvidar fijar una tierra común en el circuito instalado en la mesa. De otra manera, sería imposible realizar la correcta lectura de la señal analógica.

5.3. Camuflaje

Uno de los aspectos primordiales en el mundo de la magia al manejar objetos poco comunes, es transmitir la sensación de claridad. En nuestro caso, una mesa es un elemento ya conocido por los espectadores y eso es una gran ventaja. La mayoría de las personas están familiarizadas con la idea de los naipes, los casinos, tapetes de cartas…etc. Gracias a esto, forraremos nuestra superficie con una tela. Este tejido camuflará diferentes cosas:

-Ocultará los pulsadores de encendido y apagado. También esconderá los displays 7-segmentos cuando estén apagados.

19 Existen pocos datos técnicos del consumo del dispositivo. Alrededor de 100 mAh.

Page 37: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

37

-Hará inexistente la división 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 estética y para focalizar la atención al centro. Como puede observarse en la imagen, se hace totalmente imperceptible el sistema creado.

Figura 28. Situación final del tablero. Obsérvese como son imperceptibles los orificios laterales.

Page 38: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

38

6. Funcionamiento y Aplicaciones mágicas.

El ilusionista dispone de dos grupos de displays 7-segmentos donde poder mirar el número de cartas sobre el sensor para dar la posibilidad al mago de actuar tanto de pie ante el público como sentado. Los displays son activados con un interruptor localizado encima del dedo pulgar del pie derecho, dentro del calcetín. Esta preparación es forzosa puesto que al actuar de pie focalizamos más la atención en nosotros, y nos es mucho más difícil ocultar el movimiento de pulsar un botón 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 ejecución perfecta de los efectos hay muchos factores que entran en juego. Empezando por la construcción del efecto mágico a la correcta utilización 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 público copiará nuestras acciones. También tenemos que aprovechar los momentos de distracción generados para hacer los vistazos a los displays y averiguar el número de cartas sin que puedan llegar a descubrir el secreto.

Llegar a entender en un primer instante todas las aplicaciones mágicas del proyecto realizado implicaría 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 explicación detallada de cada aplicación. No obstante, en el apéndice final pueden consultarse pequeños ejemplos con el fin de ilustrar al lector la potencia del sistema desarrollado.

Page 39: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

39

7. Futuras líneas de trabajo.

Después de haber elaborado este proyecto fin de carrera queda todavía un largo camino por recorrer. Para empezar, reunir todos los efectos, técnicas y usos posibles en una mini enciclopedia sería un buen comienzo. Además, al realizar esta labor, obtendríamos muchísimas opciones e ideas de ampliación del sistema para ser capaces de añadir 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 mejoraría de forma abismal las aplicaciones que hasta hoy en día hemos encontrado.

Somos conscientes de que existe una gran mejoría en el ámbito de la programación. 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 sólo nos hemos aventurado a crear un corte20 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 aumentaría enormemente.

Otras de las ideas sugeridas ha sido la de aumentar la cantidad de sensores utilizados. Si dividiéramos la superficie de trabajo en una matriz de 3x3, podríamos detectar casi cualquier cambio producido en la mesa. Averiguaríamos en que parte de la mesa está ocurriendo el movimiento y podríamos aprovecharlo para obtener efectos mágicos basados en eso. Asimismo, se podrían combinar diferentes sensores de sonido o magnéticos 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 acción que deteriore la limpieza del juego. Ocultar otro receptor en objetos comunes al público puede ayudar a superar este obstáculo. Por ejemplo, en la magia con hilos, existen carretes ocultos en los propios estuches de cartas. Introducir un Arduino con una pequeña batería y sus correspondientes displays dentro de un estuche nos permitiría poder mover nuestra pantalla dónde ver los resultados. Esta idea también sería aplicable a monederos, vasos, botellas… etc.

En definitiva, investigando cualquiera de los puntos anteriores, lograríamos un progreso continuo en la magia con electrónica. Nada de lo que hemos realizado será permanente y estoy seguro de que actualmente se está avanzando para alcanzar el perfeccionamiento.

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

Page 40: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

40

8. Conclusiones

Tras los resultados obtenidos, manifestamos nuestra plena satisfacción por todo lo ejecutado. La resolución obtenida, la velocidad de transmisión, la duración de las baterías y la cantidad aplicaciones mágicas descubiertas, superan con creces la idea inicial del proyecto planteado.

Pese a que existen una multitud de mejoras ya comentadas, y si volviéramos a comenzar el proyecto modificaríamos el diseño, la elaboración de este trabajo nos ha permitido adquirir una gran cantidad de conocimientos prácticos sobre las materias recibidas durante los estudios universitarios. Hemos reafirmado los conocimientos sobre electrónica, diseño de circuitos, instrumentación, envío y recepción de señales y programación. Además también son de gran valor las competencias conseguidas en el contacto con diferentes proveedores y en la búsqueda y recopilación de datos para el proyecto. Por último, en Junio pretendo presentar el proyecto en el 32º Congreso Nacional de magia en la categoría de invención.

Me gustaría agradecer enormemente la oportunidad recibida para realizar algo que quizás está algo apartado de un clásico “proyecto fin de carrera”, pero que me ha generado ilusión y ganas para crear algo nuevo.

Page 41: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

41

9. Referencias.

9.1. Bibliografía Aliexpress, S. o. (2012). Aliexpress. Recuperado el November de 2012, de http://www.aliexpress.com/store/product/Aluminium-Alloy-Weighing-Load-Cell-1Kg-for-Electronic-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 señal. 08007 Barcelona (España): 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 Román 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 Carrión, D. O. (2009). ANALISIS DEL FUNCIONAMIENTO DEL SENSOR DE FUERZA RESISTIVO (FSR) CON LabVIEW. Cuenca: Programa de Pasantías Académicas.

Mayoral, J. (March de 2013). Questions by e-mail. (J. Abascal, Entrevistador)

Nelms, H. (1969). Magia y Presentación. Barcelona: Editorial CYMYS -ISBN: 978-84-85-060-01-6.

Regling, D. (s.f.). Bella Online. Recuperado el 2013, March, de http://www.bellaonline.com/articles/art28692.asp

Page 42: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

42

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 Módulos de transmisión inalámbrica. Recuperado el December de 2012, de http://www.xbee.cl/

Page 43: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

43

10. Apéndice.

10.1. Efectos explicados

Localización de Cartas: Existen multitud de técnicas para lograr el perfecto control de un naipe dentro de una baraja. Algunas de ellas son totalmente técnicas, mientras otras se fundamentan en distracciones o confusiones visuales. Gracias al sistema diseñado, el procedimiento sería el siguiente:

1º) Una vez seleccionada una carta por el espectador, pedirle que levante un número cualesquiera de cartas.

2º) Realizar la medición del número de cartas sin cortar. Ese valor será X.

3º) Introducir la carta del espectador en la posición correspondiente al corte

4º) Depositar el resto de cartas encima de la carta escogida.

5º) Una vez realizado esto, habremos obtenido un número de la medición. Sumándole uno a ese número adquirimos la posición de la carta elegida por el espectador empezando a contar desde las caras de las cartas. Si queremos saber en qué posición se encuentra desde los dorsos, tendremos que realizar el cálculo 52 – X (o 54 si la baraja contiene los comodines), siendo X la lectura de la medición. Con todo lo anterior logramos localizar perfectamente cualquier carta sin necesidad de técnica.

Forzajes: En el argot mágico un forzaje es la acción de entregar una carta a un espectador, conocida anteriormente por el mago, con la convicción de que ésta ha sido elegida libremente. Al igual que en el caso anterior, hay cientos de maneras de efectuar estas maniobras. Suponiendo que quisiéramos forzar el As de corazones, el procedimiento sería el siguiente:

1º) Colocar el As de corazones en la última posición 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 continuación dirigirse al espectador y comentarle que tiene que contar el número de cartas que ha cogido. Mientras tanto, leer el dato del sensor de las cartas restantes de la baraja. Ese valor será X.

Page 44: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

44

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 posición correcta. Colocar de nuevo la baraja en la mesa

4º) Pedir al espectador que cuente el número de cartas que cortó en el otro montón. Y que seleccione la carta. La carta que elegirá el espectador no será otra que el As de corazones.

Diferenciación de objetos: Con esta idea somos capaces de averiguar que objeto falta de un grupo dentro de un habitáculo 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:

-Vacío.

-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 combinación de monedas del interior y guardárselas en el bolsillo, mientras nosotros nos damos la vuelta y no miramos. Con tan solo mirar el resultado de la medición sabremos que moneda escogió el espectador.

Adivinación inmediata de la carta elegida: En este efecto vamos a combinar nuestro proyecto con las barajas en posición de mnémonica. 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 sólo mirar la carta anterior o posterior a esta o saber la posición 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 Tréboles. Nadie sabe que la baraja está ordenada, y sabemos que la carta de

Page 45: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

45

abajo es el As de picas. A continuación pedimos al espectador que corte por donde quiera, y escoja la caja de corte. En el momento del corte realizamos la medición y obtenemos que sobre la mesa todavía quedan 33 cartas. Con ese número ya podemos saber que la carta elegida será la número 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 más profundamente en el mundo del ilusionismo y por ello consideramos que no es adecuado desarrollarlo extensamente. En las futuras líneas de trabajo queda pendiente realizar una recopilación de todas las técnicas, efectos y usos posibles.

Page 46: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

46

10.2. Códigos de programación

Rutina del Arduino UNO

// Arduino controlador interior a la mesa int activacion1 = 11; //Activación del primer display 7-segmentos int activacion2= 12; //Activación 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; //Pin de entrada de la señal analógica int valor_analogico=0; //Valor leído del sensor int cartas_enviadas=0; //Valor enviado al receptor int valor_recibido=0; //Valor de lectura de los pulsadores del receptor int numero_carta_baraja=52; //Número de cartas de la baraja a utilizar int cartas_cortadas=0; //El número que queda en la mesa tras hacer el corte int cartas_antes_de_cortar=0; //El número de cartas int visualizar=1; //Si su valor es 0, no se muestra en el borde de la mesa, si es 1 si se //muestra float frontera=00; // Número de cartas que tiene que sobrepasar para que se considere //"corte" float peso_base=0; //Variables utilizadas para la calibración del sensor float peso_carta=0; float numero_cartas=00; int cifra1; // primera cifra a mostrar en los displays int cifra2; // segunda cifra a mostrar en los displays int i; //variable para bucle int a; //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);

Page 47: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

47

// Fijamos la velocidad de la conexión 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; //Función para mostrar los dígitos 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:

Page 48: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

48

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

Page 49: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

49

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(activacion2,LOW); digitalWrite(activacion1,LOW); digitalWrite(activacion2,LOW); //Función 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 señal 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

Page 50: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

50

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++) //aquí vemos cuantas hay ahora mismo (por si la hay //un grupito de cartas) 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=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);

Page 51: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

51

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 más pequeños, para saber cual es el número menor de cartas //que ha habido en la mesa. for(i=0; i<10; i++) //De este número 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);

Page 52: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

52

else mostrar_numero(11); break;

Page 53: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

53

Rutina del Arduino FIO (inalámbrico)

// Arduino FIO (exterior a la mesa) int activacion1 = 11; //Activación del primer display 7-segmentos int activacion2= 12; //Activación 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; //Pulsadores a utilizar. Sirven para mandar órdenes a la mesa y manejar //la visibilidad del display int pulsador2= 10; char pulsador3= A3; char pulsador4= A4; float numero_cartas=00; //Número de cartas recibido. int cifra1; int cifra2; int i; //variable para bucle 1 int a; //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 conexión serie Serial.begin(115200); //Función para mostrar los dígitos en los displays 7-segmentos void mostrar_numero(float numero)

Page 54: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

54

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;

Page 55: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

55

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(activacion2,LOW); digitalWrite(activacion1,LOW); digitalWrite(activacion2,LOW); //Función 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);

Page 56: Proyecto fin de carrera de Ingeniería de Telecomunicacionesbibing.us.es/proyectos/abreproy/12113/fichero/Proyecto+fin+de... · 3.3. Amplificador de instrumentación INA125.....16

Proyecto fin de carrera de Ingeniería de Telecomunicaciones

56

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