Vous êtes sur la page 1sur 88

See

discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/283718038

Dispositivo portátil auxiliar en la estimación de


productos basados en códigos de barras

Research · November 2015


DOI: 10.13140/RG.2.1.3316.6800

CITATIONS READS

0 1,201

1 author:

Alfonso Rafael Cabrera Galicia


Instituto Nacional de Astrofísica, Óptica y Electrónica (INAOE)
3 PUBLICATIONS 3 CITATIONS

SEE PROFILE

All content following this page was uploaded by Alfonso Rafael Cabrera Galicia on 12 November 2015.

The user has requested enhancement of the downloaded file.


Instituto Tecnológico de Celaya
Departamento de Ingeniería Electrónica

“Dispositivo portátil auxiliar en la estimación de


productos basados en códigos de barras.”

Tesis

Que para obtener el título de:

Ingeniero electrónico

presenta:

Alfonso Rafael Cabrera Galicia

Asesor:

Dr. José Javier Díaz Carmona


Celaya, Gto. Junio 2012
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Dedicatoria.

A mis familiares, seres queridos y amigos, pero en especial a mi madre y padre….

i
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Prologo.

Con el objetivo de obtener el título de Ingeniero en Electrónica, por medio de la opción de titulación
número 1, “Tesis Profesional”, yo Alfonso Rafael Cabrera Galicia, egresado de la carrera de
Ingeniería Electrónica del Instituto Tecnológico de Celaya, realicé la escritura de la presente tesis,
titulada “Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras”.

Dicha tesis se basa en el desarrollo de un prototipo, cuya principal función es la de ayudar a los
clientes de las tiendas de autoservicio a llevar un mejor control de su cuenta a pagar en caja. Lo
anterior mediante la identificación de productos a través de la lectura de los códigos de barras con
los que cuentan. De esa forma, el usuario sabrá cuanto cuesta un determinado producto y también
tendrá la opción de llevar un estimado de su cuenta a pagar, mediante la adición o substracción del
costo de ese producto. Además, este dispositivo puede operar sin necesidad de estar conectado a
la línea de corriente alterna, gracias a la implementación de un banco de supercapacitores, el cual
almacena la energía eléctrica necesaria para la operación del prototipo. De este modo se logra la
portabilidad del prototipo propuesto.

Por medio del desarrollo de este prototipo, se busca dar solución a una serie de problemas que
comúnmente ocurren en las tiendas de autoservicio. Esto a través de la implementación de
distintas tecnologías (sistemas embebidos, lectores de códigos de barras, supercapacitores). Por lo
tanto, se podría decir que la principal aportación de este trabajo, es que plantea un precedente en
cuanto a la implementación de las tecnologías anteriormente mencionadas, de tal forma que pueda
servir como referencia para trabajos futuros.

Esta tesis está compuesta por cuatro capítulos, los cuales se enfocan a distintos aspectos
involucrados en el desarrollo del prototipo propuesto.

En el capítulo 1, “Marco de referencia”, se hace un pequeño resumen de la historia de los códigos


de barras, se plantea la problemática a resolver, se propone una solución (el desarrollo de un
prototipo) y los objetivos que debe cumplir esa solución.

Dentro del capítulo 2, “Marco teórico”, se incluye todo el fundamento teórico que se usó para poder
solucionar la problemática planteada en el capítulo anterior, mediante el desarrollo de un prototipo.

El capítulo 3, “Diseño propuesto”, se enfoca en detallar la manera en que el prototipo propuesto en


esta tesis está conformado. De modo que el lector sea capaz de entender cómo es que se realizó
el prototipo propuesto y de esa forma pueda, si es que así lo desea, reproducir el prototipo ó
realizar mejoras en el diseño de éste.

El último y cuarto capítulo de esta tesis, “Pruebas y resultados”, se enfoca en documentar una serie
de pruebas de desempeño a las cuales fueron sometidos algunos componentes del prototipo
propuesto. También dentro de este capítulo se documentan otras pruebas de desempeño a las que
el prototipo propuesto fue sometido, con el objetivo de comprobar que este funcionara
adecuadamente. Los resultados de estas pruebas también se encuentran en este capítulo.

Finalmente, esta tesis presenta algunas conclusiones y recomendaciones, así como también un
conjunto de anexos.

ii
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Índice
Dedicatoria. .......................................................................................................................................... i
Prologo. ................................................................................................................................................ ii

Capítulo 1 Marco de referencia ..................................................................... 1


1.1 Planteamiento del problema. ............................................................................................... 2
1.2 Hipótesis. ............................................................................................................................. 3
1.3 Justificación. ........................................................................................................................ 3
1.4 Objetivos. ............................................................................................................................. 3
1.5 Alcance y limitaciones. ........................................................................................................ 4

Capítulo 2 Marco teórico ................................................................................................... 5


2.1 Código de barras. ................................................................................................................ 5
2.1.1 Estándares de códigos de barras. ............................................................................... 6
2.1.1.1 Universal Product Code (UPC). .............................................................................. 7
2.1.1.2 European Article Numbering Association (EAN). .................................................... 9
2.1.2 Códigos de barras en México. ................................................................................... 11
2.2 Lectores ópticos de códigos de barras y su funcionamiento. ........................................... 12
2.3 Sistemas embebidos basados en microprocesadores. ..................................................... 13
2.3.1 Componentes de un sistema embebido. ................................................................... 14
2.4 Herramientas de desarrollo para programación en lenguaje C enfocado a
microcontroladores. ....................................................................................................................... 16
2.5 Generador de energía eléctrica. ........................................................................................ 18
2.6 Conversión CD- CD. .......................................................................................................... 20
2.6.1 Convertidor Buck (reductor). ..................................................................................... 21
2.7 Almacenamiento de energía eléctrica. .............................................................................. 22
2.7.1 Batería. ...................................................................................................................... 23
2.7.2 Supercapacitor. ......................................................................................................... 24

Capítulo 3 Diseño propuesto ........................................................................................ 27


3.1 Diseño propuesto. ............................................................................................................. 27
3.2 Lector de códigos de barras. ............................................................................................. 28
3.3 Sistema embebido. ............................................................................................................ 29
3.3.1 Componentes del sistema embebido. ....................................................................... 29
3.3.2 Implementación del sistema embebido. .................................................................... 38

iii
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

3.4 Sistema de almacenamiento de energía eléctrica. ........................................................... 40


3.4.1. Componentes del sistema de almacenamiento de energía eléctrica. ...................... 40
3.5. Implementación de los bloques. ........................................................................................ 48

Capítulo 4 Pruebas y resultados ................................................................................. 50


4.1 Pruebas de generación de energía eléctrica. ................................................................... 50
4.2 Pruebas de desempeño de distintos modelos de supercapacitores. ................................ 54
4.3 Pruebas de desempeño del sistema de almacenamiento de energía eléctrica
implementado. ............................................................................................................................... 56
4.4. Pruebas del sistema embebido ......................................................................................... 57
Conclusiones. .................................................................................................................................... 67
Recomendaciones y trabajos futuros. ............................................................................................... 67
Anexos ............................................................................................................................................... 69
Apéndice A – Datos técnicos de MS180 linear imager scanner de la marca Unitech. ................. 69
Apéndice B – Programa implementado. ....................................................................................... 71
Apéndice C – Características del convertidor CD/CD APXS002A0X. .......................................... 75
Apéndice D – Códigos de barras empleados dentro del programa. ............................................. 76
Referencias bibliográficas. ................................................................................................................ 77

iv
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Índice de Figuras
Figura 2.1 Código de barras lineal. ...................................................................................................... 6
Figura 2.2 Estructura general de un código de barras lineal............................................................... 6
Figura 2.3 Código de barras de dos dimensiones. .............................................................................. 7
Figura 2.4 Códigos de barras UPC-A. ................................................................................................... 8
Figura 2.5 Código de barras EAN [10]. .............................................................................................. 10
Figura 2.6 Logotipo de la extinta AMECE, ahora GS1 México [2]. .................................................... 11
Figura 2.7 Logotipo de GS1 México [8]. ............................................................................................ 11
Figura 2.8 Kit de desarrollo de accesorios para teléfonos inteligentes y tabletas con sistema
operativo Android [14]. ..................................................................................................................... 13
Figura 2.9 Ambiente de trabajo del compilador mikro C Pro for pic v4.6. ....................................... 17
Figura 2.10 Ambiente de trabajo del software MPLAB IDE v8. ........................................................ 17
Figura 2.11 Herramienta de desarrollo ICD2 de Microchip. ............................................................. 18
Figura 2.12 Generador elemental. .................................................................................................... 19
Figura 2.13 Funcionamiento de un generador ideal. ........................................................................ 20
Figura 2.14 Convertidor Buck (Reductor).......................................................................................... 21
Figura 2.15 Diagrama de la carga de una batería de celdas secundarias. ........................................ 23
Figura 2.16 Composición interna de un supercapacitor. .................................................................. 25
Figura 3.1 Diagrama a bloques del prototipo propuesto. ................................................................. 27
Figura 3.2 MS180 linear imager scanner........................................................................................... 28
Figura 3.3 Microcontrolador PIC16F877A. ........................................................................................ 29
Figura 3.4 Diagrama de flujo del algoritmo implementado, parte 1. ............................................... 32
Figura 3.5 Diagrama de flujo del algoritmo implementado, parte 2. ............................................... 33
Figura 3.6 Diagrama de flujo del algoritmo implementado, parte 3. ............................................... 34
Figura 3.7 Pantalla LCD JHD162A. ..................................................................................................... 35
Figura 3.8 Memoria EEPROM serial 24lc1025. .................................................................................. 36
Figura 3.9 Conector PS/2................................................................................................................... 36
Figura 3.10 Conexiones del conector PS/2........................................................................................ 37
Figura 3.11 Botón empleado en el sistema embebido. .................................................................... 37
Figura 3.12 Diagrama de conexiones del sistema embebido............................................................ 38
Figura 3.13 Fotolito implementado para la elaboración del circuito impreso del sistema embebido.
........................................................................................................................................................... 39
Figura 3.14 Sistema embebido implementado a manera de circuito impreso. ................................ 39
Figura 3.15 Diagrama de conexiones del regulador de corriente. .................................................... 41
Figura 3.16 Diagrama de conexiones del conmutador de corriente................................................. 42
Figura 3.17 Diodo de propósito general 1N4006. ............................................................................. 42
Figura 3.18 Supercapacitor de 22F/2.7V, similar al empleado en el prototipo. ............................... 43
Figura 3.19 Diagrama del comparador de voltaje empleado............................................................ 44
Figura 3.20 Baterías AAA de 1.3V Ni-MH. ......................................................................................... 45

v
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 3.21 Convertidor CD/CD APXS002A0X. .................................................................................. 45


Figura 3.22 Configuración implementada en el convertidor CD/CD APXS002A0X. .......................... 46
Figura 3.23 Convertidor CD/CD APXS002A0X ya con componentes acoplados. .............................. 46
Figura 3.24 Diagrama de conexiones del sistema de almacenamiento de energía eléctrica. .......... 47
Figura 3.25 Fotolito implementado para la elaboración del circuito impreso del sistema de
almacenamiento de energía eléctrica. .............................................................................................. 48
Figura 3.26 Sistema de almacenamiento de energía eléctrica implementado a manera de circuito
impreso. ............................................................................................................................................ 48
Figura 3.27 Interconexión de los 3 bloques principales del prototipo propuesto. ........................... 49
Figura 4.1 Dínamo para bicicleta implementado. ............................................................................. 50
Figura 4.2 Estructura empleada para poner a prueba el dínamo. .................................................... 51
Figura 4.3 Osciloscopio TDS2022B de la marca Tektronix. ............................................................... 51
Figura 4.4 Medición de desempeño del dínamo, 1. .......................................................................... 52
Figura 4.5 Medición de desempeño del dínamo, 2. .......................................................................... 53
Figura 4.6 Medición de desempeño del dínamo, 3. .......................................................................... 54
Figura 4.7 Realización de una de las pruebas de desempeño de supercapacitores. ........................ 55
Figura 4.8 Prueba de desempeño del sistema de almacenamiento de energía eléctrica, 1. ........... 56
Figura 4.9 Prueba de desempeño del sistema de almacenamiento de energía eléctrica, 2. ........... 57
Figura 4.10 Sistema embebido funcionando en conjunto con el sistema de almacenamiento de
energía eléctrica. ............................................................................................................................... 58
Figura 4.11 Productos que se emplearon en la prueba de desempeño. .......................................... 58
Figura 4.12 Cuenta de usuario vacía al iniciar el sistema embebido. ............................................... 59
Figura 4.13 Escaneo de una Coca-cola de 600ml. ............................................................................. 59
Figura 4.14 Sistema embebido mostrando la información de un artículo recién escaneado. ......... 60
Figura 4.15 Se anexa a cuenta el monto de una Coca-cola de 600ml............................................... 60
Figura 4.16 Cuenta de usuario modificada, después de agregar el monto de un producto a cuenta.
........................................................................................................................................................... 61
Figura 4.17 Escaneo de un disco de música. ..................................................................................... 61
Figura 4.18 Sistema embebido mostrando la información de un artículo recién escaneado, un disco
de música. ......................................................................................................................................... 61
Figura 4.19 Cuenta de usuario modificada, después de haber anexado a cuenta el costo de un
disco de música. ................................................................................................................................ 62
Figura 4.20 Escaneo de un videojuego.............................................................................................. 62
Figura 4.21 Sistema embebido mostrando la información de un artículo recién escaneado, un
videojuego. ........................................................................................................................................ 62
Figura 4.22 Cuenta de usuario modificada, después de haber anexado a cuenta el costo de un
videojuego. ........................................................................................................................................ 63
Figura 4.23 Escaneo de un producto que no se encuentra registrado dentro de la base de datos del
sistema embebido. ............................................................................................................................ 63

vi
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 4.24 El sistema embebido al no identificar un producto, muestra el mensaje “No


registrado”. ....................................................................................................................................... 64
Figura 4.25 Escaneo de una Coca-cola de 600ml para después eliminarla de la cuenta de usuario.64
Figura 4.26 Cuenta de usuario modificada después de haber retirado el monto perteneciente a una
Coca-cola de 600ml. .......................................................................................................................... 65
Figura 4.27 Escaneo de un videojuego para después eliminarlo de la cuenta de usuario. .............. 65
Figura 4.28 Cuenta de usuario modificada después de retirar el monto perteneciente a un
videojuego. ........................................................................................................................................ 65
Figura 4.29 Escaneo de un disco de música para después eliminarlo de la cuenta de usuario........ 66
Figura 4.30 Cuenta de usuario modificada después de retirar el monto perteneciente a un disco de
música. .............................................................................................................................................. 66
Figura D.1 Código de barras de una Coca-cola de 600ml. ................................................................ 76
Figura D.2 Códigos de barras de un comic (Wolverine). ................................................................... 76
Figura D.3 Código de barras de un videojuego (SSF4X360). ............................................................. 76
Figura D.4 Código de barras de un videojuego (UMVC3). ................................................................ 76
Figura D.5 Código de barras de un videojuego (KOF XIII). ................................................................ 76
Figura D.6 Código de barras de un disco de música (MUSE TR CD). ................................................. 76

Índice de Tablas

Tabla 2.1 Números de sistemas empleados en los códigos de barras UPC [3]. .................................. 9
Tabla 3.1 Especificaciones eléctricas del sistema embebido. ........................................................... 40
Tabla 4.1 Resultados de las pruebas de desempeño de supercapacitores....................................... 56

vii
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Capítulo 1 Marco de referencia


Antes de la invención e implementación de algún sistema de identificación de productos (como el
mundialmente conocido código de barras), los encargados de las tiendas de autoservicio tenían
que etiquetar cada uno de los productos que ofrecían, con su respectivo precio. Esto con el
objetivo de indicarle al cliente el precio de cada producto, así como para tener control sobre el
costo de estos en la caja de cobro. Sin embargo, el sistema de etiquetas no era del todo fiable, ya
que algunos clientes intercambiaban las etiquetas de algunos productos por la de otros más
baratos, de esa forma pagaban menos por un determinado producto. Además, el control de
inventario llegaba a ser tedioso.

Debido a estos inconvenientes, en 1948, el presidente de una cadena de tiendas local, solicito a un
docente del Instituto de Tecnología Drexel (Philadelphia), que realizara una investigación para
desarrollar un sistema que automáticamente identificara un producto durante el cobro en cajas.
Con el objetivo de ofrecer una solución al problema planteado, dos estudiantes graduados de este
instituto, Norman Joseph Woodland y Bernard Silver, comenzaron el desarrollo de un sistema
prototipo.

Como resultado de sus investigaciones, el 20 de Octubre de 1949, Woodland y Silver registraron


una patente de aplicación titulada “Classifying apparatus and method”. Estos inventores describían
su invención como el arte de la clasificación de artículos a través de un medio de identificación de
patrones.

La patente de Woodland y Silver era una simbología compuesta por un patrón de 4 líneas blancas,
sobre un fondo negro. La primera línea era una línea de dato y la posición de las 3 líneas restantes
se ajustaba con respecto a la primera. La información era decodificada por medio de la presencia o
ausencia de una o más líneas. Esto permitía 7 clasificaciones de artículos diferentes. A pesar de
esto, los inventores se dieron cuenta de que si más líneas eran agregadas, más clasificaciones
podrían ser decodificadas. De modo que con 10 líneas, se podrían lograr 1023 clasificaciones. El 7
de Octubre de 1952, la patente de aplicación de Woodland y Silver fue expedida como la patente
de EUA 2,612,994.

A pesar de que el sistema de identificación patentado por Woodland y Silver era revolucionario,
paso mucho tiempo para que un sistema de identificación de productos similar al patentado en
1952, fuera usado a gran escala. No fue sino hasta el año de 1974 que los códigos de barras y los
dispositivos electrónicos capaces de decodificarlos (lectores de códigos de barras) comenzaron a
usarse a mayor escala. El primer estándar de códigos de barras en usarse de esa manera fue el
UPC, mientras que uno de los primeros escáneres de códigos fue el fabricado por la National Cash
Register Co. A partir de ese momento, la utilización de los códigos de barras comenzó a
extenderse, a tal grado, que hoy en día casi todos los productos comercializados cuentan con uno
para su correcta identificación.

Actualmente todas las tiendas de autoservicio cuentan con lectores de códigos de barras en sus
cajas, con el objetivo de agilizar el cobro. Además, los clientes de estas tiendas tienen a su
disposición 1 ó 2 lectores para identificar y conocer el precio de un producto determinado. Sin
embargo, en la mayoría de las ocasiones, estos lectores de códigos de barras no son tan fáciles de
ubicar dentro de la tienda, además de que son pocos. En base a esta situación, surgió la siguiente
pregunta: ¿Qué pasaría si los clientes tuvieran acceso a un dispositivo electrónico que les
permitiera identificar y conocer el precio de cualquier producto dentro de la tienda y además les
permitiera llevar un estimado de su cuenta a pagar?

Los beneficios que podría ofrecer un dispositivo como éste serían muy interesantes, por ejemplo:

1
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

 El cliente ya no tendría que buscar un lector de códigos de barras para conocer el precio
de algún producto.
 El cliente podría hacer una compra inteligente ya que sabría cuánto dinero va a gastar al
comprar los productos que ha elegido.
 Lo anterior beneficiaría a la tienda de autoservicio que emplee este dispositivo, debido a
que los cobros en caja se agilizarían, ya que el cliente sabría de antemano cuanto
deberá pagar, ya no se cancelarían cuentas y regresarían productos por que el costo de
éstos se sale del presupuesto del cliente y además le daría un “plus” a la experiencia de
compra en esa tienda.

Debido a que la implementación de un dispositivo que realice las funciones anteriormente


mencionadas generaría muchos beneficios, se decidió desarrollar un prototipo que realizará dichas
funciones. Como resultado, se generó el prototipo conocido como “Dispositivo portátil auxiliar en la
estimación de productos basados en códigos de barras”. Dicho trabajo desarrollado sirvió como
base para la realización de la presente tesis, la cual está conformada por 4 capítulos.

En este primer capítulo se plantea el problema que se buscó resolver durante la realización del
proyecto de tesis. De manera general, la necesidad que se tenía era la de desarrollar un prototipo
que realizara determinadas funciones y del cual no existe comercialmente un producto similar. Para
lograr esto, se deben de resolver una serie de problemas, los cuales también son planteados en
este capítulo, junto con una hipótesis y su validación. También se exponen los objetivos a cumplir
mediante la realización de este proyecto de tesis, a la vez que se anexa un apartado dedicado a
informar al lector sobre el alcance que tiene el trabajo realizado, así como también del potencial
que tendría el proyecto en caso de continuarse el desarrollo de éste. Pero no todo el desarrollo de
este proyecto de tesis fue sencillo, también se presentaron inconvenientes a los cuales no se
pudieron dar solución por distintas razones. Estas limitaciones también se encuentran presentes en
este capítulo. Todos estos puntos mencionados anteriormente, en conjunto, conforman el marco de
referencia de esta tesis.

1.1 Planteamiento del problema.

Se tiene la necesidad de contar con una manera de que los clientes de tiendas de autoservicio
lleven el control de la cantidad a pagar por los productos que adquirirán. Con el objetivo de
satisfacer esta necesidad, se debe de implementar un prototipo basado en un microcontrolador, el
cual realice las funciones de control de un lector de códigos de barras, a la vez que muestre al
usuario la información actualizada (nombre y precio) obtenida del producto escaneado a través de
una pantalla LCD.

Otra función que realizará el prototipo será la de darle la opción al usuario de poder llevar la suma
total de los productos que desea adquirir ó eliminar los no deseados de su cuenta. Además, ya que
se planea que este prototipo se acople a un carrito de compras de supermercado, se busca que la
energía eléctrica que alimente al prototipo sea obtenida a partir de la energía cinética producida
por el movimiento del usuario, esto mediante la implementación de un generador acoplado a las
ruedas del carrito de compras. La energía eléctrica obtenida tendrá que almacenarse, para lo cual
también debe de proponerse algún método para lograr esto. Adicionalmente, se debe de emplear
esta energía eléctrica de la mejor manera posible, con el objetivo de que el prototipo funcione la
mayor cantidad de tiempo posible con la energía que se haya producido.

