Вы находитесь на странице: 1из 88

magazine

www.elektor-magazine.es

Junio 2013 | 6,50 e

Control
Remoto WiFi

para tiras de LED, rels, actuadores y motores

Placa Controladora Wi-Fi l Recicla tu Fuente de Alimentacin ATX

Controlando Electrnica con la EFL l Localizador de Modelos


Disea tu Propio Integrado (6) l Arduino

De BASIC a Python (2)

en Marcha
Duelo de Medidores LCR

Konrad Zuse: del Z1 al Z4 l El triunfo de la Robtica Educativa

$25 off
Youll have plenty of summer reading
with Circuit Cellars CC Gold issues archive.
A lifetime of electronics engineering projects, tips,
and analysis, packed onto a portable, USB flash
drive. Keep your archive current with a digital
subscription and download new issue PDFs directly
to the drive! Plus, with 32 GB of storage, theres plenty
of room for your own notes and projects.
Offer ends 6/30/13
*Complete archive includes all issues in print through time of purchase.

Visit www.cc-webshop.com to purchase.

magazine

Contenidos

Community
21 Elektor World
La vlvula en el Taper
Conseguir el control

DesignSpark
22 Da 1 Hazlo tal como
quieres
Empezando con DesignSpark PCB
y configurndolo a tu gusto. Este
tutorial te muestra cmo configurar
tus preferencias personales en
esta ltima versin del software de
diseo de PCB.

25 Los Bigotes del Gato


El Diodo de Cristal FRIHO D.R.P. de
nuevo en uso.

4 | junio 2013 | www.elektor-magazine.es

Proyectos
12 Tarjeta Controladora Wi-Fi
Controla tu casa desde tu telfono
mvil con esta placa controladora
WiFi universal. Te enseamos cmo
controlar el color de un tira de LED
RGB, pero lo puedes usar para una
amplia variedad de aplicaciones.

30 Recicla tu Fuente de
Alimentacin ATX
Esta placa adaptadora de ATX
para banco de trabajo convierte
cualquier fuente de alimentacin
ATX de ordenador en una fuente
adecuada para alimentar tus
prototipos y cualquier otro uso.

34 Arduino en marcha (6): Desde


la Electrnica a la Carpintera
Una experiencia nica en la que
veremos como la electrnica
se puede aplicar tambin a la
artesana tradicional.

44 Controlando nuestra propia


electrnica fcilmente con EFL
Utilizando el cdigo de la librera
de firmware embebido (EFL)
de Elektor, Se puede generar
rpidamente el cdigo para un
proyecto embebido sin necesidad
de conocer que tipo de interfaz se
utilizar. Este herramienta ayuda a
los principiantes y a los expertos.

54 Disea tu propio integrado (5)


Aunque las aplicaciones FPGA se
pueden disear empleando diagramas
esquemticos con smbolos lgicos,
en la prctica se hace habitualmente
con un lenguaje de descripcin de
hardware. Una ventaja de esta
aproximacin es que las funciones
son a menudo ms fciles de
expresar en algoritmos que en
esquemas. En consecuencia, en esta
entrega te guiamos en el proceso de
programacin de una aplicacin FPGA.

Volumen 34

n 396

Junio 2013

Magazine
64 De BASIC a Python (2)
En esta segunda entrega
trabajamos en el trazado grfico
y la sntesis de Fourier. Y sin
demasiado esfuerzo creamos un
interfaz grfico de usuario.

72 Localizador de Modelos
Perdidos
Construye este localizador por
radio deteccin y nunca ms
perders tu avin de radio control.
Simplemente enciende el receptor
y apunta directamente para
encontrar el avin accidentado.

Labs
26 Mantn los terminales
flotantes
Cosas a tener en cuenta al
programar la placa FPGA de Elektor.

28 Duelo de Medidores LCR


Una rpida comparacin entre el
Medidor LCR de 500 ppm de Elektor y
otros dos dispositivos de medida LCR.

Industria
8 Noticias & Nuevos Productos
Una seleccin de noticias recibidas
de la industria electrnica,
laboratorios y organizaciones.

Tech the Future

40 El Triunfo de la Robtica
Educativa

Lo que pudimos ver durante la


Semana de la Robtica 2013 en la
Universidad de Alcal de Henares.

74 Retrnica. Konrad Zuse: del


Z1 al Z4, y ms all

Desde los primeros das de las


matemticas y el pensamiento lgico,
la gente ha tratado de encontrar
maneras de simplificar el trabajo
repetitivo involucrado. Este artculo
da un vistazo a las impresionantes
contribuciones al desarrollo del
computador que hizo Konrad Zuse.
Editor de la serie: Jan Buiting.

81 Hexadoku
51 Robots Sanitarios
Un encuentro con Alice, un robot
pensado para la asistencia sanitaria,
en el laboratorio del proyecto
Services of Electro-mechanical Care
Agencies (SELEMCA).

El rompecabezas mensual de Elektor


con un toque de electrnica.

86 Prximo mes en Elektor

Un vistazo a los artculos previstos


para ser publicados en la prxima
edicin de Elektor.

www.elektor-magazine.es | junio 2013 | 5

Comunidad
Volumen 34, Nmero 396, Junio 2013
Depsito Legal: GU.3-1980 31/12/2006
ISSN 0211-397X
Editor:
Elektor International Media Spain, s.l.
Jerez de los Caballeros, 2
28042 Madrid, Espaa
Telfono: +34 91 101 9395
Fax: +34 91 101 9396
Internet: www.elektor.es
Elektor se publica 10 veces al ao con edicin doble para Enero/
Febrero y Julio/Agosto.
Suscripciones:
Elektor International Media Spain, s.l.
Apartado de Correos 62011
28042 Madrid, Espaa
Telfono. +34 91 101 9395
Internet: www.elektor.es/miembros
Email: suscripciones@elektor.es
Oficinas Centrales:
Elektor International Media b.v.
P.O. Box 11 NL-6114-ZG Susteren
The Netherlands.
Telfono: +31 (0)46 4389444,
Fax: (+31) 46 4370161
Publicidad:
Elektor International Media Spain, s.l.
Apartado de Correos 62011
28042 Madrid, Espaa
Telfono. +34 91 101 9395
Fax: +34 91 101 9396
Internet: www.elektor.es
Email: publicidad@elektor.es
Tarifas y condiciones de publicidad disponibles
bajo peticin.
Derechos de autor
Los circuitos descritos en esta revista son exclusivamente para uso
domstico. Los derechos de autor de todos los grficos, fotografas,
diseos de circuitos impresos, circuitos integrados programados,
discos, CD-ROMs, portadores de software y los textos de los artculos
publicados en nuestros libros y revistas (que no sean anuncios de
terceros) estn registrados por Elektor International Media BV y
no pueden ser reproducidos o difundidos de ninguna forma ni por
ningn medio, incluidas fotocopias, escaneos o grabaciones, parcial o
totalmente sin la previa autorizacin escrita del Editor. Tambin ser
preciso disponer del citado permiso antes de almacenar cualquier
parte de esta publicacin en sistemas de recuperacin de cualquier
naturaleza. Los circuitos, dispositivos, componentes, etc., descritos
en esta revista pueden estar protegidos bajo patente. El Editor no
acepta responsabilidad alguna en ausencia de identificacin de la
citada patente(s) u otra proteccin. La presentacin de diseos
o artculos implica que el Editor est autorizado a modificar los
textos y los diseos presentados y a utilizar los contenidos en otras
publicaciones y actividades de Elektor International Media. El Editor
no garantiza la devolucin del material a l enviado.
Renuncia
Los precios y descripciones de los productos relacionados con
la publicacin estn sujetos a modificacin. Excluidos errores y
omisiones. Las opiniones expresadas a lo largo de los distintos
artculos, as como el contenido de los mismos, son responsabilidad
exclusiva de sus autores. As mismo, el contenido de los mensajes
publicitarios es responsabilidad de los anunciantes.
Los precios y descripciones de los elementos relacionados con la
publicacin estn sujetos a cambios. Estn excluidos los errores
u omisiones.

Elektor International Media b.v. 2012

6 | junio 2013 | www.elektor-magazine.es

Cuestin de Placas
De acuerdo a los principales intereses de
nuestros lectores, el diseo y produccin
de PCB ocupa un puesto bastante alto. Las
placas de Elektor son famosas en todo el
mundo no solo por su cualidad, sino tambin por su consistente apariencia. Cmo
surgi esto?
Aqu en Elektor, el cambio del diseo manual
del arte final utilizando cinta de enmascarar
y tcnicas de reproduccin fotogrfica a
un proceso hecho al 100 % sobre un PC fue
gradual, y tuvo lugar en los primeros aos
90. La utilizacin del PC para dibujar un
esquema y despus ejecutar un programa
de diseo de PCB no fue forzada o incuso
sugerida por los editores en ese momento. En aquel entonces, algunos de los ms jvenes
diseadores del laboratorio se lanzaron audazmente a descubrir las ventajas del trazado
con PB, suministrando eventualmente archivos en lugar de dibujos a sus compaeros del
departamento de diseo de PCB. Otros continuaron pegados al lpiz, al papel y la goma
de borrar con resultados igualmente buenos particularmente en RF y diseos crticos
con el espacio. No importa cmo se llegara el diseo final, Elektor no produca nunca sus
placas en masa realmente esto era siempre cosa de los fabricantes de PCB. Nosotros,
sin embargo, nos encargamos de almacenar y empaquetar lo que ha debido ascender a
una cantidad de cientos de miles de estas placas azules y verdes. Adems, a da de hoy los
Laboratorios de Elektor tienen sus propios recursos para grabar y taladrar sus propias placas. El equipo se utiliza para hacer prototipos y piezas nicas de cualquier placa, de simple
o doble cara, de montaje convencional o SMD.
An recuerdo la excitacin en el laboratorio y las oficinas editoriales cuando llegaba
un paquete conteniendo unas 500 placas de algn diseo publicado recientemente. Al
final, el orgulloso diseador era capaz de ver el fruto de sus esfuerzos en el diseo. Ms
importante, sin embargo, era que lectores de todo el mundo eran capaces de montar sus
circuitos en placas magnficamente fabricadas con acabados profesionales!
Hoy en da, no solo tenemos la satisfaccin de publicar estos estupendos diseos y obtener
vuestra respuesta, adems la de sostener en la mano una placa de circuito impreso perfectamente mecanizada y con un nmero de produccin de Elektor impreso para ayudar a
su identificacin.

Eduardo Corral, Editor

El Equipo
Editor: Eduardo Corral (e.corral@elektor.es)
Redaccin Internacional: Harry Baggen, Thijs Beckers, Jan Buiting, Wisse
Hettinga, Denis Meyer, Jens Nickel, Clemens Valens
Equipo de diseo: Thijs Beckers, Ton Giesberts, Luc Lemmens,
Raymond Vermeulen, Jan Visser
Diseo grfico y preimpresin: Giel Dols, David Mrquez, Mart Schroijen
Director online: Danille Mertens
Director de marca: Wisse Hettinga
Director general:

Don Akkermans

Nuestras redes

Spain

Eduardo Corral
+34 91 101 93 95
e.corral@elektor.es

USA

Hugo Vanhaecke
+1 860-875-2199
h.vanhaecke@elektor.com

Germany

Ferdinand te Walvaart
+31 46 4389417
f.tewalvaart@elektor.de

France

Denis Meyer
+31 46 4389435
d.meyer@elektor.fr

Netherlands

Harry Baggen
+31 46 4389429
h.baggen@elektor.nl

United Kingdom

Wisse Hettinga
+31 (0)46 4389428
w.hettinga@elektor.com

Te conectamos con

Italy

Maurizio del Corso


+39 2.66504755
m.delcorso@inware.it

Sweden

Wisse Hettinga
+31 46 4389428
w.hettinga@elektor.com

Brazil

Joo Martins
+55 11 4195 0363
joao.martins@editorialbolina.com

Portugal

Joo Martins
+351 21413-1600
joao.martins@editorialbolina.com

India

Sunil D. Malekar
+91 9833168815
ts@elektor.in

Russia

Nataliya Melnikova
+7 (965) 395 33 36
Elektor.Russia@gmail.com

Turkey

Empresas Colaboradoras
AudioXpress

Eurocircuits

www.audioamateur.com . . . . . . . 2

www.elektorpcbservice.com . . . 88

Circuit Cellar

Soclutions

www.circuitcellar.com . . . . . . . . . 3

www.soclutions.com . . . . . . . . . . 9

Zeynep Kksal
+90 532 277 48 26
zkoksal@beti.com.tr

South Africa

Johan Dijk
+27 78 2330 694 / +31 6 109 31 926
j.dijk@elektor.com

China

Cees Baay
+86 21 6445 2811
CeesBaay@gmail.com

No eres patrocinador an?

Ponte en contacto con nosotros en publicidad@elektor.es (+34 911019395)


para reservar tu propio espacio en la prxima edicin de nuestra revista

www.elektor-magazine.es | junio 2013 | 7

Industria
Simplificacin de los sistemas de visin artificial con un
capturador de fotogramas alimentado por Ethernet
National Instruments ha
anunciado hoy los frame grabbers GigE Vision
de dos puertos NI PCIe8236 y NI PCIe-8237R
que ofrecen tecnologa
PoE. El NI PCIe-8237R
ofrece E/S a travs de NI
LabVIEW FPGA, incluyendo entradas y salidas
digitales con aislamiento
ptico, as como lneas
bidireccionales TTL para
implementar contadores
personalizados, seales
PWM y entradas de encoders. Tambin
ofrece opciones de trigger avanzadas y
opciones de sincronizacin, tales como
disparos de bajo jitter y baja latencia
basados en FPGA, as como soporte

del bus de sincronizacin RTSI. Ambos


frame grabbers son totalmente compatibles con las especificaciones de
aislamiento del estndar PoE con el fin
de proporcionar una seguridad adicio-

nal al sistema de visin artificial y a


sus operadores. Tambin puede interactuar con las cmaras de bajo coste
PoE ms recientes, as como con las
cmaras de visin artificial que no son
PoE GigE Vision y tienen longitudes del
cable de hasta 100 m.
Con estos nuevos frame grabbers, se
puede alimentar a la cmara, realizar
disparos y adquirir imgenes desde un
nico cable Ethernet, dijo James Smith,
director del marketing industrial embebido de National Instruments. Los ingenieros estn constantemente siendo
desafiados a hacer ms con menos, por
lo que esta es una gran ventaja para
cualquier persona que vaya a crear un
sistema de visin artificial.
www.ni.com

Antena electromagntica 3D-coil para sistemas de apertura


KES de vehculos
El modelo 3DC09AOI se caracteriza
por diseo un compacto y robusto que
supera los estrictos requerimientos de
la industria de la automocin.
PREMO, empresa representada en Espaa por Anatronic, S.A., ha desarrollado una nueva antena electromagntica 3D-coil para aplicaciones KES
(Keyless Entry System) en sistemas de
apertura de vehculos.
El nuevo modelo 3DC09AOI, con formato de bajo perfil (10,5 x 9,5 x 3
mm), se compone de tres devanados
ortogonales, cada uno de ellos en los
tres ejes del espacio, y cumple con el
estndar AEC-Q-200 para responder a
los estrictos requerimientos de la industria de la automocin.
Esta antena isotrpica de montaje superficial (SMD) ofrece metalizacin la-

8 | junio 2013 | www.elektor-magazine.es

teral para permitir procesos de reconocimiento automtico de soldadura de


visin ptica automtica (AOI).
Los pads tienen terminacin en oro
para garantizar una conectividad segura y fiable entre el componente y
la circuitera de la PCB y, en combinacin con los meniscos laterales formados durante el proceso de soldadura,
contribuyen a aumentar el contacto
mecnico ms de un 25 por ciento en
comparacin con productos similares
del mercado.
La nueva antena electromagntica se
distingue por elevada robustez, ya que
los bobinados estn totalmente protegidos por una matriz polimrica al
vaco de alta estabilidad (dilataciones
por debajo de 200 ppm) y notable resistencia trmica (soporta doble reflow
de +270 C).

El transponder 3DC09AOI, que tiene


un ndice de proteccin IP685 y opera en el rango de temperatura de -40
a +85 C, tambin se caracteriza por
ofrecer un valor estndar de L=14 mH
con sensibilidad superior a 9 mVpp/
App/m @20 kHz y mantener un factor
de calidad Q de 6, pudiendo fabricarse
con valores electromagnticos diferentes en cada uno de los ejes en funcin
de las necesidades del cliente.
www.anatronic.com

Noticias
Microchip ampla su catlogo para LIN 2.1/ SAE J2602-2
con un nuevo transceptor, chips base del sistema
y dispositivos System-in-Package
Microchip anuncia la ampliacin de su
catlogo para LIN con el transceptor
conforme a LIN 2.1 y SAE J2602-2 y el
modelo de bajo consumo MCP2003A,
los chips base de sistema (System Basis
Chips, SBC) LIN MCP2021A, MCP2022A,
MCP2025 y MCP2050, y el dispositivo
System in Package (SiP) PIC16F1829LIN.
Estos dispositivos incluyen opciones de
alta integracin como un regulador de
tensin, temporizador supervisor de ventana, salida de supervisin de batera y un microcontrolador.
Adems se caracterizan por su alta robustez, incluyendo unos
niveles de compatibilidad electromagntica (EMC) y descarga
electrosttica (ESD) superiores a 15 kV en el bus LIN y las
patillas de tensin de la batera, cumpliendo o superando
as los requisitos de los fabricantes de automviles como
la Versin 1.3 de los requisitos de hardware de fabricantes
OEM para interfaces LIN, CAN y FlexRay en aplicaciones de
automviles (OEM Hardware Requirements for LIN, CAN
and FlexRay Interfaces in Automotive Applications). El regulador de tensin integrado en algunos de los dispositivos
tambin ha sido especialmente diseado para funcionar en
el entorno del automvil y puede resistir el estado inverso
de la batera, transitorios de volcado de carga de +43V y
arranque con doble batera. Esta robustez permite establecer una comunicacin fiable en entornos adversos mientras
que el elevado nivel de integracin disminuye el coste y la
complejidad al tiempo que ocupa menos espacio.
El nuevo SiP PIC16F1829LIN incorpora un microcontrolador
Flash de 8 bit, un regulador de tensin y un transceptor
LIN, as como perifricos como convertidor A/D de 10 bit,
comparadores y temporizadores; todo ello en un encapsulado SSOP de 20 patillas. Este dispositivo se suma a la amplia gama de microcontroladores PIC eXtreme Low Power
(XLP) de 8 y 16 bit de Microchip que integran perifricos
USART avanzados. El perifrico USART avanzado facilita la
conectividad a los transceptores y los SBC en la capa fsica
de LIN. Tanto si se trata de SiP como de soluciones autnomas, las corrientes en modo dormido de los microcontroladores XLP de Microchip, a partir de 9 nA, hacen que
resulten muy apropiados para aplicaciones alimentadas
con batera y permiten reducir el consumo en los vehculos.
Microchip suministra una amplia gama de herramientas,
software, diseos de referencia e informacin como soporte para el desarrollo con este catlogo para LIN, al que
se puede acceder en lnea desde su LIN Design Centre en

http://www.microchip.com/get/STR3.
Entre las herramientas para LIN ya disponibles se encuentran el analizador serie
LIN (APGDT001); la tarjeta de demostracin PICDEM CAN-LIN 3 (DM163015);
la tarjeta hija ECAN/LIN PICtail Plus
(AC164130); y la tarjeta de demostracin PICkit 28-Pin LIN (DM164130-3).
Entre los diseos de referencia disponibles estn el elevalunas elctrico antipellizcos (APGRD002) y el mdulo de iluminacin ambiental del habitculo con LIN (APG000027).
Los seis dispositivos nuevos de Microchip para LIN ya se encuentran disponibles para muestreo y produccin en volumen.
www.microchip.com
Publicidad

www.elektor-magazine.es | junio 2013 | 9

Industria
Mdulo embebido XBee Wi-Fi para soluciones
M2M basadas en la nube
Comunicaciones 802.11b/g/n de
ultra bajo consumo en monitorizacin industrial, rastreo
de bienes y mercancas, automatizacin
en el hogar y control
de depsitos.
DIODE, a travs
de su Divisin de
Electrnica, anuncia la disponibilidad
de la ltima versin
del
mdulo
embebido
XBee Wi-Fi de Digi International con el objetivo de acelerar
el despliegue de soluciones M2M basadas en la nube (cloud) y proporcionar capacidades IP-to-device y
device-to-cloud.
Este mdulo de bajo consumo ofrece
serial-to-Wi-Fi networking en el for-

mato XBee y ahora incluye Native


iDigi Device Cloud (para tareas de
adquisicin de datos y gestin
de dispositivo), interface Soft
Access Point (AP) y WiFi Protected Setup
(WPS).
La conectividad iDigi Device Cloud dota
de acceso a los
datos del dispositivo
para agilizar la creacin
o la integracin de la aplicacin y permite tanto configuracin remota como descarga
de firmware.
Gracias al interface Soft AP, el mdulo puede actuar como un punto
de acceso. As, los clientes se pueden conectar a diversos dispositi-

vos, como termostatos o bsculas,


que normalmente carecen de interface de pantalla LCD o teclado desde un ordenador porttil (laptop) o
Smartphone.
La funcin WPS se convierte en otra
manera de incorporar mdulos Xbee
Wi-Fi con ratios over-the-air de hasta
72 Mbps a una red 802.11b/g/n (WiFi) con tan slo apretar un botn.
El mdulo tambin posee UART e interface SPI para optimizar la integracin
con microcontroladores embebidos y
se encuentra disponible en versiones
through-hole y de montaje en superficie (SMT) para incrementar la flexibilidad en el proceso de diseo y reducir
el coste de desarrollo y el tiempo de
llegada al mercado.
www.diode.es

STMicroelectronics ampla su lnea de IC SoC set-top box


Los nuevos productos proporcionan un
excelente balance de CPU, calidad de
vdeo, seguridad y reduccin de materiales.
STMicroelectronics, uno de los mayores fabricantes de productos semiconductores, ha incorporado nuevos dispositivos a su catlogo de set-top box
(STB) system-on-chip (SoC) IC para
equipos de televisin terrestre, cable,
IP, Over-The-Top y satlite.
El modelo STiH253, que ampla la oferta de ST de soluciones compatibles con
grabadores de vdeo digital (DVR), es
un IC de emisin de vdeo digital que
integra un demodulador DVB-T2 para
STB terrestres.
La otra novedad es el STiH271EL, especialmente indicado para aquellas
aplicaciones sensibles al precio que requieren funcionalidad zapper (mando)

10 | junio 2013 | www.elektor-magazine.es

sin comprometer las prestaciones de vdeo.


El ncleo de esta familia
de IC SoC STB de ST se
encuentra en un motor
de procesamiento mejorado con funciones
on-chip para posibilitar un diseo de producto
final ms eficiente. Esto permite
que los operadores utilicen memoria
de menor coste y cumplan los requerimientos de bajo consumo.
Los nuevos STB SoC respaldan un amplio rango de cdec multimedia y broadcast HD, formatos hbridos e IP y estndares de seguridad y proteccin de
contenido con stacks de middleware
de compaas lderes de la industria.
Esta gama extiende el acceso a mandos HD, PVR, clientes Internet Protocol (IP) y dual-HD boxes que soporten

servicios conectados a televisin


(Internet Protocol TV), canales de informacin
y vdeo Over-The-Top
(OTT), juegos, catchup TV y redes sociales.
Por lo tanto, los nuevos
dispositivos complementan la lnea de SoC para
aplicaciones de set-top box
IP genrico (STiH207), cable /
terrestre HD (STiH273) y satlite HD
(STiH237 y STiH239). La compatibilidad en pin y software de toda la familia tambin contribuye a optimizar los
diseos de OEM.
Las primeras muestra de los IC SoC
STiH253 y STiH271EL se suministran
en encapsulados BGA de 23 x 23 y 27
x 27 mm.
www.st.com

Noticias
Microchip integra amplificadores operacionales en
microcontroladores PIC de 8 bit de bajo coste
fotosensores y mdulos de interface de sensor para
el automvil.
El microcontrolador PIC16F527 se suministra en
encapsulados PDIP, SOIC, SSOP y QFN de 20 patillas y ya se encuentra disponible para su muestreo
y produccin en volumen. El PIC16F570 se suministra en encapsulados PDIP, SOIC, SSOP y QFN
de 28 patillas y est previsto que se encuentre
disponible en junio para muestras y produccin en
volumen.
www.ni.com

Microchip anuncia dos nuevos microcontroladores PIC


de 8 bit, el PIC16F527 y el PIC16F570, que combinan
el sencillo manejo de un microcontrolador PIC y perifricos analgicos de bajo coste para crear una familia
bien integrada y econmica que resulta apropiada para
una amplia variedad de aplicaciones. Estos microcontroladores, que integran un mdulo doble de amplificador
operacional integrado, un convertidor A/D de 8 bit y dos
comparadores, son ideales para sistemas que exigen
acondicionamiento de seal y amplificacin para interpretar las entradas analgicas.
El PIC16F527 y el PIC16F570 que emplean una arquitectura de 8 bit de pequeo tamao y alta eficiencia,
aaden diversas funciones que potencian el sencillo
manejo y la robustez del sistema. Esta capacidad de
interrupcin por hardware completamente nueva ofrece a los diseadores la libertad de implementar ms
funciones complejas sin aadir software, mientras que
la funcin BOR (Brown-Out Reset) puede detectar fallos en la alimentacin del sistema y reiniciar de forma
segura el microcontrolador con el fin de evitar que la
memoria se vea afectada. Los dos microcontroladores
tambin incorporan memoria Flash de programa con
lectura/escritura automtica, que permite una funcionalidad de EEPROM de datos con un uso intensivo. Estas caractersticas principales, junto con la integracin
de perifricos analgicos de uso habitual, hacen que el
PIC16F527 y el PIC16F570 se adapten bien a un gran
nmero de productos sensores de bajo coste, como detectores de humo, detectores de monxido de carbono,

Publicidad

Retronics

80 cuentos de la electrnica del pasado


Este libro (en ingls) es una recopilacin de 80 entregas de Retrnica publicadas entre 2004 y 2012. Las historias abarcan equipos de prueba clsicos,
ordenadores prehistricos, componentes ya olvidados, los proyecto de
Elektor que alcanzaron un gran xito, todo ello con el propsito de hacer
que los ingenieros sonran, se sienten, se opongan, babeen o experimenten
el tufillo de la nostalgia.
193 pginas ISBN 978-1-907920-18-9 29,95

NUEVO

-10% par
a
miembros
GREEN
Ms informacon y pedidos en www.elektor.es/retronics

www.elektor-magazine.es | junio 2013 | 11

Proyectos

Tarjeta Controladora Wi-Fi


Controla tiras de LEDs RGB, motores,
rels y artilugios, pero sin hilos

Con los mdulos Wi-Fi


ya generalizados, es el
momento de empezar
a aadir aplicaciones
a nuestra red Wi-Fi
domstica. Controlar
nuestra casa desde el
telfono mvil nunca ha
sido tan fcil gracias a
la placa controladora
Wi-Fi universal que
presentamos aqu.
Aunque la vamos a
usar para controlar
una tira de LEDs
RGB, podemos
usar la placa
para un amplia
abanico de
aplicaciones
diferentes.

Clemens Valens
(Elektor.Labs)

Llev su tiempo completar el proyecto con el que


nos vamos a encontrar. Todo comenz hace un
ao con un sistema de Automatizacin de Domstica [1] que, originalmente, fue desarrollado por
dos aprendices de los Laboratorios de Elektor,
Koen y Jesper. Una parte de su sistema era una
tira de LEDs RGB controlada a travs de Ethernet, es decir, por cable. La idea era buena, pero

12 | junio 2013 | www.elektor-magazine.es

yo pensaba que una conexin sin hilos sera una


solucin ms llamativa. Adems, tambin buscaba una aplicacin basada en un navegador web,
compatible con la mayora de los navegadores y
que usase deslizadores para controlar el color de
la tira de LEDs. As, Koen tena la intencin de
desarrollar todo el conjunto pero, por desgracia,
su perodo de aprendizaje finaliz antes de que

tarjeta controladora wi-fi

pudiese acabar el proyecto y volvi de nuevo a


la universidad. Antes de dejar Elektor, Koen me
explic los problemas con los que estaba trabajando, alguno de los cuales an necesitaba
que fuese encauzado correctamente. As pues,
me toc a m finalizar el proyecto, qu pas los
siguientes meses en la mesa de mi despacho
cogiendo polvo! Cuando, finalmente, encontr
el tiempo y las ganas de ponerme con ello, me
cost recordar la mayora de las cosas que Koen
me haba dicho y, bsicamente, tuve que comenzar desde el principio.
El circuito de Koen era, principalmente, un microcontrolador (MCU) ATmega328 AVR, que controlaba tres MOSFETs, con seales PWM, para regular
la intensidad de los tres colores. Para la conexin
Wi-Fi, haba usado un mdulo WizFi220 de la
casa WIZnet, que se comunicaba con la MCU a
travs de un sencillo enlace serie. Como yo tena
shield de Arduino que contena este mdulo Wi-Fi
[2] y como una placa Arduino Uno est basada
en un ATmega328, decid construir mi prototipo
como una aplicacin Arduino. Todo lo que necesitaba era un segundo shield con los MOSFETs
sobre ella para poder controlar la tira de LEDs.
Todo esto lo puse rpidamente sobre una placa
de prototipos (ver Figura 1).
As pues, lleg la hora de programar. Analizar
los comandos HTTP recibidos del mdulo Wi-Fi
y devolver las respuestas requeridas, no fue
algo demasiado complicado, pero cuando quise
cambiar la pgina web me encontr con los problemas de Koen. Lo primero de todo eran los
deslizadores que controlan el color de la tira de
LEDs desde el interior de un navegador que alegremente haba seleccionado. Entonces aprend
que no hay deslizadores en el HTML estndar.
Buscando en Internet, descubr que HTML 5
podra soportar deslizadores, pero slo unos
pocos navegadores lo soportan, por lo que HTML
5 no era una opcin. Koen haba resuelto este
tema usando las libreras JQuery y JQuery-UI
[3] de JavaScript. Dichas libreras son libreras
online para pginas web que acostumbran a
implementar todo tipo de controles ingeniosos
y otras funciones. Algunos inconvenientes de
estas libreras es que son online, lo que significa
que necesitamos una conexin de Internet para
usarlas, adems de que son demasiado grandes para colocarlas en el interior de la memoria de programa del micro. Como no tena otra
solucin, decid aceptar el uso de las libreras
JavaScript online.

Mirando en el cdigo de la pgina web de Koen,


record de repente el problema que l me haba
mencionado antes de dejarnos: por alguna razn,
el mdulo Wi-Fi cerraba la conexin despus de
recibir un comando, impidiendo que el navegador
enviase ms comandos. En consecuencia, slo
podemos cambiar el color de la tira de LEDs una
vez, a menos que reinicisemos el mdulo. Koen
haba encontrado un pequeo truco usando un
JavaScript complicado que haca que el navegador cambie sus puertos de comunicacin antes
de enviar un comando. Esta alternativa tambin
implicaba usar el comando HTTP GET para enviar
el dato del color, cuando lo que realmente significa este comando es que obtiene datos de un
servidor (quin lo habra adivinado?). Para enviar
datos, lo lgico es usar el comando POST (o PUT).
Sin embargo, una solucin mucho ms elegante
es el de aadir la lnea Connection: close
a la respuesta del servidor ante un comando
GET. Ahora ya poda borrar el script alternativo
haciendo que en la pgina fuese mucho ms inteligente, a la vez que podra cambiar y utilizar el
comando POST, que, en mi opinin, era mucho
ms apropiado. Esta es la apariencia del comando
POST cuando es enviado por el navegador Firefox
(el dato del color est al final):

