jueves, 12 de septiembre de 2013

¿Cuáles son las aplicaciones actuales de la Ingeniería Electrónica?

  • AUTOMATIZACIÓN Y CONTROL
La Automatización y el control involucran el estudio y aplicación de las técnicas por medio de las cuales se intenta que las máquinas respondan de forma autónoma de acuerdo con un comportamiento deseado.

  • SENSÓRICA E INSTRUMENTACIÓN
La Sensórica y la Instrumentación electrónica se encargan de fabricar equipos que entregan una medición de alguna variable física de interés.



  • ROBÓTICA E INTELIGENCIA ARTIFICIAL
La Robótica es la rama de la electrónica encaminada a diseñar y construir aparatos y sistemas capaces de realizar, hasta cierto grado, tareas propias de un ser humano, o incluso de algunos animales.




  • TELECOMUNICACIONES
Las Telecomunicaciones son el campo que estudia las técnicas necesarias para transmitir o recibir un mensaje desde un punto hasta otro, incluyendo por tanto a la radio, la televisión, la telefonía, la transmisión de datos y las redes de computadores.
 
  

  • CONSUMO Y ENTRETENIMIENTO
 La electrónica es parte vital de una amplísima y variada gama de equipos de uso cotidiano como herramientas de apoyo a las labores diarias o como medios de entretenimiento.
   
  • ELECTROMEDICINA
La Electromedicina estudia la aplicación de la electrónica, la fisiología y la instrumentación al equipamiento biomédico, con el fin de mejorar la calidad de los servicios médicos asistenciales.






  • PROCESAMIENTO DE SEÑALES E IMÁGENES
El procesamiento de señales e imágenes consiste en la adquisición, manipulación e interpretación de señales eléctricas o de imágenes digitales con el fin de depurar la información que contienen o de extraer información útil que no es fácilmente identificable.

¿Qué es la Ingeniería Electrónica?



La Electrónica como disciplina de la Ingeniería es aquélla que estudia las características y propiedades de los elementos fundamentales con los que puede manipularse la corriente eléctrica (generalmente de poca intensidad) de múltiples maneras, con el fin de concebir sistemas que brinden una solución a problemas prácticos de la sociedad, tanto en el entorno industrial como en la vida cotidiana. No obstante, en lugar de restringirse al diseño, montaje y reparación de circuitos electrónicos, la Ingeniería Electrónica demanda de sus profesionales la capacidad de planificar, liderar y gerenciarproyectos de desarrollo tecnológico que involucren infraestructura electrónica, ya sea para la apropiación de tecnología, para el mejoramiento de una ya existente o para la creación misma de nueva tecnología, todo lo anterior a través de un manejo integrador y sistémico de las diferentes áreas de aplicación de la electrónica, gracias al aprovechamiento que el ingeniero hace de sus competencias investigativas, técnicas yadministrativas.