Con la finalidad de que el prototipo resultante pueda ser considerado viable comercialmente, se
deberán cumplir con las siguientes especificaciones de diseño en el desarrollo del prototipo:

 Alta eficiencia en el consumo de energía eléctrica.


 Portabilidad: deberá ser capaz de ser empotrado en un carrito de tienda de autoservicio.

2
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

 Considerar un medio de actualización de datos confiable.


 Generar energía eléctrica a partir de la energía cinética generada por el usuario.
 Almacenar la energía eléctrica generada de la mejor manera posible.

Para resolver el problema y cumplir con las especificaciones de diseño planteadas, se propone la
realización de las siguientes actividades, las cuales deben de realizarse para producir un prototipo
que pueda ser considerado como un producto comercialmente viable y atractivo para el público. El
orden en que se enlistaron las distintas actividades indica el nivel de prioridad que tuvo cada una
de ellas.

1) Implementación final del diseño.


2) Realización del programa en lenguaje C para el microcontrolador.
3) Implementación de hardware requerido.
4) Definición de componentes a utilizar en el prototipo.
5) Lograr un óptimo consumo de energía por parte del prototipo.
6) Generar energía eléctrica en base a un dínamo acoplado a un carrito de compras.
7) Almacenamiento de energía eléctrica generada.
8) Familiarización con las herramientas de desarrollo del fabricante Mircirochip y el software
MikroC Pro for Pic de la empresa Mikroelektronika.
9) Proponer e implementar un medio para la actualización de la base de datos del prototipo.
10) Pruebas y desarrollo de mejoras al prototipo.
11) Definición de especificaciones y funciones del prototipo.
12) Familiarización con el lenguaje de programación C enfocado a microcontroladores.
13) Investigación sobre dispositivos comerciales disponibles.

1.2 Hipótesis.

Es posible satisfacer la necesidad de llevar un control sobre los productos adquiridos en un


supermercado por parte de un cliente, de manera eficiente y cómoda, a través de un dispositivo
portátil digital basado en un lector de códigos de barras y con un consumo de energía eficiente.

1.3 Justificación.

El presente proyecto tiene como principal objetivo diseñar e implementar un dispositivo portátil a
través del cual el usuario pueda determinar los precios de productos que se ofrecen en una tienda
de autoservicio. Básicamente, está enfocado a ser un dispositivo que se encuentre montado en el
carrito de compras disponible dentro de este tipo de tiendas, lo cual permitirá no solo que el cliente
encuentre el precio, sino que además realice un estimado del monto total de la compra que
realizará en las cajas. Esto ayudará a que el número de productos regresados en la caja por parte
de los clientes se vea notablemente reducido. Además, se busca que este dispositivo funcione con
energía que sea generada por el mismo usuario. Lo anterior mediante la transformación de la
energía cinética, generada por el movimiento del carrito de compras al desplazarse, en energía
eléctrica. Al lograr esto, el dispositivo no tendrá necesidad de estar conectado a una toma de
corriente, ya que la energía eléctrica que éste necesita para funcionar será proporcionada de
manera indirecta por el usuario, haciendo que este producto sea amigable con el medio ambiente.

1.4 Objetivos.

Objetivo general.

Diseñar e implementar un prototipo portátil que realice la lectura de códigos de barra de productos,
determinando así tanto el precio individual de un producto como la suma total de un conjunto de
ellos, tomando como referencia una base de datos actualizada. Dicho prototipo deberá de

3
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

funcionar con energía eléctrica generada por medio de la transformación de la energía cinética,
generada por el movimiento del carrito de compras al ser desplazado por el usuario, en energía
eléctrica. Dicha energía deberá de ser almacenada y empleada de manera eficiente.

Objetivos específicos.

Los objetivos específicos se enlistan a continuación.

 Determinar e implementar un sistema digital que satisfaga las especificaciones planteadas.


 Lograr autogenerar de manera eficiente la energía requerida por el sistema.
 Almacenar y emplear la energía generada de manera adecuada.

1.5 Alcance y limitaciones.

En la presente tesis se documenta el desarrollo de un prototipo que busca satisfacer las


necesidades planteadas anteriormente. Dicho prototipo es capaz de identificar distintos productos
(en base a la lectura de sus códigos de barras), mostrarle al usuario información referente al
producto identificado (nombre y precio), realizar el cálculo del monto que el usuario deberá pagar
por los productos que haya agregado a su cuenta, almacenar energía eléctrica y emplear dicha
energía de manera eficiente.

Además el trabajo documentado puede servir de referencia para cualquier persona interesada en
encontrar información referente al manejo de lectores de códigos de barras, sistemas embebidos
basados en microprocesadores, generación de energía eléctrica y almacenamiento de energía
eléctrica.

Sin embargo, existieron limitaciones que impidieron que el prototipo propuesto cumpliera con toda
las expectativas inicialmente planteadas. La primera de estas limitaciones es la falta de un
generador de energía eléctrica capaz de generar la energía eléctrica necesaria para que el
prototipo funcione. La segunda limitación fue el poco tiempo disponible para el desarrollo de este
prototipo, en consecuencia, algunas de las funciones del prototipo no alcanzaron a ser
desarrolladas (por ejemplo la implementación de una interfaz de comunicación inalámbrica para la
actualización de la base de datos).

Adicionalmente, el trabajo desarrollado puede servir como precedente para la búsqueda de una
patente, ya que actualmente no se encuentra en el mercado un producto que realice las funciones
que se espera que el dispositivo realice cuando se encuentre totalmente desarrollado.

4
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Capítulo 2 Marco teórico


Con el objetivo de que el lector tenga una mejor comprensión del trabajo propuesto en esta tesis,
se dedicó este capítulo para explicar los conceptos básicos que se emplearon en el desarrollo del
prototipo propuesto en esta tesis, los cuales abarcan varias áreas de la ingeniería electrónica,
como la optoelectrónica, electrónica analógica, digital y de potencia.

2.1 Código de barras.

Los códigos de barras son tan comunes que la mayoría de las personas están familiarizadas con
ellos, ya que estos códigos están impresos en casi todos los productos que se puedan encontrar
en un supermercado. La mayoría de estos códigos de barras son del tipo lineal y no son más que
una etiqueta que identifica al producto en el que está impreso. Los números o letras almacenados
en el código de barras (los cuales se pueden visualizar debajo de éste) son los identificadores, que
al ser leídos, pueden ser utilizados por una computadora para buscar información adicional (como
puede ser el precio, el nombre, etc) de un producto en especifico [1].

Un aspecto que se debe recalcar es que el nombre y precio de un producto no se encuentra


generalmente almacenados en el código de barras. Lo que sucede es que la información leída de
un código de barras (a través de un lector de códigos), es enviada a una computadora, la cual
buscará en una base de datos el nombre y precio del producto al cual el código de barras fue
asignado [1].

Aunque nos hemos acostumbrado a ver los códigos de barras en los productos que compramos,
hoy en día cubren casi cualquier tipo de actividad humana, tanto en la industria e instituciones
educativas como en el gobierno, la banca, instituciones médicas, aduanas y aseguradoras, entre
otras y se utilizan para manejar más fácilmente todos los datos que pueden incluir y que las
empresas e instituciones necesitan para la oportuna toma de decisiones [2].

Algunas aplicaciones de los códigos de barras son:

 Control de mercancía.
 Control de inventarios.
 Control de tiempo y asistencia.
 Pedidos de reposición.
 Identificación de paquetes.
 Embarques y recibos.
 Control de calidad.
 Control de producción.
 Peritajes.
 Facturación.

Actualmente, el código de barras permite que cualquier producto pueda ser identificado en
cualquier parte del mundo, de manera ágil y sin posibilidad de error. Esto es importante si
consideramos que un capturista (haciendo la misma labor en forma manual), comete, en promedio,
un error por cada 300 caracteres tecleados, en comparación con los códigos de barras, cuyas
posibilidades de lectura errónea son de una en un trillón.

Los códigos de barras pueden ser impresos por cualquier impresora de escritorio. Lo único que se
necesita es un software especializado para la impresión de códigos de barras, el cual codificara los
datos al sistema de código de barras. Algunos programas son [3]:

5
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

 Agamik BarCoder [4]


 AnyLabel for Windows [5]
 BARCODE 2000 [6]

2.1.1 Estándares de códigos de barras.

Así como en el mundo existen muchos idiomas y alfabetos, también hay varias simbologías de
código de barras. Todos ellos fueron desarrollados con propósitos distintos; a primera vista se
parecen, sin embargo, tienen sus diferencias, dependiendo de la aplicación para la que fueron
creados [2].

En general, se pueden clasificar en dos grandes grupos:

Lineales (1-D)

Son como los que se usan en productos y permiten incluir mensajes cortos. En la figura 2.1 se
muestra un código de barras lineal.

Figura 2.1 Código de barras lineal.

Analizaremos la estructura general de un código de barras lineal (Figura 2.2), sin embargo, los
conceptos se aplican también a los códigos de dos dimensiones. Cabe hacer mención que el
ancho de las barras y los espacios, así como el número de cada uno de éstos varía para cada
simbología (EAN, UPC).

Figura 2.2 Estructura general de un código de barras lineal.

Quiet zone. Se le llama así a la zona libre de impresión que rodea al código y permite al lector
óptico distinguir entre el código y el resto de información contenida en el documento o en la
etiqueta del producto.

6
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Caracteres de inicio y terminación. Son marcas predefinidas de barras y espacios específicos


para cada simbología. Como su nombre lo indica, marcan el inicio y terminación de un código. En
el ejemplo que se muestra son iguales, pero en otras simbologías pueden diferir uno de otro.

Caracteres de datos. Contienen los números o letras particulares del símbolo.

Checksum. Es una referencia incluida en el símbolo, cuyo valor es calculado de forma


matemática con información de otros caracteres del mismo código. Se utiliza para ejecutar una
verificación matemática que valida los datos del código de barras. Aunque puede ser importante en
cualquier simbología, no son requeridos en todas ellas.

Dos dimensiones.

Son los que han empezado a usarse en documentos para controlar su envío o en seguros médicos
y, en general, en documentos que requieren la inserción de mensajes más grandes (de hasta 2725
dígitos) como un expediente clínico completo. En la figura 2.3 se muestra uno de estos códigos.

Figura 2.3 Código de barras de dos dimensiones.

Existen diversas simbologías que pueden ser utilizadas para distintos fines, sin embargo, a nivel
comercial, las más usadas en el mundo son el UPC y el EAN.

2.1.1.1 Universal Product Code (UPC).

Es una simbología de códigos de barras que es ampliamente usada en Norte América y en otros
países como el Reino Unido, Australia y Nueva Zelanda para el rastreo de productos en las
tiendas. Su forma más común es el UPC-A, el cual consiste de 12 dígitos numéricos, los cuales
son asignados de manera exclusiva a cada artículo comercial. Junto con el código de barras EAN,
el código de barras UPC es el único que puede ser empleado para la identificación de productos en
un punto de venta, de acuerdo a los lineamientos del GS1 (Global System, Global Standard y
Global Solution, organismo global encargado del control y asignación de los códigos de barras a
los distintos productos, entre otros servicios) [7].

En México, GS1 México puede otorgar el código UPC a compañías nacionales que requieren
exportar productos a esas regiones del mundo, como por ejemplo a Estados Unidos de América [2]
[8].

El código de barras UPC-A (del cual se puede apreciar un ejemplo en la figura 2.4) está compuesto
por dos partes principales:

 El código de barras que sólo puede ser leído por una máquina (tira de barras negras y
espacios blancos).
 Secuencia de 12 dígitos numéricos.

7
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 2.4 Códigos de barras UPC-A.

El número de identificación de fabricante, son los primeros 6 dígitos de un número UPC (639382
en la figura 2.4). Los siguientes 5 dígitos (00039) son el número de producto. Otro aspecto a tomar
en cuenta, es que cada producto que un fabricante vende, debe de tener un código de barras UPC
diferente, por lo cual una lata de Coca-cola tiene asignado un código UPC diferente al que se
utiliza en una Coca-cola de 2 litros. El último dígito de un código UPC es llamado el dígito de
corrección de error. Este dígito permite al scanner determinar si el código se escaneó de manera
correcta o no. A continuación se demuestra cómo es calculado el dígito de detección de error, a
partir de los otros 11 dígitos, usado para este ejemplo los dígitos del código mostrado en la figura
2.4 (63938200039) [1].

1. Se suman todos los valores que se encuentran en posición impar (dígitos 1, 3, 5, 7, 9 y 11).
6 + 9 + 8 + 0 + 0 + 9 = 32
2. El número obtenido es multiplicado por 3.
32 * 3 = 96
3. Se suman todos los valores que se encuentran en posición par. (dígitos 2, 4, 6, 8 y 10).
3 + 3 + 2 + 0 + 3 = 11
4. Los números obtenidos en los pasos 3 y 2 se suman.
96 + 11 = 107
5. Para crear el dígito de corrección de error, se determina el número que es necesario sumar
al número obtenido en el punto 4 para obtener un número múltiplo de 10.
107 + 3 = 110

De esta forma se obtiene el dígito de corrección de error, el cual en este caso resulto ser 3. Cada
vez que el scanner escanea un producto, realiza este cálculo. Si el dígito de corrección de error es
diferente al digito de corrección de error leído, el scanner sabe que algo sucedió mal y que el
producto necesita ser escaneado nuevamente.

El primer dígito del número de identificación de fabricante es muy importante. Este dígito es
llamado número de sistema. En la tabla 2.1 se muestra el significado de los distintos números de
sistema.

Otro punto a destacar es que ninguna letra, carácter o contenido de cualquier tipo (diferente de un
dígito numérico), puede aparecer en el código de barras UPC-A estándar.

El área de cada código de barras UPC-A que puede ser escaneada, sigue el siguiente patrón,
SLLLLLLMRRRRRRE, en donde las barras de guardia S (Inicio), M (Mitad), E (Fin) son
representadas de la misma forma en cada códigos de barras UPC, mientras que las secciones L
(Izquierda) y R (Derecha) representan de manera colectiva los 12 dígitos numéricos que hacen
único cada código de barras UPC. El primer dígito L es el prefijo (también llamada número de

8
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

sistema). El último dígito R es un dígito de corrección de error, el cual permite detectar algunos
errores de escaneo o entrada manual. Los identificadores no numéricos, las barras de guardia,
separan los dos grupos de dígitos y establecen sincronización [7].

Tabla 2.1 Números de sistemas empleados en los códigos de barras UPC [3].

0 Número UPC Standard


(debe de ser cero para poder aplicar a números de cero)
1 Reservado
2 Productos de peso aleatorio
(frutas, vegetables, carnes, etc.)
3 Farmacéuticos
4 Marcado en tiendas para minoristas
(Una tienda puede implementar sus propios códigos, pero
otra tienda no los podrá entender.)
5 Cupones
6 Número UPC Standard
7 Número UPC Standard
8 Reservado
9 Reservado

El área que puede ser escaneada del código de barras UPC-A utiliza un código binario visual para
representar información. Cada bit es representado como una barra negra ó espacio en blanco. Un
código UPC completo incluye 95 bits, de los cuales 84 codifican dígitos (L y R) y 11 decodifican
barras de guardia (S, M y E). Cada tres bits de largo, las secciones S y E siguen el patrón de bits
barra-espacio-barra. La sección cinco bit M sigue el patrón de bits de espacio-barra-espacio-barra-
espacio. Cada dígito en las secciones L y R es representado por una secuencia de 7 bits de
barras y espacios alternados. El patrón de bits de cada número es diseñado para ser tan pequeño
como los otros como sea posible, y a no tener más de más de cuatro barras consecutivas o
espacios en blanco. Ambas características fueron planteadas para darle confiabilidad al escaneo
del código de barras, por parte del lector.

Los números en el lado derecho de la barra de guardia media son ópticamente el inverso de los
números a la izquierda. En otras palabras, mientras un número en el lado izquierdo del código UPC
será hecho de barras negras y espacios blancos, el mismo número en el lado derecho será
indicado de manera inversa (lo que era negro en el lado izquierdo ahora es blanco en el lado
derecho y viceversa). Esta inversión permite al código de barras ser escaneado de izquierda a
derecha o de derecha a izquierda. Los dígitos del lado izquierdo consisten de un número par de
espacios blancos y un número impar de barras negras. Por otro lado, los dígitos del lado derecho
son lo opuesto. Mediante el uso de esta diferencia el software encargado del escaneo del código
sabe si se está leyendo el código de la manera correcta ó al revés.

2.1.1.2 European Article Numbering Association (EAN).

En 1977, representantes de la industria y el comercio de 12 países europeos decidieron formar un


grupo al que llamaron European Article Numbering Association (EAN); al poco tiempo, y tras
unírseles países no europeos, el nombre fue cambiado por el de EAN International. Las siglas
fueron conservadas como la identificación del sistema de codificación y simbolización de códigos
de barras, del cual se muestra un ejemplo en la figura 2.5. El objetivo de esta organización fue el

9
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

de difundir y administrar los estándares de identificación de productos EAN y/o UPC, así como
promover el uso de estándares en el Intercambio Electrónico de Datos (EDI, por sus siglas en
inglés) [9].

Figura 2.5 Código de barras EAN [10].

En el año 2005, la asociación EAN se fusionó con la UCC (Uniform Code Council, organismo que
anteriormente gestionaba el código UPC en Norte América) para formar una nueva y única
organización mundial identificada como GS1, con sede en Bélgica.

El código EAN más usual es EAN13, constituido por 13 dígitos y con una estructura dividida en
cuatro partes:

 Los primeros dígitos del código de barras EAN identifican el país que otorgó el código, no
el país de origen del producto. Por ejemplo, en Chile se encarga de ello una empresa
responsable adscrita al sistema EAN y su código es el '780'.
 Composición del código:
o Código del país en donde radica la empresa, compuesto por 3 dígitos.
o Código de empresa. Es un número compuesto por 4 o 5 dígitos, que identifica al
propietario de la marca.
o Código de producto. Completa los 12 primeros dígitos.
o Dígito de control. Para comprobar el dígito de control (por ejemplo, inmediatamente
después de leer un código de barras mediante un escáner), numeramos los dígitos
de derecha a izquierda. A continuación se suman los dígitos de las posiciones
impares, el resultado se multiplica por 3, y se le suman los dígitos de las
posiciones pares. Se busca decena inmediatamente superior y se le resta el
resultado obtenido. El resultado final es el dígito de control. Si el resultado es
múltiplo de 10 el dígito de control será 0.

Por ejemplo, para 123456789041 el dígito de control será:

Numeramos de derecha a izquierda: 140987654321

 Suma de los números en los lugares impares: 1+0+8+6+4+2 = 21


 Multiplicado (por 3): 21 × 3 = 63
 Suma de los números en los lugares pares: 4+9+7+5+3+1 = 29
 Suma total: 63 + 29 = 92
 Decena inmediatamente superior = 100
 Dígito de control: 100 - 92 = 8

10
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

El código quedará así: 1234567890418.

Aunque las simbologías de códigos de barras UPC y EAN son las más empleadas en el ámbito del
comercio electrónico, existen muchas otras simbologías, que no se analizarán en este documento,
si se desea tener más información sobre estas simbologías se puede consular la siguiente
dirección electrónica: http://www.barcodeisland.com [10].

2.1.2 Códigos de barras en México.

Para alcanzar un esquema ordenado, seguro y actualizado del ejercicio del comercio electrónico
en México, en el año de 1986 se creó la Asociación Mexicana de Estándares para el Comercio
Electrónico (AMECE, la cual cambiaría de nombre a GS1 México), la cual promovió el uso de
normas y sus beneficios para el desarrollo del comercio electrónico [2].

Figura 2.6 Logotipo de la extinta AMECE, ahora GS1 México [2].

La AMECE (figura 2.6) fue una asociación civil que fue creada por 27 empresas y que agrupó a
más de 15 mil empresas.

Figura 2.7 Logotipo de GS1 México [8].

Ahora GS1 México (figura 2.7) es la entidad responsable de la implantación del sistema de código
de barras en México y, a la fecha, el sistema que GS1 México administra permite la identificación
del 95.0% de los productos que se distribuyen a través de las cadenas de autoservicio.

El Código EAN es el más generalizado a nivel mundial y también es el que se utiliza en México.
Consta de un código de 13 cifras en el que sus tres primeros dígitos identifican al país, los seis
siguientes registran a la empresa productora, los tres subsecuentes al artículo en sí y, finalmente,
un código verificador, que es el que da seguridad al sistema. Los números de localización EAN son
asignados y administrados en México por GS1 México y en otros países por organizaciones
afiliadas a GS1 International [8].

11
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

2.2 Lectores ópticos de códigos de barras y su funcionamiento.

Un lector óptico de códigos de barras es un dispositivo óptico que tiene como principal función leer
y decodificar un código de barras, para después enviarle esta información a una computadora para
que esta ultima la procese.

Existen muchos tipos de máquinas lectoras de códigos de barras, pero todas ellas funcionan bajos
los mismos principios básicos. Estas máquinas utilizan la intensidad de la luz reflejada desde unas
series de barras negras y espacios blancos para indicarle a la computadora lo que está viendo. Los
espacios blancos en un código de barras reflejan muy bien la luz, mientras que por el contrario, las
barras negras muy difícilmente reflejan algo de luz. El lector de códigos de barras despliega haces
de luz de manera secuencial a través del código de barras (el láser comienza a leer el código de
barras en un espacio blanco [la zona fija] antes de la primera barra y continúa pasando hasta la
última línea, para finalizar en el espacio blanco que sigue a ésta), mientras que de manera
simultánea detecta y graba el patrón de reflexión y no reflexión de la luz emitida sobre el código de
barras [11].

Después de haber realizado la lectura del código de barras, el lector traduce este patrón a señales
eléctricas que pueden ser entendidas por una computadora. Todos los lectores de códigos de
barras comerciales deben de incluir un software computacional que interprete el código de barras
una vez que ha sido ingresado (drivers de hardware). Este simple principio de reflexión ha
cambiado la forma en que somos capaces de manipular datos y la manera en que muchos
negocios manejan sus registros.

Otro aspecto importante es que el código no se puede leer si se pasa el escáner fuera de la zona
del símbolo, de modo que la altura de las barras se eligen tal manera que permitan que la zona de
lectura se mantenga dentro del área del código de barras. Además, mientras más larga sea la
información a codificar, más largo será el código de barras necesario y, medida que la longitud se
incrementa, también lo hace la altura de las barras y los espacios a leer.