Figura 1.
Prototipo basado en una
placa Arduino Uno, un
mdulo de extensin Wi-Fi
de Elektor (120306) y un
trozo de una placa para
prototipos.

www.elektor-magazine.es | junio 2013 | 13

Proyectos
POST / HTTP/1.1
Host: 192.168.2.15
User-Agent: Mozilla/5.0 (Windows NT 6.1;
WOW64; rv:17.0) Gecko/17.0 Firefox/17.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 23
Origin: null
Pragma: no-cache
Cache-Control: no-cache
red=79&green=10&blue=20
El siguiente paso fue el conseguir que la pgina
web tuviese una apariencia bonita en los dispositivos mviles. En mi smartphone los deslizadores que se mostraban eran muy pequeos,
haciendo imposible moverlos con algo de precisin. La solucin fue la de aadir la meta-etiqueta (meta tag) viewport en la cabecera de
la pgina web, de esta manera:
<meta name=viewport content=width=device-width, user-scalable=no />
Con esta lnea aadida al cdigo HTML de la
pgina web, ahora la pantalla de mi telfono
mvil Android se rellena adecuadamente, a la
vez que tiene la misma buena apariencia en un
PC. (Sobre un iPad solo ocupaba una cuarta parte
de la pantalla y no he tratado de mejorar esto).
Al mismo tiempo, tambin he optimizado el
tamao del resto del programa y, ahora, mi objetivo era conseguir que todo cupiese en la menor
cantidad de memoria posible. Una mejora importante vino en la compresin de la pgina web.
Podemos hacer esto con gzip y, a continuacin,
aadir la lnea Content-encoding: gzip a la
respuesta del servidor. La mayora de los navegadores (si no todos) tienen que saber cmo
gestionar las pginas web zipped (comprimidas). La desventaja de hacer esto es que ahora
es ms complicado cambiar la pgina web. Sin
embargo, slo hacemos esto cuando su diseo
est acabado.
En este punto ya tena un prototipo que funcionaba correctamente, basado en un hardware

14 | junio 2013 | www.elektor-magazine.es

compatible Arduino y con un programa que haba


sido compilado en un IDE Arduino. Si queris
ms detalles sobre esto, por favor visitad la referencia [4]. Podra haberme detenido aqu, pero
quise mejorar el circuito ya que no me pareca correcto tener una pila de tres placas para
un circuito tan sencillo. Buscando un micro con
menos terminales me d cuenta de que no poda
mantenerme sobre la plataforma AVR de Atmel
ya que los componentes que podran ser adecuados eran difciles de conseguir. Sin embargo,
result que tena por la mesa un par de micros
PIC18F14K50 de Microchip. Se trata de una MCU
de 20 terminales con USB, algo que era interesante ya que esto me poda servir para poder
hacer una configuracin cmoda, basada en PC,
del mdulo Wi-Fi (ver tambin [2]). Otra prestacin interesante es el programa cargador de
arranque (bootloader) por USB que Microchip
proporciona (gratuitamente), lo que nos permite
un desarrollo fcil del firmware sin necesidad
de un programador especial. Por desgracia, este
MCU slo dispone de un canal PWM, por lo que
he tenido que implementar el control del color
PWM de tres canales por medio de programa.
Exportar el cdigo AVR a un PIC debera haber
sido un ejercicio sencillo y directo pero, realmente, no lo fue. Por supuesto, tena cosas complicadas que hacer, ya que quera incluir las funcionalidades USB y el cargador de arranque, pero
Microchip debera haberlo hecho ms sencillo.
Estaba utilizando mi super compilador XC8, con
todas las prestaciones posibles que Microchip
dice que tiene, pero me fue imposible conseguir que el cdigo USB se pudiese compilar, sin
hablar del trabajo asociado. Al final, consegu
el cdigo buscado en las Libreras de Aplicacin
de Microchip v2012-10-15 y, slo despus de
muchas horas de bsquedas infructuosas con
las configuraciones y las pragmas del compilador, encontr una informacin en algn lugar de
Internet donde deca que el compilador XC8 no
era compatible (an) con las Libreras de Aplicacin de Microchip. No me digas! Necesitaba otro
compilador. De nuevo Internet vino a mi rescate
y en 15 minutos ya tena una versin oficial, con
todas sus funcionalidades, del compilador C18 y
trabajando sin esa cantidad de mensajes. Otros
15 minutos ms y ya tena el ejemplo del puerto
serie USB cargado y ejecutndose.
Ahora era el momento de aadir mi cdigo Wi-Fi
que iba bastante bien excepto en el volcado de
todos los datos en la memoria RAM segmentada

tarjeta controladora wi-fi

pues, volv sobre la tabla de depuracin donde


descubr que la interrupcin USB pareca mantener activa la interrupcin del puerto serie, lo que
provocaba la prdida de datos. A estas alturas
ya estaba bastante harto de todo esto y decid
simplemente deshabilitar el puerto USB en el
modo Wi-Fi en lugar de ir al fondo del problema.

TP4

OFF

C9

Vin

+5V

L1

D3

+5V

330u 1A

100u 50V

C8
330u 16V

GND TP1

1N5819

+3V3
TP3

+3V3

C4

C5

C6

C7

10u 10V

100n

10u 10V

100n

ICSP

JP1

+5V

D1

FB

T P2

IC2
MCP1825S-3302E/AB

+5V

IC3
LM2575T-5.0/NOPB

D4

1N5819

Vin

del PIC y hacer un intento. Y, por supuesto,


funcion diris vosotros. Pues no, no es as.
Realmente slo funcionaba un poco. Poda cambiar el color de la tira de LEDs una o dos veces,
pero enseguida la comunicacin Wi-Fi se detena. Cuando controlaba la tira de LEDs sobre el
puerto serie USB funcionaba correctamente. As

1N5819
1
2

R1

IC1
1

1k

2
3

X1
C2

3x 1N5819
D11

D10

C1

12MHz

22p

D9

S1

5
6
7

22p

K2

1
2

Vin
T3

RA5/OSC1

D+

RA4/OSC2

D-

RA3/MCLR

VUSB

RC5

RC0

RC4

RC1

RC3

RC2

RC6

RB4

RC7

RB5/RX

RB7/TX

RB6

20

19
18
17
16

TXD

D5

D-

D+

GND

USB-B

15
14
13

12

JP2

11

3
4
5

RXD

TP6

C3
100n

K1

VBUS

TP5

EXPANSION

IRL540

K3
BARREL JACK

IRL540

3
4
5
6
7
8
10
11
12
13
14
15
16
17
19
20
21
22
23

34

VBAT VIN_3V3 EN_1V8 VDDIO


EXT ANT

GPIO29
TP8

GPIO28

47

GPIO30

45

JTAG_NTRST

UART0_CTS/GPIO24

43

RTC_OUT1

UART0_RTS/GPIO25

41

JTAG_TCK

MOD1
WizFi220

JTAG_TDO
JTAG_TDI

JTAG_TMS
ALARM1

DC_DC_CNTL
ALARM2
ADC1
ADC2

MSPI_MISO/GPIO6
MSPI_MOSI/GPIO7

GPIO29

46

GPIO31

44

UART0_RX/GPIO0

42

UART0_TX/GPIO1

40

UART1_RX/GPIO3

38

UART1_CTS/GPIO26

36

SSPI_MOSI

30

UART1_TX/GPIO2

39

UART1_RTS/GPIO27

37

EXT_RESETN

35

SSPI_CS

29

SSPI_MISO

27

GPIO21/CLK_11MHZ

25

MSPI_CLK/GPIO5
VOUT_1V8

MSPI_CS0/GPIO4

SSPI_CLK

MSPI_CS1/GPIO13
I2C_CLK/GPIO9
PWM0/GPIO10

GPIO19/CLK_44MHZ
GND

GND

28

I2C_DATA/GPIO8

26

GPIO20/CLK_22MHZ

24

GND

D6
LINK

R3

R4

R5

1k

1k

1k

D7
OK

D8
RXD

BZX79-C3V0

R8
D2

1k

GPIO27
TP7

+3V3
R7

47k
T4

GND

48

31

+3V3

33

R6

47k

VSS

PIC18F14K50-I/P

1k

IRL540

32

18

T2

10

R2

T1

JP3

VDD

BC547

R9
10k
120718 - 11

Figura 2.
Esquema elctrico del
circuito de la Placa
Controladora Wi-Fi. Os
habis dado cuenta de que
la gente siempre conecta
el jack de alimentacin al
revs? El terminal central se
supone que es la conexin
de masa. He sido algo
retorcido aqu debido a las
consideraciones de diseo
de la placa.

www.elektor-magazine.es | junio 2013 | 15

Proyectos
Una FlowBoard compatible con FlowStone 3 [5].
A lguna cosa que an no he conseguido
imaginar.

Figura 3.
Una tpica tira de LEDs RGB
con un cable adaptador
recuperado de una fuente de
alimentacin de un PC.

(Os sugiero que hagis un intento si verdaderamente estis interesados. Por favor, informadme
si encontris una solucin).
Construyendo todo
Ahora, mi segundo prototipo (basado en un PIC)
estaba funcionando como se deseaba, con los
elementos que quera utilizar (ver Figura 2).
Finalmente haba llegado el momento de disear
una bonita placa. Como el objetivo era controlar
una tira de LEDs, decid construirla dentro de
una pequea y discreta caja. La placa estaba
diseada de manera que la caja necesitase unos
mnimos retoques, especialmente cuando usamos la versin azul transparente que nos permite
ver el estado de los LEDs en su interior. En este
caso no es necesario realizar ningn taladrado,
slo tenemos que aadir algunos separadores
en su interior.
Incluso con una MCU de 20 terminales, varios
terminales permanecen sin uso, por lo que he
aadido alguna funcionalidad extra a la placa.
Esto hace que, junto con el programa cargador
de arranque, la placa sea una plataforma mucho
ms verstil, la cual podremos utilizar en otras
aplicaciones. Puede ser usada como:
Un controlador Wi-Fi de (tira) LEDs RGB.
Un controlador de tres canales que conmuta
rels o controla motores por Wi-Fi o por USB
(o por ambos).
Un adaptador de puerto serie a USB.
Un sistema de prototipos rpidos con Wi-Fi,
puerto de expansin y tres canales de
alimentacin.

16 | junio 2013 | www.elektor-magazine.es

Para conseguir que sean posibles estas diferentes aplicaciones, la placa ha sido equipada con
un regulador conmutado de manera que puede
ser alimentada con una fuente de alimentacin
continua (DC) desde 7 V a 40 V, sin llegar a
gastar demasiadas caloras. La placa tambin
puede ser alimentada desde el puerto USB,
pero debemos tener en mente que el mdulo
Wi-Fi puede llegar a consumir bastante potencia cuando est transmitiendo. Un regulador
lineal ms grande de 3,3 V, proporciona la alimentacin para el mdulo Wi-Fi (debido a los
requerimientos de corriente, no podemos usar
el regulador de 3,3 V integrado en la MCU).
El mdulo viene acompaado por tres LEDs
de estado que indican si est conectado a un
punto de acceso o no y si hay intercambio de
datos. Como el micro est alimentado con 5 V
y el mdulo Wi-Fi lo est con 3,3 V, se ha aadido la circuitera de conversin de nivel para
las entradas del mdulo Wi-Fi. El micro puede
trabajar directamente con seales de entrada
de un nivel de 3,3 V.
El micro funciona con un oscilador de cristal de
12 MHz para conseguir una temporizacin USB
correcta. El pulsador conectado al terminal de
reset (reinicio), el MCLR, servir principalmente
para activar el modo cargador de arranque (la
entrada de reinicio externa debe estar deshabilitada para que sta funcione, es decir, la bandera
MCLRE=OFF). Si no necesitamos el cargador de
arranque, este pulsador puede funcionar como
botn de reset o tambin puede usarse para
cualquier otra funcin.
Los tres MOSFETs, dimensionados de manera conservadora, proporcionan una RDS(on) de 0,077,
pueden trabajar con hasta 100 V y estn protegidos por diodos de flyback (anti-rebote), con lo
que tambin pueden trabajar con cargas inductivas. Como conector de salida, he optado por un
bloque terminal para circuito impreso estndar
de cuatro terminales, con una separacin entre
terminales de 5,08 mm, pensando incluso que la
mayora de las tiras de LEDs que he visto estn
equipadas con un conector con separacin de terminales ms pequea. Sin embargo, como no se
lo estndar que son estos conectores o si estn
conectados todos ellos de la misma manera, el
preferido una solucin ms flexible. As, podemos

tarjeta controladora wi-fi

fabricar fcilmente un cable adaptador a partir


de, por ejemplo, el cable de de alimentacin de
una disquera (ver Figura 3).
Para el conector de alimentacin podemos usar,
bien un jack de terminal central (similar al de
los PCs), o bien un bloque terminal estndar, de
dos terminales y de 5,08 mm de separacin. Un
diodo proporciona una proteccin bsica contra
inversin de polaridad.
Un conector de extensin tipo header, de 5
terminales, permite el uso de los puertos libres
del micro para propsitos personalizados. Una
fila de puntos de prueba extiende este conector en una direccin; el conector de programacin serie interno (ICSP) lo ampla en la otra
direccin. Todos estos terminales dan acceso a
10 terminales del micro y a todas las tensiones de alimentacin. Tambin hay disponibles
un LED, conectado a RC4, y un pulsador. Como
el programa de aplicacin puede ser cambiado
fcilmente gracias al cargador de arranque y
al interfaz USB, estas acciones convierten a la
placa en una excelente plataforma para realizar
rpidos prototipos.
Todos los componentes (excepto el mdulo Wi-Fi)
son elementos estndar de taladro pasante, por
lo que no deben suponer ningn problema en
el montaje de la placa. Sugiero que se monte
primero el mdulo Wi-Fi, ya que colocarlo en la
posicin correcta es algo complicado debido a
la cantidad de conexiones que tiene. Hay que
sealar que los reguladores de tensin deben
ser montados sobre su vientre (ver Figura 4 o
en la cara de soldadura de la placa). La razn
de ello es que, si no usamos la caja que se propone y los montamos verticalmente, no pueden
ser atornillados fcilmente a un radiador (no es
que realmente se necesite uno). Los MOSFETs
deben estar tumbados sobre su espalda para que
quepan en la caja.
Si los LEDs deben asomar a travs de la caja,
deberemos taladrar primero los agujeros para
conocer la longitud correcta de sus terminales.
El LED D5 (conectado a RC4) y cada pulsador,
han sido colocados exactamente bajo un separador, de manera que podamos hacer agujeros
para ellos sin tener que hacer la tediosa medida
primero, slo habr que taladrar los separadores. La caja dispone de una trampilla para pilas,
lo que permite que podamos montar los LEDs de
estado del mdulo Wi-Fi en la cara de soldadura,
para que podamos verlos slo cuando abrimos
la trampilla.

El pulsador necesita una tapa de la altura correspondiente. El modelo de 16 mm queda casi a ras
de la cara superior de la caja.
Para montar la placa en la caja necesitamos
recortar en la tapa superior los cuatro separadores que mantienen la caja unida. Una forma de
hacer esto es con una broca larga. No debemos
recortar mucho o los tornillos no tendrn nada
de material al que atornillarse. Tambin tendremos que separar los dos trozos de plstico que
permiten mantener la batera en su lugar.
El mdulo Wi-Fi tiene un pequeo conector para
una antena mejor (ver Figura 5). Si lo utilizas,
simplemete djalo colgando.

Figura 4.
La placa casi acabada,
revisin 1.0; y totalmente
ensamblada. La Rev 1.1 es
idntica excepto en algunos
componentes que han sido
ligeramente desplazados para
que quepa mejor en su caja.
Figura 5.
Tres antenas de 2,4 GHz,
una de Winizen (superior) y
las otras dos suministradas
amablemente por las chicas
de 2J (www.2j-antennae.com).

www.elektor-magazine.es | junio 2013 | 17

Proyectos
detectar ahora la placa como un HID. Si es
la primera vez que hacemos esto en un PC
Windows, tenemos que mostrarle el fichero
.INF que hemos conseguido en la descarga
previa.
En el PC, lanzamos la herramienta HIDBooloader conseguida tambin en la descarga
(para Windows; para la versin Linux o Mac
descargaremos la aplicacin de la pgina web
de Microchip) (ver Figura 6). Esta aplicacin
debera reconocer la placa instantneamente.
Buscaremos y cargaremos nuestro fichero ejecutable (fichero HEX) y, a continuacin, pulsaremos sobre el botn program.

Figura 6.
Usad esta herramienta para
volcar una nueva aplicacin
a la Placa Controladora
Wi-Fi.

Para salir del modo cargador de arranque y arrancar la aplicacin, pulsaremos sobre el botn de
Reset o apagaremos y encenderemos la fuente de
alimentacin de la placa sin mantener pulsado S1.

Figura 7.
La pgina de configuracin
del mdulo WizFi, que est
accesible en modo Punto de
Acceso Limitado, nos hace la
vida mucho ms fcil.

Programando la placa
El firmware que podemos descargar para este
proyecto desde [6], contiene el programa cargador de arranque, la aplicacin de la tira de LED
RGB y los elementos de configuracin, en un
nico fichero HEX. Volcaremos el fichero HEX en el
MCU usando un programador adecuado (PICKIT,
ICD u otro) y ya estar todo. Con el programa
cargador programado en el MCU, estamos listos
para cargar nuestra propia aplicacin. El procedimiento es el siguiente:
Sin alimentar la placa, nos aseguraremos de
que JP3 no est montado.
Conectar la placa a un puerto USB libre de
nuestro PC.
Pulsar el pulsador S1 y mantenerlo pulsado
mientras colocamos el puente JP3. Realmente,
en lugar de JP3, he usado un pulsador del tipo
normalmente cerrado (NC) (los microinterruptores son ideales para ello). En este caso,
mientras mantenemos pulsado S1, pulsaremos
brevemente del microinterruptor para entrar en
el modo cargador de arranque (bootloader).
E l PC (con Windows, Linux o Mac) debera

18 | junio 2013 | www.elektor-magazine.es

Configurando el mdulo Wi-Fi


En [2] os muestro cmo configurar el mdulo
WizF1220 a travs de un puerto serie usando
comandos AT. Esta tcnica es muy til si, por
ejemplo, queremos que el micro reconfigure
el mdulo al vuelo. Tambin permite la configuracin de opciones no accesibles por otros
medios. La placa que se presenta aqu tiene un
modo especial que permite esta manera de configurar el mdulo. El mdulo Wi-Fi ofrece una
manera ms fcil si lo nico que queremos hacer
es conectarlo a una red Wi-Fi existente. En este
caso tenemos que colocar el mdulo en el modo
denominado Punto de Acceso Limitado (o LAP,
del ingls, Limited Access Point). La placa tambin puede hacer esto.
Para ambos mtodos, tenemos que colocar primero la placa en modo USB a serie. Para hacer
esto, conectamos RC2 a + 5 V (por ejemplo, con
un hilo o un conector de extensin) y, a continuacin, conectamos la placa a un puerto USB libre
de nuestro PC. El LED D5 comienza a parpadear
y podemos comenzar a enviar comandos AT al
nuevo puerto COM virtual (el nmero o el nombre ser el que obtengamos de nuestro sistema
operativo). Si el mdulo Wi-Fi est conectado a
un PA (Punto de Acceso, por ejemplo, cuando
los LEDs de estado LINK y OK estn los dos
encendidos), escribiremos +++ en un programa
terminal de puerto serie para forzar al mdulo a
entrar en el modo comando (el LED OK deber
apagarse). Ahora usaremos la referencia [2] para
conFigurar el mdulo.

tarjeta controladora wi-fi

Para poner el mdulo Wi-Fi en el modo LAP


se requiere algo de destreza. Miremos al LED
que parpadea ms de cerca y observemos su
ritmo de parpadeo. Cuando creamos que estamos listos, pulsaremos S1 justo cuando el LED
est apagado y lo mantendremos presionado
durante dos parpadeos completos. Soltaremos
el botn slo cuando el LED se apague de nuevo
despus del segundo parpadeo. Si conseguimos hacer esto de manera adecuada entonces,
despus de un segundo aproximadamente, los
tres LEDs de estado Wi-Fi comenzarn repentinamente a parpadear rpidamente varias veces
y el mdulo entrar en el modo LAP. (Si contamos tres parpadeos el mdulo volver a su
configuracin por defecto de fbrica, lo que es
un modo rpido de sacarlo de cualquier configuracin dudosa). Si tenemos la placa conectada a un monitor de puerto serie, podremos
ver el mensaje:
IP
SubNet
Gateway
192.168.1.1: 255.255.255.0: 192.168.1.1
[OK]
Ahora debemos asegurarnos de que el mdulo
est en alcance del PA que queremos usar con la
placa. Verificamos nuevos puntos de acceso con
un PC, un Smartphone o una tableta. Si todo va
bien, deberamos ver un mensaje con la etiqueta
WizFiAPxxxx donde xxxx es un nmero. Nos
conectamos a l (se trata de un PA abierto por
lo que no necesitamos ninguna clave de paso)
y en el navegador colocamos una direccin
192.168.1.1. Deberamos ver una pgina similar a
la de la Figura 7. Ahora pulsamos sobre el enlace
Find Available Wireless Networks (Encontrar
Redes Wi-Fi Disponibles). Aparecer una lista
con todas las redes que estn en alcance, en la
que podemos seleccionar la que queremos. A
continuacin, pulsamos sobre la opcin Save
And Continue (Salvar y Continuar). Esto nos
llevar de nuevo a la primera pantalla que ahora
nos mostrar los detalles de la red seleccionada.
Dependiendo de la configuracin de seguridad
de esta red, tendremos que entrar la clave de
acceso. Ahora pulsamos sobre el botn Save
(Salvar) para almacenar la configuracin. Continuamos pulsando sobre el enlace Network Settings (TCP/IP) y rellenamos el formulario. Yo
prefiero utilizar una IP esttica para el mdulo
de manera que siempre conocer su direccin,
pero esto lo decide cada uno de manera indivi-

Figura 8.
La pgina web de la Placa
Controladora Wi-Fi tal
y como se ve desde un
smartphone con Android.
Est el azul semi-encendido
o semi-apagado?

dual. Seguidamente, en el campo S2W Connection method escribimos 1,1,,80. Esto nos
llevar a una pasarela serie que escucha sobre
el puerto 80, el puerto HTTP por defecto usado
por los navegadores web. De nuevo, podemos
usar cualquier otro valor. Hecho esto, pulsamos
sobre el botn Save.
El enlace Administration Settings nos permite
introducir la contrasea del mdulo. Yo no he
usado esta opcin.
Cuando hayamos acabado con la configuracin,
pulsaremos sobre el enlace Logout. Ahora
deberemos ver el mensaje Rebooting (Reiniciando) y la conexin Wi-Fi se perder. El
mdulo WizFi se reiniciar y tratar de conectarse directamente a la red seleccionada. Si todo
va bien, los LEDs LINK y OK se encendern,
lo que significa que ahora podemos conectar la
placa. Introducimos la direccin IP del mdulo
en el navegador y esperamos hasta que nos aparezca la pgina de la Figura 8. Cuando la pgina
se haya cargado correctamente estaremos listos
para jugar.

www.elektor-magazine.es | junio 2013 | 19

Proyectos
Lista de materiales
Resistencias (5%, 0.25W)

IC3 = LM2575T-5.0/NOPB
T1,T2,T3 = IRL540
T4 = BC547

R1,R2,R3,R4,R5,R8 = 1k
R6,R7 = 47k
R9 = 10k

Varios

Condensadores
C1,C2 = 22pF, cermico, 50V, paso 2,5 mm
C3,C5,C7 = 100nF, Z5U, 50V, paso 5 mm
C4,C6 = 10F 63V, radial, paso 2,5 mm
C8 = 330F 16V, radial, paso 3,5 mm
C9 = 100F 50V, radial, paso 3,5 mm

Inductores
L1 = 330H 1A, paso 5 mm, por ejemplo, Wrth Elektronik, modelo 7447452331

Semiconductores

1 23

D1,D3,D4,D9,D10,D11 = 1N5819
D2 = 3V diodo zner, por ejemplo, BZX79-C3V0
D5,D6,D7,D8 = LED, verde, 3mm
IC1 = PIC18F14K50-I/P
IC2 = MCP1825S-3302E/AB

MOD1 = WizFi220 con antena, Elektor # 130076-92.


JP1 = conector pinheader de 6 terminales, paso 2,54
mm, vertical.
JP2 = conector pinheader de 5 terminales, paso 2,54
mm, vertical.
JP3 = conector pinheader de 2 terminales, paso 2,54
mm, vertical.
Puente para JP3.
K1 = conector hembra USB-B.
K2 = Conector 1x4, 90deg, paso 5,08 mm, por ejemplo MSTBA4.
K3 = conector para tensin DC.
Conector DIP de 20 terminales para IC1.
S1 = Multimec tipo RA3FTL6 con tapa, tipo S09-16.0
X1 = Cristal de cuarzo de 12 MHz, encapsulado
HC49/S.
Caja, Hammond modelo 1593QGY.
Placa, Elektor Ref. 120718-1

Fue divertido poder controlar las luces de mi


casa desde el exterior con mi telfono mvil.
Sin embargo, este no es el uso que he planificado para la placa. Mi intencin es conectarla a
la puerta motorizada del garaje donde mi telfono mvil ser la llave. Tambin ser posible dar
acceso a nuestra casa a alguien, incluso cuando
nosotros estemos fuera. Adems, esta placa est
llena de posibilidades, usad vuestra imaginacin!
(120718)

Enlaces en Internet
[1] Elektor Home Control: www.elektor-labs.com/
node/2325
[2] Extensin Wi-Fi/Bluetooth: www.elektor.
es/120306
[3] JQuery(UI): http://jquery.com & http://jqueryui.com
[4] Versin Arduino: www.elektor-labs.com/
node/2373
[5] FlowStone (en este nmero): www.elektor.
es/130064
[6] Firmware, ficheros Eagle PCB, BOM; pedidos:
www.elektor.es/120718

20 | junio 2013 | www.elektor-magazine.es

alrededor del mundo

Elektor World
Compilado por

Wisse Hettinga

La vlvula en el Taper:
los lectores comentan
Lectores de Elektor como vosotros, demuestran
constantemente el verdadero espritu que hay detrs de la
revista, mejorando y ampliando el contenido editorial con vuestras
propias investigaciones y experimentos. Los artculos relacionados con
los
componentes son an los ms populares y, en el ltimo artculo de la seccin Elektor
World del pasado mes de abril, mostramos la Vlvula en el Taper y nos habis
pedido ms detalles.
Entre otros, Christopher Kessler de Alemania y Jan Swenker de Holanda, han buscado y
desenterrado ms informacin sobre esto. Christopher encontr las especificaciones de esta vlvula buscando
por Valvo Fotovervielfacher 1978-79. En total encontr 6 pginas de la informacin sobre el dispositivo,
donde tambin apareca que su precio actual era unos 30 dlares. La informacin de Jan confirma la fecha de
origen: 1978. Tambin nos indic el libro Hamamatsu Photomultiplier Tubes de 1986 (podemos encontrar el
PDF en Internet). El libro tiene las especificaciones de un tubo equivalente y sustituto, el modelo R1450... Es
el momento de poder tener en nuestras manos esta vlvula para trabajar!
Muchas gracias a Jan y Christopher

Conseguir el control
En ingeniera, la teora de sistemas de control se concentra en cmo manipular
las entradas de un sistema para cambiar su comportamiento. Los hobistas estn
familiarizados con sistemas de control de lazo abierto muy sencillos, tales como
los basados en motores paso a paso. Pero hoy da, los kits de proyectos de
cualquier tipo, desde los grandes robots para coches hasta el modelo de avin
auto-pilotado, exigen que los aficionados aprendan ms sobre la teora que hay
detrs de los sistemas complejos de control de circuito cerrado, dice Brian
Douglas en su ensayo Tech the Future, en la edicin de junio de 2013 de la
revista Circuit Cellar. Los aficionados no vuelven a las aulas, ellos trabajan
sobre Internet, educndose ellos mismos en las pginas web y cambindose
al software y hardware open source. Douglas debe saberlo. El ingeniero de
sistemas de control con base en Seattle, tiene una pgina web en YouTube
dedicada a fomentar la comprensin prctica de la teora de sistemas de control, www.youtube.com/
user/ControlLectures. Douglas es uno de los conocidos ensayistas de CC que aparece en la seccin Tech
the Future, que se centra en desarrollar tendencias y descubrimientos en la tecnologa. Visitad circuitcellar.
com/category/tech-the-future para leer ms sobre los ensayos de Douglas y otros.

www.elektor-magazine.es | junio 2013 | 21

Da 1 Hazlo tal
como quieres
Niel Greunding

Los buenos amigos de RS Components acaban de lanzar su versin 5.0 de


DesignSpark PCB, y la primera cosa que me gusta hacer con una nueva
herramienta es configurarla como a m me gusta. DesignSpark nos permite
configurar todo a partir de ficheros base o globalmente.
Hoy os voy a hablar de cmo hacer cambios de una
configuracin global usando la tecnologa de ficheros
de DesignSpark de forma que consigamos hacer que
DesignSpark trabaj como a nosotros nos gusta.

Comenzando
Pero antes de empezar a configurar DesignSpark
es importante saber que DesignSpark usa estilos
para especificar las reglas de formato para primitivas de diseo como formas, texto y pistas.
Cada estilo tiene un nombre para poder referirse a l fcilmente, justo como lo hacemos en
un procesador de textos. Normalmente intento

Figura 1.
Esquemtico con
parmetros por defecto.

crear nombres que den significado al estilo, de


manera que podamos saber qu estilo es sin
tener que verificar directamente sus propiedades. Por ejemplo, si tenemos un estilo llamado
Va, es vlido si slo tenemos un tipo de va,
pero llamndolo Via (0.45mmx0.95mm) conseguimos que sea obvio que este estilo es para
una va que tiene un taladrado de 0,45 mm y
un pad de cobre de 0,95 mm. Podemos aadir los estilos personalizados que queramos a
la tecnologa de ficheros, aunque este artculo
intentar centrarse sobre los estilos por defecto
del sistema, como [Symbol Names], que es el
nombre de estilo utilizado para los indicadores
de referencias y los nombres de componentes.
Adems, no debemos olvidar verificar dos veces
la ruta del fichero de tecnologa de DesignSpark,
que se puede cambiar en la pestaa General del
men Settings->Preferences. En mi instalacin
yo lo he cambiado a C:\Users\Public\Documents\
DesignSpark PCB 5.0\Technology. Si este camino
es incorrecto, DesignSpark no encontrar ningn
fichero de tecnologa automticamente, lo que
har mucho ms complicado su uso. Podemos
verificar si el camino del directorio es correcto si
contiene ficheros con las extensiones .ptf y .stf.

Ficheros de la tecnologa de
esquemticos