¿Por qué estudiar Ingeniería Electrónica?


  • El ingeniero electrónico tiene las competencias necesarias para ser gerente de departamentos y director de proyectos de infraestructura tecnológica.
  • La electrónica constituye uno de los soportes fundamentales del desarrollo tecnológico actual, y quizás el que más decisivamente ha contribuido con el crecimiento tecnológico humano en las últimas décadas.
  • La ingeniería electrónica trabaja INTEGRALMENTE con variados campos de la ciencia y la tecnología, tales como la automatización, las telecomunicaciones, la robótica, y la informática, permitiendo al ingeniero electrónico comprometerse tanto con el desarrollo, la investigación y el mantenimiento de tecnología, como con la apropiación, la gestión y la administración de la misma.

  • El nuevo paradigma del desarrollo mundial globalizado se caracteriza por el predominio de la tecnología y de la automatización, motivado por la necesidad creciente de incrementar la productividad y la competitividad.

  • Las telecomunicaciones en la actualidad constituyen el motor de desarrollo de un país, y lo conectan con el resto de la aldea global.
  • Un buen porcentaje del sector industrial del país y la región lo constituyen las medianas y pequeñas empresas que requieren de soluciones electrónicas adecuadas para su nivel de desarrollo; de otra parte, las grandes industrias necesitan innovar continuamente sus tecnologías para mejorar sus procesos productivos.




    ¿Para qué estudiar Ingeniería Electrónica?
    • Para investigar y desarrollar nuevos sistemas electrónicos, perfeccionar el funcionamiento de los mismos o concebir nuevos procesamientos de señales eléctricas.
    • Para diseñar, implementar y supervisar sistemas electrónicos en las áreas de la automática y las telecomunicaciones, y realizar su mantenimiento respectivo.

    • Para prestar servicios de consultoría y asesoría en el sector industrial.

    • Para administrar tecnología.


    • Para planificar y dirigir proyectos de ingeniería a nivel electrónico.

    Conociendo a ASIMO, el robot humanoide más avanzado del mundo

    En un paseo familiar a Disneylandia (California); mientras tomaba un aire de todos los juegos mecánicos tuve la oportunidad de visitar el centro de innovaciones diseñado por Honda dentro de las instalaciones de este gran parque de atracciones. Mientras mi hija se dirigía ávidamente a la sección de videojuegos,  yo deambulaba sin rumbo fijo hasta que un asistente de Innovations 
    (así se conoce al centro construido por Honda dentro de las instalaciones de Disneylandia)  nos invito a entrar a un pequeño auditorio con capacidad de unas 100 personas para conocer a ASIMO durante una presentación en vivo de aproximadamente 15 minutos de duración. El nombre ASIMO corresponde a su concepto en Ingles “Advaced Step in Innovation Mobility” o Paso Avanzado en Innovación de Movilidad, nos explicaba el presentador.
     ASIMO es el robot humanoide más avanzado que existe en la actualidad; ha sido el resultado de investigaciones hechas por Honda en las áreas de la robótica, neumática, anatomía humana, servo control, ingenierías electrónica, eléctrica, mecánicas, hidráulica y de las ciencias de la computación durante más de 20 años (el proyecto como tal se inicio en 1986). Antes de encontrar su nuevo hogar en el lugar más feliz del planeta (Disneylandia); ASIMO recorrió el mundo durante más de 3 años, visitando las principales ciudades de Norteamérica y el mundo cual si fuese una celebridad.
     Me sorprendió su diseño y estructura en general. Difiere a cualquier otro robot que yo hubiese visto en que su apariencia es completamente humanoide: tiene cabeza, tronco, dos piernas, dos brazos y manos con cinco dedos, su tamaño (un metro con treinta centímetros) es el ideal para realizar tareas diarias en el hogar tales como: prender o apagar una luz, abrir la puerta, servir un vaso con agua de la nevera, desplazarse con cargas de peso relativamente grandes (una bandeja con un plato de comida, por ejemplo), etc. Su apariencia física es la de un niño de 7 años y su diseño industrial emula al traje de un astronauta. Pesa alrededor de 54 kilos y puede alcanzar un ritmo de marcha al caminar de 2.7 kilómetros por hora. Su habilidad de balanceo es impresionante! Los ingenieros de Honda crearon ASIMO con 34 grados de libertad lo que le ayudan a realizar actividades físicas muy similares a las de un humano: correr, subir o bajar escaleras, bailar, y hasta patear una pelota de futbol! También puede ejecutar movimientos hacia arriba y abajo así como desplazamiento lateral. Su combinación de control computarizado y un grupo de 34 servo motores ayudan a ASIMO a emular las características de un ser humano y por ende facilitan su movimiento humanoide. El material con que esta construido este robot humanoide es una aleación de magnesio con resina de plástico, lo cual lo hace bastante durable y ligero al mismo tiempo. En su “espalda” ASIMO posee un set de baterías de recargables de 51.8v hechas, sin sorpresa para mi, de Litium-Ion. Sus extremidades están inundadas por sensores digitales tales como acelerómetros, giroscopios, sensores de fuerza entre otros. 
     Una de las demostraciones más llamativas fue la sección de baile, ASIMO estuvo bailando música “Disco” frente a una audiencia que lo ovacionaba fervorosamente, demostrando así su capacidad de adaptación al medio por medio de la traducción de información de audio a la ejecución de movimientos de balanceo, finos y coordinados.  Otra demostración que nos dejo perplejos fue cuando ASIMO corrió una corta distancia de 20 metros demostrando su perfección y control de movimiento.
     Este robot, esta conectado permanentemente a la Internet y tiene un sistema de procesamiento de comandos de voz con el cual puede responder con facilidad a preguntas tales como: ASIMO, cual va a ser el estado del tiempo para hoy?  Cuales son los titulares de las noticias? Cual es la programación de televisión, a lo que ASIMO responde casi instantáneamente con su voz infantil a cada de una de ellas después de haber accedido la red-de-redes y traducido la información de datos en mensajes de voz que traduce a la persona que lo ha comandado. Su sistema de visión integra cámaras de video con identificación de objetos (incluso facial) y transmisión en tiempo real a otros computadores cercanos. Por ejemplo, ASIMO podía por medio de sus cámaras y el reconocimiento de rostros calcular con bastante precisión el número de personas de la audiencia.
    Para conocer más acerca de ASIMO visite el website oficial en http://ASIMO.honda.com

    Cómo usar el Barometro Digital MPL115A2 con Arduino

    El MPL115A2 es un sensor de presión barométrica absoluta de Freescale. Pero lo increíble es que no se limita a medir la presión barométrica sino que también nos da la temperatura en unidades Celsius, además con él y con la librería que hemos creado en Microelectrónicos se puede determinar la altitud en metros.
    El MPL115A2 es un sensor de presión absoluta con salida I2C y especialmente diseñado, por su tamaño y características de ahorro de energía para aplicaciones portátiles. Su bajo consumo en modo activo (aprox. 5uA) y en modo inactivo (Sleep) (aprox. 1uA) logran un ahorro y durabilidad en la batería del sistema. Su rango de medida abarca desde 50KPa hasta 115KPa (Kilo Pascales). Un módulo ADC integrado que posee este sensor le permite entregar la información sobre medidas de temperatura y presión a través de una interfaz I2C.
    El dato de calibración de fábrica viene almacenado en una memoria tipo ROM y puede ser utilizado por el sistema controlador para ejecutar algoritmos de compensación para lograr una presión absoluta compensada con ±1 KPa de aproximación.
    A continuación sus características técnicas más relevantes
    Especificaciones técnicas:
    - ROM interna donde se almacenan las características de calibración deseadas para la presión y temperatura. La presión viene con calibración de fábrica.
    - Rango de presión desde 50KPa hasta 115KPa.
    - Precisión de 1KPa.
    - Alimentación DC: desde 2.4 V a 5.5 V.
    - Módulo ADC embebido.
    - Interfaz I2C (hasta 400KHz).
    - Información de salida (una a la vez): Presión y temperatura.
    - Encapsulado LGA-8. Microelectronicos lo entrega montado en su placa adaptadora a DIP para facilitar la manipulación e inserción en Protobards.
    - Rango de temperatura de operación del sensor: -40°C to +105°C
    - Cumple directiva RoHS.
    Aplicaciones:
    - Barometría.
    - Altímetros.
    - Estaciones meteorológicas.
    - Monitoreo médico.
    - Sistemas de control de aire.
    El driver para arduino : Con este documento, adjuntamos un magnífico driver para Arduino que facilita el uso del MPL115A2.
    El driver es una clase de C++ que principalmente hace lo siguiente:
    • Abstraer la comunicación de I2C con el sensor
    • Obtener coeficientes de calibración
    • Calcular presiones calibradas
    Este driver consiste en una carpeta denominada “MPL115A2” que contiene dos archivos:
    • MPL115A2.h
    • MPL115A”.cpp
    estos son los archivos driver y una carpeta “examples” que contiene un sketch de un ejemplo como usar el driver.
    Instalación: Para instalar este driver, abre tu carpeta de instalación de arduino y copia toda la carpeta “MPL115A2” en la carpeta “libraries”. Después debes reiniciar Arduino para tener acceso al driver.

    Funciones públicas

    Las funciones públicas de este driver son:
    int begin(int sdpin,int samples)
    Esta función configura la comunicación con el sensor y es necesario llamarla una sola vez entre setup(). Tiene dos parámetros:
    1. sdpin                El pin del Arduino que esta conectado al pin SHDN del MSP115A2
    2. samples    Para estabilizar las valores de presión y temperatura el driver puede tomar este número de muestras(samples) y calcular un promedio antes de enviar el resultado. Este valor puede ser cualquier número entero positivo. Obviamente entre más grande sea este número,  más grande será el tiempo para la medición y más tiempo demorará arduino en reflejar el valor.
    La respuesta podría ser un código de error, mira mas abajo para la lista de códigos.
    int ReadSensor()
    Para iniciar una medición se debe llamar esta función.  La respuesta es un código de error, mira mas abajo para la lista de códigos.
    float GetPressure(int pformat)
    Si una medición fue ejecutada a través de ReadSensor() se puede obtener el valor de presión.
    El parámetro pformat es un número entero entre 0 y 2 que indica la unidad de presión en la que deseamos obtener la medida:
    0-    La presión está calculada en hPa (hectoPascal igual a mbar)
    1-    La presión de da en atm Atmósferas
    2-    La unidad será mmHg (milímetros de mercurio igual a torr)
    La respuesta es un número real del tipo float que contiene el valor de presión de la unidad elegida.
    float GetTemperature()
    Si una medición fue ejecutada a través de ReadSensor() se puede obtener también el valor de temperatura.
    La respuesta es un número real del tipo float que contiene el valor de temperatura en °C.
    void shutdown()
    En el tiempo, sino se requiere medición, el sensor se puede poner en un estado “standby” para ahorrar energía a través de esta función.
    Errores
    0 . success (medición o comunicación existosa)
    1 . length to long for buffer (Longitud del dato excedió capacidad del buffer)
    2 . address send, NACK received (No se recibió el dato de dirección)
    3 . data send, NACK received (Un dato enviado no fue recibido)
    4 . other twi error (lost bus arbitration, bus error, ..)

    Uso del driver

    El uso del driver es muy sencillo. Para usarlo en tu sketch solo tienes que incluir dos archivos header:
    #include <Wire.h>
    #include <MPL115A2.h>
    Wire.h es usado por el driver MPL115A2.h y por limitaciones en el IDE de Arduino es necesario incluir Wire.h desde el sketch principal.
    Ahora puedes configurar e inicializar el sensor con este comando:
    ers=MPL115A2.begin(5,1);
    En este caso el pin SHDN del sensor debe ser conectado al pin D5 del Arduino y el driver no va a tomar más de un valor para promediar la medida.
    Ahora es posible  obtener valores de presión o temperatura en cualquier momento.
    Este es un esquema simple de como obtener la presión en hPa (Hecto Pascales) y la temperatura cada segundo.

    Ejemplo

    Esquema

    Para usar el sketch del ejemplo se debe conectar el sensor MPL115A2 como se ve en el esquema siguiente:
    (Una versión mas grande de este esquema se encuentra como PDF en la carpeta “examples” del driver.)
    Nota que no es necesario conectar el display LCD, porque el funcionamiento también se puede ver a través del puerto USB y con el IDE Arduino.

    Sketch

    Para abrir el sketch de ejemplo abre: Ejemplos/MPL115A2/MPL115A2_example
    Conecta tu Arduino a través de USB y carga el sketch al Arduino.
    Si abres el Monitor serial, vas a ver lo siguiente:
    Si oprimes el botón puedes cambiar la unidad de presión o ver la altitud calculada (Bogotá en este caso)
    Esto es! Simple, o no?
    Referencias / links

    Brujula Electronica con Arduino Nano

    Alguna vez te has preguntado como funciona la brujula en un iPhone? Pues hemos construido una con un Arduino para enseñarte el principio basico!
    Si vemos la hoja de datos, vemos que el LSM303DLHC cuenta ci 2 sensores, un magnetómetro con 3 ejes y un acelerómetro con 3 ejes. Mientras es obvio para que necesitamos el magnetómetro, preguntémonos para que necesitamos 3 ejes y un acelerómetro para una brújula?
    Tu también tenias uno de estas brújulas cuando chiquito?
    Este es un aparatico maravilloso, pero tiene sus problemas:
    • Tiene que ser usada horizontalmente
    • No muestra el norte geográfico 
    • Una brújula que compras en Europa no funciona bien en sur América
    • La brújula es muy sensible a metales e imanes que se encuentran cerca
    Todos imperfecciones no son inconvenientes para la brújula electrónica!
    • Si inclinemos una brújula magnética, la aguja va a tener contacto con la base a partir de un ángulo bastante pequeño y así no se puede mover mas. Obvio que esto no pasa en una brújula electrónica. Pero sin embargo las líneas magnéticas del campo terrestre van a cruzar el magnetómetro en un ángulo diferente, que tiene como consecuencia una medición errónea. Pero si medimos el ángulo de este inclinación con el acelerómetro , podemos compensar nuestro medición.
    • Si uno dice “Norte” casi siempre se refiere al polo norte geográfico, pero lo que la brújula nos indica es el polo norte magnético. La diferencia entre estés dos puntos es dependiente de la latitud en donde uno se encuentra y se llama declinación magnética. En el internet se encuentran listas con estés ángulos. Para calcular la orientación al polo geográfico se debe adicionar la declinación magnética a la orientación medida. Como una brújula magnética siempre cuenta con un computador o controlador es fácil calcular la orientación geográfica.
    • La forma del campo magnético de la tierra esta diferente en diferentes latitudes. El ángulo en que cruzan los líneas magnéticas la horizontal se denomina inclinación magnética. En los polos este ángulo tiene 90°, en el ecuador 0° y en Europa alrededor de unos 60°. Por eso las agujas de las brújulas magnéticas siempre son balanceadas, y este balanceo solo sirve para una distinta región de la tierra. Como una brújula electrónica cuenta con 3 ejes es simple proyectar el vector de la medición en un plano horizontal.
    • También la brújula electrónica esta sensible a metales e imanes que se encuentran cerca de ella. Pero esto también se puede solucionar fácilmente. Podemos compensar los efectos, si evaluemos todos los magnitudes del magnetómetro cuando lo giramos por todos sus ejes. La representación en 3 dimensiones de estas mediciones deben resultar en una esfera centrada. Si la esfera no esta centrada un campo magnético cercana de un imán esta alterando nuestra medición (hard-iron). Si figura no es una esfera pero mas bien un elipsoide, las alteraciones tienen sus causas en metales o conductores (soft-iron). La librería puede compensar los alteraciones hard-iron, las alteraciones soft-iron en general son muy pequeños y con un diseño bueno de la placa se pueden minimizar. Si en todas formas quieres aplicar una compensación para estos efectos vas a encontrar buenas informaciones aquí: Tilt compensated compass
    La librería para arduino
    Con este documento llega un driver para arduino que facilita el uso del LSM303DLHC.
    El driver es una clase de C++ que principalmente hace lo siguiente:
    • Abstraer la comunicación de I2C con el sensor
    • Compensar los alteraciones causados por imanes
    • Calcular la orientación con una compensación de inclinación del dispositivo (un poco de matemática)
    Este driver consiste en una carpeta denominada “LSM303DLHC” que contiene dos archivos:
    • LSM303.h
    • LSM303.cpp
    estos son los archivos driver. También hay una carpeta “examples” que contiene un sketch de un ejemplo como usar el driver.
    Instalación
    Para instalar este libreria, llega a tu carpeta de instalación de arduino y copia toda la carpeta “LSM303DLHC” en la carpeta “libraries”. Después debes reiniciar Arduino para tener acceso al driver.

    Propiedades públicas
    Las propiedades públicas de este driver son:
    vector a
    La ultima medición del acelerómetro.
    vector m
    La ultima medición del magnetómetro.
    vector m_min
    Los valores mínimos del magnetómetro de cada eje. Se usa para la calibración de heading().
    vector m_max
    Los valores máximos del magnetómetro de cada eje. Se usa para la calibración de heading().
    byte last_status
    El estado de la ultima transacción del bus I2C. Mira aquí para los códigos de errores: Wire.endTransmission() documentation
    magGain magGain_?
    Una enumeración con posibles valores de amplificación del magnetómetro.
    magGain_13 = ±1,3Gauss
    magGain_19 = ±1,9 Gauss
    magGain_25 = ±2,5 Gauss
    magGain_40 = ±4,0 Gauss
    magGain_47 = ±4,7 Gauss
    magGain_56 = ±5,6 Gauss
    magGain_81 = ±8,1 Gauss
    Funciones públicas
    Las funciones públicas de este driver son:
    LSM303(void)
    El constructor de la clase
    void enableDefault(void)
    Inicializa el acelerómetro y el magnetómetro en la configuración básica.
    void writeAccReg(byte reg, byte value)
    Escribe un byte a un registro del acelerómetro. Mira LSM303.h para nombres de los registros.
    byte readAccReg(byte reg)
    Lee un byte de un registro del acelerómetro. Mira LSM303.h para nombres de los registros.
    void writeMagReg(byte reg, byte value)
    Escribe un byte a un registro del magnetómetro. Mira LSM303.h para nombres de los registros.
    byte readMagReg(int reg)
    Lee un byte de un registro del magnetómetro. Mira LSM303.h para nombres de los registros.
    void setMagGain(magGain value)
    Ajusta la amplificación del magnetómetro. Usa los elementos de la enumeración magGain
    void readAcc(void)
    Lee los valores de aceleración momentánea y los graba en el vector a.
    void readMag(void)
    Lee los valores momentáneas del magnetómetro y los graba en el vector m.
    void read(void)
    Ejecuta readAcc y readMag
    int heading(void)
    Vuelve con la orientación compensada y calibrada como ángulo con respeto al norte
    Ejemplo:
    Esquema

    Para usar el sketch del ejemplo se debe conectar el sensor LSM303DLHC como se ve en el esquema siguiente:
    Nota No es necesario conectar el display LCD, porque el funcionamiento del sensor también se puede ver a través del puerto USB.
    Sketches
    Hay tres programas de ejemplo en la “examples:
    Serial
    Este ejemplo imprime los datos crudos de todos los 6 ejes en el puerto serial. Debes empezar con este
    Calibrate
    Este programa es una ayuda para calibrar las valores de orientación que se pueden ver en el ejemplo “Heading”. Antes de usar “heading” debes ejecutar este sketch y seguir los siguientes pasos:
    1. Carga el Arduino con este sketch
    2. Arranque el monitor serial
    3. Coge el circuito y gíralo en todos los direcciones hasta los valores que se pueden ver en el monitor serial no cambian mas
    4. Anota estas valores.
    Heading
    Esto es el ejemplo principal. Imprima el valor y el punto cardinal al puerto serial y a un display LCD
    Antes de cargar este sketch debes pasar los valores que has obtenido a través del sketch “calibrate” a este sketch. Descarga toda la documentacion incluido ejemplo y libreria de Arduino aca:  Documentación Brujula
    Referencias / links

    Acelerómetro Digital con Arduino – Inclinómetro

    Aprende a Controlar dos motores para tu Robot usando un Acelerómetro Digital y un Arduino
    En esta oportunidad el Ingeniero Edison Viveros nos explica la teoria basica de funcionamiento del Acelerometro Digital de tres ejes: El LIS3LV02DL, el cual puede funcionar con los protocolos de comunicacion SPI o I2C y se alimenta con 3.3V. El ing Edison conecto un Arduino Leonardo al sensor, desarrollo el codigo, y controlo un par de motores DC para demostrar como es posible controlar el movimiento de un robot a partir de un acelerometro digital. Puedes comprar este acelerometro en Microelectronicos Bogota en el siguiente enlace: http://www.microelectronicos.com/
    El Codigo para Arduino se puede descargar aca: Código Arduino para Acelerómetro LIS3LV02DL