Existen lectores de mano y también fijos, como los que se utilizan en las cajas de los
supermercados. Se los puede conectar de varias formas, tales como: USB, puerto serie, WiFi,
bluetooth e, incluso, directamente al puerto del teclado por medio de un adaptador (keyboard
wedge). Cuando se pasa un código de barras por el escáner es como si se hubiese escrito en el
teclado el número del código de barras [12].

Un escáner para lectura de códigos de barras básico consiste en el escáner propiamente dicho, un
decodificador y un cable que actúa como interfaz entre el decodificador y el terminal o la
computadora. El scanner lee el símbolo del código de barras y proporciona una salida eléctrica a la
computadora, correspondiente a las barras y espacios del código de barras. El decodificador es el
que reconoce la simbología del código de barras, analiza el contenido del código de barras leído y
transmite dichos datos a la computadora en un formato de datos tradicional. O sea, es tanto o más
importante el decodificador que el lector.

Un escáner puede tener el decodificador incorporado en el mango o puede tratarse de un escáner


sin decodificador que requiere una caja separada, llamada interfaz o emulador. Los escáneres sin
decodificador también se utilizan cuando se establecen conexiones con escáneres portátiles tipo
“batch” (por lotes) y el proceso de decodificación se realiza mediante el terminal propiamente dicho.
Si quisiéramos hacer una clasificación, entonces, deberíamos decir que existen cuatro tipos
principales de lectores:

12
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

 Lápiz óptico.
 Láser de pistola.
 CCD (Charge Coupled Device, Dispositivos de Acoplamiento de Carga en español).
 Láser omnidireccional.

Tanto los lectores láser, como los CCD y los omnidireccionales se configuran leyendo comandos
de programación impresos en menús de códigos de barras (generalmente incluidos en los
manuales de dichos lectores). Hay algunos que se configuran con interruptores pequeños, o
enviándoles los comandos de programación a través de una línea serial. También sirven como
lectores manuales.

2.3 Sistemas embebidos basados en microprocesadores.

Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas
funciones dedicadas frecuentemente en un sistema de computación en tiempo real. Los sistemas
embebidos se utilizan para usos muy diferentes a los usos generales a los que se suelen someter
a las computadoras personales. En un sistema embebido la mayoría de los componentes se
encuentran incluidos en la placa base (la tarjeta de vídeo, audio, módem, etc.) aunque muchas
veces los dispositivos no lucen como computadoras, por ejemplo relojes de taxi, registradores,
controles de acceso entre otras múltiples aplicaciones. Un ejemplo de sistema embebido se
muestra en la figura 2.8, ya que este sistema incluye un microcontrolador de la familia pic24f,
módulos de entradas y salidas de datos, puertos de comunicación y módulo de suministro de
energía [13] [14].

Por lo general los sistemas embebidos se pueden programar directamente en el lenguaje


ensamblador del microcontrolador incorporado sobre el mismo o bien, utilizando algún compilador
específico. También suelen utilizarse lenguajes de programación enfocados a microcontroladores
como C, C++ y hasta en algunos casos Basic.

Una de las características de los sistemas embebidos, es que suelen usar un procesador
relativamente pequeño y una memoria pequeña para reducir los costos de producción. Pero la
principal problemática a la que se enfrentan estos sistemas, es el fallo de un elemento dentro de la
tarjeta, lo que implica la necesidad de reparar la tarjeta. Por otro lado, los sistemas embebidos
emplean a menudo periféricos controlados por interfaces síncronas en serie, que son de diez a
cientos de veces más lentos que los periféricos de una computadora personal normal. Además los
problemas a los que los sistemas embebidos se enfrentan normalmente son problemas en tiempo
real.

Figura 2.8 Kit de desarrollo de accesorios para teléfonos inteligentes y tabletas con sistema operativo Android [14].

13
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

2.3.1 Componentes de un sistema embebido.

Los principales componentes de un sistema embebido son:

 Microcontrolador
 Módulo de representación de datos
 Actuadores
 Interfaces de comunicación
 Módulo de entradas y salidas
 Módulo de reloj
 Módulo de energía

A continuación se anexa una pequeña explicación de cada uno de los componentes enlistados
anteriormente.

Microcontrolador.

El principal componente de un sistema embebido es el microcontrolador el cual es la unidad que


aporta capacidad de cómputo al sistema, pudiendo incluir memoria interna o externa. Dentro del
microcontrolador se pueden almacenar un conjunto de instrucciones (programa) dentro de una
memoria interna (memoria de programa flash), las cuales indicaran al microcontrolador las
acciones que este debe de realizar a lo largo de un proceso.

Otra característica interesante de los microcontroladores es que pueden almacenar información en


distintas localidades de memoria, como se menciono anteriormente, el conjunto de instrucciones se
almacena en la memoria de programa flash, mientras que los datos generados a lo largo del
proceso se pueden almacenar en una pequeña localidad de memoria de rápido acceso conocida
como memoria de datos RAM. También existe otro tipo de memoria que se puede encontrar dentro
de algunos microcontroladores, a este tipo de memoria se le conoce como memoria de datos
EEPROM. La ventaja que ofrece la memoria de datos EEPROM sobre la memoria de datos RAM,
es que a diferencia de la memoria RAM, la memoria EEPROM no es del tipo volátil como la
memoria RAM. Esto quiere decir que mientras los datos dentro de una memoria RAM se pierden al
dejar de estar esta energizada, los datos dentro de una memoria EEPROM se mantendrán sin
cambios en caso de que deje de estar energizada.

Cabe mencionar que un programa puede ser cargado a un microcontrolador con la ayuda de un
hardware conocido como programador. En el mercado existen diversos tipos de programadores
para microcontroladores, algunos se enfocan en una sola marca de dispositivos mientras que otros
pueden programar microcontroladores de diferentes marcas.

Modulo de representación de datos.

La forma en que un sistema embebido muestra información al usuario es mediante interfaces de


salida visuales (en la mayoría de los casos). Normalmente se emplean leds indicadores, pequeñas
pantallas del tipo siete segmentos ó LCD. Pero si se quiere ser un poco más exquisito se pueden
emplear pequeñas pantallas capaces de desplegar gráficos más avanzados, a las cuales se les
puede incorporar una interfaz de entrada táctil.

14
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Actuadores.

Los actuadores son los elementos electrónicos ó electromecánicos que el sistema embebido se
encarga de controlar. Puede ser un motor DC, un motor a pasos, un conmutador tipo relé, un
transistor, etc. También si se incorpora más circuitería, se puede incluso controlar dispositivos
eléctricos que funcionen con corriente alterna, como puede ser una bombilla incandescente ó un
motor de AC, esto mediante la utilización de una técnica de control de actuadores conocida como
Modulación por Ancho de Pulso (PWM).

Interfaces de comunicación.

La comunicación también es de gran importancia en los sistemas embebidos. Lo normal es que el


sistema pueda comunicarse mediante interfaces estándar de cable o inalámbricas. Así un sistema
embebido normalmente incorporará puertos de comunicaciones del tipo RS-232, RS-485, SPI, I2C,
CAN, USB, IP, Wi-Fi, GSM, GPRS, DSRC, etc.

Módulo de entrada y salida.

Todos los sistemas embebidos incorporan un módulo de entras y salidas. Dicho módulo permite al
sistema embebido monitorear el desarrollo de un fenómeno físico, determinar el estado de alguna
señal de entrada ó mostrar información sobre el estado del proceso que el sistema está
ejecutando. Las señales de entrada y de salida que un sistema embebido puede recibir o enviar
pueden ser del tipo analógico o digital.

Las señales digitales son procesadas sin mayor problema por el sistema embebido, ya que su
núcleo principal, el microprocesador, es capaz de manejar este tipo de señales sin dificultad,
debido a que dentro de la construcción de un microprocesador se encuentra implícita la
electrónica digital. En el caso de las señales analógicas, es necesario que el sistema embebido
incorpore un componente extra llamado convertidor analógico – digital, esto en caso de tener una
señal analógica que entre al sistema. Este componente se encarga (como su nombre indica) de
realizar una conversión de señales, adaptando la señal analógica al mundo digital. Si se necesita
que el sistema embebido genere una señal analógica de salida, se utiliza un dispositivo llamado
convertidor digital – analógico, el cual realiza el proceso de conversión de señales digitales a
analógicas.

Cabe mencionar que algunos microcontroladores ya incorporan internamente un convertidor


analógico – digital, por lo cual ya no es necesario anexar este convertidor al sistema embebido.

Módulo de reloj.

El módulo de reloj es el encargado de generar las diferentes señales de reloj a partir de un único
oscilador principal. El tipo de oscilador es importante por varios aspectos: por la frecuencia
necesaria, la estabilidad que este tenga y por el consumo de corriente requerido. El oscilador con
mejores características en cuanto a estabilidad y coste son los basados en resonador de cristal de
cuarzo, mientras que los que requieren menor consumo son los RC. Algunos microcontroladores
incorporan dentro de ellos un pequeño oscilador interno.

15
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Módulo de suministro de energía.

El módulo de suministro de energía es el encargado de generar las diferentes tensiones y


corrientes necesarias para alimentar los diferentes circuitos de un sistema embebido. Usualmente
se trabaja con un rango de posibles tensiones de entrada que mediante convertidores AC/DC ó
DC/DC se obtienen las diferentes tensiones necesarias para alimentar los diversos componentes
activos del circuito.

El consumo de energía puede ser determinante en el desarrollo de algunos sistemas embebidos


que necesariamente se alimentan con baterías, con lo que el tiempo de uso del sistema embebido
suele ser la duración de la carga de las baterías. Para mejorar el desempeño de un sistema
embebido en cuanto al consumo de energía, algunos fabricantes de microcontroladores como
Microchip, han incorporado nuevas tecnologías en sus productos para optimizar el consumo de
energía, como lo es la tecnología nanoWatt [15].

Aplicaciones de un sistema embebido.

Los lugares donde se pueden encontrar los sistemas embebidos son numerosos y de varias
naturalezas. A continuación se exponen varios ejemplos para ilustrar las posibilidades de los
mismos:

 En una fábrica, para controlar un proceso de montaje o producción.


 Puntos de servicio o venta (POS, Point Of Service).
 Puntos de información al ciudadano.
 Decodificadores y set-top boxes para la recepción de televisión.
 Sistemas radar de aviones.
 Equipos de medicina en hospitales y ambulancias UVI – móvil.
 Máquinas de revelado automático de fotos.
 Cajeros automáticos.
 Y un sin fin de posibilidades aún por descubrir.

2.4 Herramientas de desarrollo para programación en lenguaje C enfocado a


microcontroladores.

Existen muchas herramientas útiles para la creación y compilación de programas en lenguaje C


enfocado a microcontroladores, pero uno de los más completos es mikro C Pro for Pic, de la
empresa MikroElectronika [16].

Mikro C Pro for Pic es un compilador ANSI C para dispositivos de la marca Microchip. Es la mejor
solución para desarrollar programas para dispositivos Pic, ya que cuenta con una interfaz de
desarrollo integrado (IDE, por sus siglas en ingles y la cual se puede observar en la figura 2.9.)
intuitiva, un compilador poderoso con optimizaciones avanzadas. Además incluye varias librerías
para el manejo de hardware y software y diversas herramientas que ayudan al usuario en su
trabajo. Otra ventaja es que el compilador incluye un archivo de ayuda compresivo y muchos
ejemplos de diseño. Además del software mencionado anteriormente, también son necesarios
utilizar otras herramientas para cargar el programa compilado en el microcontrolador. Para lograr
esto, se pueden emplear las herramientas que Microchip pone a disposición de los desarrolladores.
Algunas de estas herramientas son MPLAB IDE v8 (software) y MPLAB ICD2 (In Circuit Debugger,
hardware).

16
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 2.9 Ambiente de trabajo del compilador mikro C Pro for pic v4.6.

El MPLAB IDE v8 es un software gratuito, el cual integra un conjunto de herramientas útiles para el
desarrollo de aplicaciones embebidas que empleen los microcontroladores Pic y dsPic de
Microchip. MPLAB IDE es una aplicación de 32 bits que corre sobre la plataforma Windows. Es
fácil de usar e incluye una gran cantidad de componentes de software libre, para el rápido
desarrollo y depuración de aplicaciones. MPLAB IDE también sirve como una interfaz grafica
unificada de usuario para herramientas de desarrollo adicionales de Microchip y terceras
empresas. Moverse entre herramientas es rápido y saltar de la simulación del programa compilado
a la depuración y programación del hardware sin problemas, es posible debido a que MPLAB tiene
la misma interfaz de usuario para todas las herramientas. En la figura 2.10 se muestra el entorno
de trabajo de MPLAB IDE v8 [17].

Figura 2.10 Ambiente de trabajo del software MPLAB IDE v8.

MPLAB ICD2 (mostrado en la figura 2.11) es un depurador y programador de bajo costo para
dispositivos Pics y dsPics seleccionados. Mediante el uso la tecnología In-Circuit Debug de
Microchip, los programas pueden ser cargados en alguno de los dispositivos mencionados
anteriormente para después ejecutar y examinar esos programas en tiempo real, gracias a las
funciones de depuración de MPLAB IDE. MPLAB ICD 2 también puede ser usado como un
dispositivo programador para los microcontroladores soportados [18].

17
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 2.11 Herramienta de desarrollo ICD2 de Microchip.

En conjunto, las tres herramientas de desarrollo mencionadas anteriormente son muy útiles para el
desarrollo de sistemas embebidos basados en microprocesadores, ya que se puede escribir y
compilar el programa con el software mikro C pro for Pic, para después cargar dicho programa en
el microcontralador mediante el uso del software MPLAB IDE y el hardware MPLAB ICD2.

2.5 Generador de energía eléctrica.

Se conoce como generador a la máquina eléctrica que es capaz de producir energía eléctrica
como consecuencia de la transformación de la energía mecánica en eléctrica. Esta transformación
se consigue por la acción de un campo magnético sobre los conductores eléctricos dispuestos
sobre una armadura (denominada también estator). Si mecánicamente se produce un movimiento
relativo entre los conductores y el campo, se generará una fuerza electromotriz (F.E.M.). En otras
palabras, el funcionamiento del generador eléctrico está basado en la Ley de Faraday [19] [20].

Con la finalidad de ilustrar la forma en la cual un generador transforma la energía mecánica en


energía eléctrica, se implementara la figura 2.12. Para generar electricidad se debe de contar con
un campo magnético principal, entonces este campo se debe de cortar por un conductor, para
inducir una F.E.M. en el conductor. El campo magnético principal puede ser producido por un imán
permanente o por una bobina energizada que lo produzca (devanado de campo). Los conductores
en los cuales se induce la electricidad forman el devanado de armadura.

La figura 2.12 representa un generador elemental, en el cual el campo magnético principal


proviene de un par de imanes permanentes. Obsérvese que la cara del polo norte se encuentra
enfrente de la cara del polo sur, la forma curvada de los polos produce un campo magnético más
intenso. La bobina de la armadura esta devanada sobre el rotor, cada extremo de esta bobina esta
fijo a su propia banda metálica, estas bandas se llaman anillos rozantes y es donde aparece el
voltaje generado. La bobina de armadura se hace girar por un elemento que se denomina primotor,
que dependiendo de la fuente de energía primaria de energía, aplicación y uso, puede estar
accionado por agua, vapor, turbinas de viento ó motores a gasolina o diesel. Para colectar el
voltaje generado se debe de tener una trayectoria eléctrica de los anillos rozantes a las terminales
del generador, esto se hace con pequeñas piezas metálicas o de carbón llamadas escobillas. Las
escobillas se encuentran fuertemente fijadas a los anillos rozantes por medio de resortes [21].

En resumen, a medida que la bobina de armadura gira debido a la acción del primotor, los
conductores cortan el campo magnético y por consiguiente en ellos se induce un voltaje. Dicho
voltaje es conducido a las terminales del generador mediante el contacto producido entre los
anillos rozantes y las escobillas.

18
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Cabe mencionar que la energía mecánica de un generador eléctrico, usualmente se obtiene


mediante un eje rotatorio. Esta energía es equivalente al esfuerzo de torsión en el eje multiplicado
por la velocidad angular. Como se menciono anteriormente, la energía mecánica pude provenir de
diversas fuentes, como lo son: el agua (turbinas ubicadas en presas para aprovechar la fuerza que
el desplazamiento del agua produce), el viento (turbinas de viento), el vapor (turbinas que utilizan
el vapor producido por la combustión de combustibles fósiles o por fisión nuclear), la gasolina (se
quema el combustible directamente en la turbina) e incluso el mismo cuerpo humano (gracias al
aprovechamiento de los movimientos que generamos, como por ejemplo al usar una bicicleta). La
construcción y la velocidad del generador variaran de acuerdo a las características de la fuerza
motriz.

Figura 2.12 Generador elemental.

El generador mostrado en la figura 2.12, genera una corriente alterna, a este tipo de generador se
le conoce como alternador. Por otra parte, también existen generadores de corriente directa, a los
cuales se les conoce como dínamos.

En la figura 2.13 se ilustra el funcionamiento de un generador ideal (alternador) por etapas.


Cuando la armadura de un generador de corriente alterna hace una rotación completa a través del
campo magnético, sucede lo siguiente:

 Inicialmente (posición 1), el movimiento de la armadura es paralelo al campo magnético,


debido a esto el voltaje es cero.
 Una vez que la armadura comienza a moverse, esta alcanza la posición 2. En esta
posición, la armadura se mueve en forma perpendicular al campo magnético, por lo tanto,
corta el máximo número de líneas por segundo, por consiguiente se alcanza el máximo
valor de voltaje.
 Cuando la armadura gira y pasa la posición 2, el voltaje cae debido a que la armadura ya
no se encuentra perpendicularmente al campo magnético.
 Al alcanzar la armadura la posición 3, su movimiento es otra vez paralelo al campo
magnético y el voltaje de salida vuelve a ser cero.
 Cuando la armadura gira de la posición 3 a la 4, el voltaje vuelve alcanzar el máximo valor.

19
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

 Cuando la armadura completa su rotación y pasa a la posición 4, el voltaje vuelve a caer a


cero.

Figura 2.13 Funcionamiento de un generador ideal.

La forma de onda que se obtiene se puede ver en la parte superior de la figura 2.13. Esta forma de
onda senoidal es característica de una corriente alterna. La razón por la cual se obtiene esta forma
de onda, es por que la armadura corta el campo magnético en dos ocasiones, pero en sentidos
inversos.

2.6 Conversión CD- CD.

Un convertidor de CD-CD convierte de forma directa de CD-CD y se puede usar como regulador de
modo de conmutación para convertir un voltaje de Vcd, normalmente no regulado, en un voltaje de
salida regulado de Vcd. La regulación se puede obtener con PWM (modulación de ancho de pulso)
a determinada frecuencia, y el dispositivo de conmutación es, en el caso normal, un BJT, MOSFET,
o IGBT.

Estos convertidores son configuraciones de electrónica de potencia que permiten, a partir de una
fuente de CD constante, controlar el voltaje CD a la salida del convertidor. Estos convertidores
tienen múltiples aplicaciones: fuentes de poder en computadoras, sistemas de distribución de
potencia, sistemas de potencia en vehículos eléctricos, etc. Las configuraciones básicas son tres:
Buck (reductora), Boost (elevadora) y Buck-Boost (elevadora-reductora) [22].

20
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

2.6.1 Convertidor Buck (reductor).

En un regulador reductor, el voltaje promedio de salida Va es menor que el voltaje de entrada Vs,
por ello el nombre de reductor. El diagrama de circuito de un regulador que usa un BJT de
potencia se ve en la figura 2.14.a, y se parece a un convertidor de bajada. El funcionamiento del
circuito se puede dividir en dos modos. El modo 1 comienza cuando se cierra el transistor Q1 en
t = 0. La corriente de entrada, que aumenta, pasa por el inductor de filtro L, el capacitor de filtro C y
el resistor de carga R. El modo 2 comienza cuando se apaga el transistor Q1 en t = 1. El diodo de
marcha libre Dm conduce, por la energía almacenada en el inductor, y la corriente del inductor
sigue pasando por L, C, la carga y el diodo Dm. La corriente del inductor baja hasta que el
transistor Q1 se enciende de nuevo, en el siguiente ciclo. Los circuitos equivalentes de los modos
de operación se ven en la figura 2.14.b. Las formas de onda de voltajes y corrientes se muestran
en la figura 2.14.c, para un paso continuo de la corriente por el inductor L. Se supone que la
corriente aumenta y baja en forma lineal. En general, su efecto se puede despreciar, en la mayor
parte de las aplicaciones. De acuerdo con la frecuencia de conmutación, la inductancia y la
capacitancia del filtro, la corriente del inductor puede ser discontinua.

Figura 2.14 Convertidor Buck (Reductor).

El regulador reductor sólo requiere un transistor, es sencillo y tiene una eficiencia alta, mayor al
90%. Sin embargo, la corriente de entrada es discontinua, y en el caso normal se requiere un filtro
de alisamiento en la entrada. Proporciona voltaje de salida de una polaridad, y corriente
unidireccional de salida. Requiere un circuito de protección para el caso de un posible corto circuito
a través de la trayectoria del diodo [22].

21
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

2.7 Almacenamiento de energía eléctrica.

Actualmente la energía eléctrica necesita ser generada en el momento en que es demandada para
ser consumida. Dicho de otro modo, la electricidad generada en un instante debe ser la misma que
la consumida, más las pérdidas producidas en la generación y transporte. Sin embargo, a medida
que aumenta la cantidad de electricidad generada a partir de recursos intermitentes, como la eólica
o la energía solar directa, el suministro de energía puede no coincidir con la demanda llegando a
tener que disponer de otros medios de generación eléctrica preparados para suplir una posible
desconexión repentina de parques eólicos por un temporal, por ejemplo. El almacenamiento de
energía contribuiría a un mejor aprovechamiento de la electricidad generada por este tipo de
fuentes bajas en emisiones de CO2 [23].

La energía eléctrica no puede ser almacenada en grandes cantidades de manera sencilla, ya que
el almacenamiento directo de esta puede ser muy costoso y peligroso. Sin embargo, existen
métodos alternativos para almacenarla en gran escala, esto mediante la transformación de esta
forma de energía en otra que pueda ser más fácil de acumular. Por ejemplo, La Red Eléctrica de
España (REE) dispone de una serie de opciones para ajustar las variaciones de la demanda y la
oferta, incluyendo la regulación de la potencia de generación de las centrales que lo permitan, la
gestión de la demanda y el bombeo. La acumulación por bombeo (usada en centrales
hidroeléctricas reversibles [24] ), donde el agua es bombeada a un depósito (embalse) de alta en
los momentos de baja demanda de electricidad, que luego se usa para generar electricidad en las
horas de alta demanda, es el principal tipo de almacenamiento de la electricidad utilizado a gran
escala.