Figura 2.
Fuente por defecto
establecida en Arial.

22 | junio 2013 | www.elektor-magazine.es

Los ficheros de tecnologa de esquemticos son


donde podemos configurar:
los estilos de lnea usados para conexiones de
terminales y uniones;
e stilos de texto predefinidos usados en el
esquemtico (fuente, tamao, etc.);
cmo se dibujarn varios elementos de lnea
(solida, discontinua, etc.);
cmo se dibujarn los elementos de lnea de
conexin (slido, ancho, etc.);

TRUCOS Y CONSEJOS
cualquier nodo elctrico predefinido, aunque
yo hara esto mejor en el esquemtico;
cualquier clase de nodo elctrico predefinido
(masa, alimentacin, etc.);
los colores usados para dibujar varios elementos.
Podemos cambiar estos parmetros en el men
Settings->Design Technology y en el men
View->Colors.
Podemos ver que los parmetros por defecto
se asemejan a cargar un proyecto ejemplo. El
esquemtico del proyecto chipKit Max32 tiene
una apariencia como el de la Figura 1.
Personalmente encuentro que el estilo de las fuentes
es un poco antiguo, por lo que me gusta cambiarlo
a Arial, ya que es un tipo de fuente estndar. Despus de jugar un poco durante unos minutos, tenemos el resultado que podemos ver en la Figura 2.
As pues, cmo implementamos esto en el
fichero de tecnologa de esquemticos? La primera cosa que tenemos que hacer es abrir el
fichero de tecnologa de esquemticos default.stf,
que normalmente est localizado en C:\Users\
Public\Documents\DesignSpark PCB 5.0\Technology y que se abrir como un documento de
esquemticos en blanco. Ahora abrimos el men
Settings->Design Technology y cambiamos los
estilos de texto de Net Names, Pin Names, Pin
Numbers y Symbol Names para usar la fuente
de Arial con una altura de 80. Tambin he cambiado el estilo de texto Normal a Arial, pero con
un tamao de fuente de 120. Despus, he querido ir al men View->Colors y he cambiado los
campos Pin Names y Pin Numbers a negro.
Una vez que hemos hecho todos nuestros cambios, salvamos el fichero de tecnologa de manera
que podamos usarlo en nuevas pginas de esquemticos seleccionando default.stf en la ventana
de men de nuevo documento.

Ficheros de la tecnologa PCB


Los ficheros de tecnologa PCB son una de las
mejores caractersticas de DesignSpark ya que
nos permiten combinar todas nuestras reglas de
diseo bsicas y el apilado de capas en ficheros
que se pueden usar de nuevo muy fcilmente. Por
ejemplo, tengo un fichero para placas de doble
cara de bajo coste y otro para placas de cuatro capas. Puedo seleccionar qu fichero quiero
utilizar cuando creo un nuevo documento PCB.
Esta caracterstica no es muy comn con otros
paquetes de diseo de PCBs.

Figura 3.
Configuracin de las
capas.
El fichero de tecnologa PCB nos permite configurar:
Las unidades de diseo (mm, mils, etc.) y la
resolucin.
Las rejillas de diseo, especialmente, la rejilla
de trabajo.
El apilado de capas y los colores.
E l espaciado entre pistas y las reglas de
separacin.
Los estilos de los pads y de las pistas, aunque, normalmente, especificaremos los estilos
de los pads en nuestras libreras de componentes y slo especificaremos los estilos de las
pistas por defecto en el fichero de tecnologa.
Las clases de nodos por defecto, aunque, normalmente, yo las especifico en el esquemtico.
Las reglas de rutado automtico y colocacin
automtica.
Los elementos de diseo bsicos como formas
de placa, taladros de montaje, etc.
Vamos a ver cmo funciona esto iniciando nuestro
trabajo con un ejemplo para una sencilla placa de
dos capas. El primer paso es copiar el fichero de
tecnologa existente, de manera que no tengamos que comenzar desde cero. As pues, vamos a
comenzar con C:\Users\Public\Documents\DesignSpark PCB 5.0\Technology\metric.ptf y lo salvaremos con un nuevo nombre como my2layer.
ptf. Lo primero que tenemos que modificar son
las unidades de diseo en el men Settings->Units. Yo siempre uso milmetros con una precisin
de cuatro cifras decimales, pero si preferimos
las unidades imperiales, elegiremos in o mil.
Podemos configurar nuestro diseo de rejilla preferido en el men Settings->Grids.
La configuracin de las capas se hace en la pestaa Layers, dentro del men Settings->Design
Technology. Por defecto, la mtrica del fichero
de tecnologa tiene ya definidas las capas Top
Silkscreen, Top Copper, Documentation, Bottom
Copper y Bottom Silkscreen. Como todas mis

Figura 4.
Configuracin de las
capas.
placas son de montaje superficial, he aadido
las capas Top Paste, Top Solder Mask, Bottom
Solder Mask y una capa Bottom Past. Podemos
aadir ms capas pulsando sobre el botn Add y
entrando en los parmetros de capas, tal y como
se muestra en la Figura 3.
Una vez que hemos aadido todas las capas que
queremos, las podemos ordenar correctamente en
la pila de capas, movindolas hacia arriba o hacia
abajo en la ventana Layers. Una vez lo hayamos
hecho, deberamos ver algo como lo de la Figura 4.
A continuacin, pasamos a configurar las reglas
de espaciado pulsando sobre la pestaa Spacings.
Aqu veremos una matriz de todas las reglas de
espaciado entre los diferentes tipos de objetos.
Para una placa bsica de dos capas, con pistas de
10 mil y espaciado de 10 mil, las reglas tendran
una apariencia como la de la Figura 5.
Adems, tampoco debemos olvidar pulsar sobre
la pestaa Rules. Los parmetros importantes son
el anillo anular mnimo y el espaciado de componentes. Despus de esto, es el momento de configurar el ancho de pista por defecto en la pestaa

Figura 5.
Reglas de diseo.

24 | junio 2013 | www.elektor-magazine.es

Track Styles. Para una placa de 10mil/10mil yo


configurara los anchos de pista de seal, normal y
mnimo, en 0,25 mm. El ancho de pista de alimentacin puede ser el que queramos para el ancho
normal, pero recomiendo hacer que el mnimo sea
de 0,25 mm, para que podamos rutar las pistas
de alimentacin sobre los pads de los componentes. El paso final es editar los estilos de va en la
pestaa Pad Styles. Para una placa de dos capas
de tecnologa bsica, usara una va con un taladro de 0,45 mm y un pad de 0,95 mm. Tambin
podemos definir otros estilos de va si queremos
usar una variedad diferente de tamaos de va.
En este punto ya tenemos configuradas las reglas
bsicas de diseo y las limitaciones para una
placa bsica de dos capas, que podemos volver
a usar fcilmente en placas futuras de dos capas.
Cuando creamos un nuevo diseo de PCB, seleccionaremos el fichero de tecnologa adecuado
cuando se nos pida en el PCB Creation Wizard.

Conclusin
Ahora que hemos configurado los parmetros por
defecto de DesignSpark, los siguientes pasos son
configurar las libreras de DesignSpark y crear algunas plantillas de documentacin. Por suerte, DesignSpark viene con un gran conjunto de libreras que
hacen que el inicio sea mucho ms sencillo.
(130172)

Neil Gruending, como ingeniero de diseo de


electrnica, ha usado numerosos paquetes
CAD para PCB a lo largo de los aos. Neil es
bastante particular con estas herramientas
y le gusta aprender cmo maximizar su
productividad con ellas tanto como sea
posible. Tambin le gusta compartir lo que ha
aprendido en su pgina web www.gruending.
net y en Twitter como @ngruending.

EL EXTRAO MUNDO DE LOS COMPONENTES

Los Bigotes del Gato


Normalmente, cuando comienzo a escribir un artculo, para inspirarme, miro lo que tengo alrededor en mi escritorio. Para esta edicin del Extrao
Mundo de los Componentes vino a mis ojos un
Diodo de Cristal, modelo FRIHO D.R.P. Se mencionaba en un viejo Catlogo Bauer de radio, de
1926 [1] (estamos hablando aqu de componentes
realmente viejos) y es uno de los componentes
principales de los viejos sistemas radio de cristal.
Para ser sincero, no tengo ni idea de cmo o cundo
compr este componente, pero en mis primeros
aos yo sola pasar mucho tiempo ojeando trastos en una conocida tienda llamada Quakkelstein,
en Vlaardingen, Holanda. Lo ms probable es que
fuese aqu donde lo consegu y desde entonces
ha estado viviendo en mi escritorio o en mi cajn.
Ahora este componente nos devuelve a los primeros das de la Radio. Es un diodo de bigotes de
gato automatizado. Al girar el mando se cambia la
posicin de un pequeo hilo (el bigote) en el cristal de galena, permitindonos encontrar el mejor
punto de trabajo para que el diodo haga lo que un
diodo debera hacer: dejar pasar la corriente slo
en una direccin. Esto era lo que supona escuchar
la Radio en aquellos das. Para conseguir una seal
decente tenamos que ajustar y fijar la bobina, el
condensador y el diodo de rectificador.
Pero, cmo de buenos eran estos diodos comparados con los de hoy da? Medir las caractersticas
de un diodo es realmente simple. Bsicamente, si
queremos hacer un trabajo decente para conseguir la caracterstica I-V, todo que necesitamos
es una fuente de alimentacin, un voltmetro
y un ampermetro. Hacer que este diodo funcionase correctamente era, cuando menos, un
reto. Tenemos que jugar un poco para encontrar el punto correcto donde el efecto de diodo
alcanza su punto mximo. Comenc la tentativa
de encontrar dicho punto con un hmetro, pero
pronto tuve que concluir que esta opcin no iba
a servir. Los resultados de las medidas eran de
todo tipo. Estaba a punto de rendirme cuando
decid hacer un ltimo intento y usar algn instrumento ms. Finalmente, un generador HP, un
osciloscopio Hameg HMO1522 y una resistencia
de 330 ohmios, me dieron algunos resultados
prometedores. En la Figura 2 el osciloscopio
muestra una seal muy rizada pero, con un poco
de imaginacin, podemos ver el recorte que el
diodo FRIHO produce en la seal de sinusoidal

Wisse Hettinga

entrada. La Figura 3 muestra la caracterstica de


un diodo actual con el mismo sistema de medida.
Mirando los resultados me sorprend de que un
componente como el FRIHO D.R.P. realmente funcionase! Hoy da existe una variedad enorme de
diodos para todo tipo de aplicaciones. Pequeos
diodos de seal, diodos Zner, diodos varicap o
varactores, diodos tnel, y todos ellos estn
disponibles en una variedad de encapsulados.
Es interesante darse cuenta de que, de alguna
manera, todos ellos estn relacionados con este
viejo diodo de Bigote de Gato.

(Elektor)

(130169)

Labs

Mantn los terminales flotantes

Thijs Beckers
(Editorial de Elektor)

La Placa de Desarrollo FPGA de Elektor publicada


en la edicin de diciembre de 2012 [1], usa una
tarjeta micro SD para almacenar los datos de configuracin necesarios en el arranque de la FPGA. La
tarjeta tambin puede ser usada para almacenar
datos, bien por la FPGA, bien por el microcontrolador, o bien por un PC conectado a travs de USB.
Trabajando en una aplicacin para la placa, el diseador Raymond Vermeulen se top de repente con
problemas al usar la tarjeta SD. Despus de programar el FPGA con un nuevo firmware recientemente escrito, la placa de la FPGA al completo dej
de ser detectada por Windows. Se hicieron varias

tentativas para solucionar el problema, como desconectar y volver a conectar el cable USB, buscar
errores de programa, etc; pero todo fue en vano.
Pareca que la tarjeta SD se haba estropeado de
forma repentina. Sin embargo, las pruebas de la
tarjeta en un lector demostraron que funcionaba
correctamente, con lo que el error tena que estar
en otra parte. Pero dnde?
Verificamos cualquier defecto de diseo posible,
y lo hicimos dos veces, se prob cada punto de
soldadura, pero no encontramos ningn fallo.
Volviendo sobre sus pasos, Raymond program la
FPGA una vez ms y entonces se le vino algo a la
cabeza: cuando se programa la FPGA el entorno
desarrollo software requiere que se configure una
buena cantidad de parmetros. En las opciones
de configuracin (ver captura de pantalla), los
terminales de entrada-salida (E/S) no usados
pueden ser configurados. De hecho, deben serlo.
En ese momento Raymond se confes culpable
de haber descuidado justo lo que l haba estado
diciendo constantemente a todos los usuarios de
la Placa de Desarrollo FPGA de Elektor que tenan
que hacer: colocar todos los terminales de E/S
sin usar en forma flotante.
Como los terminales de datos de la tarjeta SD
estn directamente conectados, tanto con el
microcontrolador como con la FPGA en la Placa
de Desarrollo FPGA de Elektor, es obligatorio que
estos terminales se dejen flotantes en la FPGA
cuando no estn en uso. Por defecto, el entorno
de desarrollo deja las E/S sin uso en modo pull
down que, en la mayora de los casos, va bien.
Pero en esta aplicacin no es as y esta configuracin tiene que ser cambiada de forma activa a
float (flotante)!
Despus de que Raymond corrigiese este ajuste y
programase de nuevo la FPGA, la Placa de Desarrollo FPGA cobr vida otra vez y la aplicacin de
Raymond comenz a funcionar sin problemas. Un
claro caso de practicar lo que uno predica, Raymond! Aliviado de haber encontrado al culpable, se
volvi hacia m justo cuando yo entraba a los laboratorios preguntado si alguien tena alguna historia
interesante para las pginas .LABS de este mes...
(130036)

Internet Link
[1] www.elektor.com/120099

26 | junio 2013 | www.elektor-magazine.es

www.elektor-projects.com

elektor

labs

Sharing Electronics Projects


Elektor.LABS es una comunidad online
para apasionados de la electrnica.
Un lugar donde compartir tus proyectos
y tomar partido en aquellos que otros
hayan creado. Se trata de un sitio en el
cual discutir sobre desarrollos y electrnica en general.
El equipo de editores e ingenieros de
Elektor te ofrecer su apoyo hasta nalizar satisfactoriamente tus proyectos. As
mismo, te ayudarn a redactar un artculo
para ser publicado en Elektor.MAGAZINE,
e incluso desarrollar un producto completo que puedes vender en Elektor.STORE!

nete
ya

Elektorzate! Visita www.elektor-labs.com

Labs

Duelo de Medidores LCR


Thijs Beckers
(Editor de Elektor)

No sera interesante comparar nuestro ltimo


medidor LCR 500 ppm con uno de Hameg que
nos han prestado?
S, podra ser interesante.
Si queris, puedo traer un medidor antiguo
de mi coleccin de Retrnica.
Imponente. Vamos a ver la comparativa de
los tres!
Tuve este reciente chat de caf con unos colegas
en el Centro de Operaciones de Elektor que termin ponindome frente a tres Medidores LCR,
con un fondo completamente diferente, para
una rpida prueba prctica. El medidor Hameg
(HM8118 [1], cortesa de Rohde & Schwarz
Holanda [2]) es un instrumento profesional con
un precio de venta de unos 2.000 . El antiguo
medidor del departamento de Retrnica es el
modelo Puente de Impedancia 1650-A de General
Radio Company (GRC), fabricado en 1960, con
un coste de unos 1000 $ de los de entonces [3].
Y, finalmente, el Medidor LCR 500 ppm de Elektor [4], que debera costarnos menos de 400 $
en componentes.

Comenc con el antiguo medidor de GRC. Como


el aparato es ms viejo que yo y menos intuitivo
en trminos de funcionamiento (al menos que
yo), lo primero que hice fue echar una hojeada
al manual. Necesit bastante tiempo para ajustar las cosas y conseguir una lectura de medida
exacta. Aqu est el desglose:
leer el manual: 10 minutos;
entender cmo medir un condensador correctamente: 5 minutos;
realizar una medida real (configurando los ajustes para una desviacin cero): 3 minutos.
Para ser justos, si vamos a usar el 1650-A diariamente, probablemente deberamos ser capaces de ahorrar el 80% del tiempo necesario para
una sola medida. De todos modos, supone ms
de medio minuto por medida. Aunque tengo que
confesar que el aspecto, el tacto y la sensacin
que los robustos diales e interruptores aaden
carcter a este equipo.
Ahora tenemos al HM8118. Como todo dispositivo moderno, ste es (ms o menos) de los
de enchufar-y-trabajar. Despus de la secuen-

Grfico comparativo
DUT Unidad Bajo Test)

GRC 1650-A

Hameg HM8118

Elektor LCR Meter

Resistencia 8.2

8.22

8.2458
(Vx=31,86mV,

8.2379
(Vm=31.13mV,
Im=3.779mA)

Ix=3.862mA)

Condensador 100 nF

Condensador 100 F

Inductor 1 mH

28 | junio 2013 | www.elektor-magazine.es

100 nF
D: 0.0267

92 F
D: 0.1

1.255 mH
Q: 0.63

102.03nF
D: 0.01205
Rs=19.20
(Vx=364.9mV,

102.20nF
D: 0.013
Rs=19,20
(Vm=398.1mV,

Ix=233.9A, 1kHz)

Ix=256.0A, 1kHz)

94.475F
D: 0.10099
Rs=170.27m

92.400F
D: 0.090
Rs=155.4m
(Vm=7.076mV,
Ix=4.091mA, 1kHz)

(Vx=7.301mV,
Ix=4.312mA, 1kHz)
995.85H
Q: 0.49189
Rs=12.722
(Vx=52.60mV,
Ix=3.711mA, 1kHz)

993.2H
Q: 0.492
Rs=12.681
(Vm=51.18mV,
Ix=3.621mA, 1kHz)

comparativa de medidor lcr

cia de calibracin automtica el DUT (Dispositivo Bajo Prueba) se inserta en el soporte


de prueba (Hameg HZ181) y las propiedades
solicitadas del componentes son mostradas al
instante en la pantalla LCD azul retroiluminada.
Tiempo estimado: 40 segundos desde el principio hasta el final, sin leer el manual. Medidas
secuenciales? Vamos a suponer que el cambio
del DUT nos lleva tres segundos, seleccionar la
unidad de medida correcta dos ms, en total,
cinco segundos.
El ltimo, pero no el peor: el Medidor LCR 500
ppm de Elektor. Con slo un LCD, un interruptor
de encendido/apagado y cinco botones, puede ser
tan rpido como uno con enchufar-y-trabajar.
La calibracin es un trabajo de una nica vez,
de la que ya me haba encargado en el prototipo que us para esta prueba, con lo que pude
ir directamente a la medida real y poner el DUT
entre los clips. Tiempo estimado: 10 segundos.
Las medidas secuenciales, probablemente, exigen un poco ms tiempo, comparadas con las del
Hameg que usa los clips Kelvin, pero el soporte
de prueba HZ181 tambin se puede utilizar en
el Medidor LCR de Elektor.

En resumen, la facilidad del uso ha mejorado


mucho desde los aos 60 y, mirando los resultados de medida del Hameg y del Medidor LCR
de Elektor, son de foto finihs. Nuestro pequeo
medidor mantiene el pulso frente al gigante (ver
el grfico comparativo). Por supuesto, no sera
justo ignorar el amplio rango de opciones del
Hameg y la precisin base del 0,05 % tampoco
es algo a menospreciar.
Sorprendentemente, despus de ms de 50 aos
de uso y manejado por un novato, el 1650-A de
GRC an da medidas no muy lejanas. Hablad de
ello con un compaero de laboratorio de confianza. Ya no hacen as las medidas! O s? Os
gusta compartir vuestra experiencia con dispositivos de laboratorio antiguos? Dejadnos un
correo electrnico en editor@elektor.com.
(130166)

Enlaces en Internet
[1] www.hameg.com/13.0.html
[2] testenmeetwinkel.nl
[3] www.elektor.es/075064
[4] www.elektor.es/110758

www.elektor-magazine.es | junio 2013 | 29

Proyectos

Recicla tu Fuente
de Alimentacin ATX
Esta elegante placa adaptadora te lo pone fcil
Ben Jordan (USA)

Esta placa adaptadora de fuente de alimentacin ATX para banco de trabajo nos
permite convertir cualquier fuente de alimentacin ATX de ordenador en una fuente de alimentacin adecuada para trabajar con placas de prototipo y en el banco
de trabajo en general sencilla y elegante.

Prestaciones
Salidas para 12 V, 5 V, 5 V Standby y 3,3 V
No es necesario hacer modificaciones en la fuente de alimentacin ATX.
Encendido y apagado sencillo de la fuente de alimentacin ATX conectada.
Indicacin de estado con LED.
Capaz de trabajar con corrientes de alimentacin elevadas.
Banana hembra para cada tensin de salida.
Ranura para una conexin fcil de las pinzas de cocodrilo.

Todo aquel al que le guste cacharrear con la


electrnica o los sistemas embebidos tiene que
tener una buena fuente de alimentacin. Yo no
s cul es vuestro presupuesto personal para el
equipamiento de vuestro laboratorio, pero el mo
es ms bien, bueno dejadme deciros que estoy
casado con la responsable del departamento de
contabilidad y que ella no es exactamente un
ingeniero electrnico. Probablemente muchos
de vosotros hayis montado algunas fuentes
de alimentacin reguladas lineales a lo largo de
los aos, pero disear y construir una fuente
de alimentacin de laboratorio, variable, de alta
potencia no es una tarea trivial. Y tambin, si
sois como yo, la mayora de lo que intentamos
reparar son circuitos digitales y dispositivos analgicos de baja tensin, como preamplificadores
de audio y similares.
En la mayora de los casos, tengo que trabajar con
un microcontrolador y unos pocos amplificadores
operacionales por lo que, normalmente, para m es
muy til tener una lnea de 5 V para el microcontrolador (y cualquier lgica asociada que pudiese
tener) y las lneas de +/-12 V para los amplificadores operacionales. Cada vez ms, las muestras
de dispositivos con los que trabajo (por ejemplo, el

30 | junio 2013 | www.elektor-magazine.es

DSP DSP56367 de Freescale o el microcontrolador


ARM-7 LPC2101 de ARM) requieren lneas de baja
tensin para el ncleo interno y las E/S, esto es
1,8 V y 3,3 V. Esto se convierte en un verdadero
dolor de cabeza si tenemos que construir una
fuente de alimentacin con todas estas tensiones para cada proyecto. Pero la mayora de estas
tensiones (excepto la de 1,8 V) puede obtenerse
de las fuentes de alimentacin conmutadas ATX
para PCs del mercado. Esto es importante porque,
de alguna manera (no s exactamente cmo),
durante los aos he acumulado varias de estas
fuentes. Todas ellas tienen las salidas de 3,3 V, 5
V, 5 V Reposo (Standby) y 12 V. Sabiendo que,
en muchas de ellas, la regulacin de las lneas de
12 V no es fantstica. Pero, para la gran mayora
de los circuitos con amplificadores operacionales,
es ms que suficiente.
Consideraciones de diseo
As pues, por qu no colocar tan slo un manojo
de bananas hembra de panel directamente sobre
la fuente de alimentacin, como he visto hacer
a tantas personas en la web? Buena pregunta!
Aqu est el por qu:
Las fuentes de alimentacin (PSUs) ATX estn
diseadas con un espacio verdaderamente
pequeo en su interior. Si intentamos colocar
bornes de conexin en la misma, podemos
estar superando las limitaciones de seguridad (que son muy importantes). El lado de la
entrada de Corriente Alterna (CA), la mayora de las fuentes conmutadas sufren picos de
tensin de ms de 1000 voltios y en la lneas
de corriente continua (DC) de unos +370 voltios. No vale la pena arriesgar la vida y las
extremidades!)

adaptador de fuente de alimentacin atx

Tenemos una fuente de alimentacin de ordenador en perfecto estado y, si os pasa como a


m, es posible que queris usarla para alimentar un da unos amplificadores operacionales y
otro la placa base de un ordenador. Por qu
modificarla incluso en su uso original?
As que busqu una solucin de diseo ms elegante que no slo tuviese los bornes de conexin,
sino que tambin tuviese puntos de clips donde
poder colocar unas pinzas de cocodrilo. Con todo ello,
empec a disear una placa para adaptar la fuente
de alimentacin ATX para usarla sobre en el banco
de trabajo. Como sucede con todo, un buen punto
de arranque es el definir algunas especificaciones.

El adaptador debe:
1. No alterar la propia fuente de alimentacin.
2. Usar un conector ATX.
3. Disponer de bananas hembra de panel para
cada tensin de salida de la fuente ATX y para
la tensin de standby.
4. Tener la correspondiente banana hembra de
retorno (GND) para cada tensin de salida.
5. Ser capaz de trabajar con corrientes de alimentacin importantes.
6. Disponer de un circuito de conmutacin para
el controlador on/off ATX.
7. Disponer de LEDs para monitorizar las seales
de Standby y Potencia correcta.

+5V STBY
VSTBY

VSTBY

+3V3
K4

+3V3
C2

C1

C4

100n

100n

100n

K11

16

U1 = TC4049B
K18

S1

100n

100n

J1
1

11

12

13

14

15

16

17

18

19

10

20

K12

R3

K1

K17

4
R4

K16

U1.D
K6

K13

10k

C6
100n

K19

K20

C7

K7

K14

100n

ATX ON

S2

ON

U1.E

11

220R

10

FAULT

U1.F
12

14

15

PB OFF
C3

VSTBY

100n

K8
12V

R2

220R
D2

D1

U1.C

+12V

R1

U1.B

10k U1.A

+12V

12V

PWR OK

K2

U1

OFF
C8

K3

PB ON

K5

C5

K10

K15

+5V0
+5V0

PWR
OK

K9
ATX ON

TP1

PWR OK
120619 - 11

Figura 1.
El esquema elctrico
muestra lo sencillo que es
este adaptador de fuente de
alimentacin.

www.elektor-magazine.es | junio 2013 | 31

Proyectos
8. U
 sar un diseo de placa de taladros pasantes
para que nuestros queridos lectores puedan
hacerse una fcilmente por s mismos.
Tambin haba considerado colocar un medidor
interno de panel con el que poder monitorizar la
tensin de cada salida, pero me di cuenta rpidamente que esto sera un aumento de prestaciones innecesario para esta aplicacin, ya que
las salidas son fijas y estn bastante bien reguladas, y la mayora de los usuarios (al igual que
yo) pueden conectar su multmetro y obtener
una medida mucho ms exacta.

Circuito nada complejo


La Figura 1 muestra la circuitera para este diseo.
El recorrido de conmutacin es un sencillo latch
basado en dos inversores de un inversor 4049 HEX
CMOS, alimentado de la lnea de 5 V de reserva de
la ATX. Las otras puertas del inversor se usan para
controlar la seal de control de encendido de la PSU
y los LEDs. Pulsando S2 encendemos la fuente de
alimentacin, mientras que S1 la apaga de nuevo.
D2, un LED bicolor, indica el estado en modo de
reposo (verde) o en modo de encendido (rojo).
Las fuentes de alimentacin ATX tienen una proteccin incorporada, pero tambin disponen de una

Lista de materiales
Resistencias
R1,R4 = 220
R2,R3 = 10k

Condensadores
C1-C8 = 100nF

Semiconductores
D1 = LED, 3mm, amarillo

Figura 2.
La distribucin de
componentes no
deja espacio para
interpretaciones errneas.
Hay que sealar que el
conector ATX debe ser
montado sobre la cara
inferior de la placa.

32 | junio 2013 | www.elektor-magazine.es

D2 = LED, 3mm, 2 terminales, bicolor


IC1 = TC4049B

Miscelneos
K3-K7, K10-K14 = bananas hembra de panel para la
conexin de bananas macho.
J1 = Conector ATX para montaje en placa.
S1,S2 = Pulsador tctil.

adaptador de fuente de alimentacin atx

salida Power Good (Alimentacin Bien) que le dice


a la placa base cuando la PSU est disponible o si
existe una condicin de fallo. Sera interesante tener
esta indicacin en un LED. Us un LED amarillo para
D1 que indica cuando Power Good est a nivel alto
(Power Good es una seal activa a nivel bajo). De
esta forma tenemos una indicacin de aviso de una
condicin de fallo en la fuente de alimentacin ATX.
En general, cualquier centelleo continuo es malo y
es indicativo de que nuestra fuente de alimentacin
probablemente tiene un problema.
Todos los condensadores proporcionan un cierto
desacoplo para las diferentes salidas de alimentacin, excepto C2, que se usa para eliminar los
rebotes del circuito de encendido/apagado. Todos
los condensadores son cermicos de 100 nF. R1 y
R4 son resistencias de limitacin de los LEDs, mientras que R2/R3 forman los caminos de realimentacin para el doble latch inversor de con./desc..
He visto a otras conversiones de fuentes de alimentacin ATX en fuentes de alimentacin de banco de
laboratorio donde colocan una mnima resistencia
de carga en las salidas. Segn mi experiencia, esto
no es necesario ya que el ventilador, generalmente,
es una carga mnima suficiente y la mayora de
las fuentes de alimentacin conmutadas modernas
estn diseadas para trabajar con una carga cero
en cualquier caso. Pero si esto os hace sentiros
mejor, podis conectar una resistencia de 10 20
W a la lnea de 5 V (en general, 10 bastarn),
soldando la resistencia de potencia entre los bornes
de conexin de 5 V y GND, en su parte trasera.
Diseo de la placa
Esta placa adaptadora acta como una placa separacin, con un conector ATX y la circuitera necesaria de encendido/apagado, as como con unos bornes de conexionado de separacin estndar donde
enchufar el tpico conector de dos bananas macho.
El plano de serigrafa que se muestra en la Figura
2 sirve como gua para posicionar los componentes.
Hay que sealar que el conector de la fuente de alimentacin ATX debe montarse en la cara posterior
de la placa, con el resto de los componentes en la
cara frontal. Una novedad adicional de esta placa
son las ranuras plateadas nicas que hay en cada
uno de sus bordes, las cuales se usan tambin para
conectar puntas de prueba del tipo cocodrilo. El
texto de la serigrafa indica la tensin de salida de
cada punto de prueba. El diseo de la placa est
disponible para su descarga en PDF en [2].
Los taladros pasantes plateados, numerados de
K3 a K14, son para atornillar sobre la misma la

parte trasera conductora del borne de conexin


de la banana. Sealar el uso de mltiples vas en
crculo alrededor de cada uno de estos taladros
y tambin alrededor de los agujeros de montaje.
Estas vas ofrecen una mayor fuerza de apriete de
los tornillos a la placa y tambin, para los bornes
de conexin, proporcionan un buen camino de
baja resistencia a travs de la placa.
En la prctica
Esta placa adaptadora ATX ofrece conectores tipo
jack estndar de 0,75, espaciados para conectores de doble banana y dispone de bananas hembra de panel, con codificacin de color, para cada
una de la tensiones de alimentacin: 5V standby,
3,3V, 5V, +12V y 12V. He estado usando esta
placa de modo continuo, tanto en el trabajo como
en casa, alimentando varios kits de desarrollo a
partir de una nica fuente de alimentacin ATX.
En el trabajo tengo una Nanoboard-II de Altium
y dos placas de desarrollo Nanoboard 3000 FPGA
de Altium tambin, todas funcionando al mismo
tiempo con una nica fuente de alimentacin,
as como algn que otro dispositivo. Realmente
este equipo me ha simplificado mucho las cosas!
(120619)

