Hardware Libre
► 27 June 2016 12:48 PM por Johautt Hernández
UNA MIRADA INTEGRAL
Cuando hablamos de hardware libre, nos referimos a todos aquellos recursos de hardware cuyas especificaciones de diseño y funcionamiento sean accesibles al público general, de tal manera que cualquier persona con los conocimientos técnicos y herramientas necesarios se permita desde programar controladores, librerías y aplicaciones para hacer funcionar el dispositivo de la manera deseada, hasta armar copias de dichos dispositivos para su uso y disfrute. En sí, se trata de crear diseños de dispositivos de hardware y compartirlos con personas interesadas en ello.
Esta forma de compartir los diseños de hardware deriva de la filosofía del software libre, la cual promueve la libertad de crear, copiar, estudiar, modificar y distribuir software en forma de código fuente para el disfrute del usuario final, cualquiera sea el propósito de uso de este usuario. Filosofía ésta iniciada por el programador estadounidense Richard Stallman con el proyecto GNU y la fundación en 1985 de la Free Software Foundation (FSF).
Ventajas y Desventajas
-La realización de dispositivos bajo la filosofía de hardware libre permite conocer personas talentosas distribuidas a nivel global que son capaces de ofrecer valiosa ayuda en la mejora consecutiva de los diseños.
-Esto, a su vez permite la reducción de los costos de diseño, debido a que dichas personas generalmente ofrecen de manera voluntaria sus servicios de prueba y mejora.
-También permite darse a conocer a la comunidad de filosofía libre y obtener con esto una percepción mas positiva por parte de ésta hacia el diseñador.
-Actualmente, y debido al aumento de la popularidad de las tecnologías de hardware libre, el desarrollo de dispositivos bajo esta filosofía permite una percepción de beneficios económicos que resultan interesantes de evaluar.
-El desarrollo de hardware libre también ofrece la oportunidad a las naciones de reducir la brecha tecnológica e incremento del PIB por la entrada de ingresos a las mismas, promoviendo las capacidades de desarrollo nacional.
-Gracias al diseño de dispositivos de hardware libre se ha obtenido un avance significativo en el desarrollo y la experimentación con el Internet de las Cosas (IoT por sus siglas en inglés).
-También existen desventajas para el desarrollo de hardware libre. No todos los proyectos de hardware libre tienen éxito. Los proyectos exitosos, tales como el Arduino han llegado en el momento oportuno para cubrir necesidades específicas muy requeridas, tales como facilidad de uso, lo cual suavizaba la curva de aprendizaje, diseño sencillo y altamente modular (fácil capacidad de usar tarjetas de expansión llamadas “shield” y conexión de otros elementos de entrada/salida), costo de adquisición muy asequible y herramientas de desarrollo de software para dicha plataforma libres y de fácil uso.
-Otra desventaja a mencionar consiste en que por lo general las ganancias por ventas del dispositivo son mas reducidas que si se hubiese desarrollado por métodos no libres, debido a que al tener acceso a las especificaciones de diseño, se pueden realizar copias del dispositivo por parte de otras personas con la suficiente base económica para realizar una fabricación en serie. Además, personas con conocimiento y herramientas suficientes pueden hacerse una copia de esos dispositivos para su propio uso. Pero esto a su vez incentiva la sana competencia, dado que el o los diseñadores buscarán maneras de reducir los costos de producción y aumentar la oferta. Además, si la tecnología se vuelve lo suficientemente popular, este hecho compensará la caída en ventas por competencia.
Herramientas de Diseño de Hardware Libre
Hay muchas herramientas de desarrollo de hardware libre, y cada día se incorporan otras nuevas con mejores capacidades y nuevas opciones que facilitan el uso, estudio y mejora de los dispositivos. Algunas de éstas son software libre, otras son gratuitas o disponen de versiones gratuitas (con algunas limitaciones, obviamente) y otras que requieren de licencias pagas de uso; pero en definitiva, todas ellas permiten y/o ayudan en el desarrollo de productos de hardware libre. Por lo general, los diseñadores de hardware libre prefieren herramientas de software libre para el desarrollo de sus productos, pues les permite agregar funcionalidad y corregir errores de software por ellos mismos. Entre muchas de las herramientas, podemos destacar:
- FreeCAD.
- Arduino IDE.
- Intel XDK.
- Intel® XDK.
- Eclipse IDE.
- MPLAB- X IDE.
- KiCad EDA.
- CadSoft EAGLE.
- OrCAD.
- Proteus Design Suite.
- NI Multisim.
- LTSpice.
- Quite Universal Circuit Simulator (Qucs).
- MATLAB y Simulink.
- GNU Octave.
Próximamente hablaremos de la utilidad de algunas de ellas.
Herramientas / Productos de Hardware Libre Diseñadas por la Comunidad
Es de importancia mencionar algunos ejemplos de productos de hardware libre exitosamente desarrollados en el pasado, los cuales siguen contando con mucha popularidad, y permitieron a sus desarrolladores seguir invirtiendo en la invención de nuevos dispositivos con funcionalidades más avanzadas o precios mas asequibles al público general. Ellos han permitido a muchas personas interesarse y tener una introducción mas amigable al mundo de la electrónica y la programación de dispositivos embebidos, y ha estimulado la capacidad creativa de muchos jóvenes, lo cual ha facilitado el desarrollo de nuevos e interesantes proyectos. Mencionamos dos de ellos y damos una breve reseña de los mismos:
Arduino UNO: es una pequeña tarjeta de desarrollo de forma rectangular, generalmente de color azul, basada en el microcontrolador Atmel AVR ATmega328. Tiene dos hileras de de pines de conección de interfaz, de los cuales 14 son para señales de entrada/salida exclusivamente digitales, 6 son para E/S digitales y entradas analógicas, 1 para la tensión eléctrica de referencia para las entradas analógicas, 1 para la señal de reset, 3 para la toma de tensión de tierra, 1 para la tensión de 5V y 1 para la tensión de 3.3V. Al basarse en el ATmega328, esta tarjeta posee 32KB de memoria de programa (FLASH), 2KB de memoria de almacenamiento de datos temporal (RAM) y 1KB de EEPROM. Su velocidad de reloj ha sido fijada a 16MHz (aunque el ATmega328 soporta hasta 20MHz según sus especificaciones). Puede alimentarse conectando un cable USB a su puerto y a la computadora, un adaptador AC-DC o una batería a su conector tipo barril (por dicho conector es recomendable una tensión de entre 7V y 12V). Su programación y comunicación por puerto serial se realiza a través del puerto USB de la tarjeta. Para ello cuenta con un adaptador serial a USB basado en el microcontrolador ATmega16U2.
El Arduino UNO y todas las demás placas Arduino y compatibles usan las dos hileras para hacer interfaz mediante cables con otros dispositivos o con distintos tipos de tarjetas de expansión llamadas “Shields”. Estos Shields permiten expandir las posibilidades de uso de las tarjetas Arduino, haciendo que puedan hacer interfaz con otro hardware de especificaciones de comunicación distintas, controlar el suministro de corriente o otros dispositivos de potencia, etc.
Sistemas Embebidos
Un sistema embebido es un sistema basado en uno o varios microprocesadores que es diseñado para realizar determinadas funciones. Éstos son muy parecidos a una tarjeta madre, con la gran diferencia que no están diseñados para propósitos generales. En una computadora personal, el usuario final podría, por ejemplo, en un momento utilizarla para ver un video y en un instante cambiar y utilizarla como un editor de texto. En un sistema embebido no ocurre así, éste se programa previamente para realizar ciertas tareas, el usuario final puede interactuar con él, pero no puede cambiar la función principal como en una computadora. Normalmente vienen integrados en la misma tarjeta madre, además del microprocesador, otros módulos para la comunicación con otros dispositivos e interfaces.
Algunos de los sistemas embebidos más conocidos son:
- Raspberry Pi.
- BeagleBone.
- pcDuino.
- Intel Edison.
- Intel Galileo.
Estos sistemas en particular, son capaces de correr una versión liviana de los sistemas operativos de PCs, lo que permite que puedan ser programados en un lenguaje de alto nivel como Python.
Usos del Hardware Libre en la Domótica
Los dispositivos y herramientas de hardware libre permiten realizar pruebas conceptuales del funcionamiento de sensores y actuadores. También con ellos se puede realizar simulaciones del funcionamiento de algunos equipos de campo basado en lo dicho anteriormente. Todo esto se puede realizar con un costo menor a realizarlo con las tecnologías domóticas propietarias, debido a los bajos precios de las herramientas de hardware libre.
Otra cosa interesante consiste en realizar un sistema de control y supervisión domótico casero, con las consideraciones de robustez y seguridad necesarias para evitar accidentes o accesos indeseados.
Sin embargo, hace falta mucho por recorrer para obtener soluciones tangibles en esta área. Pero lo que si es seguro, es que este es el futuro de esto sistema, ya que incluso grandes empresa como Echelon están apostando a esto, así que no perdamos de vista esta tendencia.
Escrito por:
Luis Güette y Johautt Hernández
Escrito por:
Johautt Hernández
Edificios inteligentes
Sistemas HVAC
Construcción sostenible
Ciudades inteligentes