Sin embargo, se están desarrollando nuevas formas de almacenamiento de energía que podrían
impulsar una mayor participación de las energías renovables en el sector energético. Un ejemplo
de este impulso por solucionar el problema de la indisponibilidad solar apareció recientemente en
los medios de comunicación. Se trata de la primera planta solar termoeléctrica comercial del
mundo que aplica, en la tecnología de torre central, el almacenamiento térmico en sales fundidas.
Gemasolar, ubicada en Sevilla, puede generar energía eléctrica 24 horas al día (puede generar
durante 15 horas sin aporte solar). El sistema de acumulación de sales permite retener hasta el
99% del calor durante un lapso de 24 horas, aumentando considerablemente el factor de carga
[25].

En el Parque Eólico Experimental de Sotavento, situado entre Lugo y A Coruña, están llevando a
cabo un proyecto para producción de hidrógeno con energía eólica. Consiste en alimentar con la
electricidad generada por aerogeneradores un electrolizador que separa el agua en hidrógeno y
oxígeno. El hidrógeno obtenido es comprimido y almacenado para ser utilizado posteriormente
como combustible en un grupo de generación eléctrica [26].

Otro imaginativo modo de almacenamiento es el propuesto por la empresa canadiense Thin Red
Line Aerospace. Por medio de un balón de aire comprimido (Energy Bag), de gran resistencia a
altas presiones, que se ancla al fondo marino de manera que una bolsa de 20 metros de diámetro
a 600 m de profundidad puede acumular aire altamente comprimido, para después manejar con
ese aire, generadores eléctricos. Esta tecnología fue pensada inicialmente para el almacenamiento
de la energía generada por parques eólicos fuera de costa [27].

Todas estas alternativas ofrecen una solución al problema de la acumulación de la energía


eléctrica a gran escala, esto mediante la transformación de la energía. Pero hablando de la
acumulación de esta energía a menor escala, en el mercado ha existido desde hace mucho tiempo
una alternativa para almacenar la energía eléctrica de una forma más directa, sin tener que
transformarla. Esta alternativa es la batería, la cual se ha utilizado durante mucho tiempo para

22
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

almacenar energía eléctrica. Sin embargo no es la única, actualmente los supercapacitores han
ganado interés entre los diseñadores de sistemas electrónicos de potencia, ya que éstos también
se pueden emplear para almacenar energía eléctrica. A continuación se definirán cada uno de
estos dispositivos electrónicos.

2.7.1 Batería.

Se denomina batería, batería eléctrica, acumulador eléctrico o simplemente acumulador, al


dispositivo que almacena energía eléctrica, usando procedimientos electroquímicos y que
posteriormente la devuelve casi en su totalidad; este ciclo puede repetirse por un determinado
número de veces. Se trata de un generador eléctrico secundario; es decir, un generador que no
puede funcionar sin que se le haya suministrado electricidad previamente mediante lo que se
denomina proceso de carga [28].

El principio de funcionamiento de un acumulador está basado esencialmente en un proceso


reversible llamado reducción-oxidación (también conocida como redox), un proceso en el cual uno
de los componentes se oxida (pierde electrones) y el otro se reduce (gana electrones); es decir, un
proceso cuyos componentes no resulten consumidos ni se pierdan, sino que meramente cambian
su estado de oxidación, que a su vez puedan retornar al estado primero en las circunstancias
adecuadas. Estas circunstancias son, en el caso de los acumuladores, el cierre del circuito externo,
durante el proceso de descarga, y la aplicación de una corriente, igualmente externa, durante la
carga. En la figura 2.15, se puede observar un diagrama que describe el proceso redox durante la
carga de una batería.

Figura 2.15 Diagrama de la carga de una batería de celdas secundarias.

Durante la carga, el material activo del electrodo positivo se oxida, liberando electrones, y el
material del electrodo negativo es reducido, captando dichos electrones. Estos electrones
constituyen el flujo de corriente eléctrica que atravesará el circuito externo, cuando éste se conecte
a la batería. El electrolito puede servir como un simple medio de transporte para el flujo de iones
entre los electrodos, como en el caso de la batería de iones de litio y la batería de níquel-cadmio, o
puede ser un participante activo en la reacción electroquímica, como en la batería de plomo-ácido.

La energía utilizada para cargar las baterías recargables en su mayoría proviene de corriente
alterna de la red eléctrica, utilizando un adaptador (cargador). La mayoría de los cargadores de
baterías pueden tardar varias horas para cargar una batería. La mayoría de las baterías pueden
ser cargadas en mucho menos tiempo de lo que emplean los cargadores de baterías más comunes

23
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

y simples. Duracell y Rayovac ahora venden cargadores que pueden regenerar o recargar baterías
de NiMH tamaño AA y AAA en sólo 15 minutos; Energizer vende cargadores que pueden recargar
baterías de tamaño C/D y baterías de NiMH de 9 V. Sin embargo, las altas tasas de carga (por
ejemplo, el empleo de cargadores de 15 minutos o cargadores de 1 hora) causarán daño a largo
plazo en las baterías recargables de NiMH y en la mayoría de las otras [29].

Las baterías recargables son susceptibles a daños debido a la recarga inversa (inversión de los
polos) si están completamente descargadas. Existen cargadores de baterías totalmente integrados
que optimizan la corriente de carga, a éstos se les conoce como cargadores inteligentes. Los
cargadores inteligentes usan un circuito microprocesador para controlar los parámetros de la pila,
lo que incluye temperatura, voltaje y estado de la carga. Esta información es utilizada por el
cargador para determinar el momento más oportuno para completar la carga. Si se los compara
con los cargadores controlados por un temporizador o timer, los cargadores inteligentes
normalmente pueden cargar las pilas más rápido sin incidir en el rendimiento. Además, el intento
de recargar las pilas o baterías no recargables conlleva una pequeña posibilidad de causar una
explosión de la pila [30].

En las especificaciones técnicas de los fabricantes de la batería a menudo se refieren al parámetro


VPC. VPC significa voltios por celda, y se refiere al voltaje de las celdas individuales que
conforman la batería o celda secundaria. Por ejemplo, para cargar una batería de 12 V (con 6
celdas de 2 V cada una) a 2,3 VPC se necesita una tensión de 6·2,3 V = 13,8 V a través de los
terminales externos de la batería.

La mayoría de pilas de Ni-MH tipo AA o AAA disponen de celdas de 1,2 V. No obstante, esto no es
un problema en la mayoría de los dispositivos porque las pilas alcalinas sufren una caída de
tensión cuando se agota la energía. La mayoría de los dispositivos están diseñados para seguir
funcionando con un voltaje reducido de entre 0,9 y 1,1 V. De acuerdo a su composición interna,
existen los siguientes tipos de baterías.

 Batería de plomo-ácido.
 Pila alcalina.
 Baterías de níquel-hierro.
 Baterías alcalinas de manganeso.
 Baterías de níquel-cadmio.
 Baterías de níquel-hidruro metálico.
 Baterías de iones de litio.
 Baterías de polímero de litio.

2.7.2 Supercapacitor.

Los supercapacitores (también conocidos como ultracapacitores o condensadores de doble capa),


son dispositivos electrónicos capaces de almacenar energía electroestáticamente por medio de la
polarización de una solución electrolítica. A pesar de que los supercapacitores son dispositivos
electroquímicos, ninguna reacción química es involucrada en el proceso de almacenamiento de
energía que se lleva a cabo en ellos. Este proceso es altamente reversible, permitiendo que un
supercapacitor sea cargado y descargado cientos de miles ó incluso millones de veces.

Un supercapacitor puede ser visto como dos placas porosas no reactivas suspendidas dentro de
un electrólito con un voltaje aplicado a través de las placas. El potencial aplicado en la placa
positiva atrae los iones negativos en el electrólito, mientras que el potencial en la placa negativa

24
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

atrae los iones positivos. Esto crea dos capas de almacenamiento capacitivo, una donde las cargas
son separadas en la placa positiva y la otra en la placa negativa.

El área de almacenamiento de los capacitores electrolíticos convencionales se obtiene de placas


delgadas de material conductivo. La alta capacitancia se logra mediante el enrollado de una gran
longitud de material. Incrementos adicionales en la capacitancia son posibles mediante el
texturizado de su superficie, incrementando de esta forma su superficie. Un capacitor convencional
separa sus placas cargadas con un material dieléctrico, el cual puede ser plástico, papel o
películas cerámicas. Mientras más delgado sea el material dieléctrico, más aérea podrá ser creada
dentro de un volumen específico. Las limitaciones de la delgadez del dieléctrico definen la aérea de
superficie lograble.

Un supercapacitor obtiene su área de almacenamiento a partir de un electrodo de material poroso


basado en carbón. La estructura porosa de este material permite que su superficie de área se
aproxime a 2000 metros cuadrados por gramo, la cual es mucho mayor que la que se puede
obtener usando películas delgadas o texturizadas y placas. La distancia de separación de carga de
un supercapacitor está determinada por el tamaño de los iones en el electrólito, los cuales son
atraídos a los electrodos cargados. Esta separación de carga (menor de 10 angstroms) es mucho
más pequeña que la que puede ser obtenida mediante el uso de materiales dieléctricos
convencionales.

En resumen, la combinación de una enorme área de superficie y una separación de cargas


extremadamente pequeña le otorga al supercapacitor su sobresaliente capacitancia en relación a
los capacitores convencionales [31].

Las especificaciones de construcción de un supercapacitor dependen de la aplicación y uso que el


supercapacitor tendrá. Los materiales pueden variar ligeramente según el fabricante ó las
necesidades específicas de la aplicación. Lo más común es que la composición interna de un
supercapacitor consista de un electrodo positivo, un electrodo negativo, un separador entre esos
dos electrodos y un electrólito llenando las porosidades de los dos electrodos y el separador, tal y
como se muestra en la figura 2.16.

Figura 2.16 Composición interna de un supercapacitor.

El ensamblado de los supercapacitores puede variar de un producto a otro. Esto es debido en


parte a la geometría del empaquetado del supercapaciitor. Para productos que tienen un arreglo
prismático o cuadrado de empaquetado, la construcción interna está basada en un arreglo de

25
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

ensamblado de apilamiento con colectores internos de extrusión de cada bloque de electrodos.


Estos colectores de corriente son soldados a las terminales para permitir un flujo de corriente
afuera del capacitor.

Para productos con empaquetado cilíndrico ó circular, los electrodos son enrollados en una
configuración jellyroll. Los electrodos tienen extensiones de aluminio que son soldadas a las
terminales para permitir un flujo de corriente afuera del capacitor.

Actualmente se pueden encontrar en el mercado supercapacitores de muchos tamaños. Esto


permite que los supercapacitores sean empleados en una gran variedad de aplicaciones dentro de
diversas industrias. Estas aplicaciones pueden abarcar corrientes del orden de miliamperes ó
potencias de miliwatts hasta cientos de amperes de corriente ó cientos de kilowatts de potencia.
Las industrias que emplean supercapacitores incluyen: electrónica de consumo, transporte,
automotriz e industrial. A continuación se muestran algunos ejemplos de aplicaciones en cada
industria.

 Automotriz: redes de suministro de energía para vehículos de 42V, dirección asistida,


controles de válvula electromagnética, arranque del generador, apertura eléctrica de las
puertas, freno regenerativo, hibrido de propulsión eléctrica, restricciones activas del
cinturón de seguridad.
 Transporte: arranque de motores diesel, tren pendular, apertura de puertas de seguridad,
suministro de energía a tranvía, compensación por caída de voltaje, freno regenerativo,
hibrido de propulsión eléctrica.
 Industrial: fuente de suministro de energía ininterrumpida, turbinas de viento, lectura
automática de contadores, respaldo de energía para microcontrolador elevador, puertas de
seguridad y telecomunicaciones.
 Electrónica de consumo: camaras digitales, lap tops, PDA´s, GPS, dispositivos portátiles,
juguetes, linternas y dispositivos de pago en restaurantes.

26
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Capítulo 3 Diseño propuesto


Dentro del área de la ingeniería electrónica, se conoce como prototipo al circuito construido para
verificar que un diseño teórico realmente funciona. De modo que este tercer capítulo se enfoca en
detallar la manera en que el prototipo propuesto en esta tesis está conformado. Dicho prototipo,
como se ha comentado anteriormente, le brindará al usuario la posibilidad de identificar productos
en base a códigos de barras y llevar un aproximado de su cuenta a pagar. Además, este prototipo
puede almacenar la energía que necesita para funcionar, esto mediante el uso de un banco de
supercapacitores. En las siguientes secciones se explicará con más detalle la composición de este
prototipo.

3.1 Diseño propuesto.

Para resolver la problemática planteada en el capítulo 1, se desarrolló un prototipo, el cual está


conformado por tres bloques principales que se interconectan entre sí. Estos bloques son:

 Lector de códigos de barras.


 Sistema embebido.
 Sistema de almacenamiento de energía eléctrica.
Sistema embebido

Pantalla LCD

Señales de control

Flujo de energía eléctrica


PS/2 µC EEPROM ext.

Botones

5Vdc

Lector de
códigos de Sistema de almacenamiento de energía eléctrica
barras

Convertidor
12Vdc Fuente I Mosfet Diodo
CD/CD

Resistencia
Banco de
supercapacitores

Comparador Vref

Figura 3.1 Diagrama a bloques del prototipo propuesto.

27
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Cada uno de estos bloques realiza una función específica dentro del prototipo y, a excepción del
lector de códigos de barras, cada uno de ellos está compuesto por distintos dispositivos
electrónicos. En la figura 3.1, se muestra un diagrama a bloques del prototipo propuesto, en el cual
se observan los bloques que lo conforman, así como también el flujo de datos y de energía
eléctrica dentro del diseño propuesto. En las siguientes secciones se describirán cada uno de
estos tres bloques, enfocándose en su funcionamiento, conformación y configuraciones de diseño.

3.2 Lector de códigos de barras.

Este componente es el medio de entrada de datos más importante del prototipo propuesto, ya que
por medio de éste se adquieren los códigos de identificación de los distintos productos. Debido a lo
impráctico que puede llegar a resultar el diseño e implementación de un lector de este tipo, por
cuenta propia, para este prototipo se decidió implementar un lector de códigos de barras comercial.

Figura 3.2 MS180 linear imager scanner.

El lector que se empleó fue el MS180 linear imager scanner de la marca Unitech, el cual se
muestra en la figura 3.2. Este lector fue elegido principalmente por que es capaz de reconocer una
gran variedad de estándares de códigos de barras, además de que tiene un precio accesible y no
consume mucha energía eléctrica, ya que es un lector de contacto. Las características técnicas de
este dispositivo se pueden observar en el apéndice A de la sección de anexos.

Este lector de códigos de barras es comúnmente empleado como periférico de entrada en


computadoras personales, siendo su interfaz de comunicación el puerto PS/2. La manera en que
se emplea en una computadora es similar a la de los teclados, de modo que para que pueda
funcionar, se le deben suministrar energía eléctrica (mediante dos líneas) y un medio de
comunicación con el sistema host (líneas de reloj y datos). Ya conectado al sistema host, el lector
debe ser inicializado por el sistema host. Una vez que ha sido inicializado, el lector puede
suministrar información al sistema host, de manera serial, a través de las dos líneas de
comunicación (reloj y dato).

Una característica con que cuenta este lector de códigos de barras es que, como la mayoría de los
lectores comerciales disponibles actualmente, calcula el dígito de corrección cada vez que realiza
una lectura. De modo que compara este dígito calculado con el leído, y si los dígitos son diferentes,
el lector simplemente no envía datos al sistema host.

En el prototipo propuesto en esta tesis, el lector de códigos de barras se conecta al sistema


embebido a través de un conector mini-DIN de 6 terminales. Por medio de este conector, al lector
se le proporciona un voltaje de 5Vdc (necesario para su operación) y un medio de comunicación
con el microcontrolador PIC16F877A (líneas de reloj y datos), el cerebro del sistema embebido.
Los detalles relacionados a la implementación del conector mini-DIN, se pueden ver en la sección
3.3.1., Componentes del sistema embebido. Conector PS/2.

28
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

3.3 Sistema embebido.

El sistema embebido es el encargado de realizar la ejecución de las funciones del prototipo


relacionadas con el procesamiento digital. En otras palabras, es el encargado de controlar el lector
de códigos de barras, controlar la memoria EEPROM externa, ejecutar el algoritmo de control
implementado en el microcontrolador, recibir comandos de ejecución por parte del usuario a través
de un conjunto de botones y mostrarle información a éste por medio del uso de una pantalla LCD.

Mediante estas acciones el sistema embebido es capaz de indicarle al usuario el nombre y precio
de un producto que ha sido analizado por el lector de códigos de barras, además de que le ofrece
la posibilidad de llevar un estimado de su cuenta a pagar.

3.3.1 Componentes del sistema embebido.

Este bloque está conformado por 5 componentes principales, los cuales son:

 Microcontrolador.
 Display LCD
 Memoria EEPROM serial externa.
 Puerto PS/2.
 Botones de selección.

A continuación se describirán el funcionamiento, conformación y configuraciones de cada uno de


los componentes anteriormente mencionados, para después mostrar cómo es que todos ellos se
interconectan y funcionan en conjunto.

Microcontrolador.

El microcontrolador es el cerebro del sistema embebido y, en pocas palabras, es el encargado de


ejecutar el algoritmo desarrollado para controlar las funciones del sistema embebido y el lector de
códigos de barras.

Figura 3.3 Microcontrolador PIC16F877A.

El microcontrolador que se decidió implementar en este prototipo propuesto fue el PIC16F877A de


la marca Microchip (figura 3.3). La razón por la cual se prefirió el uso de este microcontrolador
sobre otros similares, fue su amplia disponibilidad en el mercado, su precio accesible y la amplia
documentación, referente a su uso, con la que cuenta.

Para que el dispositivo PIC16F877A funcione adecuadamente, debe de energizado con un voltaje
de 5Vdc, tener un circuito oscilador (del cual su tipo, dependerá de la fuente de reloj configurada),
tener un arreglo alrededor de la terminal de reset y tener una serie de instrucciones cargadas en su
memoria de programa. Para este prototipo, el programa se escribió y compiló mediante el uso del
software Mikro C Pro for Pic 4.6, de la empresa Mikroelektronika y fue instalado en el

29
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

microcontrolador mediante el hardware ICD2 y software MPLAB 8.6, ambos de la empresa


Microchip.

El programa que se implemento finalmente en el microcontrolador PIC16F877A se encuentra


anexado en el apéndice B de la sección de anexos. Para facilitar la comprensión del programa
implementado e ilustrar la forma en que funciona este algoritmo, se realizo el diagrama de flujo que
se observa en las figuras 3.4, 3.5 y 3.6.

De manera muy general, lo que sucede en el diagrama de flujo es lo siguiente. Una vez que el
sistema embebido es energizado e inicializado, lo primero que realiza el programa es inicializar los
registros que el microcontrolador implementara a lo largo de la ejecución de este algoritmo.
Después se ejecutan una serie de comandos que inicializan la pantalla LCD, la comunicación I2C
entre el microcontrolador y la memoria EEPROM serial externa, así como también la comunicación
PS/2 entre el sistema embebido y el lector de códigos de barras.

Cabe mencionar que con el objetivo de facilitar la implementación y manejo de la pantalla LCD, la
comunicación I2C y PS/2, se implementaron dentro del proceso de compilación del algoritmo
implementado, una serie de funciones agrupadas en tres librerías dentro del compilador Mikro C
Pro for Pic 4.6. Estas librerías son I2C, Lcd y PS2. El uso de estas librerías facilito en gran medida
el desarrollo de algoritmo implementado en el microcontrolador PIC16F877A, ya que de no contar
con ellas, se tendrían que haber desarrollado las funciones necesarias para la implementación de
estas características dentro del sistema embebido.

Una vez que se inicializaron la pantalla LCD, la comunicación I2C y PS/2, el siguiente proceso que
realiza el algoritmo es guardar en la memoria EEPROM serial externa los datos correspondientes
al conjunto de productos que el sistema embebido será capaz de reconocer (base de datos). De tal
modo que se determino que para cada producto, era necesario usar 30 bytes de memoria para
almacenar el código de barras correspondiente a ese producto, el nombre del producto que se
mostrará en la pantalla LCD y el precio de este. Los datos referentes al código de barras y nombre
del producto ocupan un espacio de memoria de 26 bytes, siendo asignados 16 bytes al código de
barras y los 10 restantes al nombre del producto. Cabe mencionar que estos datos son
almacenados en formato ASCII, de modo que pueden ser mostrados directamente en la pantalla si
así se deseará (como en el caso del nombre del producto). En cuanto al precio del producto, este
es procesado en forma de dato flotante, esto con el objetivo de hacer más precisa la operación
matemática involucrada en el algoritmo. Para almacenar este dato en la memoria externa, este
debe de ser seccionado en 4 partes, de tal modo que un dato flotante necesita 4 bytes para poder
ser almacenado en la memoria externa. Para poder seccionar un dato flotante dentro del
compilador Mikro C Pro for Pic 4.6, es necesario agregar una librería al proyecto, la cual es
#include<built_in.h> y utilizar las funciones Highest(pt), Higher(pt), Hi(pt)), Lo(pt), en donde pt, para
este caso, es el dato flotante.

Hay que destacar que esta parte del algoritmo fue diseñada con el objetivo de comprender como
es que funciona la memoria EEPROM serial externa 24LC1025 y la comunicación I2C entre el
microcontrolador y esta memoria, para después agilizar la implementación de la característica de
actualización inalámbrica de la base de datos, la cual para este prototipo propuesto no se logro
implementar. Además, con el uso de esta memoria externa, se garantiza que más de 4000
productos puedan ser reconocidos por el prototipo. Para lograr lo anterior se implementaron
algunas funciones agrupadas dentro de la librería I2C.

Regresando al diagrama de flujo, después de que los datos correspondientes al conjunto de


productos que el sistema embebido será capaz de reconocer, fueron guardados en la memoria
externa, la siguiente acción que realiza el algoritmo es limpiar las variables cuenta y barcode con
valores de 0x00. En la variable cuenta (la cual es del tipo flotante) se almacenara el monto