Enlaces en Internet
[1] http://jordandsp.com/ATX-bench-top-powersupply-adapter.php
[2] www.elektor.es/120619

La quiero
Este proyecto est disponible como kit completo en una edicin
limitada, con la placa y todos los componentes, incluyendo las bananas
hembra de panel, los componentes y un conector ATX, adems de
un conjunto de instrucciones claras y comprensibles que incluyen el
esquema elctrico y el diagrama de ensamblado de la placa, as como
las plantillas de taladrado para el montaje del panel. Visita [1] para
ms informacin sobre precio y pedido.

www.elektor-magazine.es | junio 2013 | 33

Proyectos

Desde la Electrnica
a la Carpintera

Cruzando el mundo en el nombre


de los electrones!
David Cuartielles

Cuando hablamos de electrnica me

(Espaa)
Imgenes de

interesan dos mundos diferentes: los

Laura Balboa
(Mxico)

objetos conectados y la educacin en


la tecnologa en los primeros aos. El
mundo de los objetos conectados est
en crecimiento, hay una gran cantidad
de trabajo que hacer y ofrece un gran
nmero de oportunidades para sorprendentes logros de ingeniera. Por contra,
el mundo de la educacin es bastante
ms complejo y deja mucho espacio
para la improvisacin. A menudo el
campo parece rgido y el camino para
llegar all difiere mucho del diseo de
los objetos conectados.
Normalmente dedico unas 2500 palabras en
explicar una historia divertida a la gente que est
interesada en la electrnica, pero este mes me
gustara hacer algo ligeramente diferente. Quiero
contaros una historia de cmo los tomos y los bytes
me llevaron a irme al sitio ms lejano posible de
mis ubicaciones cotidianas. Tambin es una historia
de cmo la electrnica nos conecta al mundo de
un modo diferente. Esta entrega debera haberse
llamado realmente: Desde las Artes Electrnicas
a los Trabajos de Carpintera, pero el ttulo es
demasiado largo y no demasiado cautivador.

Lista de materiales

Figura 1.
Iglesia de Zegache, Mxico.
Foto cortesa de Talleres
Comunitarios.

34 | junio 2013 | www.elektor-magazine.es

Para reproducir cualquiera de los proyectos


tratados o mencionados en este artculo
necesitaris:
El Kit de Inicio oficial de Arduino.
Un micro-servomotor, estndar (180 grados).
Un altavoz cnico de papel de 8 ohmios.
Un sensor de distancia de infrarrojos de la casa
Sharp.

Arduino en Mxico

Experiencia #1: llegar all


Santa Ana Zegache es un pueblo al sur de
Oaxaca, Mxico. Est a ocho horas en coche
desde la Ciudad de Mxico. Es posible volar hasta
el aeropuerto de Oaxaca, lo que har que el
viaje durar la mitad pero, para experimentar,
la primera vez que fuimos all decidimos hacerlo
en coche (ver Figura 1).
Santa Ana es un pueblo arquetipo. Dicen que tiene
unos 5.000 habitantes, pero es difcil saberlo.
Llegamos all por primera vez el 27 de diciembre
de 2011. No fue demasiado sorprendente para
m encontrarme con carreteras sin asfaltar y
que muchas de las construcciones estuvieran
en ese estado de constantemente inacabadas,
con varillas de metal sobresaliendo del hormign.
Slo hay una plaza en todo el pueblo. El
ayuntamiento, la escuela, la iglesia y los dos
nicos cafs con Internet estn ubicados all. La
Iglesia ha sido reformada con el esfuerzo una
fundacin creada por Rodolfo Morales, y aqu cito
textualmente lo que pone en la pgina web que
aloja el proyecto que me trajo a Mxico:
El maestro pintor, Rodolfo Morales, vio Zegache
como una ciudad de un valor incalculable.
Dedic la ltima parte de su vida a recuperar y
restaurar su iglesia. Sin embargo, l nunca vio
completadas todas las ideas que motivaban su
visin filantrpica: preservar su herencia artstica y
revivir las vocaciones ms antiguas de la regin.
Para reformar la Iglesia se cre un taller donde
se ense a un grupo de personas del pueblo la
profesin de la carpintera. Gracias a la generosidad
de la Fundacin Alfredo Harp Hel, la Fundacin
Rockefeller, La Curtidura y al Sr. y la Sra. Sandretto,
los lugareos fueron capaces de continuar su trabajo
a lo largo de una dcada. Se ensearon unos a otros
el arte de la carpintera y tambin la restauracin
de cualquier tipo de madera. En la Figura 2 se
muestra el taller de trabajo.
Hoy da continan activos restaurando las iglesias
vecinas as como la iconografa religiosa de
cualquier parte de la regin. Su taller est repleto
de manos talladas a mano, imgenes de Cristo
y espejos, muchsimos espejos.
Durante bastante tiempo, la produccin de
espejos ha sido su primera fuente de ingresos
adems de la restauracin. Han invitado a artistas
de todas partes del mundo a participar en cortos
programas de residencia donde aprenden a
conocer la ciudad, el taller y sus espejos. Existe
un tipo tradicional de espejo que los artistas
quieren copiar. La idea es que el taller llegue

a ser capaz de hacer cinco rplicas idnticas de


un diseo hecho por el artista invitado y venderlas
a un precio establecido. Estas piezas de edicin
limitada tiene una doble funcin: por supuesto,
no slo una pequea fuente de ingresos, sino
que tambin dejan saber al mundo como es su
taller, la ciudad y la gente que vive aqu. Echad
una ojeada a los espejos de la Figura 3. Este

Figura 2.
Vista general del taller de
Zegache.

Figura 3.
Espejos producidos en
Zegache.

www.elektor-magazine.es | junio 2013 | 35

Proyectos

Figura 4.
Vista del improvisado taller
Arduino en el taller de
Zegache.

fue mi primer contacto con la ciudad: condujimos


hasta all, empleamos un par de horas visitando
el taller e intent imaginarme cmo sera hacer
all un taller donde poder ensearles algo sobre
Arduino: disponan de un poco de electricidad,
no haba tiendas en un radio de 25 millas, no
haba conexin local a Internet y tan slo haba
un par de ordenadores personales.

Experiencia #2: ensear lo que sabes


Era febrero de 2012 cuando hicimos nuestra
segunda visita a Zegache. Ya conocamos las

Figura 5.
Proceso de construccin
de espejos y juguetes
interactivos en Zegache.

36 | junio 2013 | www.elektor-magazine.es

condiciones, as que haba preparado mi equipaje


adecuadamente: adems de mi PC, traje un
soldador, ocho kits de inicio Arduino, algunos
sensores, algunas shieds de prototipos, un
lote de altavoces con cono de papel, un par de
PenDrives USB y CDs con los programas que
crea necesarios (no haba posibilidad de intentar
descargar nada en los cafs locales con Internet).
Durante nuestra primera visita me hice un mapa
de las tiendas de electrnica locales en Oaxaca,
la capital de la regin, a una hora de coche de
Zegache, y ya tena una idea clara de lo que poda
y no poda conseguir all: pulsadores, cable, LEDs
o bateras no iban a ser un problema.
Trajimos un puado de hojas grandes de papel,
ya que nos disponamos de ninguna pizarra o
proyector para hacer funcionar el taller como
habitualmente lo hacemos; adems de algunos
lpices. As pues, el taller Arduino qued instalado
tal y como se muestra en la Figura 4.
Los participantes estaban agrupados en equipos de
tres y comenzamos a ensear las ideas bsicas de
un banco de trabajo tpico Arduino. Cada equipo
(cinco en total) tena su propio ordenador, su kit de
inicio y todos los programas que podran necesitar.
Empleamos una semana en hablar sobre
la electrnica bsica: entradas y salidas
digitales, conversin analgico/digital, qu es
la programacin o qu es un IDE Un da vi a
una chica que pasaba su tiempo copiando y
pegando, usando las teclas rpidas (Ctrl+C,
Ctrl+V). Nunca pens que esto podra ser una
experiencia tan fascinante, pero lo era. Imaginad
que cogis algo de un sitio y que puede ser copiado
mgicamente desde un sitio al siguiente! Creo que,
a veces, olvidamos lo mgica que la electrnica
digital puede ser, haciendo que las cosas tiles
sean comparables a algo como ser un mago.
Despus de estar tres das hablando de bits y bytes,
cambiamos al proceso de construir cosas. Hicimos
un proceso de crear ideas donde invitamos a la
gente de la ciudad a inventar sus propios espejos
interactivos, con tan slo aadir sonidos y LEDs
a los mismos. La experiencia de las dos semanas
restantes la dedicamos a construir cajas de madera,
tallndolas para que fuesen bonitas, pintndolas
a mano, soldando los LEDs y programando las
distintas interacciones. Todo el mundo estaba
ocupado, como podemos ver en la Figura 5.
Fue una experiencia reveladora por varios motivos:
1.la gente de aqu est acostumbrada a colaborar
en cualquier sentido, sin importarles si ya

Arduino en Mxico

Figura 6.
Proyectos hechos durante
nuestro primer taller.

estn trabajando en su propio proyecto.


Siempre encuentran tiempo para ayudar a
los otros. Ni que decir tiene que los cinco
proyectos se acabaron en el espacio de tiempo
lmite que habamos establecido.
2.Nunca se trabajaba demasiado tiempo: los das
de trabajo duraban hasta las seis de la tarde,
hora en que la gente se marchaba a casa a
cuidar a sus familias. Adems, la iglesia cerr
TODAS sus instalaciones, de manera que todo
el mundo tena algo que hacer.
3.Reciclbamos todo. Seguro que habis odo que
usando herramientas digitales como cortadores
lser conseguimos que la gente sea ms eficiente
con los materiales bien, para los proyectos que
hemos hecho en este taller, no hemos comprado
ni un solo trozo de madera. Si necesitaban
un trozo de madera de unos 40 cm de largo,
pegaban dos trozos de 20 cm y conseguan hacer
una nueva pieza del tamao que deseaban.
4.No slo aprendieron electrnica bsica, sino
tambin a soldar y a montar cosas a mano.
Todos los proyectos consiguieron funcionar y
pude comprobar, un ao despus, que seguan
funcionando sin problemas durante mucho tiempo.
Nuestro primer taller acab con una lista de los
proyectos hechos aqu (ver Figura 6):

Un Espejo Mgico que crea secuencias de luz y


sonido presionando diferentes botones.
U na Jukebox (caja de msica) que aade
instrumentos a un fondo de sonido.
Una Bandeja donde hacer juegos con bebidas
(sin comentarios)
Un Espejo Cotilla que te hace cumplidos cuando
pasas delante de l.
Un joyero que reproduce diferentes melodas
y luces cada vez que lo abres.

Experiencia #3: aprender todo lo que


puedas
Ya lo he mencionado antes, pero esta completa
experiencia forma parte de un proyecto de la
Comunidad Europea de las Artes, llamado Euroaxca,
donde diferentes artistas artesanos de ambos lados
del Atlntico colaboran y comparten experiencias de
diferentes campos. Como parte de este proyecto,
an tena en mi agenda una segunda experiencia
y, considerando los buenos resultados que consegu
en la primera, estaba un poco indeciso sobre cmo
afrontar la siguiente fase del proyecto.
En mi opinin, debera ser posible que el
carpintero de Zegache aprender las bases de
la construccin de juguetes interactivos y que
los replicasen de la misma manera en que lo
haban hecho con los espejos. Y, despus de

www.elektor-magazine.es | junio 2013 | 37

