miércoles, 15 de septiembre de 2010

Sterilizer

A lot of work have been done and I didn't share it, sorry for that. We changed the ADC from Linear Technology to one from Analog Devices. The one from Linear was adding lots of noise, probably due to the PCB (possibly wasn't desinged correctly) and the one from Analog is working so much better. Of course the PCB also changed.
The GLCD is a little bit different, we are using now one from Newhaven Display and the VHDL code also changed. It's working great and is more efficient now, we managed to reduce the amount of  FPGA's resources used by an almost  20%.
We also add the Pressure sensor, the MPX2200 from freescale, modelled the equations and built the blocks within the FPGA.
The image shows some test we made with a resistive oven using two sensors: the one we built and a reference one.

We also made tests using the pressure sensor, but unfortunately I have no pictures.
Hopefuly, we will install it next wek. Till next time!!

lunes, 26 de julio de 2010

Seguridad En el Transporte Público (Iniciativa México)

Que tal. Les daré una mejor descripción del proyecto con el que estamos concursando en iniciativa México, a falta de información en la página de dicho concurso.
Durante mi estancia en el INAOE, mi asesor y amigo, el Doc Martínez, nos hizo que pensáramos en proyectos que fueran útiles para desarrollarlos como tesis. Platicando con mi papá, surgió la idea de atacar la delincuencia que afecta el transporte y a sus usuarios. Esta idea, se fue depurando y aterrizando hasta que dio como resultado el proyecto que presentamos.
Cuando comenzamos a investigar en la información para sustentar nuestro proyecto, observamos que en México, no existe una estrategia efectiva para atacara este problema social, la delincuencia en los autobuses, alentando nuestra decisión y aclarándonos la urgencia de nuestro sistema.
Construimos un sistema con cámaras de video, que deberían operar de manera autónoma para tomar fotografías de las personas cuando abordan el microbús y diseñamos el sistema para guardar las fotografías en una memoria Secure Digital (SD, como la que usan las cámara que venden en cualquier almacén) en un formato compatible con cualquier computadora para facilitar su lectura. Esta estrategia dio como resultado un sistema capaz de guardar un registro fotográfico de los usuarios del transporte público. La siguiente imagen muestra el prototipo que diseñamos.

Nuestra finalidad es doble:

  • Proporcionar la fotografía del (los) asaltante(s) para facilitar su búsqueda y captura.
  • Disminuir la delincuencia. Cuando un asaltante sabe que su rostro quedará guardado, lo pensará dos veces antes de decidirse a robar un microbús.
Las pruebas las hemos hecho en microbuses verdaderos, como se muestra en la imagen, adquiriendo imágenes de personas cuando éstas abordan.


El prototipo como se presentó en el INAOE, toma las imágenes y las guarda en la memoria con el formato adecuado. Además, es capaz de guardar la fecha y hora en que la persona aborda el microbus, dando una idea del lugar donde el asaltante abordó.
Aún falta trabajo por hacer. Las cámaras deben ser autónomas, es decir, deben tomar las imágenes de acuerdo a algún fenómeno ocurrido durante el abordaje. Esta parte no está terminada aún.
A manera de conclusión, creemos firmemente que este proyecto podrá aumentara la seguridad en las personas durante sus estancias en el transporte y, por lo tanto, aumentará la calidad de este servicio que todos, en algún momento, usamos.
Les dejo la liga al proyecto en Iniciativa México y si les cuadra la idea, por favor apoyenla, no les tomará más de 2 minutos. Cualquier comentario es bienvenido. GRACIAS!!

http://www.iniciativamexico.org/iniciativasDetalle.php?id=27576&idUsuario=

lunes, 7 de junio de 2010

Sterilizer's imminent end

After lot of work, the end of the first version of the Sterilizer's Control is at it's end stage. The PCBs are all working now, also the GLCD is perfectly working. After many delays due to the amplifying stage and the VHDL code (for this amplifying stage), all have been corrected.
Still, the final PCBs are not done. I already have the solder mask, but haven't made the PCBs again for being applied with the mask. Also, there are a few bugs on the code which I'll fix probably tomorrow.
Seems that this week or next we'll install our control at the hospital. I really hope so because I'm out of money!!!!
I'll put some pics of all the work we've done so far, but not today!!!!

domingo, 16 de mayo de 2010

Puertos Bidireccionales en FPGAs (Continuación 2)

Para definir puertos bidireccionales, se utiliza el concepto de tres estados. Bajo esta definición, la salida es deshabilitada colocandola en alta impedancia, y, así, la lectura es independiente. El código se muestra en la siguiente figura:
Al igual que el ejemplo anterior. SWITCH, SWITCH2 y ENTRADA son definidos como in, SALIDA es out y LED es inout. El funcionamiento es basicamente el mismo: cuando SWITCH es '1', LED, funcionando como salida, tendra lo que tiene ENTRADA, sin embargo, cuando SWITCH es '0', LED se pondrá en alta impedancia. Esta condición provocará que el ISE infiera que se trata de un puerto bidireccional de tres estados. Siguiendo la explicación, cuando SWITCH2 es '1', entonces SALIDA tendrá lo que tiene LED funcionando como entrada.
Como se observa en la imagen inferior. Al igual que el ejemplo anterior, LED se encuentra en '1' siendo ENTRADA '1' y SWTICH '1'.

Sin embargo, en la siguiente imagen se muestra como, cuando SWITCH es '0', colocando en alta impedancia a LED (como salida), y SWITCH2 es '1', entonces SALIDA tendrá lo que tiene LED.