30
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

estimado que el usuario pagará en caja, mientras que en la variable barcode (que en realidad es
un vector de 16 bytes) se almacenará el código de barras que el lector identifique después de una
lectura.

Después se despliega en la pantalla LCD el mensaje “Elija Producto” y “Cuenta $__.__”, siendo
que en los espacios se mostrara el estimado actual a pagar. Una vez que se realizo esto, el
algoritmo entra en bloque de decisión, en el cual, se plantea la siguiente cuestión, ¿El lector
escaneo un código de barras? Si la respuesta es no, el algoritmo vuelve a realizar la misma
pregunta, en caso contrario, el código escaneado es almacenado en la variable barcode.

Una vez que se almaceno el código recién escaneado en la variable barcode, el algoritmo vuelve a
entrar en otro bloque de decisión, en el cual se plantea lo siguiente, ¿El código en barcode se
encuentra almacenado en la base de datos (memoria externa)? Para dar respuesta a esto, se
crearon una serie de funciones en las cuales se ingresa a la base de datos y se extraen los
códigos de barras de cada uno de los productos almacenados. Estos códigos de barras son
comparados con el código de barras en barcode, y de esa forma se determina sí el código recién
escaneado se encuentra registrado en la base de datos. En caso de que el código no esté en la
base de datos, se desplegará el mensaje de “No registrado” en la pantalla LCD durante 5
segundos, para después volver a mostrar el mensaje “Elija Producto” y “Cuenta $__.__”. En caso
de que el código en barcode efectivamente se encuentre dentro de la base de datos, se obtienen
los datos del producto relacionado con ese código de barras (precio y nombre del producto), para
después desplegarlos en la pantalla LCD junto con el mensaje “¿Anexar a cuenta?”.

Después el algoritmo vuelve a entrar en otro bloque de decisión, ¿Sumar, restar ó pasaron 5
segundo? En esta parte del algoritmo es en donde se le da al usuario el poder de decidir qué hacer
con los datos obtenidos a partir de la identificación de un producto determinado. Sí el usuario
|selección) a su cuenta, lo que el algoritmo realiza es una suma entre el contenido de la variable
cuenta y el precio del producto. El resultado de esta suma es almacenada en la variable cuenta y
se vuelve a mostrar el mensaje “Elija Producto” y “Cuenta $__.__”. En caso de que el usuario
decida restar el precio del producto recién identificado de su cuenta a pagar (presionando el botón
de resta), el algoritmo comprobara si la cuenta es igual a 0, de ser así se desplegará el mensaje
“Cuenta vacia” en la pantalla LCD. Sí la cuenta no es igual a 0, el algoritmo realizara la resta entre
la cuenta y el precio del producto, después comprobará si la cuenta es mayor ó igual a cero. Si lo
anterior es cierto, el algoritmo mostrará el mensaje “Elija Producto” y “Cuenta $__.__”. En caso de
que la cuenta sea menor que 0, se desplegará el mensaje “Producto no Anexado a cuenta” durante
5 segundos y se anulará la resta realizada, para después desplegar el mensaje “Elija Producto” y
“Cuenta $__.__”. En caso de que el usuario no presione ninguno de los botones de selección
dentro de los 5 segundos posteriores a la identificación de un producto, el sistema embebido
simplemente desplegara en la pantalla LCD el mensaje “Elija Producto” y “Cuenta $__.__”,
volviéndose necesario un nuevo escaneo del producto deseado para poder anexar ó restar a la
cuenta su precio.

Mención aparte merece la configuración y conexión de los demás componentes ubicados alrededor
del microcontrolador PIC16F877A. La forma en que estos se conectan entre sí se analiza más a
detalle en la sección 3.4.2., Unión de los componentes, mientras que su configuración será
mencionada en el apartado correspondiente a cada componente.

31
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 3.4 Diagrama de flujo del algoritmo implementado, parte 1.

32
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 3.5 Diagrama de flujo del algoritmo implementado, parte 2.

33
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 3.6 Diagrama de flujo del algoritmo implementado, parte 3.

Pantalla LCD.

La pantalla LCD es el dispositivo de salida por medio del cual el sistema embebido muestra al
usuario la información referente a la identificación de los productos escaneados por el lector de
códigos de barras y el estado de su cuenta a pagar; por ende, es un componente importante dentro
del prototipo.

El modelo que se prefirió implementar en el sistema embebido fue la pantalla LCD JHD162A
(figura 3.7), debido a que es un módulo de representación grafica de datos muy popular y accesible
de manejar.

34
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 3.7 Pantalla LCD JHD162A.

Cabe mencionar que la pantalla LCD JHD162A cuenta internamente con un componente
electrónico encargado de controlarlo, el cual es el controlador KS0066. Para que este componente
electrónico pueda operar adecuadamente, es necesario que cuente con las conexiones y
componentes adecuados en cada una de sus 16 terminales. Además, la pantalla LCD JHD162A
puede operar en modo de transmisión de datos de 4 bits u 8 bits y, al igual que los demás
componentes ubicados en el sistema embebido, la pantalla LCD es controlada por el
microcontrolador PIC16F877A, mediante una transmisión de instrucciones y datos a través de un
bus de 4 bits.

Las conexiones de este dispositivo con el microcontrolador PIC16F877A y demás componentes


electrónicos, se puede ver en la sección 3.4.2., Unión de los componentes.

Memoria EEPROM serial externa.

La memoria EEPROM serial externa es el componente del sistema embebido en el cual se


almacenan los códigos de identificación, precios y nombres de los productos que el prototipo
implementado puede identificar.

Es un componente muy importante, ya que, aunque el microcontrolador PIC16F877A cuenta con


una memoria EEPROM interna, ésta es muy pequeña, por lo tanto el número de productos que el
prototipo podría identificar, si se usase esta memoria interna, sería muy reducido. En cambio, con
la implementación de una memoria EEPROM serial externa, el número de productos que se
podrían identificar será mayor.

Para determinar la cantidad de memoria necesaria para almacenar un número razonable de


productos, se determinó que para cada producto es necesario utilizar 30 bytes de memoria. 16
bytes para los caracteres del código de barras (16 dígitos), 10 bytes para el nombre del producto
(10 caracteres) y 4 bytes para el precio de este (cantidad necesaria para representar un número
del tipo flotante).

Basándose en estas necesidades, se seleccionó la memoria EEPROM serial 24LC1025 de la


marca Microchip (figura 3.8), la cual tiene una capacidad de 1024K bits, de modo que es posible
almacenar en ella la información de cerca de 4266 productos. En caso de que sea necesario
aumentar la cantidad de productos, se pueden llegar a emplear hasta 4 dispositivos de este tipo en
un mismo bus de comunicación. Otra ventaja es que al usar el protocolo de comunicación I2C, la
transferencia de información entre el microcontrolador PIC16F877A y la memoria EEPROM serial
24LC1025 está garantizada [32].

Para que este componente funcione adecuadamente, debe ser energizado con 5Vdc. Además,
debido a que las terminales de transmisión de datos 5 y 6 (datos y reloj, respectivamente) son del

35
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

tipo colector abierto, es necesario utilizar resistencias de pull-up a Vcc. Para identificar a la
memoria 24LC1025 dentro del bus de comunicación I2C, un valor binario entre 0 y 1 puede ser
colocado físicamente en las terminales 1 y 2 de este componente.

Figura 3.8 Memoria EEPROM serial 24lc1025.

Como se mencionó anteriormente, la memoria 24LC1025 se comunica por medio de un bus serial
del tipo I2C con el microcontrolador PIC16F877A. Por consiguiente este dispositivo es controlado
por el micrcocontrolador, el cual escribe en ella los distintos datos de identificación de los
productos y los extrae cuando sea necesaria una identificación de producto. La forma en que la
memoria EEPROM serial 24LC1025 se conecta con el microcontrolador PIC16F877A en el Sistema
Embebido se puede apreciar en la sección 3.3.2 Implementación del sistema embebido.

Conector PS/2.

El conector PS/2 implementado en el sistema embebido (figura 3.9), es el medio físico por medio
del cual se le proporciona al lector de códigos de barras un suministro de energía eléctrica (5Vdc) y
un medio de comunicación con el micrcocontrolador (líneas de reloj y datos).

Figura 3.9 Conector PS/2.

A diferencia de todos los demás componentes en el sistema embebido, el conector PS/2 no es un


componente electrónico, sin embargo se puede considerar como un hardware que facilita la
conexión física del lector de códigos de barras con el sistema embebido.

Para que el lector de códigos de barras funcione adecuadamente, el conector PS/2 debe de
suministrarle energía y un bus de datos a éste. Para lograr esto se siguió la configuración mostrada
en la figura 3.10, en diseño del circuito impreso implementado.

36
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 3.10 Conexiones del conector PS/2.

La manera en que el conector PS/2 se conecta con el microcontrolador PIC16F877A y la fuente de


energía eléctrica en el sistema embebido se puede apreciar en la sección 3.3.2., Implementación
del sistema embebido.

Botones de selección.

Los botones (figura 3.11) son el medio por el cual el usuario le indica al sistema embebido que
acciones debe este de realizar, dentro de determinados momentos. En el prototipo implementado
se utilizaron solo 3 botones. Estos botones tienen conexión directa con el microcontrolador
PIC16F877A, el cual ejecuta el algoritmo implementado en el sistema embebido. Cada uno de
estos botones le indica al microcontrolador una función distinta a realizar, las cuales pueden ser:

 Reiniciar al sistema embebido.


 Agregar el precio de un producto recién analizado por el lector de códigos de barras a la
cuenta del usuario.
 Restar el precio de un producto recién analizado por el lector de códigos de barras a la
cuenta del usuario.

En el caso de las últimas dos acciones, el usuario solo puede darle esas órdenes al sistema
embebido durante los 5 segundos posteriores a la identificación de algún producto que se
encuentre registrado en la base de datos (memoria EEPROM serial 24LC1025). En el caso del
reinicio del sistema embebido, esta acción puede realizarse en cualquier instante de la ejecución
del algoritmo implementado.

Figura 3.11 Botón empleado en el sistema embebido.

Físicamente lo que realizan estos 3 botones es simplemente proporcionarle al microcontrolador


señales del tipo TTL (0 o 1 binario), y en base a estas señales y al algoritmo implementado, el
microcontrolador realizara determinadas acciones. La implementación de estos botones en el
sistema embebido se muestra en la sección 3.3.2, Implementación del sistema embebido.

37
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

3.3.2 Implementación del sistema embebido.

La manera en que los seis componentes descritos anteriormente se interconectan entre sí se


puede observar en el diagrama mostrado en la figura 3.12. En dicha figura se muestra el circuito
que finalmente se implemento para conformar al sistema embebido.

Dicho circuito (figura 3.12), se utilizó como referencia para generar el fotolito empleado en la
fabricación del circuito impreso del sistema embebido. Esto se logro mediante el uso de los
programas ISIS Proteus 7.6 y ARES Proteus 7.6. El fotolito generado se muestra en la figura 3.13,
mientras que en la figura 3.14 se muestra el sistema embebido ya implementado en forma de
circuito impreso.

R1
300R
J3
16
15
VCC/VDD
14
13
12
11
10
9
8
7
6
5
C1 C2 4
27p 27p 3
2
VCC/VDD
X1 1

OK1 R8 CONN-SIL16
1k
1 2 U1
CRYSTAL
BUTTON_OK 13 33
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
35
RB2
2 36
OK2 3
RA0/AN0 RB3/PGM
37
VCC/VDD RA1/AN1 RB4
1 2 4 38
RA2/AN2/VREF-/CVREF RB5
BUTTON_OK 5 39
RA3/AN3/VREF+ RB6/PGC
6 40
RA4/T0CKI/C1OUT RB7/PGD
R6 R7 7
RA5/AN4/SS/C2OUT
10k 10k 15
RC0/T1OSO/T1CKI
8 16
RE0/AN5/RD RC1/T1OSI/CCP2
9 17
RE1/AN6/WR RC2/CCP1
10
RE2/AN7/CS RC3/SCK/SCL
18 R3 R9
23 10k 10k
RC4/SDI/SDA VCC/VDD
1 24
MCLR/Vpp/THV RC5/SDO
25
RC6/TX/CK
26 U2
RC7/RX/DT
6 1
6 MINI1 1 19 5
SCK A0
2
RD0/PSP0 SDA A1
20 7 3
RD1/PSP1 WP *A2
5 2 21
VCC/VDD RD2/PSP2
22 24LC1025
RD3/PSP3
4 3 27
RD4/PSP4
MINIDIN6_PCB 28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7

R4 PIC16F877A
J1 VCC/VDD
VCC/VDD
1k 2
1

OK3 TBLOCK-M2
BUTTON_OK
C4
10n
2

R5
100R

Figura 3.12 Diagrama de conexiones del sistema embebido.

38
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 3.13 Fotolito implementado para la elaboración del circuito impreso del sistema embebido.

Figura 3.14 Sistema embebido implementado a manera de circuito impreso.

Una vez que el sistema embebido se tenía ensamblado, este operaba adecuadamente. De tal
forma que el microcontrolador inicializaba y controlaba a los distintos dispositivos empleados en el
circuito impreso del sistema embebido, a la vez que manejaba la operación del lector de códigos
de barras. Para mayor detalle en cuanto la forma en que interactúa el microcontrolador
PIC16F877A con los demás componentes, revisar el diagrama de flujo mostrado en las figuras
(3.4, 3.5, 3.6).

En cuanto a consumo de energía eléctrica, el sistema embebido implementado tiene los siguientes
requerimientos (tabla 3.1).

39
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Tabla 3.1 Especificaciones eléctricas del sistema embebido.

Vcc 5Vdc
I en espera 22.65mA
I durante lectura de códigos 100mA

También es importante mencionar que se realizaron una serie de pruebas al sistema embebido,
para corroborar su correcto funcionamiento. Estas pruebas y sus resultados se encuentran
documentados en el capítulo 4 de esta tesis.

3.4 Sistema de almacenamiento de energía eléctrica.

Como todo dispositivo electrónico, el prototipo propuesto (“Dispositivo portátil auxiliar en la


estimación de productos basados en códigos de barras”) necesita de una fuente de energía
eléctrica para poder funcionar. Por esa razón, la implementación de un medio de abastecimiento
de energía es fundamental y más si la aplicación será portátil.

Aunque comúnmente se usan baterías recargables como fuente de suministro de energía eléctrica
en este tipo de aplicaciones, para el prototipo propuesto se decidió utilizar otro medio de
almacenamiento de energía, el cual es la implementación de supercapacitores.

Las razones por las cuales se prefirió el uso de supercapacitores sobre la implementación de
baterías recargables, son las siguientes.

 La vida útil de un supercapacitor es más prolongada que la de cualquier batería


recargable.
 Por consiguiente, el mantenimiento del sistema de almacenamiento de energía eléctrica
será menos frecuente y por ende menos costoso.
 Por lo tanto la inversión realizada será efectiva.
 Al no tener que remplazar los supercapacitores, el daño al medio ambiente será menor.
 Aunque una batería recargable puede suministrar más carga eléctrica que un banco de
supercapacitores pequeño, debido a que el prototipo no consume mucha energía
eléctrica, un banco de supercapcitores puede hacer funcionar al prototipo sin problemas.

Pero al igual que las baterías recargables, los supercapacitores necesitan de un circuito que
controle su proceso de carga, para no dañarlos y reducir su vida útil.

Debido a esto, dentro del sistema de almacenamiento de energía eléctrica, se empleó un circuito
de carga y banco de supercapacitores. Además, la energía almacenada en los supercapacitores
debe de adaptarse para que pueda ser empleada por el sistema embebido. Para lograr esto,
también se emplea dentro del sistema de almacenamiento de energía eléctrica un pequeño
convertidor CD/CD reductor.

En resumen, la función que realiza el sistema de almacenamiento de energía eléctrica es la de


almacenar la energía eléctrica que le es suministrada, en un banco de supercapacitores, para
después proporcionarle esa energía al sistema embebido.

3.4.1. Componentes del sistema de almacenamiento de energía eléctrica.

El bloque conocido como sistema de almacenamiento de energía eléctrica está constituido por los
siguientes elementos, los cuales se describirán en las siguientes secciones, para después explicar
cómo es que funcionan en conjunto.

40
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

 Regulador de corriente
 Conmutador de corriente (mosfet)
 Diodo
 Comparador de voltaje
 Voltaje de referencia
 Banco de supercapacitores
 Convertidor CD/CD reductor

Regulador de corriente.

Con el objetivo de tener una fuente de corriente constante y utilizar dicha corriente para
almacenarla en el banco de supercapacitores, se decidió implementar el dispositivo LM7805 el cual
es un regulador lineal. Este componente electrónico puede suministrar una corriente constante a
una carga (RL) mediante la implementación del circuito mostrado en la figura (3.15) [33].

Figura 3.15 Diagrama de conexiones del regulador de corriente.

Esta configuración suministrara una corriente constante que está determinada por la siguiente
ecuación.

Io = (Vxx/R1) + Iq

Siendo los datos Vxx y Iq para el dispositivo LM7805, 5V y 8mA respectivamente. Entonces para
tener una corriente de 200mA aproximadamente, R1 debe de ser de 25Ω. La ventaja de este
circuito es que la corriente de salida no cambiara a menos que el voltaje en la entrada decaiga a
menos de 7.5V aproximadamente, por lo tanto a voltajes mayores a 7.5V la corriente será la misma
y a voltajes menores, la corriente será menor, ya que el voltaje Vxx no será 5V. Esta corriente
debería de ser suficiente para cargar a un banco de supercapacitores.

Conmutador de corriente (mosfet y resistencia).

Este elemento del sistema de almacenamiento de energía eléctrica es el encargado de controlar el


flujo de corriente proveniente del regulador de corriente. Dicha corriente puede ser guiada hacia el
banco de supercapacitores ó hacia una resistencia de potencia. Lo anterior dependerá del nivel de
carga almacenada en el banco de supercapacitores. De modo que sí los supercapacitores no han
alcanzado su voltaje de carga recomendado, el mosfet IRFZ44N no se activara, permitiendo que el
flujo de corriente llegue al banco de supercapacitores. En caso contrario, el mosfet se activara y
toda la corriente pasara a través de la resistencia de potencia conectada entre su terminal fuente y
la tierra (figura3.16).

41
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 3.16 Diagrama de conexiones del conmutador de corriente.

Cabe mencionar que la señal de activación ubicada en la compuerta del dispositivo IRFZ44N,
proviene del elemento conocido como comparador de voltaje.

En conclusión, se podría considerar al conmutador de corriente como un actuador controlado por el


comparador de voltaje y cuya función es permitir o evitar el flujo de corriente eléctrica hacia el
banco de supercapacitores.

Diodo.

El diodo (figura 3.17), aunque pareciera un elemento insignificante y sin una mayor utilidad dentro
del sistema de almacenamiento de energía eléctrica, realiza una función muy importante. Ya que,
por su ubicación (entre del mosfet y el banco de supercapacitores) dentro del circuito de carga,
éste evita que la carga eléctrica almacenada en el banco fluya hacia el mosfet IRFZ44N cuando no
se le está suministrando energía al sistema de almacenamiento de energía eléctrica.

Figura 3.17 Diodo de propósito general 1N4006.

De modo que el uso de este semiconductor asegura que la carga almacenada en el banco de
supercapacitores fluya hacia el convertidor CD/CD reductor.

Banco de supercapacitores.

Se podría considerar al banco de supercapacitores (figura 3.18) como el elemento principal del
sistema de almacenamiento de energía eléctrica, ya que en él se almacena la energía que utilizara
el sistema embebido.

Cuando se desea implementar supercapacitores en una aplicación, se debe de determinar el


tamaño del banco de supercapacitores a emplear. Para esto, el mayor fabricante de
supercapctores, Maxwell, propone un método para calcular el tamaño de estos capacitores. En
este método, es necesario contar con los siguientes datos (se anexan los valores de la aplicación
desarrollada en esta tesis) [31].

 Voltaje máximo de operación de la aplicación (Vmax) = 7.5V.

42
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

 Voltaje mínimo de operación de la aplicación (Vmin) = 5V.


 Corriente promedio demandada por la aplicación (I) = 22.65mA.
 Tiempo esperado de operación de la aplicación (dt) = 16min = 960s.

Una vez con estos datos, lo siguiente es determinar el número de capacitores que conformaran el
banco. Para esto se sigue la siguiente ecuación.

𝑉𝑚𝑎𝑥 7.5𝑉
#𝐶 = = =3
𝑉𝑟 2.5 𝑉
En donde Vr es valor nominal de voltaje que tiene cada capacitor que conformara el banco.
Después se debe de calcular la capacitancia del sistema (Csys), la cual en otras palabras, es la
capacitancia equivalente que tendrá el banco de supercapacitores.

𝑑𝑡 960𝑠
𝐶𝑠𝑦𝑠 = 𝐼 ∗ = 22.65𝑚𝐴 ∗ = 8.6976𝐹
𝑉𝑚𝑎𝑥 − 𝑉𝑚𝑖𝑛 7.5𝑉 − 5𝑉

De modo que para conocer la capacitancia de cada capacitor conectado en serie.

𝐶 = 𝐶𝑠𝑦𝑠 ∗ #𝐶 = 8.6976𝐹 ∗ 3 = 26.09𝐹

Para la aplicación desarrollada en esta tesis, el valor recomendado para cada capacitor es de
26.09F/2.5V, pero debido a que no se tenían a disposición tres capacitores de ese valor nominal,
se emplearon tres supercapacitores de 33F/2.7V.

Figura 3.18 Supercapacitor de 22F/2.7V, similar al empleado en el prototipo.

Cabe mencionar que para comprobar que los supercapacitores funcionaban adecuadamente, se
realizaron una serie de pruebas, en las cuales se media el tiempo que el sistema embebido podía
operar con un determinado banco de supercapacitores. La metodología y los resultados de estas
pruebas se describen a detalle en el capítulo 4, sección 4.2.

Comparador de voltaje.

Otro aspecto a tomar en cuenta antes de cargar el banco de supercapacitores con la fuente de
corriente constante, es el voltaje máximo de operación de los supercapacitores, debido a que este
voltaje no debe de ser sobrepasado, ya que de ocurrir esto, los supercapacitores pueden ser
dañados. Para evitar que los supercapacitores superen este voltaje se empleo un circuito conocido
como comparador de voltaje, el cual está compuesto por un amplificador operacional en modo
detector de nivel de voltaje en conjunto con unas cuantas resistencias.