Proyectos
Tambin dijo que un pjaro podra ser algo
acertado. As que decid intentarlo: vamos a hacer
un pjaro robot (les dije a mis compaeros de
equipo cuando estbamos dejando Suecia en
direccin a Mxico, exactamente un ao despus
de haber vuelto de nuestro primer viaje.
No han cambiado muchas cosas en Zegache o
en el taller. Algunos se han ido, algunas caras
nuevas En la plaza han construido una enorme
estructura para proporcionar sombra. Tambin han
aadido dos porteras para que los nios jugasen
al ftbol (podis imaginar el calor que hace all
durante el da) y haban descubierto una manera
de tener un tipo de Internet en el taller: alguien
de la ciudad consigui una conexin DSL (por
alguna razn no est permitido que todo el mundo
Figura 7.
Piezas de un pjaro robot
hechas a mano.

Figura 8.
Los elementos e que va en
el interior el pjaro robot.

algn tiempo, ser capaz de hacer sus propias


modificaciones y trabajos originales.
Pero este objetivo ya estaba cubierto. Vimos que
era posible llevar a la gente un nivel operativo
de electrnica, despus de tan slo dos semanas
de trabajo dedicado a construir sus propios
proyectos. As pues, la cuestin para m era:
qu hacer a continuacin?
La respuesta vino de la coordinadora del proyecto
de la UE. Ella sugiri que mirsemos la posibilidad
de hacer algn tipo de personajes animados.

Listado 1.
Programa de trabajo de un pjaro robot
//*
* Zegache Robot
*
* (c) 2013 D. Cuartielles
*/
#include <Servo.h>
Servo myservo;
int
int
int
int

sensorPin = 0;
speakerPin = 8;
servoPin = 9;
val;

void setup()
{
myservo.attach(servoPin);
pinMode(speakerPin, OUTPUT);
}
void loop()
{
val = analogRead(sensorPin);
if ( val < 250 && val > 50) {
myservo.write(50);
tone(speakerPin, val);
delay(200);
myservo.write(100);
noTone(speakerPin);
delay(100);
myservo.write(120);
tone(speakerPin, val);
delay(200);
myservo.write(0);
noTone(speakerPin);
delay(200);

38 | junio 2013 | www.elektor-magazine.es

Arduino en Mxico

la tenga) y la comparti con todos a travs de


diferentes repetidores wifi colocados a lo largo
de toda la ciudad. Tendremos suerte si podemos
leer el correo en dos ordenadores al mismo tiempo.
La interaccin en este caso era muy sencilla.
Me acerqu a alguno de los hombres del taller
y les habl sobre hacer unos pjaros robots.
Abrieron sus bolsas de trucos y comenzaron
a tallar diferentes tipos de pjaros que podan
mover las alas, la cola, abrir sus picos o sacudir
la cabeza. En la Figura 7 se muestran las piezas
artesanas. Nos llev dos das hacer el primer
pjaro, despus de esto, los otros tres pjaros
se hicieron en muy poco tiempo.
Cuando comenzamos con el programa y el
circuito todo era bastante sencillo. En la Figura
8 se muestran las distintas partes de forma
esquemtica. Todos los pjaros tienen un sencillo
micro-servomotor que empuja un muelle para
que muevan las distintas partes del pjaro a
la vez. Sobre todo esto, hay un altavoz que
reproduce algunos sonidos bsicos. Y un sensor
de infrarrojos detecta lo lejos que est la gente
del pjaro. La idea es que el pjaro se parezca
a una escultura de madera (Figura 9) hasta
que alguien est cerca de l. En ese momento,
se produce un sencillo mtodo de interaccin:
moviendo nuestra mano delante del sensor se
generan diferentes tonos.
Echad un vistazo al cdigo del Listado 1 y veris
lo sencillo que puede ser hacer nuestro propio
pjaro robot. Por supuesto, hay mucho espacio
donde mejorar en lo referente a la produccin de
sonido, pero he tenido que hacer algo que fuese
sencillo para que la gente de Zegache pueda
cambiarlo por ellos mismos. Estamos planificando
que, para un prximo viaje, nos concentraremos
en hacer juguetes con mejores sonidos, pero esto
es parte de una nueva historia.

Figura 9.
El pjaro con respuesta
automtica terminado.

Referencias
[1] Proyecto de taller de Zegache: http://proyectozegache.com/index_en.php
[2] Proyecto Euroaxaca EU: http://euroaxaca.org/

Palabras finales
La electrnica puede ser un proceso que no
solamente te ensea cmo funcionan las cosas;
tambin es un vehculo para conocer el mundo
a tu alrededor. Tener una mente abierta puede
ayudarnos y mostrarnos cmo hacer proyectos
interesantes con tan slo trabajar junto a la gente
que te rodea en todo el mundo. Coge tu placa
Arduino, tu mochila de trucos y habla con tus
amigos y vecinos. Anmales a hacer juguetes y
objetos interactivos.
Recordad: Compartir es ser solidario!
(120751)

Agradecimientos
Gracias a Geska y a Robert por realizar
las fotos, que comenzaron el proyecto
Euroaxaca y me invitaron amablemente a
unirme. Tambin quiero dar las gracias al
pueblo de Zegache por su hospitalidad y
recordarme que hay muchos ms objetos
electrnicos adems de los bytes.

www.elektor-magazine.es | junio 2013 | 39

Magazine

El Triunfo de
la Robtica Educativa
Semana de la Robtica
en la Universidad de Alcal 2013

Eduardo Gallego

Desde el ao 2000, gracias al alto grado de implicacin de su Departamento

(Espaa)

de Electrnica, la Universidad de Alcal de Henares es un referente nacional e


internacional en todo tipo actividades relacionadas con la robtica para entusiastas
y universitarios. Desde el ao 2008, todo este conjunto de actividades se agrupan
dentro de la llamada Semana de la Robtica donde conviven las competiciones de
robots con charlas, conferencias, presentaciones, talleres y demostraciones.

Ms all de las clsicas pruebas, competiciones


y de una importante sucesin de interesantes
charlas, conferencias y talleres, este ao en
el que Elektor ha colaborado como patrocinador la Semana de la Robtica [1] ha contado
con algunas novedades que, para satisfaccin
de los organizadores, han resultado un xito con

40 | junio 2013 | www.elektor-magazine.es

un alto grado de aceptacin por parte de los


participantes.
En los ltimos aos, se ha hecho patente la presencia de la Asociacin de Robtica Educativa
Complubot como colaborador y co-organizador de
este evento, en el que han cobrado gran relevancia las actividades relacionadas con la robtica y

Semana de la Robtica

la educacin, especialmente las orientadas a los


estudiantes de primaria y secundaria.
La primera de las novedades de esta edicin ha
sido que la Semana de la Robtica ha adquirido
una dimensin real, desarrollando una frentica
actividad ininterrumpida durante los siete das
de la semana, fin de semana incluido. Pero hubo
muchas ms

PrinterParty
Las impresoras en 3D estn experimentando un
crecimiento sin precedentes gracias a proyectos
como CloneWars [2], que permiten replicar estas
mquinas de forma sencilla y accesible.
Al igual que las tcnicas de prototipos rpido
para circuitos electrnicos, o los simuladores para
nuestros programas, la impresin de elementos
en 3D supone un gran avance de especial inters
para la tecnologa robtica, ya que nos permite
disear y obtener resultados fsicos en un breve
espacio de tiempo. Con este tipo de mquinas
se pueden disear e imprimir fcilmente piezas
que pueden servir como simples modelos o como
elementos funcionales.
En la PrinterParty de la Semana de la Robtica de la Universidad de Alcal se reunieron
ms de 30 impresoras, procedentes mayoritariamente de diseos open. Todas ellas trabajaron de forma conjunta en la fabricacin de las
piezas necesarias para construir una serie de
pequeos robots, que posteriormente se utilizaron en otros talleres y actividades dentro de
la Semana de la Robtica.

El proyecto TuBot
El proyecto TuBot naci como fruto de la colaboracin entre el Departamento de Electrnica
de la Universidad de Alcal (UAH) y la Asociacin de Robtica Educativa Complubot [3] con
el objetivo de acercar la robtica educativa a un
grupo de estudiantes de secundaria tan grande
como fuera posible. Para hacerlo posible, se han
unido la capacidad organizativa del Departamento
de Electrnica de UAH y los ms de 10 aos de
experiencia de Complubot en la formacin de
estudiantes en este campo.
De entre las ms de 70 solicitudes de inscripcin, fueron seleccionados 24 centros de
enseanza de Gerona, Albacete, Guadalajara
y Madrid, un total de 48 alumnos en equipos
de dos estudiantes.
El material didctico necesario para este proyecto fue especialmente desarrollado por Com-

plubot en forma de robot imprimible bajo el


nombre de CB-2 [4], una sencilla plataforma
educativa de bajo coste, que permite construir
un robot basado en una placa procesadora
Arduino con un par de servos de RC modificados para rotacin continua y unos pocos sensores y componentes electrnicos. La totalidad
de los elementos estructurales son piezas de
plstico fabricadas mediante impresin en 3D.
El departamento de Electrnica de la UAH proporcion de forma totalmente gratuita todo el
material necesario para que cada uno de los
equipos participantes llevara a cabo el montaje
de su propio robot.
La primera parte de este proyecto se desarroll a
lo largo del sbado. Se formaron dos grupos de
alumnos compuestos por 12 equipos cada uno
de ellos. Cada grupo, dirigido por un monitor de
Complubot, con la colaboracin de profesores y
voluntarios de la UAH, recibi una jornada completa de formacin en robtica. Al terminar, todos
los equipos consiguieron su robot (ms o menos
terminado) y adquirieron nuevos conocimientos
y un montn de ideas.
Cabe destacar que Nerea e Ivn, los monitores
de Complubot al cargo de estos talleres, a pesar
de su juventud 20 y 18 aos respectivamente
cuentan con una larga experiencia en el mundo
de robtica, acumulando cerca de 50 premios
internacionales y, entre ellos, cuatro campeonatos del mundo consecutivos de Socer de la
RoboCupJunior desde 2008 al 2011.
La segunda parte de este proyecto se traslad

www.elektor-magazine.es | junio 2013 | 41

Magazine

al mircoles siguiente para que los estudiantes dispusieran de tiempo para prepararlo. La
actividad debera ser necesariamente sencilla,
pero al tiempo tendra que permitir explorar
distintos caminos y posibilidades a los participantes. Un torneo de mini-sumo reuna estas
cualidades.
Dada la distancia a sus lugares de residencia,
solo 19 de los 24 equipos pudieron participar
en este torneo. A pesar de disponer de solo
cuatro das y del bajo nivel de conocimiento
robtico de partida (nulo en algunos casos),
casi todos los equipos consiguieron un mnimo
nivel de movilidad del robot, e incluso algunos
de ellos implementaron sistemas de localizacin
del adversario.
Una de las participantes, una joven estudiante
de 4 de ESO, comentaba tras la competicin:
Desde nia tena muy claro que carrera quera
estudiar y nadie era capaz de hacerme cambiar
de opinin. Hoy he visto que estaba equivocada
y que en realidad quiero estudiar Ingeniera de
Telecomunicacin.

El campeonato nacional de la
RoboCupJunior
La RoboCupJunior es la mayor competicin mundial robots en arquitectura abierta (cualquier
hardware/software) para jvenes estudiantes
de hasta 19 aos y consta de tres modalidades:
Socer, Resue y Dance.

42 | junio 2013 | www.elektor-magazine.es

Durante la Semana de la Robtica tuvo lugar la


fase nacional de seleccin en la modalidad Rescue que cont con la participacin de 7 equipos
en la categora de primaria, hasta los 14 aos,
y 5 en la de secundaria, hasta los 19.
Esta prueba consiste en disear, construir y programar un robot que sea capaz de desenvolverse
por un escenario tridimensional realizando una
serie de tareas. El robot ha de superar obstculos,
pendientes e irregularidades cuya dificultad se
incrementa a medida que avanza por la pista. El
camino est marcado por una lnea negra sobre
fondo blanco que en ocasiones desaparece de
forma parcial o total. Al igual que en el resto
de las pruebas de la RoboCupJunior, los participantes han de acreditar la autora de su trabajo
ante un jurado de expertos en robtica. Los profesores y mentores no pueden trabajar directamente en el proyecto. Adems, se trabaja con
robots autnomos que solo reciben indicaciones
de sus sensores y que actan en funcin de la
inteligencia artificial implementada mediante su
programacin.
La participacin de cada equipo se completa con
un poster en el que deben mostrar los aspectos
ms destacados de su proyecto con el objetivo
de comunicar y transferir esta informacin al
resto de los participantes.
La puntuacin final se obtiene como suma de
los resultados obtenidos en cada uno de los tres
aspectos: competicin, entrevista y poster.

Semana de la Robtica

La Gynkana de Robtica Educativa


Otra de las novedades de esta edicin, quiz
la ms prometedora desde el punto de vista
didctico, fue la Gymkana de Robtica Educativa organizada por Complubot en la maana
del domingo que cont con la participacin 36
jvenes estudiantes de entre 6 y 12 aos. Esta
actividad estuvo compuesta por un conjunto de
pruebas que los participantes fueron realizando
de forma secuencial en grupos de seis chavales.
Las pruebas trataban de ofrecer actividades ldicas y educativas que de alguna forma estuvieran
relacionadas con la tecnologa robtica o que permitieran el desarrollo de habilidades necesarias
para desempearlas.
Puzzles electrnicos con Littel Bits. Una
divertida forma de iniciarse en el mundo de
los montajes y circuitos electrnicos sin el ms
mnimo peligro.
Robots y robtica. Una actividad multimedia
donde poder aprender a diferenciar un robot
de otros sistemas (algo no trivial hoy en da
donde el trmino robot se aplica a cualquier
cosa), as como tener la oportunidad de interaccionar con algunos de ellos
Crea tu propia Plastilina conductora. Una
divertida actividad donde poder cocinar una
plastilina con propiedades conductoras de
forma que se pueda realizar pequeos circuitos con ella [5].
Fomento del pensamiento lgico. Conjunto
de juegos destinados a fomentar las capacidades bsicas para el desarrollo del mtodo
cientfico: observacin, identificacin, elaboracin de hiptesis.
Impresin de objetos en 3D. Una primera
aproximacin al mundo del diseo e impresin
de objetos en 3D.
Control de motores y lectura de sensores mediante Scratch. Usando como base
el popular entorno de programacin por bloques conocido como Scratch [6], una sencilla
y potente herramienta que permite la realizacin de actividades interactivas y multimedia,
tales como controlar y leer sensores externos
un primer paso en el camino de la robtica
educativa.

vidades a las exigencias de los nuevos tiempos,


ofreciendo un amplio nmero de ellas para los
ms jvenes. Todo un acierto que se ha visto
reflejado en el alto grado de participacin y
satisfaccin de los participantes. Todo un reto
a superar en futuras ediciones!
(130176)

Referencias
[1] Semana de la Robtica UAH: www.alcabot.
com
[2] Proyecto Clone Wars: www.reprap.org/wiki/
Proyecto_Clone_Wars
[3] Asociacin de Robtica Educativa
Complubot: www.complubot.org
[4] Robot CB2: complubot.educa.madrid.org/
pre/pre.php
[5] Plastilina conductora: www.youtube.com/
watch?v=CW3RjOU24mM
[6] Scratch: scratch.mit.edu

Este ao la Semana de la Robtica de la UAH


ha conseguido mantener el alto nivel tecnolgico del que hizo gala en ediciones anteriores,
actualizando al mismo tiempo su oferta de acti-

www.elektor-magazine.es | junio 2013 | 43

Proyectos

Controlando nuestra propia


electrnica fcilmente
Conectar placas al PC mediante UART y SPI

Jens Nickel

Con un protocolo basado en texto y una conexin con un PC podemos controlar

(Editor de Elektor)

nuestra propia electrnica desde un programa terminal. Con la Librera de


Firmware Embebido puede programarse rpidamente el software adecuado para
ello, independientemente de si queremos utilizar el UART del controlador u otro
puerto. El protocolo presentado aqu resulta perfecto para realizar pruebas y
desarrollos posteriores.

En la ltima edicin presentamos la Librera de


Firmware Embebido (EFL, Embedded Firmware
Library) en C [1]. Tanto principiantes como usuarios avanzados pueden obtener rpidamente el
cdigo para su proyecto embebido, que es independiente del hardware utilizado, y puede portarse de una placa a otra, y de controlador a
controlador. Esto se consigue con una capa de
abstraccin de hardware, que consiste en un

44 | junio 2013 | www.elektor-magazine.es

archivo especfico para cada placa y otro para


cada controlador.
Sin embargo, la modularidad de la librera va ms
all. Pueden programarse libreras de protocolo
independientemente del canal de transmisin utilizado. Tampoco importa si los comandos y datos
circulan por ejemplo a travs del UART/RS232/
RS485 o TCP/IP/Ethernet. Cambiar el canal de
transmisin en la aplicacin es cuestin de unas

librera de firmware embebido

pocas lneas de cdigo. En este artculo mostramos un protocolo til para tareas de control
sencillas, as como para propsitos de desarrollo.

Mini-protocolo
En el desarrollo de cualquier cdigo, algunas pruebas sencillas como iluminar un LED o muestrear
una entrada digital pueden ser de gran utilidad.
A menudo las placas de desarrollo no incluyen
ms que algunos pulsadores para realizar pruebas. Aqu veremos cmo controlar la placa desde
un PC, por ejemplo mediante el puerto serie. Si
nos limitamos a los caracteres ASCII, entonces
podemos enviar comandos cmodamente desde
un programa terminal; en tal caso, no es necesario un software de PC propio.
Con nuestro mini-protocolo (llamado BlockProtocol) pueden ponerse los pines a nivel alto
o bajo desde el terminal en el PC. Si controlamos un pin con un LED conectado, veremos el
resultado directamente, si no es el caso, basta
con conectar un multmetro o un osciloscopio.
Tambin puede tratarse de sencillos comandos
para conocer el estado de las entradas digitales
y el valor del ADC de las entradas analgicas
(ver el cuadro BlockProtocol). Si queremos
tambin podemos ampliar el cdigo del correspondiente mdulo de la librera y adaptarlo a
nuestros propios propsitos. Quiz a alguno
de los lectores le sirvan de inspiracin los protocolos de control de Andreas Eppinger [2] y
Uwe Altenburg [3], ya que ofrecen multitud de
funciones ms.

Mapa, bloques y pines de la placa


Especialmente para propsitos de desarrollo con
la EFL, el BlockProtocol dispone del comando x.
La placa enva de este modo un volcado de las
tablas de la EFL al PC. stas son utilizadas por
la capa de hardware para determinar los pines
de controlador y registros correspondientes. Los
valores utilizados son especficos de la placa y
cualquier otra placa de expansin conectada. La
captura de pantalla de la figura1 muestra lo
que aparece en el programa terminal utilizando
las placas mostradas ms abajo. A la izquierda
podemos ver el mapa (map), con el cual se inicializan mdulos del controlador como el UART y
el ADC. En el centro estn los bloques de los perifricos y a la derecha un listado de los pines de la
placa. Se trata de valiosa informacin para todo
el que quiera programar o adaptar un archivo
EFL para una nueva placa. La informacin deta-

{1}

SENSOR

[5]
{2}

RS485

[3]

SENSOR

(+0)

(4)

(+1)

(5)

(+2)

(6)

(+3)

(7)

(+4)

(8)

(+5)

(9)

3.0/RXD

ADC/2.0
ADC/2.1
ADC/2.2

ADC/SCL/2.5
MOSI/1.3
MISO/1.4
SCK/1.5

{0}

3.2

(10)

3.3

ADC/2.3
ADC/SDA/2.4

3.1/TXD

(11)
(0)

3.4
3.5
3.6
3.7

[4]

[0]

(1)
(2)

[2]

(3)

[1]
(12) (13) (14)

(15)
120668 - 16

llada sobre el funcionamiento interno de la EFL se


encuentra resumida en un documento adicional,
que puede descargarse en [1].

Controlando mediante el UART


Queremos ilustrar con un ejemplo lo fcil que
resulta utilizar el protocolo en nuestra propia
aplicacin del controlador. Para ello nos servimos de uno de los nodos experimentales de la
conocida serie ElektorBus, una placa compacta
que incorpora un ATmega328. Como siempre, el
nodo experimental funciona a travs del RS485,
mediante un conversor USB/RS485 y ste a su
vez conectado a un PC (figura2). En lugar del

Figura 1.
Salida de tablas EFL en un
programa terminal. A la
izquierda puede verse el
mapa con las caractersticas
del controlador utilizadas
(nmeros rojos en el
diagrama de bloques de la
placa), en el centro la tabla
de bloques (nmeros azules)
y a la derecha los pines de
la placa (nmeros verdes).

www.elektor-magazine.es | junio 2013 | 45

Proyectos
entrega, ya que utilizamos la misma placa y el
mismo controlador. En el directorio Libraries
encontraremos los archivos UARTInterface.h/.c.
stos forman la librera para el puerto UART de
la placa, en este caso a modo nuestro driver
RS485 (capa fsica de la comunicacin). Luego
tenemos un mdulo para el protocolo utilizado
(BlockProtocolEFL.c/.h). Ambos mdulos de
librera utilizan un interfaz de cdigo especfico (el llamado interfaz de software), que en
la prctica para nosotros es igual.

Cdigo ms corto
En el cdigo real de la aplicacin (incluido como
siempre en el archivo principal) hemos de integrar las libreras mediante:
#include UARTInterfaceEFL.h
#include BlockProtocolEFL.h
Figura 2.
Mediante UART/RS485 y
un sencillo protocolo de
texto en ASCII podemos
controlar nuestra placa de
microcontrolador desde un
programa terminal.

protocolo del ElektorBus, aqu utilizaremos el


BlockProtocol basado en texto.
El firmware correspondiente para el controlador puede descargarse en [4], aparte la aplicacin se incluye en el cdigo de la EFL [5]
(en el documento adicional podemos echar un
vistazo a este archivo). Haciendo doble clic en
ExperimentalUART.atsln se abrir el proyecto
en Atmel Studio, vase la captura de pantalla (figura3). En la parte derecha podemos
ver los archivos que se incluyen. Los archivos
Controller.h/.c y Board.h/c forman la capa de
hardware. Se trata del mismo cdigo que en
el software de ejemplo de la EFL de la anterior

Listado:
implementando una aplicacin con la EFL.
int main(void)
{
Controller_Init();
Board_Init();
Extension_Init();

ApplicationSetup();

while(1)
{
ApplicationLoop();
}
};

46 | junio 2013 | www.elektor-magazine.es

La funcin principal se disea igual que en cada


proyecto de la EFL, echemos un vistazo al listado1. En la funcin Application-Setup, a la
cual se llama en el comienzo de la aplicacin,
se inicializan las libreras:
UARTInterface_LibrarySetup();
UARTInterface_SetBaudrate(0, 38400);
BlockProtocol_LibrarySetup(UARTInterface_Send,
0,
UARTInterface_GetRingbuffer(0));
En la segunda lnea fijamos la tasa de transferencia del bloque UARTInterface #0 (al
cual est conectado un driver RS485) a
38400baudios.
La tercera lnea necesita una explicacin ms
detallada. Estamos informando a la librera BlockProtocol de que debe utilizar la funcin UARTInterface_Send cuando haya que enviar datos desde
la placa. El segundo parmetro es el nmero de
bloques de puerto UART utilizados; en nuestro
caso, con el nodo experimental slo hacemos
uso de uno. El tercer parmetro es un puntero al
buffer circular utilizado, que almacena los bytes
recibidos. El puntero contiene el valor de retorno
de la funcin UARTInterface_GetRingbuffer(0), la
cual se implementa en la librera UARTInterface.
En la funcin ApplicationLoop, a la cual se llama
regularmente, slo necesitamos una lnea:
BlockProtocol_Engine();

librera de firmware embebido

sta es la funcin principal de la librera BlockProtocol. Comprueba si han llegado caracteres


desde el PC al buffer circular. Al recibirse un
<CR> (ASCII13), se interpreta como el final
de un comando. La instruccin completa se ejecuta, y se genera una respuesta, la cual puede
ser desde OK, hasta un valor de nivel alto o
bajo, as como una salida de variables de la EFL
a modo de tabla.

Probemos...
Tras compilar el programa y cargarlo en la
placa, veremos el resultado con un programa
terminal como por ejemplo HTerm [6]. Primero
fijamos un puerto COM y la tasa de transferencia. En la parte correspondiente a la entrada del
programa (Input Control) an hemos de definir que tras pulsar la tecla intro, ha de incluirse
<CR> despus de los caracteres introducidos
antes de enviar la cadena completa (vase la
figura4).
Empezamos con el nivel inferior, indicando
los pines de puerto del controlador. Segn el
esquema del nodo experimental [7], sabemos
que el LED rojo de la placa est conectado en
el pin PD4. PortD en los controladores AVR
corresponde con el PortIndex 3. De modo que
introducimos en el programa terminal:
p 3 4 + <ENTER>
Ahora el LED rojo se iluminar en la placa.

Alto nivel
Sin embargo, utilizar directamente un pin de
puerto no es exactamente la filosofa de la EFL.
En cuanto queramos usar otra placa controladora
para nuestro propio sistema de control, habra
que volver a cambiar la cadena de salida en nuestro PC o software de Android.
Por ello, el mini-protocolo tambin es capaz de
manejar el control mediante entradas y salidas
digitales independientemente de la configuracin de hardware, igual que hicimos en la anterior entrega con unas cuantas lneas de cdigo.

Figura 3.
Cdigo para controlar
nuestro propio dispositivo
electrnico mediante el
puerto UART.

Figura 4.
En el programa terminal
Hterm se especifica con un
<CR> que debe enviarse la
cadena de caracteres.

Con p 2 0 + o p 2 0 podemos, por ejemplo utilizar el pin PC0 como conector de expansin. Si conectamos una placa de expansin,
por ejemplo nuestra placa con sensor y LEDs
de la anterior edicin, o la placa de rels de la
serie ElektorBus [8], ya tendremos un pequeo
dispositivo controlable desde el PC. En lugar de
un programa terminal tambin podemos utilizar
nuestro propio software de PC, basta con que
enve la cadena de caracteres p 2 0 + <CR>
a travs del puerto COM adecuado para conmutar el rel. O si queremos conectar un nodo
experimental a un smartphone mediante la placa
puente RS485/UART Andropod [9], en tal caso
podemos programar una pequea aplicacin en
Android. Como punto de partida se recomienda
utilizar el software de [10], reemplazando los
bytes del ElektorBus por los caracteres mencionados ms arriba.

www.elektor-magazine.es | junio 2013 | 47

Proyectos
Con la cadena...

Para conmutar un rel basta con:

L 0 1 + <CR>

R 0 0 + <CR>

...encendemos el LED1 en el bloque LED #0 (en


nuestra placa se trata del LED amarillo).
Mediante...

Puerto de 3 hilos

B 0 0 ? <CR>
...comprobamos el estado del botn de test (button0 del bloque de botones #0).

BlockProtocol
Todos los comandos empiezan con un nico carcter, seguido de
uno o dos nmeros del uno al diez. Con stos la EFL indica el pin
correspondiente. El ltimo carcter determina la accin que debe
llevarse a cabo.
x
Salida de las tablas EFL del mapa, bloques y pines de la placa (ver
documento adicional de la EFL [1])
p x y +, p x y , p x y ?, p x y #, p x y *
Pin del controlador, puerto x, pin y: a nivel alto, a nivel bajo, lectura
del nivel, transmitir el valor del ADC (en un pin del ADC), parpadeo
controlado por tiempo
b x +, b x , b x ?, b x #, b x *
Pin de la placa con ndice x: alto, bajo, lectura, valor del ADC, parpadeo
i x y +, i x y -, i x y ?, i x y #, i x y *
Pin en bloque con ndice x, posicin del pin y dentro del bloque: alto,
bajo, lectura, valor del ADC, parpadeo
C x y +, C x y , C x y ?, C x y #, C x y *
Conector x, pin y: alto, bajo, lectura, valor del ADC, parpadeo
L x y +, L x y , L x y ?, L x y *
Bloque de LEDs x, posicin del LED y: alto, bajo, lectura, valor del ADC,
parpadeo
R x y +, R x y , R x y ?
Bloque de rels x, posicin del rel y: alto, bajo, lectura,
Bxy?
Bloque de botones x, posicin del botn y: lectura
Axy#
Bloque de ADC x, posicin del pin del ADC y: transmisin del valor del
ADC
*
Finalizar parpadeo controlado por tiempo

48 | junio 2013 | www.elektor-magazine.es

El control mostrado da por hecho que tenemos acceso a un UART del controlador desde
el exterior; por ejemplo con los pines RX/TX.
Es ms, hemos de disponer de un archivo de
control EFL completo, que aparte de las funciones tpicas de I/O y ADC tambin disponga
de las del UART.
No obstante, si se trata de un controlador desconocido (como cuando queremos desarrollar un
archivo de control EFL que otros lectores puedan
utilizar), conviene empezar por las funciones sencillas de I/O. Una vez hemos comenzado a estudiar la hoja de datos, y sabemos al menos leer y
fijar el nivel de los pines, as como conectar tres
pines de GPIO con el exterior (algo muy comn
en la mayora de placas), entonces podemos estar
seguros de haber dado un gran paso. Entonces
la placa ya podr controlarse mediante el protocolo descrito arriba. Como canal de transmisin
se utiliza un puerto de tres hilos, a modo de SPI
por software. Una de las conexiones se utiliza
como reloj, otra para transferir bytes del master
(PC) al slave (placa). Y en la tercera lnea, en
sentido contrario.
Segn las especificaciones SPI, el puerto de tres
hilos ofrece la posibilidad de que tanto el master como el slave inicien la comunicacin. Para
ello, se pone a nivel alto la lnea de Out y se
espera hasta que la otra parte haga lo mismo
con su correspondiente lnea. Entonces se iniciar la comunicacin, en la cual segn el modo
SPI el master fija el reloj y empiezan a circular
bytes en ambos sentidos. Cuando ya no hay que
enviar ms (datos), se transmite el cdigo de
stop <LF> = ASCII10. Cuando ambas partes
envan un 10, la comunicacin puede darse
por finalizada.
Lgicamente hemos reunido todo en un bonito
mdulo de librera EFL llamado ThreeWireInterfaceEFL. Ahora resulta bastante sencillo realizar
la comunicacin desde el puerto SPI por software
en lugar que desde el UART.
Las lneas de cdigo en la funcin Application-Setup sern ahora:
ThreeWireInterface_LibrarySetup();
BlockProtocol_LibrarySetup(-

librera de firmware embebido

ThreeWireInterface_Send, 0,
ThreeWireInterface_GetRingbuffer(0));
Hemos informado a la librera BlockProtocol de
que los datos han de enviarse y recibirse a travs del puerto de 3 hilos (comparemos la lnea
con el cdigo de BlockProtocol_LibrarySetup de
ms arriba).
En la rutina Application-Loop slo necesitaremos
la instruccin:
ThreeWireInterface_Listen(0);
As se comprueba que cada una de las partes
responde con un nivel alto. Entonces se establece la comunicacin (en caso de que el canal de
transmisin sea el UART no necesitaremos esta
funcin de Listen, pues detecta una interrupcin
del controlador cuando se reciben caracteres y
se envan automticamente los bytes del buffer
circular).

Nos ponemos en contacto con Arduino


Como placa de pruebas hemos optado por un
Arduino Uno; el cdigo correspondiente puede
encontrarse en el proyecto ArduinoUnoEFL [4][5].
Como pines GPIO-Pins, que nos darn acceso a
la placa, se utilizan PB0, PB1 y PB2, disponibles
en el conector Digital (de Digital8 a Digital10).
Un pequeo cable de tres pines (por ejemplo:
Conrad 741221) resulta muy prctico y cumple
su funcin (ver la figura5).
Obviamente ahora necesitamos conexin con
el PC, porque seguramente pocos de nosotros
dispongamos de un puerto de tres hilos en el
ordenador J. Por ello, controlaremos nuestro
pequeo nodo experimental con un gateway que
convierte los datos del canal de transmisin de
tres cables a UART/RS485, y al revs. El firmware necesario puede descargarse en [4] o [5],
y en el proyecto en Atmel Studio se encuentra
en el directorio ExperimentalSPI.
La funcin Gateway dispone de su propio mdulo
de librera, llamado OneToOneGatewayEFL.
Mediante la llamada...
OneToOneGateway_Engine();
...dentro de la funcin Application-Loop se pregunta regularmente para comprobar si ha llegado alguna cadena de caracteres al buffer cir-

Figura 5.
El acceso al Arduino Uno
se lleva a cabo mediante 3
hilos.

cular de alguno de los canales, la cual debe


cerrarse con <CR>. Si fuera el caso, la cadena
de caracteres se enva utilizando el canal de
transmisin correspondiente. Finalmente vuelve
a chequearse el buffer circular de dicho canal
de transmisin a ver si se reciben caracteres
entrantes.
Huelga decir que el mdulo de gateway tambin
ha sido programado para que funcione independientemente del canal de transmisin utilizado,
por lo que es flexible para utilizarlo en cualquier
otra aplicacin posible. La funcin OneToOneGateway_LibrarySetup lee al mismo tiempo dos tripletes de parmetros que determinan qu canal
de transmisin ha de conectarse a travs del
gateway. En nuestro caso, la llamada a la funcin ser:
OneToOneGateway_LibrarySetup(UARTInterface_Send, 0, UARTInterface_GetRingbuffer(0), ThreeWireInterface_Send, 0,
ThreeWireInterface_GetRingbuffer(0));
Ahora slo hay que conectar el cable al socket
de expansin del nodo experimental (pines PC0
a PC2, vase la figura6) y volcar el archivo
hexadecimal en el controlador de dicho nodo.
Los pines utilizados para el puerto de 3 hilos pueden cambiarse incluso en ambas placas. El puerto
de 3 hilos est formado por bloques perifricos en
cada una de las partes, y seguramente recordemos que la asignacin de pines de estos bloques,

www.elektor-magazine.es | junio 2013 | 49

Proyectos

Figura 6.
El nodo experimental hace
de gateway entre el puerto
de 3 hilos y el UART/RS485.

segn el controlador utilizado, est encapsulada


en el archivo correspondiente a cada placa. La
configuracin del puerto de 3 hilos segn los
pines utilizados se lleva a cabo con la funcin
Board_Init en el archivo BoardEFL.c.

[1] www.elektor.es/120668
[2] www.elektor.es/100576
[3] www.elektor.es/120296
[4] www.elektor.es/130154

Eureka!
En nuestro programa terminal, antes de cada
comando introducimos una x. La placa Arduino
transmite ahora las variables EFL a travs del
puerto de 3 hilos, a la velocidad establecida anteriormente (en este caso a 9600 baudios).
Con el comando...
C 0 13 + <CR>
...podemos poner el pin13 del puerto Digital a
nivel alto, y si hemos conectado un LED al Arduino
Uno veremos el resultado inmediatamente.
En la prxima edicin se incluir otro proyecto
EFL. Cualquier sugerencia o contribucin es bien
recibida, no dudes en escribir a redaktion@elektor.de.
La ltima versin del cdigo de la EFL puede
descargarse en la pgina de Elektor.LABS, en el
siguiente enlace [5].
(130154)

50 | junio 2013 | www.elektor-magazine.es

Enlaces de Internet

[5] www.elektor-labs.com/efl
[6] www.der-hammer.info/terminal
[7] www.elektor.es/110258
[8] www.elektor.es/110428
[9] www.elektor.es/110405
[10] www.elektor.es/120097

robots sanitarios

Robots sanitarios
El futuro de la sanidad

Tessel Renzenbrink
(redaccin Elektor TTF)

La segunda vez que me encontr con


Alice, ya poda ponerse de pie. Cuando
sonro, le devolv la sonrisa inconscientemente. Slo un momento despus me
di cuenta de estar emitiendo seales
no verbales a una entidad que no era
capaz de recibirlas. Esto dice bastante
sobre el robot Alice y sobre m. El robot
tiene una mmica facial tan sofisticada
que yo como animal social la responda
Johan Hoorn. (Foto: Waag Society CC BY 2.0)

El encuentro con Alice tuvo lugar en el laboratorio del proyecto Services of Electro-mechanical Care Agencies (SELEMCA), hospedado en
la Vrije Universiteit de Amsterdam [1]. Aqu se
investigan cmo los sistemas inteligentes como
los robots pueden interactuar con los usuarios
de forma ms humana. El problema social sobre
el que se fundamenta este proyecto es la creciente demanda de ms servicios sanitarios. A
consecuencia del envejecimiento de la poblacin,
el nmero de gente necesitada, en comparacin
con la poblacin sanitaria activa, aumenta. Para
que estos cuidados tambin se puedan ofrecer
a la gente en el futuro, se est trabajando en
soluciones tecnolgicas que se ocupen de una
parte de las tareas de cuidado. Y para hacer que
el trato con el sistema tecnolgico sanitario sea
tambin agradable para los usuarios, SELEMCA
ha desarrollado el sistema sanitario I-Care orientado al ciudadano.
Johan F. Hoorn (Dr. Litt., Dr. Sc.) es el investigador jefe y jefe de proyecto de SELEMCA que habla
entusiasmado sobre el objetivo, los logros y los
obstculos del proyecto. El ncleo de SELEMCA
es la investigacin cientfica sobre la inteligencia, emociones y creatividad. A su alrededor hay
cdigo mquina y comportamiento de mquina,

de forma involuntaria.
que son varios programas simuladores de este
tipo de capacidades. Luego tenemos la funcionalidad; las cosas que puede hacer para alguien o
sea todas las posibilidades de accin que puede
ofrecer a alguien. Todo esto junto es el sistema
I-Care y funciona en segundo plano. Finalmente
hay un interfaz con el que el sistema I-Care se
manifiesta hacia el exterior.

Mquinas con capacidades humanas


Un ejemplo de cmo se est desarrollando esta
estratificacin de forma prctica es la investigacin sobre componente emocional de razonar
moralmente. El hombre experimenta a un robot
que ejecuta perfectamente un cdigo tico como
un racionalista fro y por tanto amenazante. En
el artculo cientfico sobre Moral Copplia, en
donde Johan colabor como co-autor, se aclara
esto con la ayuda del dilema de la Carretilla y el
Puentecito [2].
Una carretilla sobre una va de tren se aproxima
a una velocidad peligrosa hacia cinco personas.
Cambiando la aguja de la va, la carretilla cambia
de direccin hacia otra persona. La eleccin del
agente moral es entrar en accin y salvar cinco
vidas humanas a costa de slo una o esperar y
dejar que ocurran las cosas obteniendo cinco
muertos como consecuencia. En un segundo esce-

www.elektor-magazine.es | junio 2013 | 51

Tech The Future


nario el agente moral se encuentra en el puentecito junto a otra persona. En otra ocasin la
carretilla amenaza a cinco personas y esta vez
la eleccin es tirar una persona del puentecito
hacia las vas para parar la carretilla.

Alice y DARwIn-OP
(Foto: Waag Society CC BY 2.0)

Aunque en ambos casos actuar tiene como resultado un ratio vida/muerte de 5:1, generalmente
la gente opta por cambiar la va, pero tirar activamente a una persona de un puente ira demasiado lejos. Eso es porque no calculan nicamente
los principios ticos sino que tambin permiten
que la emocin juegue un papel en el veredicto
moral. En cambio un robot razonando puramente
de forma racional sacrificara esa nica persona
en beneficio de la mayora.
A la gente no le gusta un robot que tira personas de un puente. Por eso Johan y sus colegas
desarrollaron un sistema que integra la inteligencia emocional en razonamiento moral. En
I-Care se incorpora este tipo de sistemas que
simulan capacidades humanas como afecto,
razonamiento moral y creatividad, y se manifiestan en la funcionalidad que ofrece al receptor
sanitario. Si un paciente con una pierna rota
no quiere comer, el robot reconoce su autonoma y deja que el paciente tome la decisin.
Pero con un paciente con Alzheimer con una
autonoma reducida el robot volver a ofrecer
la comida. Luego la creatividad tambin juega
un papel. En lugar de colocar el plato repetidas
veces delante del paciente, lo que probablemente slo llevara a una mayor resistencia,
el robot puede intentar utilizar mtodos alter-

52 | junio 2013 | www.elektor-magazine.es

nativos, como coger una cuchara con comida


y jugar al avioncito.

Alice y DARwIn
Finalmente hay una pantallita con la que el sistema I-Care es visible en la parte exterior. En
realidad el interfaz, dice Johan, puede tomar
cualquier forma que puedas imaginar. Puede
ser un robot, un juguete, un mueco, un agente
virtual en una pantallita, pero detrs siempre
se ejecuta el mismo sistema. No hace falta que
tenga forma humana, pero s que se comporte
humanamente. Tambin una mquina de caf
puede funcionar como avatar del sistema I-Care.
Quizs el usuario piense que ha trabajado con
tres aparatos diferentes, pero en realidad slo
ha interactuado con un sistema I-Care con apariencias diferentes. Despus de todo el significado de Avatar es el de un dios encarnado
como Vishnu.
El robot Alice es un posible avatar donde se
manifiesta el sistema I-Care. A muchos usuarios les gustar comunicarse con el sistema
a travs de ella por sus expresiones faciales
humanas. Pero corporalmente Alice no se ha
desarrollado an lo suficiente, puede ponerse
de pie pero casi no puede realizar ninguna
accin. Su semejante DARwIn-OP (Dynamic
Anthropomorphic Robot with Intelligence
Open Platform) es mucho ms gil y puede
realizar tareas fsicas.
Pero, tal y como indica Johan, los robots no son
los nicos interfaces. En el laboratorio tambin se
est trabajando con una bicicleta interactiva. Los
pacientes de Alzheimer no suelen ser fieles a su
terapia, cuando se sientan en su bicicleta esttica
para realizar los ejercicios fsicos que necesitan
se distraen enseguida y se bajan de la bici. Johan
y su equipo trabajan en un entorno virtual que
haga que parezca que el paciente est yendo por
la ciudad, y as se pueda retener su inters por
ms tiempo. Incluso quieren trabajar en que un
paciente vaya en bicicleta de forma virtual acompaado de uno de sus parientes mediante una
conexin en lnea con, por ejemplo, un hijo que
en realidad est yendo en bicicleta a su trabajo.
As el paciente mantiene el contacto humano y
hace ejercicio fsico, pero no corre el riesgo de
chocar con un autobs.
En una pantallita que hay sobre el manillar se
muestra al hijo como avatar. Haciendo que ste
acte como el interfaz con I-Care el sistema se
torna ms humano. En todas sus encarnacio-

robots sanitarios

nes el sistema I-Care cuida del paciente


durante el da sin que l sea necesariamente consciente de ello.

El futuro se hace hoy


I-Care se tiene que construir como una plataforma abierta y modular. Johan: Todo lo
que desarrollamos es abierto y est disponible para todo el mundo. Nosotros ofrecemos
una estructura, una abstraccin y lo que
cuelgues ah es t problema. Esto es vlido
no slo para usuarios sino tambin para
desarrolladores. Si la industria quiere, se
puede ofrecer un mdulo propio y proteger
esa parte para sacarle beneficios. Utilizo
mucho la idea de que este laboratorio es en
realidad una catedral y hay que conectar a
su alrededor todas esas pequeas tiendas
que suelen rodear las viejas catedrales para
vender el mensaje religioso. En este caso
nos gustara que los diseadores de interfaces, compaas de sensores robticos y
compaas electromecnicas estuvieran ubicados alrededor de este laboratorio. Es casi
literal, de modo que hubiese relaciones uno
a uno diariamente y que el conocimiento
que hay surgiese sobre I-Care pudiera ser
realmente utilizado por las compaas y la
industria.
Y eso es lo que duele, que en el mundo
de la empresa no hay movimiento. Algo
extrao, ya que seguro que habr un mercado dentro de diez aos. Casi no hace falta
hacer un estudio de mercado, porque esto
lo hemos diseado junto con los usuarios.
Los propios asistentes sociales y la gente
necesitada han ayudado en el concepto que
tenemos ahora. Ofrece a la administracin
una solucin a un problema creciente y las
empresas pueden hacer negocio con ello.
As que no entiendo de dnde viene esta
desconcertacin. El trabajo que realizamos
se oye ms en Hong-Kong y Corea del Sur
que aqu en Europa. Aqu todos dicen: muy
interesante, muy curioso, est bien que lo
estis haciendo pero luego todo queda en
un silencio. Es falta de un clima innovador
real. Hablan muchsimo sobre ello y hay
miles de comisiones, pero a todas estas
comisiones la innovacin les bloquea. Yo no
quiero comisiones, quiero manos a la obra.
Tecnolgicamente ya se puede hacer
muchas cosas en la robtica, pero no hay

colaboracin. Alice tiene una expresin


facial bien desarrollada, pero el cuerpo de
este robot es bastante limitado. Si miras a
DARwIn el trabajo del cuerpo es bastante
bueno, pero slo tiene algunas expresiones
faciales. A las mquinas DARPA (Defense
Advanced Research Projects Agency, EEUU)
puedes darle una patada que no se caen,
se recuperan y siguen andando, pero nunca
han odo hablar de la creatividad. Hay todo
tipo de piezas y fragmentos que en si funcionan correctamente, pero una plataforma
integrada an no existe. En realidad toda
esta gente debera sentarse junta e integrar
todo lo que sea posible. Te sorprenderas
de lo que obtiene de esto, te quedaras con
la boca abierta.
(130039-I)

SELEMCA es parte del programa Creative


Industry Scientific Programme (CRISP),
financiado por el ministerio Holands de
Educacin, Cultura y Ciencia [3].
Agradecemos a la Waag Society por la
organizacin del PhDO Trust me, Im
a Robot y por poner las fotos a nuestra
disposicin [4].

Enlaces Web
[1] http://crispplatform.nl/selemca/
selemca
[2] http://dare.ubvu.vu.nl/bitstream/handle/1871/38598/Moral%20Coppelia%20
IBERAMIA%20Proof%2076370442.
pdf?sequence=1
[3] www.crispplatform.nl

Robot Alice

[4] http://waag.org/en
DARwIn-OP
(Foto: Waag Society CC BY 2.0)

www.elektor-magazine.es | junio 2013 | 53

Proyectos

Disea tu propio integrado (5)


250000 puertas interconectadas programadas

Clemens Valens

Aunque una aplicacin FPGA se puede disear perfectamente como un circuito de

(Elektor.Labs)

smbolos lgicos, en la prctica se suele optar por un enfoque programtico. Esto


tiene una ventaja y que es generalmente las funciones complejas son ms fciles
de expresar en un algoritmo que en un esquema. Por eso intentaremos programar
una aplicacin FPGA en este artculo.

En la entrega anterior [4] tratamos por encima


los lenguajes descriptivos de hardware VHDL y
Verilog para probar una aplicacin. En esta ltima
parte profundizaremos en estos lenguajes, pero
ahora para escribir una aplicacin. Mantener dos
lenguajes es complicado, as que he tenido que
tomar una decisin. Despus de muchas noches
de insomnio y tras consultar con decenas de
expertos decid finalmente seguir adelante con
VHDL. Hay varios argumentos que sustentan
esta eleccin. Uno de ellos es que VHDL requiere
menos tiempo de simulacin, porque es ms difcil
llegar a un diseo sintetizable. Quizs esto suene
como una razn para optar por Verilog, pero

54 | junio 2013 | www.elektor-magazine.es

piensa que generalmente simular requiere ms


tiempo que sintetizar, as que terminas antes.
Para hacer una analoga con la programacin de
ordenadores (por favor, que los fans de Verilog
miren en otra direccin y se tapen los odos): En
lugar de introducir cdigo al tuntn para convertirlo despus en el depurador de un algoritmo
que funcione, puedes primero pensar bien el algoritmo y depurar despus para ver si funciona.
Como aplicacin he optado por un descodificador DCF77 Si, ya oigo los comentarios, pero
djame defender la eleccin. En casi toda Europa
se puede recibir fcilmente con un mdulo barato
la seal de radio de la emisora de reloj atmico

FPGA

DCF77 cerca de Frankfurt. La seal es bastante


sencilla, es una concatenacin de 59 impulsos,
uno por segundo, que pueden tener dos longitudes, 100 ms (0) y 200 ms (1), y que juntos representan los bits que forman el cdigo de tiempo. La
omisin del ltimo pulso (n 60, bit 59) indica el
final del cdigo. Cada minuto se enva un nuevo
cdigo. La fecha y la hora vienen en formato BCD
y hay un nmero de bits de control con los que
se puede verificar la validez del cdigo. As que
es una buena seal para empezar con VHDL (o
Verilog), ya que no es difcil de representar con
una lgica sencilla en un display de 7 segmentos.
Para la gente que no tenga un receptor DCF77
o no pueda recibir la seal porque viva demasiado lejos de Frankfurt, escrib un programa de
simulacin de DCF77 para el Arduino [5]. As que
todo el mundo puede participar.
Empezamos con un diseo funcional de nuestro descodificador DCF77. Le damos un enfoque naif, que quiere decir que partimos de la
idea de que la seal de entrada es buena por
lo general y encaja perfectamente dentro de
las especificaciones. Gracias a estas suposiciones el diseo puede ser sencillo. Como hemos
dicho, la seal de entrada consta de pulsos de
100 ms y 200 ms que representan ceros y unos
respectivamente. Si muestreamos esta seal
150 ms despus del flanco ascendente de un
pulso veremos tanto un 0 como un 1 (figura
1). Si medimos tambin el tiempo transcurrido
entre dos flancos ascendentes, encontraremos el
pulso faltante y con esto el principio del cdigo
de tiempo. De esta manera desplazamos los bits
encontrados a un registro de desplazamiento.
A continuacin sacamos los campos BCD del
registro de desplazamiento que contienen las
distintas unidades de fecha y tiempo, y las mostramos en un display de siete segmentos. En el
pseudocdigo basado en C esto queda ms o
menos de la siguiente forma:

haz para cada reloj


{
contador = contador + 1;
si (contador==150ms)
{
registro de desplazamiento = (registro de desplazamiento<<1)
+ seal de entrada;
}
si (flanco ascendente(seal de entrada)==true)
{
si (contador>=1750ms)
{
muestra contenido(registro de desplazamiento);
}
contador = 0;
}
}
El contador se incrementa en cada pulso de reloj.
En el momento que el contador alcanza 150 ms se
muestrea la seal de entrada y se aade al registro de desplazamiento. Si se detecta un flanco
ascendente en la seal de entrada, se mira si el
contador ha sobrepasado el valor mximo. En
caso afirmativo, el registro de desplazamiento
est lleno y se pueden mostrar los datos. A continuacin se pone el contador a cero. En realidad esto es todo. Aqu puedes aadir todo tipo
de parafernalia como la deteccin de errores y
hacerlo ms robusto, pero eso queda fuera de
esta introduccin.

Cmo hacemos esto en VHDL?


En realidad es bastante sencillo, ya que el seudocdigo se puede traducir fcilmente a VHDL.
As obtenemos este fragmento:
1
2
3
4
5

process (clock) is
begin
if rising_edge(clock) then
counter <= counter + 1;
if (counter=t150ms) then

Figura 1.
La seal DCF77 y el
momento de muestra.

www.elektor-magazine.es | junio 2013 | 55

Proyectos
6
7
8
9
10
11
12
13
14
15

bits <= input & bits(58 downto 1);


end if;
if input_rise=1 then
if (counter>=t1750ms) then
data <= bits;
end if;
counter <= 0;
end if;
end if;
end process;

Aqu faltan las definiciones y algunas otras cosas


de la sintaxis VHDL, pero el algoritmo est. Los
nmeros de lneas los he puesto yo para hacer
ms fcil la explicacin. En este cdigo counter
es el contador y bits el registro de desplazamiento de 59 bits. Vamos a empezar por el principio, por la lnea 1.
Se trata de un proceso, lo que quiere decir que
ser ejecutado por la FPGA. Sin este proceso no
hay actividad. Puede haber varios procesos y
todos sern ejecutados al mismo tiempo. En principio se trabaja, dentro del proceso, desde arriba
hacia abajo. Nuestro proceso depende de la seal
clock, lo que significa que slo se puede ejecutar si clock cambia de valor. El proceso empieza
despus de la lnea 2 y va hasta la lnea 15.
La lnea 3 se encarga de que todo lo que hacemos
vaya sincronizado con los flancos ascendentes de
la seal de reloj. La funcin rising_edge hace
que esto sea factible. En mucho cdigo VHDL
encontramos la construccin:
if clockevent and clock=1 then
..
end if;
que tiene la misma funcin que rising_edge,
pero esta ha quedado un poco anticuada. Nosotros utilizamos rising_edge. Tambin existe la
funcin falling_edge.
En la lnea 4 se incrementa el contador con uno.
Fcil, verdad? S, pero ten cuidado, porque la
utilizacin de la funcin sumar, representada por
el smbolo +, hace necesario aadir la librera
numeric_std a la lista de libreras a utilizar (tal
y cmo veremos ms adelante).
En la lnea 5 se compara el valor del contador
con una constante que corresponde a 150 ms
con una frecuencia de reloj de 8 MHz (el reloj de
la FPGA). Si el contador llega a 150 ms, el valor
actual de la seal de entrada se desplaza en el

56 | junio 2013 | www.elektor-magazine.es

registro de desplazamiento bits (lnea 6). Esto


se hace desde la izquierda, en oposicin al seudocdigo donde se desplazaba desde la derecha.
Lo hacemos de esta forma porque el cdigo del
tiempo empieza con el bit menos significativo
y as los colocamos en el orden correcto para
nosotros. Despus de 59 pulsos el bit 0 est en
la posicin 0. La operacin de desplazamiento
parece un poco extraa porque utilizamos la funcin de pegar &. Esta funcin simplemente pega
la parte de la izquierda a la parte de la derecha.
La parte derecha consta de 58 bits, 58 hasta
1 (as que sin el bit 0) que se desplazan a las
posiciones 57 hasta 0. La parte de la izquierda
es la seal de entrada de 1 bit y esta pasa a la
posicin 58. Aqu no nos interesa mucho como
ISE, o en realidad XST, trata esta construccin,
lo que nos interesa es que funcione (y eso lo
podemos confirmar).
En la lnea 8 detecta si hay un flanco ascendente
en la seal de entrada. De este fragmento no se
deduce cmo sucede esto exactamente (lo tratar enseguida), pero cuando sucede, la lnea 9
detecta si el contador ha sobrepasado el valor
mximo de 1750 ms. Si ese es el caso, el contenido del registro de desplazamiento se copia al
registro de datos para ms tratamiento (no en
este fragmento, ver ms adelante).
En la lnea 12 se pone el contador a cero. No
hace falta borrar el registro de desplazamiento
porque se llena cada minuto.
Las lneas que no hemos nombrado explcitamente slo sirven para cumplir con la sintaxis
de VHDL.
Para terminar este fragmento necesitamos un
detector de flancos, algunas cosas sintcticas
de VHDL y las especificaciones de las seales de
entrada y salida de este proceso. Al diseo final
tambin he aadido varias seales que hacen
parpadear los LED de la placa FPGA, de modo
que veamos que la cosa est realmente animada.

Detectar flancos
Aqu el detector de flancos es un punto importante. En primera instancia haba utilizado una
construccin simple que comparaba el valor
actual de la seal de entrada con los valores
durante el pulso de reloj anterior. Esto no funcionaba de forma fiable y creaba interrupciones
de forma que de vez en cuando se perda el
sincronismo. La solucin result ser la adicin
de un biestable adicional, de modo que no se

FPGA

comparaba el valor actual con el anterior, sino


el anterior con el anterior a este. As que no
comparamos t = n con t = n-1, sino que comparamos t = n-1 con t = n-2.
Probablemente el lector observador se preguntar si aqu podramos haber utilizado la funcin rising_edge y la respuesta a esto es, por
desgracia, no. Si lo haces, el sintetizador XST
piensa que se trata de una seal de reloj, pero
como no lo es, falla, con un mensaje de error
como resultado.
He aadido al proyecto el detector de flancos
como mdulo separado (una funcin en VHDL,
ver listado 1), pero no era necesario. Ahora s
tenemos la ventaja de que lo podemos utilizar
fcilmente en otro proyecto.
El mdulo empieza con la instruccin library
seguido de la instruccin use. Estas lneas se
encargan de que el mdulo disponga de las funciones estndares y seales necesarias. Tambin
se pueden aadir otras libreras en caso de que
fueran necesarias, como numeric_std (para +,
te acuerdas?). En oposicin a la mayora de los
lenguajes de programacin estas lneas no son
vlidas para todos los ficheros en las que aparecen, sino slo para el primer bloque entity
que hay a continuacin con sus correspondientes
bloque(s) architecture. As que normalmente
cada bloque entity va precedido de instrucciones de librera.
A continuacin llegamos al bloque entity. En
principio lo podemos considerar como el smbolo
que se va a utilizar en el esquema. Aqu se definen las entradas y salidas del componente en la
parte port. Aqu todas las seales son del tipo
std_logic de la librera std_logic_1164, que
quiere decir que se trata de seales lgicas que
pueden tomar un nmero de valores definidos
en la librera (como son 0, 1 o Z y as hay
un montn). Las seales seguidas de in son las
entradas del mdulo, si van seguidas por out se
trata de salidas.
El bloque entity viene seguido del bloque architecture en donde viene definida la funcin. Este
bloque tiene un nombre (behavioral) y es una
implementacin de la entidad especificada edge_
detector. El nombre behavioral se obtiene al
dejar que el ISE cree el mdulo VHDL. Tambin se
ve muchas veces rtl (de Register Transfer Level,
el nivel hacia donde se compila el cdigo VHDL),
pero tambin puedes elegir un nombre propio.
El detector de flancos est implementado como
un process que depende de la seal clock. Cada

Listado 1. Un mdulo detector de flancos en VHDL.


library ieee;
use ieee.std_logic_1164.all;
entity edge_detector is
port (input : in std_logic;
clock : in std_logic;
rise : out std_logic);
end edge_detector;
architecture behavioral of edge_detector is
begin
process (clock)
variable history : std_logic_vector(1 to 3);
begin
if rising_edge(clock) then
rise <= history(2) and not history(3);
history := input & history(1 to 2);
end if;
end process;
end behavioral;

vez que esta seal cambia de valor se ejecutan


las instrucciones dentro del proceso.
Despus de la declaracin del proceso viene una
lista de variables que se necesitan dentro del
proceso, pero no fuera. Aqu slo hay un, history, un registro de 3 bits. Esta variable es un

Por el mdico precio de 59,95 ms gastos de envo se


puede adquirir la placa FPGA de pruebas completamente
ensamblada y probada a travs de Elektor.

Ver www.elektor.es/120099

www.elektor-magazine.es | junio 2013 | 57

Proyectos

Listado 2. El descodificar DCF77 con detector de flancos.


library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity dcf77_decoder is
port ( input : in std_logic;
clock : in std_logic;
data : out std_logic_vector (58 downto 0) );
end dcf77_decoder;
architecture behavioral of dcf77_decoder is
component edge_detector is
port (input : in std_logic;
clock : in std_logic;
rise : out std_logic);
end component edge_detector;
constant t1750ms: integer := 14000000; -- 1750 ms @ 8 MHz
constant t150ms: integer := 1200000; -- 150 ms @ 8 MHz
signal counter : integer := 0;
signal bits : std_logic_vector(58 downto 0) := (others => 0);
signal input_rise : std_logic := 0;
begin
edge_detect: edge_detector port map (input => input,
clock => clock,
rise => input_rise);
process (clock) is
begin
if rising_edge(clock) then
counter <= counter + 1;
if (counter=t150ms) then
bits <= input & bits(58 downto 1);
end if;
if input_rise=1 then
if (counter>=t1750ms) then
data <= bits; -- Transfer data.
end if;
counter <= 0; -- Clear counter.
end if;
end if;
end process;
end behavioral;

58 | junio 2013 | www.elektor-magazine.es

vector, lo cual quiere decir que consta de varios


bits. Fjate que aqu el vector est definido como
(1to3) y el registro de desplazamiento en
el descodificador DCF77 como (58downto0).
Ambos son igual de vlidos, pero ten cuidado de
no mezclar accidentalmente los bits cuando los
ests utilizando de forma mezclada.
El detector de flancos slo hace algo despus de
un flanco ascendente de la seal de reloj. Entonces determina el valor de la seal de salida rise a
partir de los bits 2 y 3 de history y desplaza el
valor actual de la seal de entrada en el registro
de desplazamiento, de la misma manera que el
fragmento del descodificador DFC77.
Como puedes observar, cada bloque termina con
la instruccin end (por ejemplo end if), posiblemente seguido por el nombre del bloque correspondiente, as que hay que teclear mucho. Esta
es una de las desventajas de VHDL, que hay que
teclear mucho.
La figura 2 muestra cmo piensa ISE que debe
ser la apariencia del detector de flancos esquemticamente. Esta interpretacin me parece un
poco extraa, pero quizs he olvidado alguna
cosa. Dejmoslo en que el ISE no es muy bueno
dibujando.
He descrito ampliamente este mdulo para ilustrar como se parece un mdulo VHDL. Todos los
mdulos siguen el mismo patrn de library,
entity y architecture, tambin el descodificador DFC77.

Utilizar mdulos
Si queremos utilizar el detector de flancos dentro
del descodificador DFC77 tenemos que decirlo
de una u forma manera al XST. Se puede hacer
de varias maneras, por ejemplo, mediante una
librera, pero nosotros lo hacemos aqu a travs
del mtodo de componente. El listado 2 muestra
cmo funcionan varias cosas. Ah tambin puedes
ver el mdulo descodificador DCF77 al completo,
incluso el bloque entity con su bloque architecture correspondiente, seales de entrada
y salida, variables locales y constantes. Mralos
tranquilamente, utiliza internet como referencia
si fuera necesario, no es tan complicado.
Incorporamos el detector de flancos dentro del
mdulo declarndolo arriba dentro del bloque
architecture. Para ello copiamos el bloque
entity y sustituimos la palabra entity por component. Luego tenemos que conectarlo. Lo hacemos despus del begin del bloque architecture
instanciando un ejemplar (as es como se dice).

FPGA

Figura 2.
Este extrao esquema
surge cuando el RTL Viewer
(Design tab, Synthesize
XST View RTL Schematic)
del ISE dibuja el detector
de flancos en este artculo.
La seal de entrada no est
conectada a ninguna parte
y no entiendo muy bien su
funcionamiento. Habr
cometido algn error?

Para eso tenemos que introducir una etiqueta y a


continuacin indicar mediante un port map qu
seales (puertos) del descodificador DCF77 (a la
derecha dentro del mapa) tienen que conectarse
a las seales (puertos) del detector de flancos (a
la izquierda dentro del mapa). Ya tenamos las
seales de reloj y la entrada, ya que estas tambin son entradas o puertos respectivamente del
descodificador DFCF77 (ver su bloque entity).
Para la seal de salida rise del detector de flancos, necesitamos aadir una seal local del mismo

tipo; lo he llamado input_rise. Ahora podemos


utilizar esta seal en nuestro proceso. Durante
un nico periodo de reloj ser 1 en el momento
que detecte un flanco ascendente en la seal de
entrada del DCF77.
En caso de olvidar mapear la seal de entrada
de algn componente, podemos recibir algn
mensaje de error bastante incomprensible. Este
intenta explicar que la seal olvidada no tiene
valor por defecto y que no puede estar desconectado. As que ests avisado.

Figura 3.
Una impresin de pantalla
del ISE donde no solo vemos
el cdigo para el display,
sino tambin la jerarqua
del proyecto y las marcas
verdes que prueban que es
posible compilar el proyecto
hasta un fichero bit.

www.elektor-magazine.es | junio 2013 | 59

Proyectos
Display
Como me esfuerzo mucho
en explicar todo lo mejor
posible, este tipo de artculos acaban fcilmente
siendo largos, algo que no
le gusta mucho a mi jefe.
Sin embargo me gustara
explicar en un nico artculo cmo hacer que un
diseo VHDL funcione, si
no termina siendo un poco
frustrante. Como todava
tengo que explicar muchas
cosas, voy a suprimir el
cdigo del display de 7
segmentos. He utilizado el
mismo display de 2 dgitos que el de la 3 entrega
[3], por lo que he escrito
un descodificador de BCD
a 7 segmentos. Este es
un ejercicio de los libros
estndar, as que no tengo
que dedicarle muchas palabras. Mira dentro del proyecto de esta entrega [5]
para ver cmo funciona
todo. La figura 3 muestra algunas cosas.

Hacia top

Listado 3. El nivel superior del descodificador DCF77 final.


library ieee;
use ieee.std_logic_1164.all;
entity top is
port ( dcf77_input : in std_logic;
clk_in : in std_logic;
hour_month : in std_logic;
time_date : in std_logic;
led1 : out std_logic;
led2 : out std_logic;
t_sample : out std_logic;
digit1 : out std_logic_vector (6 downto 0);
digit2 : out std_logic_vector (6 downto 0) );
end top;
architecture behavioral of top is
component two_digit_display is
port ( bcd1 : in std_logic_vector (3 downto 0);
bcd2 : in std_logic_vector (3 downto 0);
digit1 : out std_logic_vector (6 downto 0);
digit2 : out std_logic_vector (6 downto 0) );
end component;
component dcf77_decoder is
Port ( input : in

std_logic;

clock : in

std_logic;

tick : out

std_logic;

Igual que en las entregas


sync : out std_logic;
anteriores todo se junta en
data : out std_logic_vector (58 downto 0) );
top, slo que ahora top es
end component;
un mdulo VHDL en vez
de un esquema. Tenemos
signal data : std_logic_vector (58 downto 0);
que indicar este detalle al
signal bcd1 : std_logic_vector (3 downto 0);
ISE a travs de Design Prosignal bcd2 : std_logic_vector (3 downto 0);
perties. Crea primero un
signal tick : std_logic;
nuevo proyecto basndote
en lo anterior de la manera
begin
descrita al principio de [3].
display: two_digit_display port map (bcd1 => bcd1,
Elimina a continuacin
bcd2 => bcd2,
todos los esquemas, pero
conserva el fichero UCF.
Despus abre Design Properties (por ejemplo, a travs del men Project,
botn derecho del ratn sobre la pestaa Design)
en la parte inferior) y pon el Top-Level Source
y selecciona New Source, selecciona a continuacin VHDL Module, introduce el nombre del
Type en HDL y Preferred Language en VHDL (si
fichero (por ejemplo, top), asegrate de marcar
no estuviera ya puesto).
Add to project y haz clic sobre Next. Ahora ves
Ya podemos empezar a aadir nuevos ficheros
un formulario que puedes rellenar si sabes qu
fuente. Abre el men Project (o haz clic con el

60 | junio 2013 | www.elektor-magazine.es

FPGA

ras crear. En mi proyecto


son cinco: top, descodidigit2 => digit2);
ficador DCF77, detector
de flancos, descodificadcf77: dcf77_decoder port map (input => dcf77_input,
dor BCD a 7 segmentos y
clock => clk_in,
display de 2 dgitos.
tick => tick,
El mdulo top viene reflesync => led2,
jado en el listado 3. Los
data => data);
nombres de las seales de
entrada y salida de top,
as como las seales que
process (clk_in) is
son nombradas en el blobegin
que entity, tienen que
t_sample <= tick;
coincidir con los nombres
led1 <= tick;
dentro del fichero UCF. De
if rising_edge(clk_in) then
esta forma se establecen
if time_date=1 then
las conexiones entre los
-- Show time.
terminales del integrado y
if hour_month=1 then
el cdigo VHDL. Aqu tie-- Show hours.
nen que aparecer todas
bcd1 <= data(32 downto 29);
las seales del fichero
bcd2 <= 00 & data(34 downto 33);
UCF, sino el ISE empieza a
else
quejarse. La utilizacin de
vectores para los termina-- Show minutes.
les de los display es algo
bcd1 <= data(24 downto 21);
nuevo aqu. En el fichero
bcd2 <= 0 & data(27 downto 25);
UCF lo hacemos mediante
end if;
la utilizacin del ndice con
else
el nombre del vector, por
-- Show date.
ejemplo, digit1(0) se
if hour_month=1 then
corresponde con el bit 0
-- Show month.
del vector digit1 de top.
bcd1 <= data(48 downto 45);
El bloque architecture
bcd2 <= 000 & data(49 downto 49);
de top llama a dos compoelse
nentes, two_digit_dis-- Show day of month.
play y dcf77_decoder,
de los que se utiliza uno
bcd1 <= data(39 downto 36);
de cada. Con un display
bcd2 <= 00 & data(41 downto 40);
ms grande de, por ejemend if;
plo, seis cifras podemos
end if;
instanciar tres ejemplaend if;
res de two_digit_disend process;
play (con tres etiquetas
diferentes) y conectarend behavioral;
los. Para la interconexin
de los dos componentes
defin un nmero de seaseales de entrada y salida vayas a necesitar. Si
les adicionales que no son necesarias fuera de
an no lo sabes, djalo en blanco. Cuando hayas
top. Por ejemplo, se utiliza la seal tick para
que el LED1 destelle por cada bit recibido, pero
terminado haz clic sobre Next y a continuacin
como este LED no est disponible en un terminal
sobre Finish. El ISE crea ahora un fichero con
de la placa FPGA, tambin est conectado a la
una plantilla en la que tienes que aadir el cdigo
seal t_sample que en el fichero UCF est conecVHDL. Aade tantos ficheros como mdulos quiedigit1 => digit1,

www.elektor-magazine.es | junio 2013 | 61

Proyectos

Figura 4.
El esquema del descodificador DCF77 es casi idntico
al de la 3 entrega [3]. Como la FPGA no soporta bien
seales de 5 V, limitamos la seal de entrada hasta unos
3 V con un diodo zener.

Figura 5.
El circuito de pruebas controlado con un Arduino como
simulador DCF77. El display muestra 17, las horas
simuladas. La placa Arduino alimenta a la placa FPGA.

tado al terminal P86. Entonces podremos ver


bien con un osciloscopio el momento de muestra
en comparacin con la seal de entrada DCF77.
El proceso de top no hace cosas muy emocionantes. Realmente es un multiplexor que dependiendo de los niveles de las seales de control
(time_date (P94) y hour_month (P95)) muestra
las horas, los minutos, el da del mes o el mes
en el display de 7 segmentos de dos cifras. Con
un poco de cortar y pegar (&) se pasan los bits
correctos del gran registro de desplazamiento a
dos campos BCD de 4 bits, que a continuacin los
descodificadores BCD convierten en seales de
7 segmentos. Es importante comentar aqu que
no es necesario interconectar explcitamente los
vectores bcd1 y bcd2 al componente display, ya
que esto ya se ha hecho a travs del puerto map.
Cuando sinteticemos este diseo aparecern
varios avisos. Aparecen porque no se utilizan
todos los bits del registro de desplazamiento
DCF77 y porque el bit 3 del vector bcd2 siempre est a 0 ya que no se utilizan 8 bits (slo
el campo ao consta de 8 bits, pero aqu no
lo estamos utilizando). Lo que tambin podrs
observar es que ha surgido una bonita jerarqua en la pestaa Design (figura 3), igual que
cuando introducimos un diseo como esquema.
As que ahora todo es como era antes. Como ya
he comentado anteriormente el ISE dispone de
un RTL Viewer que (supuestamente, ver figura
2) es capaz de mostrar el cdigo VHDL de forma
esquemtica y con esto estamos otra vez de
vuelta. Un esquema es simplemente cdigo VHDL
y VHDL es simplemente un esquema.
Al final el artculo ha quedado bastante largo
a pesar de que quise ser breve. He intentado
transmitir toda la informacin importante, pero
se requiere un poco de trabajo personal y perseverancia para construir este proyecto uno mismo.
Suerte!
(130066-I)

Enlaces Web
[1] 1 entrega: www.elektor.es/120099
[2] 2 entrega: www.elektor.es/120630
[3] 3 entrega: www.elektor.es/120743
[4] 4 entrega: www.elektor.es/130065
[5] 5 entrega: www.elektor.es/130066

62 | junio 2013 | www.elektor-magazine.es

Spring into summer


savings event!
All books are now 15% off.
From assembly language to microprocessor design, embedded Linux to C programming,
these tools will help you master any engineering challenge.
For professionals, academia, and enthusiasts alike,
CC-Webshops collection of audio and electronics
engineering books will help take your ideas
from concept to creation.
Offer ends 6/30/13

www.cc-webshop.com

Proyectos

De BASIC a Python (2)


Una breve resea

En la primera parte vimos las principales diferencias


entre Python y BASIC. Mostramos cmo llevar a cabo

Jean-Claude Feltes

la instalacin y ejecutar nuestros primeros programas.

(Luxemburgo)

Ahora nos centraremos en los diagramas y la sntesis de Fourier. Para terminar, tambin veremos cmo
implementar un entorno de usuario.

Si damos por hecho que Python es un lenguaje


de programacin especialmente til para los
electrnicos, lo normal sera que queramos utilizarlo para representar datos visualmente. Para
el ser humano, las curvas son mucho ms fciles de interpretar que un montn de columnas
con nmeros. No hace falta descubrir de nuevo
la plvora si pretendemos dibujar cada una de
estas curvas manualmente, muchos lenguajes de programacin disponen de libreras que
simplifican la tarea enormemente. Por suerte,
Python es uno de ellos.

Diagramas
En Python, el mdulo estndar para diagramas en
2D se denomina Matplotlib. A pesar de que en
Python el eslogan es para cada tarea, un nico
mtodo, con los mdulos adicionales lamentablemente no es as, y llev bastantes horas
poder trabajar con ellos. En el caso de Matplotlib
tenemos tanto un procedimiento simple, como
un complicado interfaz orientado a objetos. Los
ejemplos disponibles en Internet y en los libros
utilizan uno u otro procedimiento, con lo que
los cdigos mostrados se confunden fcilmente.
El interfaz simple pyplot tambin permite realizar programas muy sencillos. El programa del
listado1 genera una seal sinusoidal amortiguada y registra la curva resultante a modo de
grfica en una ventana (vase la figura1).
La primera lnea importa el interfaz pyplot como
objeto plt. Para los clculos matemticos hemos

64 | junio 2013 | www.elektor-magazine.es

optado por el mdulo Numpy. En la segunda


lnea se importan tres funciones.
Con linspace puede representarse vectorialmente (como matriz) un intervalo (en este caso
de 0 a 7) del tamao deseado (aqu 1.000). Esto
permite calcular rpidamente los valores de la
funcin. Las funciones de Numpy tambin pueden
trabajar con vectores. He aqu la curva:
y= sin(5*x)*exp(-x)
Cada 1.000 valores se calcula la variable y
del vector.
No har falta utilizar bucles for y sin embargo
obtendremos rpidamente un cdigo fcil de
interpretar.
Con el comando plt.plot(x,y) se representan
los datos en una curva. Para que el grfico sea
visible, hemos de utilizar despus la instruccin
plt.show(). Si queremos representar varias curvas en un mismo diagrama, bastar con llamar
varias veces a la funcin de plot, tal como se
muestra en el listado2.
La ventana del diagrama (ver la figura1) incorpora automticamente una barra de herramientas que permite hacer zoom y guardar el grfico.
Tambin pueden verse las coordenadas con el
cursor. No obstante, si queremos disponer de un
bonito diagrama con elementos de un GUI (Graphical User Interface, interfaz grfico de usuario),
ser ms complicado. En ese caso tendremos
que seguir el procedimiento orientado a objetos.

lenguajes de programacin

Ejemplo: respuesta en frecuencia


Si queremos representar por ejemplo la curva
de un filtro RC de paso bajo, entonces hemos
de calcular el valor en nmeros complejos de la
respuesta en frecuencia F segn la frmula del
divisor de tensin con impedancias complejas:
F = 1 / (1 + j R C)
La curva entonces corresponde a los valores de F
en funcin de la frecuencia (vase la figura2).
En este ejemplo podemos aprovecharnos de la
capacidad de Python para trabajar con nmeros
complejos.
En el programa del listado3 primero se calcula
la matriz f con frecuencias divididas por etapas
logartmicamente. Para hacerlo de forma lineal
habra que utilizar linspace(). Finalmente se
genera la matriz con los valores complejos de F
y la matriz de Fabs. Aqu volvemos a beneficiarnos del uso de Numpy gracias a sus funciones
vectoriales. No hace falta utilizar bucles for, y el
cdigo sigue siendo breve y conciso.
Para terminar se muestra el diagrama, en donde
el eje de la frecuencia est escalado logartmicamente. Para una buena representacin grfica es
importante configurar la rejilla correctamente:
ax.grid(True, which = both,
linestyle = -)

Listado1: Sinus.py
import matplotlib.pyplot as plt
from numpy import sin, exp, linspace
x=linspace(0.0, 7.0, 1000)
y= sin(5*x)*exp(-x)
plt.plot(x, y)
plt.show()

Figura 1.
Representacin grfica
de una seal sinusoidal
amortiguada, obtenida
mediante el cdigo del
listado 1.

Listado2: Multigraph.py
mport matplotlib.pyplot as plt
from numpy import sin, exp, linspace

Aqu se activa la rejilla, con both aparecern


ambas (la principal y la secundaria, para las subdivisiones) y se configuran de modo que aparezcan como lneas slidas.
Aadiendo las siguientes lneas de cdigo tambin se puede configurar la respuesta en fase:

x=linspace(0.0, 7.0, 1000)

# plot phi = f(f)


phi = angle(F)*180.0/pi
ax2 = fig.add_subplot(212)
ax2.plot(f, phi)
ax2.grid(True, which = both, linestyle
= -)
ax2.set_xscale (log)
ax2.set_xlabel(f/Hz)
ax2.set_ylabel(phi/degrees)

plt.show()

y1 = sin(5*x)*exp(-x)
y2 = y1* 0.5
plt.plot(x, y1)
plt.plot (x, y2)

Ejemplo: sntesis de Fourier


Los electrnicos a los que les gusten las matemticas estarn encantados cuando sepan lo cmodo
que resultan algunas cosas como la sntesis de
Fourier en Python.

Figura 2.
Respuesta en frecuencia de
un filtro RC paso bajo, segn
el listado 3.

www.elektor-magazine.es | junio 2013 | 65

Proyectos
En el ejemplo del listado4 se genera sintticamente una seal bastante cuadrada, sirvindonos de una combinacin de 30 armnicos. La
figura3 muestra el resultado obtenido con un
cdigo relativamente simple. En el cdigo tambin puede aumentarse o disminuirse el nmero
de armnicos.

GUI o no?
Los usuarios de Linux tienen cierta reputacin de no utilizar mucho los GUIs, e incluso
llamarlos click-buntu y considerar al ratn
un invento del demonio. Sean o no ciertos
los estereotipos, la verdad es que la mayora
de la gente prefiere programas bien diseados y fciles de utilizar. Y siendo sinceros, un
entorno grfico para manejar los archivos es
bsico, no?
En cualquier caso, en Python podemos combinar
elementos grficos y no grficos en un mismo
programa. El programa del listado5 se trata de
un plotter de datos. Los datos ledos se envan
mediante una instruccin print a la ventana
de un terminal en formato de texto, y posteriormente se representan en ventana grfica a modo
de diagrama (ver la figura4).
Entre las libreras de GUI nos veremos obligados a elegir. Primero utilizamos Tkinter, ya
que est incluida en el intrprete de Python
y resulta fcil de aprender y utilizar. Pero al
copiar grficos al portapapeles surgan problemas, de modo que cambiamos wxPython. No

Figura 3.
Sntesis de Fourier de una
seal cuadrada segn el
listado 4.

Figura 4.
Plotter de datos: ventana
del terminal con valores
numricos y representacin
grfica en los ejes X e Y.

Listado3: RC.py
import matplotlib.pyplot as plt
from numpy import pi, linspace, log10, logspace

# calculate F (complex) and absolute value Fabs

from numpy import

F = 1 / (1 + 1j*

complex, abs

# these allow

vector operations

Fabs = abs(F)

2 * pi * f * RC)

EDIT

# plot Fabs = f(f)

R = 10.0E3

fig = plt.figure()

C = 100.0E-9

ax = fig.add_subplot(111)
ax.plot(f, Fabs)

# END EDIT

ax.grid(True, which = both, linestyle = -)


ax.set_xscale (log)

RC = R*C

ax.set_xlabel(f/Hz)
ax.set_ylabel(U2/U1)

# create f values equally spaced on a log scale

ax.set_title(RC low pass frequency response)

f = logspace ( 1, 4, 100)

plt.show()

# 100 values from 10**1

to 10**4

66 | junio 2013 | www.elektor-magazine.es

lenguajes de programacin

obstante, tambin hay otras alternativas como


PyQt y GTK.
El plotter de datos es un buen ejemplo para utilizar elementos del GUI. El programa permite
ver y editar datos almacenados en un archivo de
texto, con valores de medida. Los valores pueden
representarse en un grfico bidimensional en X
e Y. Las coordenadas de X e Y se muestran as
mismo numricamente en dos columnas.

Para simplificar se ha optado por la programacin


phytnica orientada a objetos. Tras importar
los mdulos necesarios se definen las funciones y
posteriormente se da paso al programa principal.
ste crea un primer esbozo de la app. Aparecer un objeto de frame a modo de ventana
para la aplicacin. Esta ventana dispone de un
men y un cuadro de texto para editar y mostrar los datos. En realidad, este cuadro de texto

Listado4: Fourier.py
FOURIER SYNTHESIS FOR RECT VOLTAGE

harmonics

#-------------------------------------------------

ug = zeros(nb_points)

-------

uharm = zeros((nb_points, n+1))

# EDIT HERE
# harmonics
n = 30

# number of harmonics

nb_points=1000

# horizontal resolution

and total voltage

for i in range(1,n+1):
ai = calc_amplitude(amplitude, i)

frequency = 100.0

#Hz

fi = frequency * i

amplitude = 2.0

#V

uharm[:,i] = ai * sin(2 * pi * fi * t )
ug = ug + uharm[:,i]

# END OF EDIT AREA

return uharm, ug

#-------------------------------------------------

#-------------------------------------------------

--------

----------

print Importing modules

Main program

import matplotlib.pyplot as plt


from numpy import sin, exp, linspace, pi

T=1/frequency

from numpy import zeros


#-------------------------------------------------

# equally spaced time array

---------

t = linspace(0.0, T, nb_points)

for 1 period

def calc_amplitude(amplitude, i):


Calculate amplitudes of harmonics

# plot harmonics

# take only odd harmonics

uharm, ug = calc_harmonics(nb_points, n)

if i % 2 == 0:

for i in range(1,n+1):

ai = 0

plt.plot (t, uharm[:,i])

else:
ai = (4/pi)*amplitude / i
return ai

# plot resulting voltage


plt.plot (t, ug)

#--------------------------------------------------------

s=str(n)+ harmonics, +str(frequency)+Hz,

def calc_harmonics(nb_points, n):

ampl.=+str(amplitude)+V

Calculate harmonics and resulting voltage

plt.title(Fourier synthesis RECT\n+s)

returns

plt.xlabel(t/s)

uharm = array nb_points * n

plt.ylabel(u/V)

ug = array nb_points

# make plot visible


plt.show()

# init

arrays for resulting voltage and

www.elektor-magazine.es | junio 2013 | 67

Proyectos
Listado5: Dataplot.py
#!/usr/bin/env python
Plot data from file
import wx
import os.path
import matplotlib.pyplot as plt
def create_menu(frame):
# create menu
menubar = wx.MenuBar()
# main menus
mnuFile = wx.Menu()
mnuData = wx.Menu()
menubar.Append(mnuFile,&File)
menubar.Append(mnuData,&Data)
# submenus
m_Open = mnuFile.Append(-1,&Open)
mnuFile.AppendSeparator()
m_Exit = mnuFile.Append(-1,E&xit)
m_Plot = mnuData.Append(-1,&Plot)
# attach menu to frame
frame.SetMenuBar(menubar)
# bind menu events to procedures
frame.Bind(wx.EVT_MENU, OnExit, m_Exit)
frame.Bind(wx.EVT_MENU, OnOpen, m_Open)
frame.Bind(wx.EVT_MENU, OnPlot, m_Plot)
#----------------------------------------------------------------------# Event handlers
def OnExit(event):
frame.Close()
def OnOpen(event):
# ask for filename
dlg = wx.FileDialog(None,Open data file, os.getcwd() ,, *.*, wx.OPEN)
dlg.ShowModal()
filename = dlg.GetPath()
# open file, get data and

put it into textbox

try:
f = open(filename, r)
data = f.read()
f.close()
textbox.SetValue(data)
except:
wx.MessageBox(Could not open file!)

68 | junio 2013 | www.elektor-magazine.es

lenguajes de programacin

def OnPlot(event):
# plot data
x,y = fill_xy_with_values(textbox)
plot_xy(x, y)
#----------------------------------------------------------------------def fill_xy_with_values(textbox):
# get values from textbox
#

returns

arrays x, y

and number of data points

text=textbox.GetValue()
lines=text.splitlines()
x=[]
y=[]
for line in lines:
columns = line.split()

#separator can be one or more or \t

x.append (float(columns[0]))
y.append (float(columns[1]))
return x,y
#----------------------------------------------------------------------def plot_xy( x, y):
Plot arrays x, y with matplotlib
plt.figure(1)
plt.subplot(111)

# 1 row, 1 col, plot nb. 1

plt.grid(True)
plt.plot(x, y)
plt.xlabel(x)
plt.ylabel(y)
plt.show()
#----------------------------------------------------------------------#

Main

#----------------------------------------------------------------------app = wx.App()
# create frame
frame = wx.Frame(None, title=PLOTTER, pos=(350,300))
create_menu(frame)
# editor textbox for data
textbox=wx.TextCtrl(frame, style = wx.TE_MULTILINE)
# show frame and run event loop
frame.Show()
app.MainLoop()

www.elektor-magazine.es | junio 2013 | 69

Proyectos

Sobre el autor
Jean-Claude Feltes
imparte clases de
electrnica en el
Lyce Technique des
Arts et Mtiers en
Luxemburg. Esta
escuela de tecnologa
y artes otorga
cualificaciones
profesionales
a aprendices y
tcnicos. Dedica gran
parte de su tiempo
libre a su pasin por
la electrnica y la
programacin (vase
[2]).

es un pequeo editor: los valores pueden editarse o aadirse, e incluso pueden manejarse los
datos con el portapapeles, utilizando los atajos
de teclado tpicos. El botn derecho del ratn
abre un men contextual con las funciones de
edicin clsicas.
Con frame.Show() se muestra la ventana y
con app.MainLoop() se inicia un event-loop. El
programa se ejecuta hasta detectar un evento
(clic con el ratn o al pulsar una tecla) y entonces da paso al event-handler (funcin a la cual
se llama al detectarse un evento).
La primera funcin define los mens y su relacin
con los event-handlers que empiezan por On.
Las funciones OnExit, OnOpen y OnPlot
se ejecutan mediante la correspondiente tecla
del men. Con OnOpen se llama al primero al
selector de archivo wx.FileDialog. Aqu se utiliza os.getcwd (get current working directory)
para localizar el archivo en el directorio actual.
El archivo se abre tras haber seleccionado el nombre. Se procesa mediante try except, para
detectar posibles errores de archivo. Si puede
abrirse correctamente, el contenido se copia al
completo en la variable data y se pega en el
cuadro de texto.
Aqu, los valores de medida ahora pueden editarse, copiarse o pegarse. Lgicamente tambin
pueden introducirse valores a mano en lugar de
cargarlos desde un archivo.
Con OnPlot Los datos se representarn grficamente en un diagrama. Para ello, se realiza una
llamada a las funciones fill_xy_with_values y
plot_xy. La primera lee los datos del cuadro
de texto y los separa en una matriz por lneas.
En el bucle for se iteran todas las filas. stas se
separan con line.split() y posteriormente se
aaden los valores individuales en las matrices
x[] e y[]. Despus stos se devuelven como
valores de la funcin.
La funcin plot_xy genera el diagrama
(figura4). Obviamente este pequeo programa
es an algo rudimentario, pero hace bastante
ms de lo que podramos lograr en Visual Basic
con muchsimo ms esfuerzo. Tambin podemos
aadir por nuestra cuenta fcilmente una opcin
en el men para guardar los datos editados.

Conclusiones y planes para el futuro


Llegados a este punto deberamos tener una idea
bsica de lo fcil y eficiente que es Python. Llevar nuestros conocimientos al siguiente nivel es
relativamente simple al partir de estos ejemplos.

70 | junio 2013 | www.elektor-magazine.es

Python resulta especialmente apto para las tareas


tpicas de adquisicin y tratamiento de datos.
Algunos conceptos como los filtros o la FFT no
suponen un gran problema, y podemos ampliar
nuestros proyectos de forma relativamente fcil
con un entorno de usuario grfico.
En la prxima entrega mostraremos cmo programar un sencillo sistema de control y adquisicin de datos mediante RS485 y el ElektorBus.
(120143)

Enlaces y bibliografa
[1] Listados y dems:
www.elektor.es/120143
[2] Pgina del autor:
http://staff.ltam.lu/feljc/home.html
[3] Documentacin de Python:
https://pypi.python.org/pypi/RPi.GPIO
[4] Tutoriales de Python:
www.awaretek.com/tutorials.html
[5] Referencia:
Michael Weigend: Python gepackt
[6] Iniciacin:
J.M. Hughes: Real World Instrumentation
with Python
[7] Mdulos disponibles en paquetes de Python:
http://pypi.python.org/pypi
[8] Python para electrnicos:
Andrew Pratt: Programacin en Python y
GUIs para ingenieros electrnicos
www.elektor.es/python-programming

EAGLE V6 Getting Started Guide


Aprendiendo a volar con Eagle

NUEVO
LIBRO

Este libro (en ingls) facilita al lector una introduccin al uso del paquete de software
de diseo EAGLE PCB de CadSoft. Despus de leer este libro al tiempo que se practica
con varios ejemplos, y se completan los proyectos, el lector debe sentirse capaz de
afrontar retos ms complejos.
El libro te permitir rpidamente:
obtener una visin general de los principales mdulos de EAGLE: el editor de esquemas; el editor de diseo y el autorouter en un solo interface;
aprender a utilizar algunos de los comandos bsicos de los mdulos editores de
esquemas y diseo de EAGLE;
aplicar tu conocimiento de EAGLE a un pequeo proyecto;
aprender ms de algunos de los conceptos avanzados de EAGLE y sus capacidades;
comprender como EAGLE se relaciona con las etapas de fabricacin de las PCBs;
crear un proyecto completo, desde el diseo a la fabricacin de la PCB. El proyecto
comentado en el libro es un popular y comprobado
diseo del equipo de ingeniera de Elektor.

208 pginas ISBN 978-1-907920-20-2 34,50


Incl. una copia de EAGLE 6.4.0 en CD-ROM
para MS Windows, Linux and Mac.

-10% par
a
miembros

GREEN

Ms informacon y pedidos en www.elektor.es/eagle

powered by Eurocircuits

or

e Elekt
d
s
a
v
e
u
n
s
B
C
P
s
uento en la

25% de desc

Aprovchate ahora: Elektor PCB Service ofrece siempre


un descuento durante los 90 das posteriores al lanzamiento
de las nuevas placas de Elektor!

En www.elektor.es/pcb encontrars todas las PCBs de Elektor

Proyectos

Robert Budniak
(Australia)

Localizador de Modelos
Perdidos
Directo al lugar del accidente!

A todo piloto de aviones de radiocontrol se le ha cado un avin fuera


de los lmites del campo de vuelo. A veces, la localizacin del valioso
aeroplano es fcil pero otras es difcil de localizar. Hierba alta, rboles e incluso
la incertidumbre del lugar donde ha cado, hacen que sea difcil de encontrar el
escurridizo avin. As pues, vamos a construir un localizador de direccin por radio
(RDF) que, idealmente, nos llevar directos al lugar del accidente.
Ya hay un cierto nmero de sistemas que tratan
sobre cmo localizar un modelo de R/C (radiocontrol) perdido. He considerado que yo poda
hacer un sistema un poco mejor. Las especificaciones del diseo son:

Prestaciones
Diseo de bajo coste.
Placa TX con tecnologa SMD, placa RX con tecnologa T/H.
Adaptada a la mayora de mdulos radio de corto alcance de la banda
ISM de 315/433.
Seal de llamada programable para cada TX
Alcance mnimo: 200 m
Alcance mximo: depende de la orografa del terreno y de los
mdulos TX y RX usados.
Antena direccional Yagi de 4 elementos en RX.

72 | junio 2013 | www.elektor-magazine.es

Transmisor muy ligero para el avin.


Batera de reserva en caso de desconexin de
la batera principal.
Uso de mdulos de radio comerciales autorizados en la banda ISM de UHF.
Rango de alcance de al menos 200 m.
Receptor manejable y capaz de utilizar localizacin de direccin por radio (RDF) para localizar el avin.
Partiendo de ello, he sido capaz de poner todo
junto en el diseo que se describe en estas pginas. Si sabes mucho del montaje de aviones de
modelismo y su pilotaje, pero no sobre electrnica, considera hacer este proyecto como una
actividad de un club.

localizador de modelos perdidos

K5
T2

DTB123YK
K1

K4

T1

BT1

DTB123YK

+5V

Antenna

IC1
8
0V
+V
7
SER OUT SER IN
6
IN1
IN4
5
IN2
IN3

K2
TXD
RXD

K3

1
2
3
4

Antenna
VCC
DATA
GND

Transmitter
Module

PICAXE-08M2
R1

22k

R2

10k

120139 - 11

Figura 1.
Esquema elctrico del
circuito del transmisor, que
no es mucho ms que un
microcontrolador PICAXE
programado.

Listado 1. Cdigo PICAXE TX


main:
sound 4,(0,10,120,10,0,10,120,10,0,10,120,10,0,10)
high 4
pause 2300
goto main

tacin. Sin embargo, con las bajas tensiones usadas en este proyecto (5 V y 3,7 V), e incluso una
cada de tensin de 0,4 V de un diodo Schottky
sera una parte considerable de dicha tensin.
Buscando en las bases de datos de Internet,
he encontrado algunos transistores de pequea
seal del tipo DTB123YK (T1, T2), que tambin
tiene resistencias base-emisor y base en el propio componente. Estos componentes funcionan
bastante bien en el bloqueo de las tensiones de
las bateras y la cada de tensin en los extremos del transistor es de tan slo 100 mV. La

IC2
NCP1117ST50
D2
PMEG2010AEH
2

K2

C4

10u
25V

+6V5...15V
0

AUX
R1

AUX

K1

USB
1
2
3
4
5

C2

JP2
C1
100n

10u
10V

4V2
4V1

JP3
500mA

USB-B mini

1k5

+5V

100mA

D1

4 IN
7 EN

IC1

CHG

MAX1811

1 SELV

2 SELI
GND

BATT

5
BT1

GND
6

JP1

Transmisor
Cada pas tiene una serie de frecuencias de radio
asignadas para la Banda de Instrumentacin,
Cientfica y Mdica (ISM), a veces combinada
con Dispositivos de Corto Alcance (SRD, del
ingls, Short Range Devices). Estas frecuencias varan entre los distintos pases. Mientras
que en USA se usa la frecuencia de 315 MHz, en
Australia y en la mayora de los pases europeos
tenemos 433 MHz. Como existe una demanda
de transmisores sencillos y baratos, tambin hay
un cierto nmero de fabricantes que proporcionan mdulos de RF para este mercado. El tipo
de mdulo usado en este proyecto usa Modulacin por Desplazamiento de Amplitud (Amplitude Shift keying o ASK) y este tipo de mdulos
parece tener una configuracin de terminales
estandarizada en diferentes fabricantes. Por eso
hemos elegido este mdulo de transmisin de
RF. Debemos sealar que la lista de materiales
del proyecto que se indica aqu son slo modelos sugeridos.
Como podemos ver en el esquema elctrico de la
Figura 1, el mdulo de RF slo necesita tener una
trama de datos aplicada a su terminal DATA y,
para este proyecto, he usado un sencillo circuito
integrado PICAXE08M. He elegido este microcontrolador porque se encuentra muy fcilmente, el
lenguaje de programacin es fcil de aprender
y el circuito integrado no requiere ningn equipamiento especial para su programacin. Realmente es un sistema ideal para proyectos de
poco volumen y baja complejidad.
El cdigo es slo de unas pocas lneas (ver Listado 1) y, en la muestra de cdigo para este
proyecto se generan tres tonos cortos de 500 Hz
y, a continuacin, una pausa de unos 2,5 segundos. Aunque el cdigo se puede copiar tal cual,
recomiendo que se modifique la lnea donde se
generan los tonos, sobre todo si estamos usando
un cierto nmero de estos transmisores, unos
cerca de otros (como puede ocurrir en un club).
El transmisor normalmente est alimentado del
receptor del avin. Sin embargo, a veces, la batera del avin se desconecta en un accidente, por
lo que se ha aadido una batera de reserva. La
batera de reserva es una pequea batera de
Li-Po (de unos 130 mAh de capacidad), que normalmente alimenta pequeos aviones de interior.
La batera es muy barata y se puede conseguir
a travs de proveedores en Internet.
Normalmente utilizamos diodos de bloqueo para
seleccionar automticamente la fuente de alimen-

C3
10u
10V

1C

Li-ion/LiPo

120139 - 13

Figura 2.
Un posible circuito cargador
para la batera de LiPo/LiIon en el transmisor. Puede
alimentarse de manera
externa (6,515 VDC) o
a travs del puerto USB,
segn se seleccione con JP1.

www.elektor-magazine.es | junio 2013 | 73

Proyectos

+5V

+5V

K3
2

RXD
TXD
VCC

Figura 4.
El receptor del Localizador
de Modelos Perdidos utiliza
un viejo y fiable indicador
de barras grficas de LED
LM3914. El mdulo receptor
(RX) de 433 MHz (315 MHz)
va conectado sobre el
conector MOD1.

+5V

K1

IC1.F
1

IC1

12 11

10

IC1 = 74HC04

IC1.C

IC1.D

IC1.E

14

C1

TXD
RXD

IC1.B

13

100n

+5V

TTL-232R-5V

Figura 3.
Construir este circuito
inversor si utilizamos un
adaptador FTDI TTL-aRS-232 entre los terminales
TX/RX del transmisor
y, por ejemplo, un
microcontrolador.

K2

IC1.A

120139 - 14

nica desventaja es que, cuando se desconecta


la batera principal, la batera de reserva entra
en funcionamiento. Por ello, la batera de reserva
tiene que ser desconectada cuando el avin no
est en uso o terminar descargandose.
As pues, el Localizador de Modelos Perdidos se
puede dejar permanentemente in situ (es tan
barato que podemos tener uno para cada avin),
ya que est diseado con un puerto de carga combinado con un interruptor de encendido/apagado.
Esto lo conseguimos usando el conmutador interno
del conector tipo jack hembra de 2,5 mm, que
es activado por un jack macho de 2,5 mm. Con
el jack insertado, la batera de reserva se desconecta. Si se inserta un jack que est conectado
a un cargador, podemos cargar la batera.
Cargador
En la Figura 2 se muestra un circuito sugerido para un cargador. Dos entradas controlan el
modo en el que trabaja el cargador. Una entrada

+4V8

+4V8

selecciona la tensin de regulacin, 4,1 V o 4,2


V (puente JP2, SELV). La otra entrada establece
la corriente de carga, 100 mA o 500 mA (puente
JP3, SELI). Una caracterstica interesante de este
CI es la capacidad de colocar previamente la
batera cerca de su estado de agotada antes de
iniciar la carga. La entrada de habilitacin (EN)
no se usa y, por lo tanto, est permanentemente
conectada a la tensin de alimentacin. La descripcin general en las hojas de caractersticas
establece expresamente que el CI se puede alimentado desde un puerto USB y puede trabajar
con tensiones de entrada tan bajas como 4,35
V, la mnima de un puerto USB. Con tensiones
de entrada ms altas (el MAX1811 puede trabajar con una tensin mxima de 6,5 V) y con
un consumo de corriente elevado, el CI limitar
la corriente de carga para mantener la temperatura a un nivel seguro. Para los casos en que
slo se disponga de una fuente de alimentacin
con una tensin ms elevada, se ha aadido un
regulador de 5V (IC2), de baja cada de tensin.
Un puente selecciona la tensin de entrada para
el MAX1811 (JP1: AUX o USB). No conectes una
tensin de entrada al regulador si se ha seleccionado el puerto USB como fuente de entrada.
El desacoplo de la entrada del MAX1811 (C2) se
dobla, al igual que el desacoplo de salida del regulador. Esto se ha hecho para ahorrar el espacio.
Interfaz PICAXE PE
En algn momento tendremos que cargar sobre
el avin un programa idntico al del CI PICAXE.
En caso de estar usando un adaptador FTDI de
TTL-a-RS232 para hacer de interfaz con los terminales TXD/RXD del PICAXE, en combinacin
con el Editor de Programacin PICAXE, necesitaremos un circuito inversor adicional, tal y como
se muestra en la Figura 3.

K2

K1
+4V8
0

MOD1
Receiver
Module

R2

620R
R3

2N7000

74 | junio 2013 | www.elektor-magazine.es

D2

3
9

6
7

8
4
R4

V+

1k

T1

D1

100n

LED1
IC1 LED2
LED3
IN
LED4
DIV HI
LED5
REF OUT
LED6
LED7
LM3914
LED8
REF ADJ
LED9
DIV LO
LED10
MD SEL

1
18
17
16
15
14
13
12
11
10

D3
D4
D5
D6
D7
D8
D9

+4V8

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

C1

BZ1

V-

R1

Antenna

360R 2k7

D10

120139 - 12

Receptor
El receptor est basado en un mdulo complementario del transmisor. Sin embargo, hay que
poner un poco ms de cuidado en la seleccin
del receptor, para asegurar que ste suministra
las seales correctas a nuestro circuito.
Segn la Figura 4, la primera salida del mdulo
receptor viene del terminal DATA, 14. Los datos
pasan a travs de un FET, T1, de pequea seal y,
su salida, va al transductor piezoelctrico Bz1 (no
a un zumbador piezoelctrico). Lo que oiremos
de este transductor (con suerte!) son los tonos
y pausas generadas por el transmisor. En fun-

localizador de modelos perdidos

cionamiento oiremos nuestra seal de llamada


personal que fue introducida en el transmisor.
La segunda salida del transmisor es la salida
RSSA (terminal 13). Bsicamente, es una tensin que es proporcional a la fuerza de seal
y usada como parte del Control Automtico de
Ganancia (CAG) en estos receptores. Esta seal
se aplica a la entrada de un controlador LED
LM3914. Se detect que la seal de RSSA del
prototipo variaba entre 0,4 V y 2 V, con lo que
los lmites superiores e inferiores del controlador LED han sido establecidos en estos valores.
No entrar en el diseo del circuito alrededor
del LM3914, ya que este integrado ha sido utilizado en un sinfn de proyectos de electrnica DIY
(Do Your Self o Hazlo T Mismo) durante las
dcadas pasadas. Si queremos un tutorial ms
detallado, dirigid vuestro navegador web a [1]
y disfrutad del EEVBlog #204 de Dave. Saludad
a Dave de nuestra parte.
El receptor se alimenta con cuatro pilas AA o AAA,
recargables o secas, aunque tres pilas secas tambin deberan trabajar. A pesar de que las hojas de
caractersticas del transmisor dicen que la mxima
tensin es de 5 V, hemos verificado que el mdulo
puede trabajar sin problemas con hasta 7 V.
El otro elemento importante asociado con el
receptor es la antena direccional Yagi de 4 elementos. Esta antena fue elegida por su simplicidad y sus propiedades direccionales, una caracterstica que, obviamente, ser necesaria en la
seccin de cmo usarla.
Montaje
El transmisor est construido sobre una placa
de circuito impreso de doble cara que usa componentes SMD (ver Figura 5). El mdulo usa
conectores del tipo pinheaders, con separacin
entre terminales de 2,54 mm, para todas las
conexiones externas excepto para el posible K3.
La informacin del diseo se puede descargar
gratis de [2]. El PICAXE se puede soldar sobre la
placa, pero tambin se puede montado sobre un
zcalo DIL-8. Slo soldaremos los dos transistores si usamos la versin con batera de reserva.
No conectaremos an el mdulo de RF sobre la
huella marcada como K3.
En estas condiciones, podemos probar el controlador del transmisor conectando un transmisor piezoelctrico entre los terminales de datos
y masa que van al mdulo de RF. Despus de
aplicar la alimentacin deberamos ser capaces
de or nuestros tonos de llamada.

Lista de materiales
Transmisor
Resistencias
R1 = 10k 1%, SMD0805
R2 = 22k 1%, SMD0805
Semiconductores
IC1 = PICAXE-08M2, programado
T1,T2 = DTB123YK
Miscelneos
K1,K2,K5 = conector tipo pinheader de 3 terminales,
paso 2,54 mm.
K3 = conector tipo pinheader de 4 terminales, paso
2,54 mm (opcional, ver texto).
K4,BT1, conector tipo pinheader de 2 terminales,
paso 2,54 mm.
Mdulo transmisor (en K3), ASK, banda ISM 433MHz,
modelo autorizado, por ejemplo, Quasar Electronics
tipo QAM-TX1 (433 MHz), Farnell/Newark # 1304024.
Lectores USA, usad equivalente de 315MHz.
Batera LiPo, de 3,7V, 130mAh
Placa de circuito impreso ref.120139-1

Receptor
Resistencias
R1 = 1k
R2 = 620 1%
R3 = 360 1%
R4 = 2.7k
Condensadores
C1 = 100nF, paso 5 mm o 7,5 mm

Figura 5.
La placa del Transmisor
es de doble cara y utiliza
componentes SMD. La
placa del Receptor est
diseada en una sola
cara con componentes de
taladro pasante. La placa
TX se muestra al 150 %
de su tamao real.

Semiconductores
D1D10 = LED, naranja, 2,5x5mm rectangular, 20mA
T1 = 2N7000
IC1 = LM3914
Miscelneos
BZ1 = (no en la placa) transductor piezoelctrico, terminales flotantes, Farnell/Newark # 1193640
K1,K2,(BZ1) = conector tipo pinheader de 2 terminales, paso 2,54 mm
(MOD1) = conector tipo pinheader de 15 terminales,
SIL, rectos, paso 2,54 mm.
MOD1 = Receptor AM SuperHet, QAM-RX3 (433
MHz), RS Components # 742-4484. Lectores USA,
usad equivalente de 315 MHz.
Soporte para 3 4 pilas AA(A), ver texto.
Placa de circuito impreso ref.120139-2

El mdulo de RF se puede conectar a la placa con


un trozo corto de cable plano de 4 hilos, usando
conectores pinheaders y adaptando conectores
IDC. O bien, se puede dejar plano sobre la placa
del microcontrolador, tal y como se muestra en la
Figura 6 (versin de 433 MHz construida por los
Laboratorios de Elektor). Nos aseguraremos de que
las caras de soldadura de las placas no se tocan.
La parte final es la instalacin de una antena de
un cuarto de onda. Una pieza del hilo rgido de,
aproximadamente, 173 mm de longitud, har
esta funcin (yo he usado un nucleo de un cable

www.elektor-magazine.es | junio 2013 | 75

Proyectos

Figura 6.
Placas del Cargador
LiPo (izquierda) y del TX
ensamblada (derecha). La
placa PICAXE y el mdulo
transmisor pueden ser
conectados sin cable,
simplemente doblando
y soldando los cuatro
terminales directamente
sobre K3.

Ethernet). Si usamos un mdulo TX de 315 MHz,


la longitud de la antena debe ser de 240 mm
(recordad que viene de (300/f) 4).
La placa del microcontrolador, el mdulo de RF
y la batera de reserva (si se usa) pueden sujetarse con un trozo corto de tubo termo-retrctil.
El diseo de la placa de circuito impreso del receptor tambin se muestra en la Figura 5. El receptor
se monta sobre una placa de una sola cara para
componentes de taladro pasante, por lo que su
montaje no debe suponer problemas. Insertaremos y soldaremos todos los componentes en la
placa. El mdulo de radio se monta verticalmente.
La placa y el soporte para las tres (o cuatro) pilas

Lista de materiales
Cargador LiPo (opcional)
Resistencias
R1 = 1.5k SMD 0805
Condensadores
C1 = 100nF SMD0805 X7R
C2,C3 = 10F 10V, SMD 0805, X7R
C4 = 10F 25V, SMD 1206, Y5V

Figura 7.
La placa del cargador es
un diseo de doble cara
para componentes de
montaje superficial.

Semiconductores
D1 = LED, rojo, SMD 0805
D2 = PMEG2010AEH, Farnell/Newark # 1510673
IC1 = MAX1811ESA+, Farnell/Newark # 1593327
IC2 = NCP1117ST50T3G, Farnell/Newark # 2112617
Miscelneos
K1 = mini USB hembra tipo B, SMD
K2,(BT2) = conector tipo pinheader de 2 terminales,
paso 2,54 mm
JP1,JP2,JP3 = conector tipo pinheader de 3 terminales, paso 2,54 mm, con puente
Placa de circuito impreso ref.120139-3

76 | junio 2013 | www.elektor-magazine.es

AA(A) se pueden montar en la parte ancha de la


antena Yagi, detrs del reflector. Los elementos
radiantes (dipolo) de la antena Yagi deberan estar
conectados a la entrada del mdulo de radio con
un cable coaxial de 50 de pequea longitud,
como el RG174/U o /CU. La longitud de este cable
debe ser la mnima posible para evitar prdidas
excesivas. Resiste cualquier tentacin de utilizar
un cable de audio apantallado.
El cargador (opcional) est construido sobre la
placa que se muestra en la Figura 7. No olvidis montar los puentes de acuerdo a nuestras
necesidades.
La antena de 4 elementos es totalmente de
fabricacin casera. En Internet podemos encontrar varios diseos y puedes convencer a algn
miembro de tu club local de aeromodelismo, con
conocimientos mecnicos, de construir algunas
antenas ms sofisticadas para los miembros del
mismo. El autor hizo los elementos radiantes a
partir de alambre de percha, aunque cualquier
alambre rgido har la funcin, como el del cable
de instalacin elctrica. Intenta cortar los elementos radiantes a las longitudes mostradas en
el dibujo de la Figura 8 (dimensiones para la
frecuencia de 433 MHz). El prototipo del autor
fue hecho con hojas de plstico corrugado (de las
marcas Corflute; Corriboard; Polyflute) de unos
3 mm (1/8 pulgadas), con los radiantes insertados en los ncleos. El espaciado no se calcula de
forma exacta, sino que se obtiene con la prctica.
Los Laboratorios de Elektor construyeron su
antena de Yagi con una pieza de madera de 570
x 53 x 12 mm y con trozos de hilo de cobre de
cable de instalacin elctrica de 2,5 mm2 de seccin (ver la foto que abre el artculo), montados
en las posiciones exactas de la Figura 8. La
parte amplia (o boom) es lo suficientemente
larga y ancha como para sostener la placa RX
y el soporte de la batera. Esta antena debera
tener una ganancia de unos 7 dB, permitiendo
que el TX sea encontrado a una distancia de unos
300 m. En una zona urbanizada, como la de los
Laboratorios, fuimos capaces de medir su localizacin dentro y en los alrededores del cuartel
general de Elektor.
Conectaremos los elementos radiantes (dipolos)
de la antena al receptor a travs del cable previamente instalado. Los ms quisquillosos con los
nano-voltios puede que quieran aadir que un
balun para la adaptar adecuadamente el radiador
simtrico al cable coaxial asimtrico pero, en este
caso, el trabajo y el coste puede que no compense.

localizador de modelos perdidos

I
A

Pruebas
Por suerte no se requiere ninguna calibracin.
Dejaremos el transmisor apagado en este proceso. Encendemos el receptor y debemos or el
ruido blanco con los chisporroteos ocasionales.
El indicador LED debera mostrar el LED ms
bajo encendido.
Encendemos ahora el transmisor. Ahora deberamos or nuestros tonos de llamada y la barra
grfica debera moverse arriba y abajo, sincronizada con los tonos de la seal de llamada. La
barra grfica debera llegar al mximo de la escala
cuando el transmisor y el receptor estn a unos
3 m de distancia el uno del otro.
En funcionamiento
Hace falta un poco de prctica a fin de usar con
xito el Localizador de Modelos Perdidos. Al
principio lo mejor es trabajar con un amigo que
esconda el transmisor en un parque o jardn y
luego intentar encontrar el transmisor.
La antena es direccional y el extremo en punta
es el extremo con mayor sensibilidad. Al buscar
el transmisor, sostendremos la antena delante de
nosotros y la giraremos haciendo un crculo completo. Escucharemos intentando identificar nuestra seal de llamada para asegurarnos seguimos a nuestro transmisor. El grfico de barras
nos indicar hacia donde est la seal mxima.
Andaremos en la direccin de la seal mxima.

A = 30 mm
B = 124.4 mm
C = 138 mm
E = director #2, 307.9 mm*
F = director #1, 310.8 mm*
G = radiador, 2 x 163.5 mm*
H = reflector, 338 mm*
I = boom, 570 mm
* Hilo de 2,5 mm2/AWG 13

Figura 8.
Antena Yagi experimental
con la electrnica del
receptor sujeta en la parte
superior del boom de
madera, detrs del reflector.
Los elementos directores,
radiador y reflector
estn hechos con hilo de
instalacin elctrica (de
unos 2,5 mm2 / 13AWG) y
estn sujetos al brazo de
madera con abrazaderas
despus de centrarlos
cuidadosamente sobre el
brazo. Por razones de
seguridad, los terminales
radiales deben estar
cubiertos con un objeto
romo o con algo plastificado.
La ganancia es de,
aproximadamente, 7 dB.

Continuaremos haciendo esto, parndonos de


vez en cuando para comprobar nuestros datos,
verificando que la barra grfica incrementa su
tamao a medida que nos acercamos.
En algn punto ya estaremos cerca del transmisor
y la barra grfica estar al mximo de su nivel.
Ahora colocaremos el extremo menos sensible
de la antena en la direccin en que creemos
que est el transmisor. Ahora, cuando hacemos
girar la antena alrededor nuestro, no tenemos
que buscar el mximo de seal, sino la seal
mnima. Comenzaremos a desplazarnos sigilosamente hacia atrs.
Tambin podemos cambiar nuestra posicin, bien
manteniendo los radios de la antena paralelos a
la tierra, bien en perpendicular, o bien en cualquier otra orientacin.
Los ltimos metros son los ms difciles para
localizar de forma precisa el avin, sobre todo,
uno perdido entre la vegetacin o la maleza.
Tampoco debemos olvidar mirar en las copas de
los rboles! Nunca sabemos dnde se esconde
nuestro avin de modelismo.
(120139)

[1] El EEVBlog # 204 de Dave: HTTP://


www.youtube.com/watch?v=
iIKGvHjDQHs&feature=player_embedded)
[2] Pgina del proyecto: www.elektor-magazine.
es/120139

www.elektor-magazine.es | junio 2013 | 77

Magazine

Konrad Zuse:
del Z1 al Z4, y ms all
Todo empez con ceros,
unos y lgebra

Desde los albores de la matemtica y el pensamiento lgico, el ser


humano ha buscado formas de simplificar cualquier tarea repetitiva.
Basndose en la comprensin de las funciones y relaciones lgicas, se
desarrollaron varias mquinas de clculo tremendamente sofisticadas.
Este artculo hace un recorrido a travs de las impresionantes
contribuciones de Konrad Zuse al desarrollo del computador.
2

Peter Beil (Alemania)


Una de las primeras mquinas de clculo fue la fabricada por Gottfried Leibniz alrededor de 1700 (figura1). Sin
embargo, tuvieron que pasar doscientos
aos antes de que estas mquinas fueran capaces de llevar a cabo operaciones
lgicas directamente. El incansable pensador e inventor Konrad Zuse (figura2)
construy su Z1 en el ao 1938. Se trataba de un computador hecho y derecho
(aunque mecnico). (El trmino computador deriva del latn y significa contar
o calcular). Esta mquina poda programarse a voluntad y slo era capaz de calcular utilizando valores binarios. El original fue destruido durante la guerra, pero
se expone una rplica en el Deutsches
Technikmuseum (Museo de Tecnologa)
de Berln (figura3).

Z1: un comienzo problemtico


El computador Z1 se basaba en funciones lgicas como and y or, pero
implementadas de forma completamente
mecnica! La mquina tena un considerable nmero de problemas debidos a las
tolerancias, la friccin y dems, y los elementos a veces se bloqueaban. Una de las
ventajas del Z1 respecto de los computadores actuales es que su memoria era

78 | junio 2013 | www.elektor-magazine.es

completamente no-voltil: las mquinas


modernas slo son capaces de emular
esta caracterstica de forma indirecta.
Konrad Zuse se percat de que la nica
manera posible de realizar operaciones
segn el diseo de su computador era
utilizar el sistema binario. De esta forma
se desmarcaba de los investigadores y
pioneros en Estados Unidos y Gran Bretaa, que inicialmente prefirieron utilizar
el sistema decimal.

Z2: 16 bits a 10 Hz
Los problemas mecnicos del Z1 llevaron
a Zuse a realizar un experimento: en 1939
diseaba el Z2, utilizando varios cientos
de rels telefnicos (figura4). ste funcionaba a una frecuencia de reloj de unos
10Hz, y dispona de las cuatro operaciones
aritmticas bsicas con nmeros binarios
de coma fija. Contaba con una memoria
de 16 bits y pesaba alrededor de 300kg.

Z3: datos en tiras de film


En mayo de 1941, Zuse presentaba su
Z3, el primer computador digital realizable (figura5). ste utilizaba 600 rels en
la unidad aritmtica y otros 1400 para la
memoria. Al igual que el Z1, usaba aritmtica binaria de coma flotante, siendo el
primer computador programable universal.

Se sabe que Zuse tena un amigo trabajando en la UFA (un gran estudio de cine
alemn), que le dio la idea de utilizar tiras
de film perforadas como medio de entrada.
La unidad era capaz de perforar directamente la tira de film (figura6). Lgicamente tambin dispona de un lector
adicional: utilizaba las guas del film
para alinear correctamente los agujeros que codificaban los datos de entrada
(figura7).
El Z3 original tambin fue destruido en la
guerra, pero en el Deutsches Museum de
Mnich (Museo Alemn de Ciencia y Tecnologa) se expone una rplica completamente funcional. La rplica fue fabricada
por la compaa ZuseKG (actualmente
desaparecida). Si echamos un vistazo a
su interior, podremos ver su impresionante cableado, el mecanismo rotativo
para generar las seales del reloj, y los
telerruptores, utilizados posteriormente
en los sistemas de marcacin telefnica
(figuras8, 9 y10). La mquina operaba
con palabras de 22bits, un exponente
de 7bits, una mantisa de 14bits y un
bit de signo. Contaba con una memoria de 64palabras basada en rels, y
los programas siempre se ejecutaban
en bucle. Podan introducirse nmeros
con un teclado (figura11), y los resultados se mostraban en un display utilizando pequeas bombillas (figura12).
Aparte de las cuatro operaciones aritmticas bsicas, el Z3 tambin contaba
con una funcin para races cuadradas.

Z4: an todo mecnico


En 1942 Zuse empez a trabajar en
el Z4, que estuvo listo para su uso en
1945 (figura13). Esta mquina tambin se basaba en rels y su competencia
eran los coetneos americanos MarkI
(1944) y ENIAC (1946). Sin embargo,
stos funcionaban con principios distintos, por ejemplo con tecnologa basada
en vlvulas y representaciones decimales
(figura14, Einiac de 1946).
Al igual que el Z3, el Z4 era similar en
gran medida a los ordenadores de hoy
en da. Era capaz de ejecutar bucles,
manejar aritmtica en coma flotante con
una mantisa de 24bits, exponente de

7bits y bit de signo (de ah el tamao


de palabra bsico de 32bits, y contar
con dos unidades aritmticas operando
simultneamente. Aparte de las operaciones aritmticas bsicas, era capaz
de calcular cuadrados y extraer races.
El set de instrucciones del Z4 constaba
de un total de 29. Tena conectado un
dispositivo elctrico de impresin, pero
no exactamente lo que hoy llamaramos
impresora, si no que ms bien se utilizaba para generar reportes de los cmputos de la mquina (figura15).
Podan introducirse programas mediante
tiras de film (figura16). No dispona de
memoria en el moderno sentido de la
palabra, y se perdan todos los datos al
cortar la alimentacin. Las memorias con
ncleo de ferrita no entraron en escena
hasta mediados de los aos 50.
El Z4 era capaz de realizar unas 30 operaciones por minuto: una suma llevaba
aproximadamente medio segundo, y una
multiplicacin unos 3.5. Se empez a trabajar en varias mejoras, como en subrutinas del programa y registros de ndice
para el clculo de direcciones, pero se
perdieron con el caos de la guerra.

Lenguaje de programacin y
desarrollos en la posguerra

No todo el mundo est al tanto de que Konrad Zuse ya se percat por aquel entonces de la necesidad de un lenguaje de
programacin de alto nivel. Entre 1945
y 1946 desarroll Plankalkl (sistema
formal de planificacin) pero no fue capaz
de publicar sus logros. Su trabajo fue un
anticipo de los lenguajes de programacin
posteriores como Fortran, ALGOL y COBOL.
En los aos siguientes a la guerra, el Z4
se vio envuelto en una odisea a travs
de Alemania, Suiza y Francia. IBM (entre
otros) estaba interesado en adquirir los
derechos de propiedad intelectual con
el objetivo de frenar cualquier desarrollo posterior de la mquina. En los aos
50 la mquina se encontraba en el ETH
(Instituto Tecnolgico Suizo) de Zurich,
donde se utilizaba para resolver problemas en la investigacin cientfica: en
1950 era el nico computador funcionando en la Europa continental. En 1960

10

www.elektor-magazine.es | junio 2013 | 79

Magazine
As es como piensa un computador como el Z3
Al final, toda operacin puede
reducirse a una suma o resta
de dos nmeros enteros.
Dos nmeros en coma flotante
se suman de la siguiente
manera. Primero se calcula la
diferencia entre exponentes;
posteriormente este valor
se utiliza para desplazar una
de las mantisas y alinear las
comas en binario; despus las
mantisas alineadas se suman.
K. Zuse (l) y H. Nixdorf
La resta es similar, con un paso
adicional en el cual se obtiene el complemento a dos de la segunda mantisa.
La multiplicacin se hace sumando los dos exponentes y posteriormente
multiplicando las mantisas mediante un mtodo de suma iterativa.
A su vez, la divisin es parecida a la multiplicacin: se restan los exponentes y
luego se dividen las mantisas segn una resta iterativa. Las races cuadradas se
calculan mediante un mtodo iterativo similar a la divisin.
A nivel alto, la unidad aritmtica consta de dos partes, una se encarga de los
clculos de los exponentes y la otra en las de las mantisas. Las instrucciones
implementadas utilizando un algoritmo iterativo necesitan un secuenciador para
controlar las distintas partes de la mquina: esto se corresponde hoy en da con
el uso del microcdigo en los procesadores modernos.

11

12

la mquina dio por finalizados sus viajes,


descansando finalmente en el Deutsches
Museum de Mnich.
La empresa Zuse continu fabricando computadores cientficos durante bastantes
aos, y en 1961 lanzaron al mercado el
primer plotter completamente funcional, el
Graphomat. Sin embargo, esta pequea
compaa no fue capaz de hacer frente a
la agresiva competencia proveniente de
Estados Unidos, y en 1964 pas a formar
parte de BBC (Brown Boveri & Cie.), y
posteriormente, en 1967, de Siemens AG.

13

Crditos
Fotografas 1, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 15, 16 tomadas por el autor, con la
autorizacin del Museo Alemn de Ciencia
y Tecnologa de Mnich
Fotografa 14: wikipedia.de
Fotografa 3: Museo de Tecnologa, Berln
Fotografa 2: Profesor Horst Zuse

(130040)

14

15

16

80 | junio 2013 | www.elektor-magazine.es

Retrnica es una seccin mensual


que trata sobre electrnica antigua,
incluyendo diseos legendarios de
Elektor. Contribuciones, sugerencias
y peticiones son bienvenidas; por
favor, enviad un e-mail a editor@
elektor.com.

Hexadoku

Hexadoku

Un rompecabezas con un toque electrnico


Este rompecabezas Hexadoku no requiere de nada remotamente parecido a un computador Zuse como los que aparecen en
nuestra seccin Retrnica para resolverlo. El razonamiento lgico, la concentracin y la paciencia deberan bastar para encontrar
la solucin. Introduce los nmeros o las letras de la A al F correctas en las casillas libres, encuentra la solucin en las casillas
grises, envanosla y entrars automticamente en el sorteo de uno de los cuatro bonos para la tienda de Elektor. Divirtete!
El Hexadoku utiliza los nmeros hexadecimales de 0 a F.
Rellena el diagrama de 1616 casillas de modo que todos
los nmeros hexadecimales de 0 a F (es decir, 09, AF)
aparezcan una sola vez en cada fila, en cada columna y en
el recuadro de 44 (marcados con lneas en negrita). Ya hay

algunos nmeros rellenos en el crucigrama, que determinan


su situacin inicial. Entre todas las soluciones correctas recibidas, sorteamos cada mes un gran premio y tres premios
de consolacin. Para ello, debes enviarnos los nmeros de
las casillas en gris.

Resuelve el Hexadoku y gana!

Participa!

Las soluciones correctas recibidas de los lectores de Elektor participan


automticamente en el sorteo de cuatro bonos para la tienda de
Elektor, uno de 100 y tres de 50 . Esperamos que estos premios
animen a todos nuestros lectores a participar!

Por favor, envanos tu solucin (los nmeros de las casillas grises) por
correo electrnico a hexadoku@elektor.es Asunto: hexadoku 06-2013
(por favor, cpialo exactamente). Incluye en el correo tu nombre
completo y tu direccin. Envalo antes del 1 de julio de 2013.

Ganadores del sorteo


La solucin del Hexadoku de Abril de 2013 es: 934CB.
El Bono de 100 para la tienda de Elektor es para: David Smart (USA).
Y los 3 Bonos de 50 son para: Joseph Reding (Luxemburgo), Karsten Krummeich (Alemania), y Paul Blaak (Holanda).
Enhorabuena a todos!

9 C 2

4 B D E

6 A 0

8 C 6

9 B C

E B D 3

1 A 9

7 D 1

8 C 0

9 B 4 A D F

7 B 6

4 A

8 D 9

2 B 0

6 A C 1

C 0

4 D 2 A B 9

2 A 4

9 C D 3

7 B E

3 C D 2
7

1 A 5

0 D B C E

B 4

1 C A D

D 6

A 2

9 C 1

8 B 3

0 C 1

4 B A D 6

E B 7

6 C A 2

5 C 6 D E

8 A 2

7 D 9

0 B 2

4 D 1

A 2

7 B

4 C B 7 D 0

C A

3
8

Los empleados de Elektor International Media, sus empresas subsidiarias y/o editoriales asociadas no podrn participar en este concurso.

www.elektor-magazine.es | junio 2013 | 81

Store

Oferta por tiempo limitado


para socios GREEN

Pide tambin el Kit de


Componentes asociado!
www.elektor.es/labworx

5 DE DESCUENTO Y
ENVO GRATUITO
www.elektor.es/mayo

La puerta de entrada al cdigo abierto

ocho bases de datos que comprenden circuitos inte-

grados, transistores, diodos y optpacopla dores. In-

tcnicas necesarias para realizar montajes SMT satisfacto-

cluye once aplicaciones de clculo de, por ejemplo,

riamente. Se revelan muchos consejos y trucos prcticos

Si alguna vez has querido aprovechar el creciente

resistencia serie de diodos zener, reguladores de ten-

para poner la tecnologa de montaje superficial al alcance

campo del software open source para la electrnica y las

sin y AMVs. ECD facilita el acceso a los datos unos

de todos sin arruinarse.

aplicaciones de uso diario, este libro (en ingls) es para ti.

de 11.100 circuitos integrados, 37.000 transistores,

282 pginas ISBN 978-1-907920-12-7 34,50

Utilizando el sistema operativo Linux, el autor, Warwick

FET, tiristores y triacs, 25.100 diodos y 2.000 op to

A. Smith, te gua a travs del mundo del hardware y

acopladores. Todas las aplicaciones son totalmente

software abierto, ensendote a utilizar la herramientas

interactivas, permitiendo al usuario aadir, editar y

EDA y el software que estn disponibles en lnea para

completar los datos de los componentes.

descargarlos gratuitamente. Los proyectos de hardware

ISBN 978-90-5381-298-3 29,50

Esta placa de ampliacin fue desarrollada para

Open Source
Electronics on Linux

Unidad de control Linux

y la correspondiente placa GNUblin. Tiene un display,

tu hogar, sobre placas de una sola cara, o fabricados

LabWorX 2

profesionalmente con los archivos que t generes. Open

Source Electronics on Linux trata sobre el actual cambio

Placa de expansin Linux

impulsar nuestra de artculos sobre Linux Embebido

que contiene se pueden construir con componentes


fcilmente localizables, dentro de la comodidad de

en el manejo de componentes de montaje superficial y las

Mastering Surface
Mount Technology

botones, un reloj de tiempo real y 16 GPIOs. Devotos


de Linux, ir calentando vuestros soldadores. En la
placa de expansin Linux encontraremos todo lo

del entusiasta de la electrnica en un acreditado, experto

LabWorX es una coleccin de libros (en ingls) cada uno

necesario para controlar varios proyectos!

y exigente ingeniero capaz de construir y modificar sus

de los cuales trata un tema particular de la electrnica.

Mdulo SMD - Placa montada y comprobada +

creaciones, ya sea solamente en Linux o en conjuncin

Este segundo volumen, Mastering Surface Mount Tech-

LCD1, X1, K1..K4, BZ1, BT1 para montar

con tu actual sistema operativo.

nology (Dominando la Tecnologa de Montaje Superficial),

Art.# 120596-91 34,95

272 pginas ISBN 978-1-907920-19-6 34,50

te introduce en un curso intensivo de tcnicas, consejos


y conocimientos para introducir la Tecnologa de Montaje
Superficial en tu flujo de trabajo. Incluso si tienes presu-

Ms de 75.000 componentes
2

CD Elektors Components
Database 7

puesto tambin puedes poner en marcha tus diseos con


avanzados componentes de pequeo tamao. Adems de

Presentacin en vdeo de 140 minutos y ms


5

DVD Feedback in
Audio Amplifiers

explicar la metodologa y equipamiento, se presta aten-

En esta clase magistral tratamos algunos aspectos

Este CD-ROM te permite acceder fcilmente a los da-

cin a la tecnologa de los componentes y a las tcnicas

de la realimentacin en los amplificadores de audio.

tos sobre ms de 75.000 componentes. Consta de

de soldadura. Varios proyectos te introducen paso a paso

El objetivo de esta Masterclass (en ingls), aunque no

82 | junio 2013 | www.elektor-magazine.es

Libros, CD-ROMs, DVDs, Kits y Mdulos

completamente exenta de matemticas, es propor-

Los Secretos del Sonido y Tecnologa

a corta distancia, basndose en la tecnologa de los semiconductores. Este libro enlaza ambas tcnicas. Catch

A da de hoy se puede encontrar Linux corriendo en

7 Electric Guitar
Este libro (en ingls) muestra, de una manera sencilla y bien fundamentada, lo que, hasta ahora, se han
considerado como secretos del fabricante. El examen
explora las profundidades de la guitarra, incluyendo
las pastillas y el entorno elctrico, de forma que la
electrnica de la guitarra ya no es considerada como
un alto secreto. Con unas pocas intervenciones hbiles, muchos instrumentos pueden hacerse ms verstiles y que suenen mucho mejor de forma asequible
en la mayora de los casos. El autor, Helmuth Lemme,
es un profesional experimentado de la electrnica y
msico activo. Realmente ha probado en la prctica
todo lo que se describe aqu.

todo tipo de dispositivos, incluso en mquinas de caf.

287 pginas ISBN 978-1-907920-13-4 34,50

El dispositivo puede utilizarse con distintos sensores

cionar una visin y comprensin de los temas involucrados. El presentador, Jan Didden, proporciona una
visin clara de los beneficios que pueden obtenerse
de la realimentacin y su hermana, la correccin de
errores; pero tambin de sus limitaciones y desventajas. Recomendado para diseadores y buenos aficionados al audio!
ISBN 978-907920-16-5 29,95

Placa Linux de Elektor


6

Simplificando Linux
Embebido

Muchos entusiastas de la electrnica estarn ansiosos

operativo y el alto precio de las placas de desarrollo


han sido hasta ahora un obstculo. Elektor resuelve
ambos problemas con un curso para principiantes
acompaado por una tarjeta compacta y barata. Esta
tarjeta incluye todo lo necesario en un proyecto embe
bido actual: un interfaz USB, una conexin para tarjetas SD y varias opciones ms de expansin!
Placa montada y comprobada
Art.# 120026-91 64,95

integrada, y curiosamente, el contenido de este libro tecnolgicamente puntero trata sobre algo en cierta medida primitivo: la magia de los globos aerostticos. El
libro incluye numerosos chips NFC que permiten conectarlo a Internet, basta con tocar en los tags con nuestro
smartphone o tablet compatibles con NFC.
128 pginas ISBN 978-9-07545-861-9 45,00

Contador de alfa, beta y gamma


9

Medidor de radiacin
mejorado

para medir la radiacin gamma y alfa. Es apto para

de usar Linux como base de un proyecto para microcontrolador, pero la aparente complejidad del sistema

the Sun es el primer libro del mundo con tecnologa NFC

medidas durante largo tiempo y el anlisis de probetas

El primer libro del mundo


con tecnologa NFC integrada

8 Catch the Sun


La tcnica de comunicacin sin contacto ms antigua conocida data de hace 2000 aos en China, con la dinasta
Han. Aquella poca vio nacer a la linterna Kongming: un
pequeo globo de aire caliente utilizado principalmente
para transmitir seales militares. Hoy en da, los globos
Kongming han sido sustituidos por chips. El Near Field
Communication, o NFC, ofrece conectividad inalmbrica

de baja actividad. En comparacin con un contador


Geiger, un fotodiodo ofrece valores de cero ms bajos,
y la radiacin de pequeas muestras se aprecia con
mayor facilidad. Podemos testear probetas de forma
ms precisa que con un contador Geiger. Mediante un
software de PC opcional puede obtenerse el espectro
energtico y sacar conclusiones del objeto a examen.
Kit de componentes incluyendo display y
controlador programado
Art.# 110538-71 39,95

www.elektor-magazine.es | junio 2013 | 83

Store
11

12

12

10

13

Programacin paso a paso

10 Android Apps
Este libro (en ingls) es una introduccin a la
programacin de apps para dispositivos Android. El
funcionamiento del sistema Android se explica paso
a paso, con el objetivo de mostrar como se pueden
programar aplicaciones personales. Se presenta una
amplia variedad de aplicaciones basadas en buen
nmero de ejemplos prcticos, desde programas
de matemtica simple, lectura de sensores y datos
GPS, hasta programacin avanzada para aplicaciones
de Internet. Adems de escribir aplicaciones en el
lenguaje de programacin Java, este libro explica
tambin cmo se pueden programar aplicaciones
empleando Javascript o scripts PHP. Cuando se
trata de personalizar tu smartphone no deberas
sentirte limitado por las aplicaciones que haya
en la plataforma, ya que crear tus propias apps y
programar dispositivos Android es ms fcil de lo que
piensas.

14

se puede configurar tu propio circuito digital en un


integrado, como si fuese de verdad tu propio chip.
En esta serie mostramos cmo cualquier electrnico

Curso Elemental
13

Elementary Course
BASCOM-AVR

puede iniciarse fcilmente en este tipo de lgica

Los microcontroladores AVR son populares, fciles de

programada, con la ayuda de una placa FPGA de

usar y extremadamente vestiles. En la revista Elektor

pruebas diseada en el laboratorio de Elektor. Miedo

ya hemos publicado muchas aplicaciones interesantes

a las FPGA?

utilizando microcontroladores ATmega o ATtiny. La ma-

Que va, ya no con la ayuda de la placa FPGA de

yora de estos proyectos desempean una funcin par-

Elektor!

ticular. En este libro (en ingls) nos centramos ms en

Mdulo montada y comprobada

los aspectos relacionados con el software. Con muchos

Art.# 120099-91 59,95

ejemplos prcticos mostramos cmo, utilizando BASCOM, puedes poner en marcha rpidamente tus ideas

Incluye gratuitamente
el compilador mikroC en CD-ROM
12

Controller Area
Network Projects

de diseo y ejecutarlas en silicio.


224 pginas ISBN 978-1-907920-11-0 39,95

Todos los artculos del ao 2012

DVD Elektor 2012

El objetivo de este libro (en ingls) es ensearte los

14

principios bsicos de las redes CAN adems del de-

El DVD-ROM volumen anual se encuentra entre

sarrollo sistemas basados en microcontrolador utili-

los productos ms populares de Elektor. Este DVD

zando el bus CAN. Aprenders cmo disear nodos de

contiene todos los artculos editoriales publicados en el

bus CAN basados en microcontroladores, cmo con

Volumen 2012 de las publicaciones en espaol, ingls,

struir un bus CAN, cmo desar rollar programas de

holands, francs y alemn de la revista Elektor.

alto nivel y a intercambiar datos en tiempo real sobre

Con el programa Adobe Reader suministrado, los

el bus. Aprenders tambin cmo construir hardware

artculos se presentan con el mismo diseo con el que

Uno de los componentes ms polifacticos y

con microcontroladores y a conec tarlo con LEDs, LCDs

originalmente los encontramos en la revista. Los DVD/

complejos de la electrnica actual es sin duda la

y converti-dores A/D.

CD-ROMs cuentan con un potente motor de bsqueda

FPGA, un laberinto de puertos y circuitos con la que

260 pginas ISBN 978-1-907920-04-2 34,50

y dan la posibilidad de editar los diseos de las PCBs

244 pginas ISBN 978-1-907920-15-8 39,95

Disea tu propio integrado


11

Placa FPGA de Elektor

84 | junio 2013 | www.elektor-magazine.es

Libros, CD-ROMs, DVDs, Kits y Mdulos

15

17

18

16

Completa tu coleccin

con un programa grfico u obtener una copia impresa

soar y de disfrutar. Si como a nosotros nos ocurre,

a resolucin de impresora.

los prodigios de las tcnicas modernas ponen a nues-

18

ISBN 978-90-5381-273-0 27,50

tro alcance el poder maravillarnos, venid a tocar las

Esta publicacin de Linear Audio (en ingls) es la cuarta

partes ms pequeas del voltio.

edicin de una serie de libros impresos dedicados al

Mdulo Medidor LCR + mdulo LCD

audio tcnico y la percepcin. El equipo internacional

Art.# 110758-93 254,00

de autores de esta edicin nuevamente ofrece artculos

120 revistas de Elektor en espaol


15

DVD Elektor desde


1998 a 2007

Este DVD-ROM contiene la coleccin completa de la revista de electrnica Elek tor editada en Espaa entre
los aos 1998-2007. Las ediciones de Elektor, que as-

Linear Audio 4

tcnicos de audio sobre un amplio nmero de temas

10 interesantes lecciones
17

PIC Microcontroller
Programming

que van desde tutoriales al diseo de circuitos y


sistemas, a informes de proyectos y pruebas o
revisiones de libros. Edicin contiene colaboraciones
editoriales de Nelson Pass, Burkhard Vogel, Les

cienden a un total de 120 revistas publicadas durante

En este libro (en ingls) aprenderemos a programar un

Bordelon, John Walton, Jan Didden y otro muchos.

esos 10 aos, estn en formato PDF y orde-nadas cro-

microcontrolador utilizando JAL, un lenguaje para micros

203 pginas ISBN 978-94-90929-05-3 23,50

nolgicamente por fecha de publicacin (ao/mes). El

PIC gratuito, pero increblemente potente, que goza de

DVD contiene ms de 2100 artculos imprimibles con

gran popularidad en el mundo del modelismo. Empeza-

alta calidad. Puedes abrir un documento PDF seleccio-

remos literalmente desde un boceto, hasta ir afianzan-

nando el ao de publicacin y luego la edicin deseada.

do poco a poco nuestros conocimientos. No se necesita

ISBN 978-90-5381-241-9 59,00

formacin previa: cualquiera puede iniciarse con este


libro. Una vez superadas todas las lecciones, es decir,
tras haber completado todos los ejercicios, nos sentire-

El lujo de la precisin al alcance de todos


16

Medidor LCR 0,05 %

mos seguros para codificar nuestros propios programas


para microcontroladores PIC, as como para entender

La remarcable precisin de este aparato y su asom-

programas escritos por otras personas. El software que

brosa comodidad de uso son el resultado de un cuida-

acompaa a este libro puede descargarse gratuitamen-

doso estudio. Funciona tan bien, detrs de su fachada

te, incluyendo el lenguaje de programacin JAL.

depurada, que casi olvidaremos las sutilezas de las

284 pginas ISBN 978-907920-17-2 34,50

tcnicas de medida usadas en el mismo. Para nuestros


lectores apasionados de las medidas, es la ocasin de

Ms Informacin en la pgina web de


Elektor: www.elektor.es/store
Elektor International Media Spain, S.L.
Apartado de Correos 62011
28042 Madrid Espaa
Tel.: +34 91 101 93 95
Fax: +34 91 101 93 96
Email: service@elektor.es

www.elektor-magazine.es | junio 2013 | 85

Magazine
Prximo mes en Elektor

Edicin Generadora de Proyectos 2013


La edicin extra gruesa anual con un puado extra de circuitos
El prximo mes publicaremos la trigsimo tercera edicin de la afamada edicin especial de verano para los
meses de Julio y Agosto. Esta apreciada edicin ofrece un montn de ideas, proyectos y software prctico en
una mezcla de artculos largos y cortos. Nuestros editores se estn dejando las pestaas para asegurarse de que
puedas disfrutar de un montn de pginas con descripciones detalladas y aplicaciones electrnicas originales.
No te la pierdas, esta edicin extra de Elektor viene repleta de artculos y proyectos como:
Comprobador CAN Control de motores paso a paso con ElektorBus Encendido CDI para ciclomotores Limitador de
corriente de irrupcin Amplificador de audio en clase D con 555 Comprobador de servo Monitor ECG para Android
Power pack USB Reloj Numitron con Arduino Ayuda de aparcamiento Registrador de temperatura multicanal
Control remoto IR para Android Reloj digital extremadamente preciso Interfaz de medida de precisin
universal Pincho teclado USB AVR.

Los ttulos de los artculos los contenidos de la revista estn sujetos a cambios; por favor comprubalo en www.elektor-magazine.com.

Hazte miembro
GRATIS del
Elektor.POST
Lo ltimo en electrnica y
tecnologas de la informacin
Videos, trucos, consejos, ofertas y ms
Proyecto exclusivo cada dos semanas,
slo para miembros GREEN
Elektor tras la escena
Cada viernes en tu bandeja de entrada

Regstrate hoy en www.elektor.es/boletin

86 | junio 2013 | www.elektor-magazine.es

Elektor pasa a ser Digital


!Hazte socio GREEN ahora!

Como miembro GREEN


obtendrs:
8 ediciones estndar digitales de Elektor
2 ediciones especiales digitales
(enero/febrero y julio/agosto)
Un mnimo del 10% de descuento en
todos los artculos de Elektor.STORE
Acceso completo a Elektor.LABS
Acceso completo a Elektor.MAGAZINE;
el archivo online de Elektor
Recibir Elektor.POST en tu cuenta de email
(incluyendo 25 proyectos extra cada ao)
Tu propia tarjeta GREEN CARD de socio
ecolgico

OFERTA ESPECIAL
Precio normal: 92

Ahora un ao por solo

50
50

y si eres menor de 25 aos* pagars solo 25 !


* Debers facilitarnos algn documento que acredite tu edad.

Hazte socio GREEN ahora en www.elektor.es/miembro

powered by Eurocircuits

PCBs
Prototipos
Multicapa
Pequeas series

Calidad Profesional
Servicio de Calidad
Pedido Seguro

Elektor PCB Service de un vistazo:

4 servicios especcos de panel compartido y 1 servicio sin agrupamiento

Servicio gratuito de vericacin de datos


de PCB online

Calculadora de precios online

Sin pedido mnimo

Sin cargos por lmacin o puesta


en marcha

Entrega a
partir de
2 das
laborables

Ms informacin y pedidos en www.elektorpcbservice.com

Вам также может понравиться