Concluyendo, si queremos utilizar puertos bidireccionales en un FPGA, entonces debemos colocar la condición de alta impedancia cuando el puerto funciona como entrada, provocando que el ISE lo defina como un puerto de tres estados bidireccinal.

viernes, 14 de mayo de 2010

Puertos Bidireccionales en FPGAs (Continuación 1)

El código mostrado en anteriormente no funcionará como puerto bidireccional. Como se muestra en las figuras siguientes, el puerto de salida estará conectado directamente al puerto de entrada. Es decir, el puerto inout lee (in) lo que tiene a la salida (out) y es útil cuando se desea monitorear el valor que se envía al  puerto, sin embargo, definido unicamente como tal, no sirve como puerto bidireccional.
La figura anterior muestra el código cargado en el FPGA. Dado que SWITCH es '1', LED tendrá el valor de ENTRADA (ambos '1' en la fotografía). Hasta aqui, el código trabaja como se desea.
Sin embargo, como muestra la figura anterior, cuando queremos que LED funcione como entrada, es cuando el código deja de funcionar como se desea. Cuando SWITCH2 es '1', SALIDA debe tener lo que tiene LED, que ahora debería ser de entrada. Sin embargo, se observa como SALIDA siempre es '1' sin importar que valor tenga LED.
En conclusión, el ejemplo anterior muestra como la definición inout no define un puerto como bidireccional. Puertos bidireccionales son comunes en memorias, protocolos seriales, pantallas, entre otros.
En la siguiente entrada, explicaré como hacer puertos direccionales a partir de un concepto llamado en VHDL Three State Inference.

miércoles, 12 de mayo de 2010

Puertos Bidireccionales en FPGAs

Los puertos bidireccionales en los FPGAs pueden ser un tanto confusos. No estamos hablando de definirlos como inout, sino de definirlos de tal forma que puedan enviar y recibir información.
Un puerto inout es normalmete utilizado para monitorear el valor de salida de un puerto, es decir, leer lo que estan enviando ó enviar a alguna otra salida lo que estan recibiendo, sin embargo, si desean leer y escribir información, esta única definición no será suficiente.
La imagen muestra un código utilizando la definición inout. Como mostraré en las imágenes del día de mañana, esto no funciona como se desea. El puerto LED es definido como inout, SWITCH, SWITCH2 y ENTRADA como in y SALIDA como out.

viernes, 30 de abril de 2010

PCBs

The PCBs are almost done!! Today the solder mask arrives, so when finished I'll post a new picture.

lunes, 26 de abril de 2010

GLCD Screen


After a lot of work, we are finishing the sterilizer's control. The image shows the GLCD screen with the temperature sensor connected. The FPGA is already managing all the valves and their periods along with the temperature's control. There's still work on the GLCD and on almost all the PCBs. Hopefully we'll finish this week!!!!

jueves, 11 de febrero de 2010




That's it. I took real values measuring the resistance and the voltage. The images show the real values and the theoretical values(left bottom corner on the first image) predicted by the mathematical model. Of course, I have to rise the temperature and read several values.
The current is on the order of hundreds of uA which is good because it prevents the self-heating.

miércoles, 10 de febrero de 2010

Sterilizer's bridge


Researching, I found that the Wheatstone bridge it's the most common mode for obtaining a change of voltage due to a change of resistance. After a few elementary maths I've reached the resistance vs voltage equation. If I didn't make any mistakes, then the picture shows this plot. If I did have mistakes, then I will apologise (again) and re-do the job. Of course, being the plot positive or negative is just a matter of how the voltage is being measured.

martes, 9 de febrero de 2010

Sterilizer's Temperature(Update)


Today, the RTD temperature sensors arrived. I can now put the correct plot. I don't think putting the Resistance vs Temperature equation to the FPGA will be a problem, but I'm not quite sure if it's worth the effort. Perhaps would be easier to obtain a linear regression and use the form Y=a+bX.

lunes, 1 de febrero de 2010

jueves, 28 de enero de 2010

Sterilizer's temperature

Well. I've found errors on my plot. Anyway it's not worth to correct it (I will delete it, its easier hehe), the LM35D is only 0 to 100 grades, and a sensor capable of reading at least 140 grades is needed. I've kept the track of a Honeywell's sensor capable of sensing such a high temperature. I'll update when I have it in my hands.

miércoles, 27 de enero de 2010

Sterilizer's LM35

At the moment, we'll use the LM35 to sense the temperature. The image shows the octave's plot of the temperatur vs ADC digital word.
The Spartan 3 starter kit has a 14-bit two's complement ADC.
When the time comes, a better sensor might be used. I've seen some others, but, for now, we'll use this.
(The image has been deleted, read the next post)

martes, 26 de enero de 2010

Sterilizing

I've been working with FPGAs for many years now. Right now, With friends, we are working on a sterilizer's control unit. An FPGA will control the entire sensors, electrovalves, Keyboard and GLCD.
A spartan 3e starter kit from digilent is the FPGA's development board used for this task and, thinking positive (meaning: if the budget allows to) the keyboard will be developed using PSoCs from Cypress, achieving a great user-friendly interface.
I'll deliver some pictures next days!!!!

Welcom/Bienvenida

My blog. Hope I'll post interesting things. For now, just let me say: WELCOME!!
--
Este es mi blog. Espero publicar cosas interesantes, sin embargo, por ahora, sólo dejenme decirles: BIENVENIDOS!!!!