La función que tiene este comparador, es la disparar una señal en el momento en que el voltaje en
el banco de supercapacitores alcance el nivel de operación recomendado. Esta señal es la que
activa el mosfet dentro del elemento conocido como conmutador de corriente, y de esa forma, la
corriente de carga es desviada hacia la resistencia de potencia, de modo que el voltaje en banco
de supercapacitores ya no continúe aumentado. La configuración que se empleo en este
comparador se muestra en la figura 3.19.

43
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 3.19 Diagrama del comparador de voltaje empleado.

La manera en que este comparador funciona es sencilla. Sí el voltaje de entrada Ei es menor al


voltaje de referencia Vref, la salida del amplificador operacional será de 0V. Pero sí Ei es igual ó
ligeramente mayor a Vref, el voltaje de salida del amplificador operacional será igual al voltaje de
saturación, generando de esa forma la señal de activación del mosfet en el conmutador de
corriente. Dicha señal de disparo, para el dispositivo lm358 es Vsat = Vcc – 1.5Vdc,
aproximadamente. Las formas de ondas producidas en esta configuración se pueden apreciar en la
figura 3.19.

Cabe mencionar que el voltaje Ei se obtiene a partir de un divisor de voltaje ubicado en paralelo al
banco de supercapacitores. Las resistencias que conforman este divisor de voltaje tienen los
valores de 10kΩ y 2kΩ. De modo que sí se plantea 8Vdc como voltaje máximo de operación del
banco de supercapacitores, la corriente a través de estas resistencias será de 0.66mA, y el voltaje
de referencia Ei será de 1.32Vdc, cuando el banco alcance un voltaje de 8Vdc.

Voltaje de referencia.

El voltaje de referencia (Vref) es el que emplea el comparador de voltaje para determinar en qué
momento el banco de supercapacitores ha alcanzado su voltaje de operación recomendado. La
manera en que se obtuvo este voltaje fue mediante el uso de una batería recargable AAA de 1.3V
de níquel-hidruro metálico (Ni-MH) (figura 3.20).

Con el objetivo de prolongar la duración de esta batería recargable y evitar que esta se estrese
debido a la demanda de picos altos de corriente, se le coloco en paralelo a ella un supercapacitor
de 10F/2.5V, ya que una de las propiedades de estos dispositivos es que pueden ayudar a una
batería eléctrica si se les conecta de esta forma.

En dado caso que el voltaje en la batería recargable comience a agotarse, lo único que pasaría es
que el banco de supercapacitores dejaría de cargase al alcanzar un nivel de voltaje menor al
voltaje de operación recomendado, impidiendo que estos se recarguen totalmente.

44
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 3.20 Baterías AAA de 1.3V Ni-MH.

Convertidor CD/CD.

Una vez que el banco de supercapacitores este cargado, lo que hará falta es extraer y adaptar esa
energía almacenada para que pueda ser empleada por el módulo sistema embebido, ya que este
necesita un voltaje de 5V para poder funcionar. Una de las primeras soluciones que se considero
fue la de utilizar un regulador de voltaje 7805 para adaptar la energía almacenada en los
supercapacitores (8Vdc) a un nivel de 5Vdc. Aunque esta propuesta de solución funciona, no es
muy efectiva, ya que el tiempo que pode ser operado el sistema embebido es muy corto. Lo
anterior debido a que para que el regulador 7805 pueda proporcionar un voltaje de 5Vdc, necesita
como mínimo un voltaje de 7Vdc en la entrada. A esta diferencia entre el voltaje de entrada y el de
salida se le conoce dropout voltage, y es la cantidad de energía que mismo regulador necesita
para poder funcionar.

Por lo tanto, si solo se dispone de una fuente de energía de 8Vdc y para obtener 5Vdc se
necesitan 7V, es razonable que el sistema embebido funcione durante tan poco tiempo. Debido a
esto, se comenzaron a considerar otras opciones de conversión CD/CD. Por ejemplo se considero
implementar reguladores LDO (Low Dropout Voltaje Regulators), los cuales, como su nombre
indica, son reguladores que tienen la característica de requerir de un dropout voltage muy
pequeño, en comparación con los reguladores lineales comunes. Sin embargo, a pesar de las
ventajas que ofrecen los reguladores LDO, se decidió emplear otro tipo de regulador [34].

Figura 3.21 Convertidor CD/CD APXS002A0X.

Para este proyecto se decidió emplear el convertidor CD/CD APXS002A0X de la empresa Lineage
Power, mostrado en la figura 3.21. Algunas de las ventajas que ofrece este pequeño módulo de
potencia (12.2mm x 12.2mm x 6.25mm) son su amplio rango de voltaje de entrada (3Vdc – 14Vdc),
su capacidad de entregar un voltaje de salida de entre 0.6Vdc a 5.5Vdc (este mediante
programación por resistencias externas), entre otras funciones. Pero la más importante de todas
estas es su eficiencia de regulación, la cual puede llegar a ser del 93.6% para un voltaje de salida
de 5Vdc a una entrada de 12Vdc [35].

45
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Para poder configurar este módulo para que proporcione a la salida 5Vdc con una entrada de
8Vdc, se deben de acoplar a él una serie de resistencias y capacitores. Los valores de cada uno de
estos elementos se seleccionaron de acuerdo a las indicaciones proporcionadas por el fabricante
en la hoja de datos del dispositivo. La configuración y componentes que se acoplaron al
convertidor CD/CD APXS002A0X se pueden apreciar en la figura 3.22, en donde RTRIM = 1.36kΩ,
RTUNE = 220Ω, CI = 10µF, CTUNE = 2200pF y CO1 = 22µF.

Figura 3.22 Configuración implementada en el convertidor CD/CD APXS002A0X.

En la figura 3.23, se muestra el convertidor CD/CD con el arreglo y componentes mostrados en la


figura 3.22, ya acoplados.

Figura 3.23 Convertidor CD/CD APXS002A0X ya con componentes acoplados.

Las características de estas convertidor CD/CD se pueden ver en el apéndice C de la sección de


anexos.

3.4.2. Implementación del sistema de almacenamiento de energía eléctrica.

La manera en que los siete elementos que componen al sistema de almacenamiento, descritos
anteriormente, se interconectan entre sí se puede observar en el diagrama mostrado en la figura
3.24. En dicha figura se muestra el circuito que finalmente se implemento para conformar al
sistema de almacenamiento de energía eléctrica

46
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Dicho circuito (figura 3.24), se utilizo como referencia para generar el fotolito empleado en la
fabricación del circuito impreso del sistema de almacenamiento de energía eléctrica. Esto se logro
mediante el uso de los programas ISIS Proteus 7.6 y ARES Proteus 7.6. El fotolito generado se
muestra en la figura 3.25, mientras que en la figura 3.26 se muestra el sistema de almacenamiento
de energía eléctrica ya implementado en forma de circuito impreso.

U1
7805
J3
2 1 3
VI VO
1
GND

CONN-H2
R5
C1
2

27R
12V .1uF
1
2
D2
TBLOCK-I2

1N4006 J1
Q1 TBLOCK-I3 R2
IRFZ44N 10k U3:A

8
VRELAY
C5
33F 3
3
2
1

1 1
2 2
vrelay

R3 3V
R4 C3 1k
1
2

4
0R1 33F J2 1
LM358N
2
TBLOCK-I2

J4 TBLOCK-I2 C2
C4 CONN-H2 R1 10F
33F 1k

Figura 3.24 Diagrama de conexiones del sistema de almacenamiento de energía eléctrica.

Cabe mencionar que en el circuito impreso se implementaron una serie de headers y jumpers con
el objetivo de facilitar el control del flujo de la corriente durante las mediciones realizadas en las
pruebas documentadas en el capítulo 4. Además se emplearon una serie de borneras con la
finalidad de acoplar el convertidor CD/CD APXS002A0X, la batería de 1.3Vdc de referencia, el
voltaje de entrada y el voltaje de salida que alimentará al sistema embebido.

De manera general, el sistema de almacenamiento de energía eléctrica funciona de la siguiente


manera. Su poniendo que la carga en el banco de supercapacitores es de 0Vdc y se tiene un
voltaje de entrada de aproximadamente 12Vdc, el regulador de corriente suministrará una corriente
de aproximadamente 200mA. Este flujo de corriente pasará a través del diodo y no a través del
conmutador de corriente (Mosfet), debido a que la señal que lo activa (proveniente del comparador
de voltaje) no estará activa (0Vdc). De esta forma toda la corriente suministrada por el regulador de
corriente llegará al banco de supercapacitores. Este banco incrementará su nivel de voltaje
gradualmente y al mismo tiempo el comparador de voltaje comparará el voltaje en este banco (el
cual es adquirido por medio de un divisor de voltaje) con el voltaje de referencia (batería recargable
en paralelo con un supercapacitor). En el momento en que el voltaje de muestra sea igual al voltaje
de referencia, el comparador de voltaje activara la señal que enciende al conmutador de corriente,
de modo que la corriente suministrada por el regulador de corriente pasará por el mosfet y la
resistencia de potencia y ya no llegará al banco de supercapacitores. En el momento que exista un
voltaje un poco mayor a los 5.5Vdc, el convertidor CD/CD proporcionará un voltaje de 5Vdc al
sistema embebido.

47
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 3.25 Fotolito implementado para la elaboración del circuito impreso del sistema de almacenamiento de energía
eléctrica.

Figura 3.26 Sistema de almacenamiento de energía eléctrica implementado a manera de circuito impreso.

En conclusión, el sistema de almacenamiento de energía eléctrica, almacena esta energía y se la


proporciona al sistema embebido.

Mención aparte merece el hecho de que se realizaron una serie de pruebas de desempeño para
corroborar que el sistema de almacenamiento de energía eléctrica funcionaba adecuadamente. La
metodología y los resultados de estas pruebas de desempeño, se encuentran documentados en el
capítulo 4 de esta tesis.

3.5. Implementación de los bloques.

Como se mencionó inicialmente en este tercer capítulo, el prototipo conocido como dispositivo
portátil auxiliar en la estimación de productos basados en códigos de barras, está conformado por
3 bloques principales, los cuales son:

48
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

 Lector de códigos de barras.


 Sistema embebido.
 Sistema de almacenamiento de energía eléctrica.

A lo largo de este tercer capítulo se ha explicado cómo es que cada uno de estos bloques está
conformado, restando solo profundizar en la manera en que los tres se interconectan y trabajan en
conjunto. De manera muy general, el sistema embebido controla las funciones de procesamiento
digital del prototipo, a la vez que también gestiona la información que el lector de códigos de barras
le proporciona, además, este último obtiene la energía que necesita para funcionar a través del
sistema embebido. De tal modo que toda la energía que los bloques conocidos como lector de
códigos de barras y sistema embebido necesitan, es proporcionada por sistema de
almacenamiento de energía eléctrica, el cual tiene la función de almacenar dicha energía y
proporcionársela a estos dos bloques.

Figura 3.27 Interconexión de los 3 bloques principales del prototipo propuesto.

La interconexión entre los tres bloques es muy sencilla, sólo basta con que el lector de códigos de
barras se conecte al sistema embebido por medio del conector PS/2 y utilizar dos cables que sirvan
como puente entre el sistema de almacenamiento de energía eléctrica y el sistema embebido. Lo
anterior se puede apreciar con más detalle en la figura 3.27.

49
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Capítulo 4 Pruebas y resultados


Durante el desarrollo del prototipo propuesto en esta tesis, se realizaron una serie de pruebas con
el objetivo de poner a prueba varias hipótesis ó teorías que se creían podían dar solución a
algunos requerimientos de diseño que el prototipo tenía que satisfacer, más específicamente,
pruebas relacionadas con la generación de energía eléctrica en base a la energía cinética
generada por el desplazamiento del carrito de compras en donde estará montado el prototipo.

Además, también se realizaron algunas pruebas de desempeño a distintos modelos de


supercapacitores, con el objetivo de averiguar cuál de estos sería el más adecuado para la
aplicación desarrollada (prototipo).

Del mismo modo, también se realizaron pruebas para corroborar el correcto funcionamiento de los
dos principales módulos que conforman el prototipo conocido como “Dispositivo portátil auxiliar en
la estimación de productos basados en códigos de barras”, los cuales son el sistema embebido y el
sistema de almacenamiento de energía eléctrica.

Todas estas pruebas fueron muy importantes durante y después del desarrollo de este prototipo,
ya que los resultados obtenidos de ellas permitieron una correcta toma de decisiones, durante el
desarrollo del prototipo, así como también garantizan que el prototipo propuesto tiene un
desempeño adecuado. Por lo anterior, este capítulo es muy importante.

4.1 Pruebas de generación de energía eléctrica.

Con la finalidad de poner a prueba la hipótesis de que por medio del uso de un dínamo acoplado a
las ruedas de un carrito de supermercado se puede generar energía eléctrica, se adquirió un
dinamo para bicicleta marca Sanyo, el cual se muestra en la figura 4.1.

Figura 4.1 Dínamo para bicicleta implementado.

Estos generadores (que son erróneamente llamados dínamos, ya que generan una corriente
alterna) son comúnmente empleados en bicicletas para producir energía eléctrica que se emplea
para encender bombillas montadas en el manubrio de estas y de esa forma iluminar el camino del
ciclista. La razón por la cual se decidió emplear este tipo de generador, es por qué son fáciles de
adquirir y de montar en alguna estructura. Aparte de que son capaces de generar 12V – 6W,
siempre y cuando se emplee en una bicicleta. Debido a que este tipo de generadores están
diseñados específicamente para funcionar con bicicletas, se decidió emplear una estructura en la
cual el dínamo de bicicleta se acoplara a la rueda de un carrito de supermercado. Esto con la
finalidad de recrear el desplazamiento que produce el usuario al usar estos carritos y de esa forma
saber cuánta energía es capaz de generar el dínamo.

50
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Con ese objetivo, se procedió a armar una estructura similar a la que se puede apreciar en la figura
4.2. En dicha figura se muestra un diagrama de la estructura que se implementó para poner a
prueba el desempeño del dínamo. En ella podemos ver como el dinamo se encuentra acoplado a
una rueda de carrito de supermercado, la cual tiene un diámetro de aproximadamente 12cm.

Figura 4.2 Estructura empleada para poner a prueba el dínamo.

Para saber cuánta energía generaría el dinamo, se utilizó como equipo de medición el osciloscopio
TDS2022B de la marca Tektronix (figura 4.3).

Figura 4.3 Osciloscopio TDS2022B de la marca Tektronix.

Las pruebas que se realizaron simplemente consistían en desplazar la estructura que se muestra
en la figura 4.2, a una velocidad constante, mientras que se realizaba la medición de la energía
eléctrica generada por el dínamo, mediante el uso del osciloscopio. La velocidad a la que se

51
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

desplazó la estructura donde se encontraba montado el dinamo fue de aproximadamente entre 4 y


6 km/h, siendo esta la velocidad promedio a la que una persona común y corriente camina. Todo
esto se hizo con el objetivo de simular las condiciones a las que un carrito de supermercado es
sometido normalmente, ya que no se contaba con uno de estos para acoplarle el dínamo, además
de que sería muy estorboso emplear uno de estos carritos en el laboratorio (por cuestiones de
espacio y transporte).

Como resultado de estas pruebas, se obtuvieron las siguientes mediciones, las cuales serán
descritas a continuación.

Figura 4.4 Medición de desempeño del dínamo, 1.

Una de las primeras mediciones que se realizaron fue la que se puede apreciar en la figura 4.4. En
ella se puede observar la forma de onda que produjo el dínamo al desplazar la estructura a una
velocidad un poco superior a los 6 km/h. Esto se realizó con el simple objetivo de ver que señal se
generaba. Como se puede ver en la figura 4.4, la señal que se generó tiene una forma oscilatoria,
casi senoidal, demostrando que este generador en realidad es un alternador y no un dínamo, como
coloquialmente es llamado. También podemos ver como la señal va incrementado y disminuyendo
su amplitud, conforme transcurre el tiempo, esto debido a que también hay un aumento y reducción
en la velocidad de desplazamiento de la estructura, en relación al tiempo transcurrido durante la
medición. Otro de los datos que se lograron obtener a partir de esta primera medición, fue la del
voltaje de pico máximo. La cual resulto ser de aproximadamente 6.8 V. Cabe mencionar que la
duración de las señal capturada fue de aproximadamente 380ms, esto se debió a que solamente
se desplazo la estructura a través de una distancia de unos 0.7m aproximadamente.

Gracias a esta primera medición, se pudo tener un panorama de la forma de onda que producía el
generador. Sin embargo, si se toma en cuenta que la velocidad aplicada fue superior a la velocidad
promedio con la que camina una persona (más de 6 km/h), la energía eléctrica obtenida fue muy
poca (6.8V) comparada con la que se necesita para poder hacer funcionar el prototipo, por lo
menos de la manera en que se había planteado inicialmente. A pesar de eso, se siguieron
realizando pruebas a distintas velocidades de desplazamiento con la finalidad de observar el
desempeño del dínamo a diferentes velocidades.

La siguiente medición que se realizó fue la que se muestra en la figura 4.5. En esta ocasión la
velocidad de desplazamiento que se aplicó a la estructura fue menor a los 4 km/h, esto con el
objetivo de simular el peor caso de desplazamiento, tomando como mejor caso la medición

52
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

mostrada en la figura 4.4. De esta forma se cubrirían el mejor y peor caso, esto en relación a la
velocidad de desplazamiento de la estructura.

De la segunda medición se pueden observar algunas cosas interesantes. La primera de ellas es la


frecuencia que tiene la señal producida por el generador. Dicha señal tiene una frecuencia de
aproximadamente 55.5 Hz. La segunda y más importante es el voltaje de pico máximo obtenido, el
cual es de aproximadamente 4.8V, lo cual es muy poco.

En conclusión, de la observación de los datos obtenidos en la primera y segunda medición se


puede concluir que la cantidad de energía que puede producir el generador depende de la
velocidad con la que la estructura sea desplazada, ó en otras palabras, depende de la velocidad
con la que se haga girar el rotor del generador.

Figura 4.5 Medición de desempeño del dínamo, 2.

En la figura 4.6, se muestra una tercera medición, en la cual se observan las señales producidas
por el generador al desplazarse a una velocidad de aproximadamente 5 km/h, esto con la finalidad
de tener registrado un caso intermedio, en relación a la velocidad de desplazamiento de la
estructura implementada. Cabe mencionar que en la figura 4.6 se observan 3 secuencias de
pulsos, debido a que se realizaron más desplazamientos de la estructura, durante el proceso de
medición.

De la tercera medición realizada, el principal dato que se obtuvo fue el de la cantidad de energía
eléctrica generada por el dinamo a una velocidad de aproximadamente 5 km/h. De modo que el
voltaje de pico máximo obtenido fue de aproximadamente 5.8V.

Después de que se realizaron todas las mediciones de desempeño del dínamo, se llego a la
conclusión de que la energía eléctrica generada por el generador bajo las condiciones
anteriormente planteadas, es muy poca para poder ser almacenada y después implementada por
el sistema embebido. Lo anterior debido a que para que el sistema embebido funcione de manera
adecuada, es necesario contar con una medio que almacene una cantidad 8Vdc
aproximadamente y para poder almacenar dicha energía en algún dispositivo eléctrico es
necesario un voltaje mayor al que se desea almacenar.

53
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 4.6 Medición de desempeño del dínamo, 3.

Con la finalidad de poder generar más energía eléctrica mediante el uso de este generador, se
planteo la posibilidad de emplear un sistema de engranajes que amplificara la velocidad con la que
el rotor del dínamo giraría. Pero dicha propuesta no se implemento, debido a que no se contaban
con los conocimientos necesarios para diseñar y maquinar un sistema de engranajes. Debido a
que aparentemente el generador empleado en estas pruebas no era capaz de general la cantidad
de energía eléctrica que era necesaria, se desecho la idea de implementarlo dentro del prototipo.
Al mismo tiempo, se llego a la conclusión de que no sería tan sencillo generar la energía eléctrica
necesaria para el funcionamiento del prototipo, en base a la energía cinética producida por el
desplazamiento del carrito de supermercado. Para lograr esto, se tendría que diseñar un generador
eléctrico que sea capaz de generar un voltaje de pico máximo mucho mayor al que se obtuvo con
el dínamo de bicicleta, bajo las mismas condiciones empleadas en las pruebas anteriormente
realizadas.

Debido a que el diseño e implementación de un generador no es algo tan sencillo y conlleva un


periodo de desarrollo algo prolongado (comparado con la cantidad de tiempo disponible), se
decidió que el prototipo que se implementaría en este proyecto no incluiría la característica de
regeneración de energía. Sin embargo se decidió emplear un método para poder almacenar cierta
cantidad de energía eléctrica, en base a una fuente de voltaje DC que fungiera como fuente
primaria de energía. Esto con el objetivo de que en un trabajo posterior, se pueda emplear un
mejor generador de energía eléctrica (el cual cumpla con los requerimientos anteriormente
planteados), en conjunto con un puente de diodos rectificadores, para de esa forma tener una
fuente de voltaje DC.

Con este replanteamiento de las especificaciones que tendría el prototipo, el trabajo realizado en el
área de la electrónica de potencia, correspondiente a este proyecto, se enfoco a la selección e
implementación de un método para almacenar cierta cantidad de energía eléctrica, para que
después fuese esta energía empleada por el sistema embebido.

4.2 Pruebas de desempeño de distintos modelos de supercapacitores.

Como se menciono en el capítulo 3, una vez que se tuvo el convertidor CD-CD APXS002A0X
configurado adecuadamente para otorgar un voltaje de 5Vdc a la salida a una entrada de
aproximadamente 7.5Vdc, se procedió a comprobar el desempeño distintos modelos de
supercapacitores, con la finalidad de averiguar cuál sería el modelo más conveniente a

54
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

implementar en el prototipo. En la figura 4.7, se muestra la realización de una de las pruebas, en la


cuales se monitoreaba el voltaje en el banco de supercapacitores, a medida que el sistema
embebido consumía la energía almacenada. De forma general, la manera en que se realizaron
estas pruebas fue mediante el cambio del modelo de supercapacitores que conformaban el banco.
Cada vez que se implementaba un modelo de supercapacitores, estos eran cargados y después
descargados. De tal forma que se podía saber cuánto tiempo era necesario para cargar un banco
determinado, cuánto tiempo podía operar el sistema embebido con la energía almacenada y
cuantas lecturas de códigos de barras era capaz el sistema embebido de realizar con esa cantidad
de energía eléctrica almacenada. La primera prueba que se realizo fue con 3 supercapacitores de
10F/2.5V.

Figura 4.7 Realización de una de las pruebas de desempeño de supercapacitores.

Como se esperaba, con el acoplamiento del convertidor CD-CD APXS002A0X el desempeño del
módulo de almacenamiento de energía eléctrica mejoro considerablemente, ya que ahora el
sistema embebido podía operar durante 6 minutos (sin realizar escaneo de códigos de barras) ó
realizar 45 lecturas de códigos de barras, esto con un tiempo de carga del banco de
supercapacitores de 4:30 minutos, a un voltaje de entrada de CD de 12V, lo cual es una gran
diferencia con respecto al uso del regulador lineal LM7805.

Aunque el desempeño del módulo mejoró considerablemente, aun se consideraba que el tiempo
que podía operar el sistema embebido era muy corto, por lo tanto, se decidió probar otros dos
modelos de supercapacitores que se tenían a disposición. Estos supercacitores eran de 20F/2.5V y
33F/2.7V. Para el caso de los supercapacitores de 20F no se tuvo que realizar ningún cambio al
circuito de carga, ya que su voltaje de operación es el mismo que el de lo supercapacitores de 10F.
Pero en el caso de los supercapacitores de 33F, se tuvo que realizar un ajuste en los valores de
las resistencias de muestreo de voltaje, ya que el voltaje máximo que puede alcanzar el banco
conformado por estos capacitores puede llegar a ser de 8.1V, pero el voltaje carga limite que se
planteo fue de 8V, por lo tanto, los valores de las resistencias en paralelo, para este caso, fueron
de 16.6kΩ y 10kΩ.

De tal modo que se obtuvieron los resultados que muestran en la tabla 4.1, en donde para todos
los casos se emplearon 3 capacitores conectados en serie.

55
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Tabla 4.1 Resultados de las pruebas de desempeño de supercapacitores.

Características del Tiempo de carga del Tiempo de operación Número de lecturas


banco de banco de (sin lectura de de códigos de barras
supercapacitores supercapacitores códigos de barras)
10F/2.5V 4:30 min 6 min 45
20F/2.5V 6:15 min 12 min 196
33F/2.7V 8 min 15:20 min 367

Una vez que se concluyeron estas pruebas de desempeño, se llego a la conclusión de que entre
mayor sea la capacitancia y el voltaje de operación de los capacitores que conforman el banco de
supercapacitores, mayor será el tiempo de operación del sistema embebido. Debido a esto, se
decidió utilizar los supercapacitores de 33F/2.7V para la implementación del modulo sistema de
almacenamiento de energía eléctrica en un circuito impreso.

4.3 Pruebas de desempeño del sistema de almacenamiento de energía eléctrica


implementado.

Esta prueba de desempeño, como su nombre lo indica, se enfoco a corroborar el correcto


funcionamiento del sistema de almacenamiento de energía eléctrica implementado en un circuito
impreso. El objetivo de esta prueba era monitorear el incremento del voltaje en el banco de
supercapacitores y la señal de activación del mosfet IRFZ44N. De modo que las mediciones
obtenidas se pueden apreciar en las figuras 4.8 y 4.9.

En la primera medición (figura 4.8), se puede observar como el voltaje en el banco de


supercapacitores (señal Vsc amarilla) va aumentando conforme transcurre el tiempo, mientras la
señal que activa al mosfet IRFZ44Z (señal Vgs azul) se mantiene en 0Vdc, ya que el voltaje en los
supercapacitores aun no alcanza el voltaje límite establecido.

Vsc

Vgs

Figura 4.8 Prueba de desempeño del sistema de almacenamiento de energía eléctrica, 1.

En la segunda medición (figura 4.9), se puede observar que el banco de supercapacitores ya


alcanzo el voltaje máximo de carga y la señal de activación del mosfet ya se encuentra activa. La
razón por la cual el voltaje en los supercapacitores en esta medición fue de 8.2V fue por qué el
voltaje de referencia de la batería recargable era mayor de 1.3V, ya que la batería acababa de ser

56
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

recargada. Mientras que el voltaje de activación del mosfet fue de 3.2V debido a que ese es el
voltaje de frontera de este dispositivo. Conforme transcurra el uso del módulo de almacenamiento
de energía eléctrica, la carga en la batería disminuirá, lo que disminuirá el voltaje máximo de carga
del banco de supercapacitores, por lo tanto, si la batería se agota, simplemente el banco de
supercapacitores no se cargará.

Vsc

Vgs

Figura 4.9 Prueba de desempeño del sistema de almacenamiento de energía eléctrica, 2.

Después de realizar esta prueba de desempeño, se concluyo que el circuito impreso del módulo de
almacenamiento de energía eléctrica funcionaba adecuadamente.

4.4. Pruebas del sistema embebido

Con el objetivo de verificar que el sistema embebido implementado en circuito impreso funciona
adecuadamente, se llevó a cabo una prueba de desempeño, la cual fue diseñada de la siguiente
manera. En dicha prueba, se determinaría el precio de tres productos y se anexaría el precio de
estos a la cuenta del usuario. Además se escanearía un cuarto producto, el cual no está registrado
en la base de datos, con el objetivo de ver la función que el prototipo realiza en estos casos.
Después de haber anexado a la cuenta los precios de los tres productos registrados, estos serían
retirados de la cuenta del usuario uno por uno.

A continuación se muestran los pasos que se siguieron para la realización de la prueba descrita
anteriormente y los resultados obtenidos de esta. Con el objetivo de mostrar de manera adecuada
los resultados obtenidos, se adjuntaron una serie de fotografías en la cual se puede ver el prototipo
funcionando.

En la figura 4.10 se muestra al sistema embebido funcionando en conjunto con el sistema de


almacenamiento de energía eléctrica, el cual le proporciona al sistema embebido la energía
eléctrica que necesita para operar adecuadamente. En dicha figura también se puede apreciar al
lector de códigos de barras, el cual se encuentra conectado al sistema embebido.

De esta forma, se podría decir que el prototipo propuesto se encontraba bajo condiciones iniciales,
de modo que ya se podía proceder a realizar las pruebas de desempeño.

57
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 4.10 Sistema embebido funcionando en conjunto con el sistema de almacenamiento de energía eléctrica.

El conjunto de productos que se utilizaron durante esta prueba de desempeño se muestran en la


figura 4.11. Dichos productos fueron una Coca-cola de 600ml, un videojuego, un disco de música y
un libro. De los cuatro artículos, el que no se encuentra registrado en la base de datos del sistema
embebido es el libro. Cabe mencionar que en los códigos de barras de los productos cuya
información se encuentran registrada en la base de datos implementada en el sistema embebido,
se pueden apreciar en el apéndice D, de la sección de anexos.

Antes de comenzar a registrar productos, se verificó que la cuenta de usuario que mostraba el
sistema embebido efectivamente se encontrará vacía ($0.00). Lo anterior se puede ver en la figura
4.12.

Después de realizar esta verificación se procedió a identificar el primer artículo, el cual fue la Coca-
cola de 600ml. En la figura 4.13 se puede apreciar esto.

Figura 4.11 Productos que se emplearon en la prueba de desempeño.

58
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 4.12 Cuenta de usuario vacía al iniciar el sistema embebido.

Figura 4.13 Escaneo de una Coca-cola de 600ml.

Una vez que se realizó la lectura del código de barras de la Coca-cola de 600ml, el sistema
embebido detecto que este artículo efectivamente se encuentra dentro de la base de datos y por
ende, mostró la información referente a este producto en la pantalla LCD (figura 4.14), al mismo
tiempo que le muestra al usuario el mensaje “Anexar a cuenta?”. A partir de ese momento, el
usuario tiene aproximadamente 5 segundos para decidir si agregará a su cuenta el monto del
producto recién escaneado ó lo restará de su cuenta. En dado caso que el usuario quiera restar el
costo de un producto determinado (presionando el botón de restar a cuenta), cuando la cuenta de
usuario se encuentra vacía, el sistema embebido mostrará el mensaje de “Cuenta vacia” durante 5
segundos, con el objetivo de indicarle al usuario que no se puede realizar esa operación. Pero
debido a que el objetivo de la prueba era agregar el monto de tres productos a la cuenta de
usuario, para después restarlo, la siguiente acción que se realizo fue la de anexar el costo de la
Coca-cola de 600ml a la cuenta de usuario.

Cabe mencionar que si el usuario no realiza ninguna acción dentro de los 5 segundos que el
sistema embebido le otorga para tomar una decisión, el sistema embebido simplemente volverá a
mostrar el mensaje “Elija producto” junto con el valor actual de la cuenta de usuario.

59
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 4.14 Sistema embebido mostrando la información de un artículo recién escaneado.

Para agregar el precio de la Coca-cola de 600ml (y de cualquier producto que se encuentre dentro
de la base de datos), simplemente se tiene que presionar el botón de agregar a cuenta instantes
después de haber identificado un producto. Dicho botón es el que se encuentra en medio de la fila
de botones de selección, siendo el ubicado a la izquierda de este el de reinicio del sistema
embebido y el colocado a su derecha el botón de restar a cuenta. En la figura 4.15 se muestra la
manera en que se anexó a cuenta el monto correspondiente a la Coca-cola de 600ml, el cual fue
de $8.50.

Figura 4.15 Se anexa a cuenta el monto de una Coca-cola de 600ml.

Una vez que se presionó el botón de agregar a cuenta, el sistema embebido anexó este valor a la
cuenta de usuario y después mostró en la pantalla LCD el estado actual de la cuenta a pagar.
Como se puede ver en la figura 4.16, la cuenta de usuario de se vio modificada, cambiando de $0
a $8.50, el cual es el precio asignado a una Coca-cola de 600ml.

60
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 4.16 Cuenta de usuario modificada, después de agregar el monto de un producto a cuenta.

Del mismo modo que se agregó a la cuenta de usuario el monto de una Coca-cola de 600ml, se
anexaron las cantidades correspondientes a un disco de música y un videojuego. Este proceso se
puede observar en las figuras 4.17, 4.18, 4.19, 4.20, 4.21, 4.22.

Figura 4.17 Escaneo de un disco de música.

Figura 4.18 Sistema embebido mostrando la información de un artículo recién escaneado, un disco de música.

61
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 4.19 Cuenta de usuario modificada, después de haber anexado a cuenta el costo de un disco de música.

Figura 4.20 Escaneo de un videojuego.

Figura 4.21 Sistema embebido mostrando la información de un artículo recién escaneado, un videojuego.

62
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 4.22 Cuenta de usuario modificada, después de haber anexado a cuenta el costo de un videojuego.

Una vez que se agregaron a la cuenta de usuario el costo de los tres productos mencionados
anteriormente, la cuenta de usuario alcanzó un monto de $609.75. El siguiente paso a realizar
dentro de la prueba de desempeño era el de tratar de identificar un producto que no se encontrará
registrado en la base de datos implementada dentro del sistema embebido. Dicho producto en este
caso era un libro, el cual, como se muestra en la figura 4.23, fue escaneado y el sistema embebido
no fue capaz de identificarlo, debido a que no se encontraba registrado dentro de la base de datos
(figura 4.24).

Figura 4.23 Escaneo de un producto que no se encuentra registrado dentro de la base de datos del sistema embebido.

63
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 4.24 El sistema embebido al no identificar un producto, muestra el mensaje “No registrado”.

Una vez que se corroboró que el sistema embebido realiza las acciones pertinentes en caso de
que se intente identificar un producto que no se encuentra registrado dentro de la base de datos,
se procedió a eliminar el monto correspondiente a los producto que fueron anexados a la cuenta de
usuario anteriormente. Para lograr esto, simplemente se tenía que escanear el código de barras de
cada producto y cuando el sistema embebido mostrará la información referente al producto recién
escaneado, se presionaba el botón de restar a cuenta. De esa manera el monto referente al
producto recién identificado, era restado de la cuenta de usuario. Este proceso se realizó con los
tres productos que se agregaron anteriormente a la cuenta de usuario y se puede apreciar en las
figuras 4.25, 4.26, 4.27, 4.28, 4.29 y 4.30.

Figura 4.25 Escaneo de una Coca-cola de 600ml para después eliminarla de la cuenta de usuario.

64
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 4.26 Cuenta de usuario modificada después de haber retirado el monto perteneciente a una Coca-cola de
600ml.

Figura 4.27 Escaneo de un videojuego para después eliminarlo de la cuenta de usuario.

Figura 4.28 Cuenta de usuario modificada después de retirar el monto perteneciente a un videojuego.

65
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Figura 4.29 Escaneo de un disco de música para después eliminarlo de la cuenta de usuario.

Figura 4.30 Cuenta de usuario modificada después de retirar el monto perteneciente a un disco de música.

Una vez que se retiraron de la cuenta de usuario los tres productos anexados anetriormenate a
esta, la cuenta volvío a su estado inicial, siendo ahora de $0.00. De esta forma, los resultados
obtenidos en las pruebas realizadas anteriormente demostraron que el sistema embebido realizó
las funciones que se esperaba que este realizará, de manera adecuada. Cabe destacar que el
funcionamiento del sistema embebido es limitado, esto debido a que solo lleva un seguimiento del
valor almacenado en la cuenta de usuario, más no un registro ó invetario de productos anexados a
la cuenta, que ayude a tener un mejor control de esta. Por lo tanto, un usuario podría modificar de
manera incorrecta su cuenta al momento de retirar productos, si esque no tiene cuidado. Para
poder darle solución a esta problemática, se hacen algunas propuestas en la sección de
recomendaciones de esta tesis.

66
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Conclusiones.

Al término de los trabajos realizados en este proyecto de tesis, se logró desarrollar un dispositivo a
nivel prototipo que cumple con la mayoría de los objetivos planteados inicialmente. Siendo los
objetivos cumplidos, los siguientes:

 Determinar e implementar un sistema digital que satisfaga las especificaciones planteadas.


 Almacenar y emplear la energía generada de manera adecuada.
Por lo tanto, no se logro autogenerar la energía eléctrica requerida por el prototipo, a través de la
transformación de la energía cinética (la cual es generada por el movimiento del carrito de compras
al ser desplazado por el usuario) en energía eléctrica. Cabe destacar que, aunque si se logró
generar energía eléctrica de la manera inicialmente planteada, esta no era suficiente para tener
una correcta operación del prototipo. Por lo tanto no se contó con un generador eléctrico capaz de
generar la suficiente energía eléctrica para que el sistema digital implementado funcione.

Además, una función que inicialmente se propuso que realizara el sistema digital, finalmente no se
logró implementar. Esta función era la actualización o modificación de la base de datos (en la cual
se almacenan los códigos, nombres y precios de distintos productos) a través de una interfaz de
comunicación inalámbrica. La principal razón por la cual esta función no se desarrollo, fue debido
al poco tiempo con que se contó para el desarrollo del prototipo.

Pero a pesar de estas limitantes, mediante el desarrollo del prototipo propuesto en esta tesis, se
llegó a la conclusión general de que es factible desarrollar un dispositivo que cumpla con todas las
especificaciones anteriormente planteadas. Más sin embargo esto requiere un tiempo de desarrollo
prolongado ó un equipo de desarrollo conformado por más personas, las cuales deben ser
especialistas en distintas áreas. Lo anterior debido a que en este proyecto se involucran distintas
áreas de la ingeniería electrónica, como la electrónica analógica, digital, de potencia y
telecomunicaciones. Además, otras áreas que son ajenas a la ingeniería electrónica, como la
mecánica y la electromecánica, también se ven involucradas.

Adicionalmente, el prototipo desarrollado puede servir como precedente ó referencia, para la


realización de trabajos que complementen lo hecho en este proyecto de tesis ó busquen utilizar
algún componente en específico que haya sido empleado en este proyecto (como
supercapacitores, lectores de códigos de barras, microcontroladores, compiladores, entre otros).

Recomendaciones y trabajos futuros.

Aunque el prototipo propuesto en esta tesis es funcional, aun es necesario que se realicen trabajos
de desarrollo para que este cumpla con todas las especificaciones de diseño que fueron
planteadas en un inicio. Por lo tanto se contempla que se realicen las siguientes acciones en un
trabajo posterior al realizado en este proyecto.

 Lograr implementar algún método de generación de energía eléctrica que sea capaz de
generar la cantidad de energía necesaria para que el prototipo pueda funcionar. Ya sea
este un mejor generador eléctrico al probado en este proyecto u otra fuente generadora de
energía eléctrica.
 Implementar una interfaz de comunicación inalámbrica dentro del sistema digital, para de
esa forma, proporcionarle al prototipo la función de actualización ó modificación de la base
de datos de manera inalámbrica.
 Mejorar el algoritmo implementado dentro del microcontrolador, con el objetivo de optimizar
y añadir funciones al prototipo.

67
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

 Mejorar la administración y consumo de la energía eléctrica que el prototipo emplea. Esto


mediante el uso de modos “sleep” con los que cuentan algunos dispositivos implementados
en el prototipo propuesto. También se puede obtener un mejor consumo de energía
mediante el uso de otro microcontrolador que consuma menos energía eléctrica, como
puede ser el PIC16F1936, el cual cuenta con una nueva tecnología que optimiza su
consumo de energía eléctrica (tecnología nano Watt, de Microchip) [15].

En caso de que se quiera continuar con el desarrollo de este proyecto, se deben de tomar en
cuenta las siguientes recomendaciones.

 Se debe de conocer y entender la forma en que trabaja un microcontrolador, así como


saber cómo emplearlo y programarlo (ya sea en lenguaje ensamblador, C u otro).
 Se debe de comprender la manera en que trabajan y se emplean los supercapacitores.
 En caso de buscar darle solución al problema de la generación de energía eléctrica, se
debe de investigar acerca de los métodos de construcción de generador que cumpla con
los requerimientos que se solicitan en este proyecto.
 En caso de buscar darle solución al problema de la actualización de la base de datos
empleada en el prototipo, de manera inalámbrica, se recomienda el uso de módulos de
comunicación que empleen protocolos de comunicación populares, con la finalidad de no
tener muchas complicaciones a la hora de implementarlos.
 Si se busca darle solución a los dos problemas anteriormente mencionados, se
recomienda solucionar primero el problema de la actualización de la base de datos de
manera inalámbrica, ya que sea cual sea el módulo de comunicación que se emplee, este
consumirá energía eléctrica, lo cual se verá reflejado en las características que deba de
satisfacer el generador de energía eléctrica que sea propuesto.
 Si se llega a resolver el problema de la actualización de la base de datos empleada en el
prototipo, de manera inalámbrica, sería muy buena idea desarrollar una aplicación en la PC
host que gestione la base de datos de los productos y precios que se actualizaran en la
base de datos del prototipo.
 Se recomienda mejorar la manera en que el sistema embebido lleva el control de la cuenta
de usuario, mediante la implementación de un inventario de productos, dentro del algoritmo
del sistema embebido, ya que con el algoritmo empleado actualmente el usuario puede
modificar su cuanta de manera incorrecta.
 Mejorar la manera en que la energía eléctrica es consumida por el sistema embebido, esto
mediante la correcta implementación del modo “sleep” del microcontrolador PIC16F877A.
 Otra manera de ahorrar energía eléctrica puede ser mediante la implementación de otro
microcontrolador que consuma menos energía, como podría ser el caso del
microcontrolador PIC16F1936.
 Una vez que se halla logrado generar suficiente energía eléctrica, sería conveniente hacer
una estimación sobre cuanta energía es generada, bajo diferentes velocidades de
desplazamiento.
 Mejorar la construcción del dispositivo propuesto, con el objetivo de hacerlo más robusto.
Esto para evitar que el dispositivo se dañe debido a un uso descuidado o rudo por parte del
usuario.

68
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Anexos

Durante el desarrollo del prototipo propuesto en esta tesis se implementaron y generaron una serie
de recursos y contenidos que no podían ser incluidos en los capítulos principales, por lo tanto,
estos contenidos fueron alojados en esta sección.

Cabe mencionar que independientemente del contenido escrito en esta sección, también se incluye
un CD en el cual se almacenan los distintos archivos que se generaron en la elaboración del
prototipo propuesto (programas, simulaciones, esquemas, fotolitos, etc), con el objetivo de facilitar
la comprensión del proceso de elaboración del prototipo, así como también su reproducción y
mejora.

Apéndice A – Datos técnicos de MS180 linear imager scanner de la marca Unitech.


Operación y Desempeño

Velocidad de barrido 45scans/seg


Ratio de contraste de impresión 45% mínimo
Resolución 4 mils mínimo
Angulo de escaneo 30 °- 150 °

Profundidad de campo

Desempeño 0 - 0.6 pulgadas en 4 – 13 mils


0 - 1 pulgadas en 40 mils

Amplitud de campo

Desempeño 0 – 2 pulgadas de distancia

Modos de operación

Tipos Gatillo, flash ó continuo


Interfaz Keyboard wedge

Simbologías

Tipos Code 39 Standard and Full ASCII, Codabar,


UPC/EAN with supplement codes,
UCC/EAN128, Interleaved 2 of 5, MSI/Plessy
code, Standard 2 of 5, China Postal,
Code(Toshiba Code), Label Code IV and V,
Delta Distance code, Code93, Code128,
Code32(Italian Pharmacy)

Óptica

Dispositivo receptor Elemento linear de imágenes 2160


Fuente de iluminación LED rojo visible de 660 nm

69
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Fuente de alimentación

Voltaje de alimentación +5Vdc +/- 5%


Corriente de operación 100.5 mA a 5V
Corriente en modo de espera 21.3 mA a 5V
Tiempo de Vida de interruptor Más de un millón de interrupciones de
interruptor
Volumen de sonido beep >70dB

Empaque

Dimensión 7.4"H x 3.46"W x 3.15"D


Peso 4.4 onzas
Material de la carcasa 30%PC + 70% ABS, UL94U0
Contorno de forma Manejable y cómoda a la mano, con logotipo de
Unitech al frente.

Ambiental

Temperatura de operación 32ºF a 122ºF


Temperatura de almacenamiento -4ºF a 140ºF
Humedad 20% RH ~ 85% RH

Precio: $600.0

70
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Apéndice B – Programa implementado.

Debido a que es un componente importante dentro del prototipo propuesto, el programa


implementado en el sistema embebido no podía ser excluido de esta tesis. Aunque a continuación
se muestra el código implementado, también se anexaran dentro de un CD los archivos necesarios
para poder implementar y modificar dicho programa (.hex, .coff, .c).

#include<built_in.h> //Librería para seccionar datos del //la EEPROM, cuenta-> almacena el estimado a pagar
//tipo flotante //por el usuario.
// Conexiones de Modulo LCD float pt, pr, cuenta;
sbit LCD_RS at RB7_bit; //usado en la conversión flotante a carácter
sbit LCD_EN at RB6_bit; int pos;
sbit LCD_D4 at RB5_bit; //cantidad de productos revisados
sbit LCD_D5 at RB4_bit; int cpr;
sbit LCD_D6 at RB3_bit; //b->usado para apuntar a arrays, loc-> es para
sbit LCD_D7 at RB2_bit; //seleccionar la localidad de memoria apartir de la cual
sbit LCD_RS_Direction at TRISB7_bit; //se guardan ó leen cada producto dentro de la
sbit LCD_EN_Direction at TRISB6_bit; //EEPROM, c_s-> usado para retrasos del timer 1
sbit LCD_D4_Direction at TRISB5_bit; int b, loc, c_s;
sbit LCD_D5_Direction at TRISB4_bit; //variables usadas en el manejo de periféricos PS/2
sbit LCD_D6_Direction at TRISB3_bit; unsigned short keydata = 0, special = 0, down = 0;
sbit LCD_D7_Direction at TRISB2_bit; //Interrupción por desbordamiento del timer 1
//Coexiones de Modulo PS/2 void interrupt(void){ //Secuencia de Interrupción
sbit PS2_Data at RA4_bit; //Como puede haber varias interrupciones, si la
sbit PS2_Clock at RA5_bit; //interrupción es de bandera de sobre flujo del timer1, se
sbit PS2_Data_Direction at TRISA4_bit; //hace lo siguiente.
sbit PS2_Clock_Direction at TRISA5_bit; if (PIR1.TMR1IF){
//Vectores que tendrán el nombre del producto y el c_s++; //Incrementa el Contador
//código de barras, se guardaran en la EEPROM serial PIR1.TMR1IF = 0; //Se resetea la bandera de sobre flujo
//i2c. (Se aplicará este formato a todos los productos, 10 del Timer1.
//localidades para nombre y 16 para código de barras). TMR1L = 0x0 //Se ponen valores de precarga al Timer1,
//Estos datos se encuentran en memoria de programa. //en este caso 0, para hacer que el conteo del timer 1
const char out1[]="75007614 Coca-Cola "; //dure lo mas que se pueda.
const char out2[]="010722231835 Wolverine "; TMR1H = 0x00; //174ms
const char out3[]="013388330232 SSF4 X360 "; }
const char out4[]="825646866267 MUSE TR CD"; }
const char out5[]="013388991020 UMVC3 "; //Rutina para la conversión de flotante a string
const char out6[]="730865900114 KOF XIII "; int long_to_char(char *buff, int start_pos, long inum){
//Todos los mensajes de la interfaz. char n, k;
const char msj1[]="Elija Producto "; long div = 1000000000;
const char msj2[]="Anexar a cuenta?"; if(inum < 0) {
const char msj3[]="Cuenta $ "; buff[start_pos++] = '-';
const char msj4[]="Cuenta Vacia $0 "; inum *= -1;}
const char msj5[]="Producto No "; for(k = 0; k < 10; k++){
const char msj6[]="Anexado a Cuenta"; n = (inum / div) % 10;
const char msj7[]="No registrado "; if(n > 0) break;
//Variables, txt->vector donde se cargaran todos los div /= 10;}
//mensajes a desplegarse en LCD, datt->vector que buff[start_pos++] = 48 + n;
//contendrá los datos que se grabaran en la EEPROM, k++;
//barcode-> vector que almacena un código de barras div /= 10;
//recién escaneado, minc-> vector que contiene el código for(; k < 10; k++){
//de barras que es leído de la base de datos para n = (inum / div) % 10;
//compararlo con el recién escaneado, minid ->vector buff[start_pos++] = 48 + n;
//que contiene el nombre del producto almacenado en la div /= 10;}
//base de datos. return start_pos;}
char txt[16], barcode[16], datt[26],minc[16], minid[10]; long pow10l(short p){
//En estos vectores se almacena el precio de cada switch(p){
//producto, también se almacenan en la EEPROM serial case 1: return 10l;
//i2c, inmediatamente después de vector out. case 2: return 100l;
const float op1= 8.5, op2= 19.0, op3= 500.75, op4= case 3: return 1000l;
100.50, op5= 50.50, op6= 800.00; case 4: return 10000l;
//pt-> se emplea para almacenar los precios que se case 5: return 100000l;
//enviarán a la EEPROM, pr-> usado para leer precios de case 6: return 1000000l;

71
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

case 7: return 10000000l; Delay_ms(5);


case 8: return 100000000l; I2C1_Start();
case 9: return 1000000000l; I2C1_Wr(0XA2);
default: return 1;}} I2C1_Wr(Hi(loc));
int float_to_char(char *buff, int start_pos, float fnum, I2C1_Wr(Lo(loc));
short dec){ I2C1_Wr(Lo(pt));
long i; I2C1_Stop();
int pos, k; ++loc;
if(fnum < 0) { Delay_ms(5);
buff[start_pos++] = '-'; }
fnum *= -1;} //Rutuina para lectura de datos almacenados en
i = fnum; //memoria I2C.
pos = long_to_char(buff, start_pos, i); void rm(){
buff[pos++] = '.'; b = 0X00;
fnum -= i; I2C1_Start();
fnum *= pow10l(dec); I2C1_Wr(0XA2);
i = fnum; I2C1_Wr(Hi(loc));
fnum -= i; // The 2 new lines to round last digit I2C1_Wr(Lo(loc));
if(fnum >= 0.5) i++; I2C1_Repeated_Start();
pos += dec; I2C1_Wr(0XA3);
for(k = dec; k > 0; k--){ while(b<16){
buff[--pos] = 48 + (i % 10); minc[b]= I2C1_Rd(1);
i /= 10;} ++b;}
return pos + dec;} b = 0X00;
//Rutina de envío de datos a la memoria serial EEPROM while(b<10){
//I2C. minid[b]= I2C1_Rd(1);
void trans(const char *ori){ ++b;}
b=0x00; Highest(pr) = I2C1_Rd(1);
while(b<26){ Higher(pr) = I2C1_Rd(1);
datt[b] = *ori++; Hi(pr) = I2C1_Rd(1);
++b; } Lo(pr) = I2C1_Rd(0);
b = 0x00; I2C1_Stop();
while(b<26){ }
I2C1_Start(); //Rutina para la limpieza de txt.
I2C1_Wr(0XA2); void limtxt(){
I2C1_Wr(Hi(loc)); for(b=0x00; b<8; b++){
I2C1_Wr(Lo(loc)); txt[b] = ' ';}}
I2C1_Wr(datt[b]); //Rutina para limpieza de barcode.
I2C1_Stop(); void limbarcode(){
++loc; for(b=0x00;b<16;b++){
++b; barcode[b] = ' ';}}
Delay_ms(5);} //Rutina de limpiesza de minc.
I2C1_Start(); //se almacena el precio del void limminc(){
//producto, separado en 4 partes. for(b=0x00;b<16;b++){
I2C1_Wr(0XA2); minc[b] = ' ';}}
I2C1_Wr(Hi(loc)); //Rutina para mostrar datos leídos de la memoria i2c en
I2C1_Wr(Lo(loc)); //LCD.
I2C1_Wr(Highest(pt)); void show(){
I2C1_Stop(); LCD_CMD(_LCD_CLEAR);
++loc; LCD_OUT(1,1,minid);
Delay_ms(5); LCD_Chr(1,11,'$');
I2C1_Start(); LCD_OUT(1,12," ");
I2C1_Wr(0XA2); pos = 0x00;
I2C1_Wr(Hi(loc)); limtxt();
I2C1_Wr(Lo(loc)); pos = float_to_char(txt, 0, pr, 2);
I2C1_Wr(Higher(pt)); txt[pos++] = ' ';
I2C1_Stop(); LCD_OUT(1,12,txt);
++loc; }
Delay_ms(5); //Rutina para pasar todos los mensajes almacenados en
I2C1_Start(); //ROM a RAM para poder ponerlos en la LCD.
I2C1_Wr(0XA2); void rom2ram(char *dest, const char *source){
I2C1_Wr(Hi(loc)); //Se tienen dos valores de entrada a la función, a los
I2C1_Wr(Lo(loc)); //cuales se les apunta.
I2C1_Wr(Hi(pt)); while(*source) //Mientras no se acabe el vector al que
I2C1_Stop(); //apunta source, se sigue.
++loc; *dest++ = *source++; //Se hace un copiado de vectores.

72
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

*dest = 0 ; //Se pone en cero la localidad a la T1CON.TMR1ON = 1; //Activa el timer1.


//que apunta, o sea la que sigue. if (down && (keydata == 16)) {}
} else if (down && (keydata == 13)) {}
//Programa principal. else if (down && !special && keydata) {
void main() { barcode[b] = keydata;
cuenta = 0x00; b++;
loc = 0X00; keydata=0x00;
ADCON1 = 0X06; delay_ms(10); }
TRISA = 0XFF; Delay_ms(1);;
I2C1_Init(100000); //Se inicializa la comunicación 12C }}
LCD_Init(); //Se inicializa la pantalla LCD while(c_s<5);
Ps2_Config(); //Se inicializa la comunicación PS/2 //Ya que se capture un Nuevo dato en PS/2 se compara
Delay_ms(1000); //con los datos en la EEPROM.
pt = op1; //Se transfieren datos de productos c_s = 0x00; //Se preparan algunos registros.
//a la memoria EEPROM. INTCON.GIE = 0;
trans(out1); PIR1.TMR1IF = 0;
pt = op2; INTCON.PEIE = 0;
trans(out2); PIE1.TMR1IE = 0;
pt = op3; loc = 0X00;
trans(out3); cpr = 0x00;
pt = op4; limminc(); //Se limpia el vector en donde se almacenan
trans(out4); //los códigos de barras leído de la EEPROM.
pt = op5; b = 0x00;
trans(out5); do{
pt = op6; rm(); //Se leen datos de productos en
trans(out6); //EEPROM.
otra: LCD_CMD(_LCD_CLEAR); //Se limpia y muestra b = 0x00;
//en la pantalla LCD el mensaje “Elija Producto” y la //Se comparan cada uno de los caracteres que
//cuenta de usuario. //conforman el código de barras. Si el carácter es igual,
rom2ram(txt,msj1); //se incrementa la cuenta y se comparan los que siguen
Lcd_Out(1,1,txt); //hasta ser 16 comparaciones. Si b = 16, quiere decir que
rom2ram(txt,msj3); //el código recién escaneado esta dentro de la base de
LCD_OUT(2,1,txt); //datos, y se salta a siono.
pos = 0x00; revision: if (barcode[b] == minc[b]){
limtxt(); ++b;
pos = float_to_char(txt, 0, cuenta, 2); if (b == 16){goto siono;}
txt[pos++] = ' '; else {goto revision;} }
LCD_OUT(2,9,txt);
T1CON.TMR1CS = 0; // Se selecciona el fuente de pulso ++cpr; //Si los caracteres comparado son
//de reloj del timer1, en este caso, reloj interno, para reloj //diferentes, se compara el código recién escaneado con
//externo se pone 1. //el del siguiente producto. Si cpr = 6, quiere decir que el
T1CON.T1CKPS1 = 1; // Se selecciona el prescaler 1:8. //código no está registrado y se manda el mensaje “No
T1CON.T1CKPS0 = 1; //registrado”.
PIE1.TMR1IE = 1; //Interrupción por sobre flujo del if (cpr == 6){ //Aquí se indica al programa
//Timer 1 activada y no es mascarable (con 1). //cuantos productos dentro de la base de datos deben
PIR1.TMR1IF = 0;//Se limpia la bandera de sobre flujo //compararse.
//del timer1. LCD_CMD(_LCD_CLEAR);
INTCON.PEIE = 1; rom2ram(txt,msj7);
TMR1L = 0x00;//Precarga valores de 0x00 al timer 1. LCD_OUT(1,1,txt);
TMR1H = 0x00; Delay_ms(5000);
limbarcode(); //Se vacía este vector, para recibir un goto otra;}
//código de barras recién escaneado. loc = loc + 30; //Se apunta a otra localidad
b = 0x00; //de memoria donde está el código del siguiente
c_s=0x00; //producto. También puede ser loc += 30.
do { }
if ( Ps2_Key_Read(&keydata, &special, &down)) { while(1);
//Se lee el Puerto PS/2 y si hay un dato se captura, si //Se muestra al usuario la información del producto
//no se sigue esperando a un dato. //escaneado y le platea la opción de anexar el valor de
INTCON.GIE = 1; //Interrupciones globales //ese producto a la cuenta ó de retirarlo.
//habilitadas.

73
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

siono:show();
c_s = 0x00;
PIE1.TMR1IE = 1;//Interrupción por sobre flujo del
//Timer 1 activada y no es mascarablen(con 1).
PIR1.TMR1IF = 0;//Se limpia la bandera de sobre
//flujo del timer1.
INTCON.PEIE = 1;
rom2ram(txt,msj2);
LCD_OUT(2,1,txt);
INTCON.GIE = 1; //Interrupciones globales
//habilitadas.
TMR1L = 0x00; //Precarga valores de 0x00 al
//timer 1.
TMR1H = 0x00;
espera:while(c_s<26){
if ((RA0_bit==1) && (RA1_bit==0)){
cuenta = cuenta + pr;
break;}
else if ((RA0_bit==0) && (RA1_bit==1)){
if (cuenta == 0x00){
LCD_CMD(_LCD_CLEAR);
rom2ram(txt,msj4);
LCD_OUT(1,1,txt);
Delay_ms(5000);
break;}
else {
cuenta = cuenta - pr;
if (cuenta >= 0){break;}
else {
cuenta = cuenta + pr;
LCD_CMD(_LCD_CLEAR);
rom2ram(txt,msj5);
LCD_OUT(1,1,txt);
rom2ram(txt,msj6);
LCD_OUT(2,1,txt);
Delay_ms(5000);
break;}
}
}
goto espera;}
c_s = 0x00;
INTCON.GIE = 0;
PIR1.TMR1IF = 0;
INTCON.PEIE = 0;
PIE1.TMR1IE = 0;
goto otra;

74
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Apéndice C – Características del convertidor CD/CD APXS002A0X.


Los módulos de potencia 12V Pico TLynx son convertidores CD/CD no aislados que pueden
entregar arriba de 2A de corriente de salida. Estos módulos operan en un amplio rango de voltajes
de entrada (Vin = 3Vdc – 14Vdc) y proveen un voltaje de salida regulado de entre 0.6Vdc a 5.5Vdc,
por medio de programación vía resistencias externas. Una nueva característica, el lazo
configurable, permite al usuario optimizar la respuesta dinámica del convertidor para emparejar la
carga con monto reducido de capacitancia de salida, conduciendo a ahorros en costos y PWB
área.

Características.

 Amplio rango de voltaje de entrada.


 Voltaje de salida programable de 0.6Vdc a 5.5Vdc, mediante resistencias externas.
 Lazo configurable para la optimización de la respuesta de voltaje de salida dinámica.
 Monitoreo remoto.
 Señal potencia buena.
 Frecuencia de conmutación ajustada.
 Protección contra sobre corriente de salida.
 Protección contra sobrecalentamiento.
 Encendido/apagado remoto.
 Diseño de estructura abierta de costo eficiente.
 Tamaño pequeño: 12.2 mm x 12.2 mm x 6.25 mm.
 Amplio rango de temperatura de operación (-40 ºC a 85 ºC).

Aplicaciones.

 Arquitectura de potencia distribuida.


 Aplicaciones de bus de voltaje intermedio.
 Equipos de telecomunicaciones.
 Aplicaciones de almacenamiento y servidores.
 Equipamiento de redes.
 Equipamiento industrial.

75
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Apéndice D – Códigos de barras empleados dentro del programa.


A continuación se muestran los distintos códigos de barras que se emplearon dentro del programa
implementado en el sistema embebido. En caso de que se quiera comprobar el funcionamiento del
prototipo propuesto, estos códigos de barras pueden ser de mucha utilidad.

Figura D.1 Código de barras de una Coca-cola de 600ml.

Figura D.2 Códigos de barras de un comic (Wolverine).

Figura D.3 Código de barras de un videojuego (SSF4X360).

Figura D.4 Código de barras de un videojuego (UMVC3).

Figura D.5 Código de barras de un videojuego (KOF XIII).

Figura D.6 Código de barras de un disco de música (MUSE TR CD).

76
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

Referencias bibliográficas.

[1] Marshall Brain, “How UPC barcodes works” [En línea]. Disponible:
http://electronics.howstuffworks.com/gadgets/high-tech-gadgets/upc.htm

[2] Juan Carlos Sabater, “Código de Barras”. [En línea]. Disponible:


http://www.inegi.gob.mx/inegi/contenidos/espanol/ciberhabitat/comercio/cbarras/index.html

[3] Adams Communications, “Answers to General Bar Code Questions”. [En línea]. Disponible:
http://www.adams1.com/faq.html

[4] Agamik, “Agamik BarCoder”. [Software]. Disponible:


http://www.agamik.co.uk/download.php

[5] Innovations Incorporated, “AnyLabel for Windows”. [Software]. Disponible:


http://www.idinnovations.com/anylabel.html

[6] Unibar, “Barcode 2000”, [Programa]. Disponible:


http://www.unibar.com/

[7] Wikipedia, “Universal Product Code”. [En línea]. Disponible:


http://en.wikipedia.org/wiki/Universal_Product_Code

[8] GS1 México, “Centro de Conocimiento”. [En línea]. Disponible:


http://www.gs1mexico.org/site/

[9] Wikipedia, “European Article Number”. [En línea]. Disponible:


http://es.wikipedia.org/wiki/European_Article_Number

[10] Barcode Island, “Barcode Symbologies”. [En línea]. Disponible:


http://www.barcodeisland.com/symbolgy.phtml

[11] Leslie G. Melcer, “How barcode scanners are made”. [En línea]. Disponible:
http://www.madehow.com/Volume-1/Bar-Code-Scanner.html

[12] Horacio Vallejo, “Lector y decodificador de códigos de barras, sistemas de lectura y


cuantificación”. [En línea]. Disponible: http://notas.clubse.com.ar/diego/1/nota23.htm

[13] Wikipedia, “Sistema Embebido”. [En línea]. Disponible:


http://es.wikipedia.org/wiki/Sistema_embebido

[14] Microchip, “Accesory Development Kits for Android”. [En línea]. Disponible:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=e
n553673

[15] Microchip, “What is nano Watt technology?”. [En linea]. Disponible:


http://ww1.microchip.com/downloads/en/Market_Communication/nanowatt1jan03.pdf

77
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

[16] Mikroelectronika, “mikro C Pro for Pic v4.6”. [Software]. Disponible:


http://www.mikroe.com/eng/products/view/7/mikroc-pro-for-pic/

[17] Microchip, “MPLAB IDE v8”. [Software]. Disponible:


http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=e
n019469&part=SW007002

[18] Microchip, “ICD2”. [Hardware]. Disponible:


http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=e
n010046

[19] Generador Eléctrico. [En línea]. Disponible:


http://es.wikipedia.org/wiki/Generador_eléctrico

[20] Paul E. Tippens, Física Conceptos y Aplicaciones, 6ta edición. Mc Graw-Hill, 2001.

[21] Gilbert Enrique Harper, El libro Práctico de los generadores, transformadores y motores
eléctricos, 1ra edición. Editorial Limusa, 2004.

[22] Muhammad H. Rashid, Electrónica de Potencia, Circuitos, Dispositivos y Aplicaciones, 3ra


edición. Pearson Educación, 2004.

[23] Almacenamiento de energía eléctrica. [En línea]. Disponible:


http://economicsforenergy.blogspot.com/2011/07/almacenamiento-de-energia-electrica.html

[24] Central Hidroeléctrica Reversible. [En línea]. Disponible:


http://es.wikipedia.org/wiki/Central_hidroeléctrica_reversible

[25] Gemasolar. [En línea]. Disponible:


http://es.wikipedia.org/wiki/Gemasolar

[26] Sistema de Producción de Hidrógeno con Eólica. [En línea]. Disponible:


http://www.sotaventogalicia.com/area_tecnica/py_produccion_hidrogeno.php

[27] Thin Red Line Aerospace completes firts Undersea Energy Storage Structure. [En línea].
Disponible: http://www.thin-red-line.com/press-release-05-03-11.html

[28] Batería (electricidad). [En línea]. Disponible:


http://es.wikipedia.org/wiki/Batería_(electricidad)

[29] Batería Recargable. [En línea]. Disponible:


http://es.wikipedia.org/wiki/Bater%C3%ADa_recargable

[30] Pilas recargables Energicer, preguntas frecuentes. [En línea]. Disponible:


http://www.energizer.com.mx/pilas-recargables-energizer/preguntas-frecuentes

[31] Maxwell´s Ultracapacitor Product Guide. [En línea]. Disponible:


http://www.maxwell.com

78
“Dispositivo portátil auxiliar en la estimación de productos basados en códigos de barras.”
Tesis

Cabrera Galicia Alfonso Rafael

[32] Microchip, “24AA1025/24LC1025/24FC1025 CMOS Serial EEPROM Data sheet”. [En línea].
Disponible: http://ww1.microchip.com/downloads/en/devicedoc/21941g.pdf

[33] Fairchild semiconductors, “LM78XX/LM78XXA 3-Terminal 1A Positive Voltage”. [En línea].


Disponible: http://www.fairchildsemi.com/ds/LM%2FLM7805.pdf

[34] Bob Wolbert, Designing With Low-Dropout Voltage Regulators, 1ra edición. Micrel
Semiconductor, 1998.

[35] Lineage Power, “12V Pico TLynx 2A: Non-Isolated DC-DC Power Modules”. [En línea].
Disponible: http://www.lineagepower.com/oem/pdf/APXS002A0X.pdf

79

View publication stats

Vous aimerez peut-être aussi