03/11/2020 | Desarrollo de software,Sistema embebido,Tecnologías

Sistema embebido|Descubre C/C++ para el desarrollo de software embebido

«C++» es un lenguaje de programación que combina paradigmas, principalmente el de orientación a objetos, es decir, es un lenguaje que permite la definición de tipos de datos y operaciones sobre los mismos. Este modelo de lenguajes hace que podamos representar de una manera intuitiva los elementos de la vida real. Pongamos un ejemplo: es posible definir el objeto “Coche” con varias propiedades, como por ejemplo: un número que indique los caballos de potencia, otro para el año de fabricación, una cadena de texto que represente la matrícula, una lista con los nombres de los dueños que ha tenido, etc. Como la mayoría de los lenguajes, C++ tiene multitud de utilidades y aplicaciones: desde la programación de videojuegos, navegadores o sistemas operativos, hasta el desarrollo de software embebido (también conocido como “software embarcado” o “empotrado”).

Si tienes curiosidad y necesitas más informaciones sobre este tipo de software, te recomendamos que leas nuestro post sobre los sistemas embebidos y sus características fundamentales.

 ¿Cuál es la diferencia entre C y C++?

A grandes rasgos decimos que C++ es un derivado del lenguaje de programación C. De hecho, C++ es una extensión de C orientada a objetos que cuenta con las ventajas de C y que además permite, entre otras cosas, trabajar con jerarquías de clases, con espacios de memoria y que dispone de una gran cantidad de librerías avanzadas que facilitan la programación. Es de los lenguajes más utilizados actualmente, ya que gran parte del software comercial se realiza en él. Permite la utilización de diferentes paradigmas, tanto programación estructurada como orientada a objetos. Por esto se suele decir que C++ es un lenguaje de programación multiparadigma. Una curiosidad: el nombre «C++» fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico donde normalmente se le conocía con el nombre de «C con clases«.

¿Cuáles son las herramientas para el diseño de software embebido?

Antes de comenzar con la codificación en sí, es importante diseñar correctamente los módulos o componentes de nuestro sistema. Esto aportará calidad al software al organizarlo de la mejor manera posible y adaptándose a nuestros requisitos. Para esto suele ser útil el empleo de diagramas donde dibujar y diseñar las conexiones entre los módulos, componentes y sus dependencias.

Además, para desarrollar prácticamente cualquier software necesitamos de un entorno de desarrollo, es decir, un programa en el que escribir el código que queremos producir. Uno de los más conocidos y extendidos es Visual Studio Code, con su extensión de C++, que incluye compilador y herramienta de “debug” (depuración del programa), entre otras facilidades. En Tribalyte por ejemplo solemos utilizar Eclipse con CDT. Luego, es necesario un compilador para este código que nos produzca el resultado final. Son clave también la utilización de pruebas para comprobar la funcionalidad de nuestro software, ya sea con simulaciones o utilizando maquetas físicas para cerciorarnos de la calidad de nuestro producto.

¿Qué es Microsoft Visual C++?

Microsoft Visual C++ es un entorno de desarrollo integrado pensado, como su nombre lo dice, para escribir código con C++ y aporta numerosas facilidades al programador. En este caso se utiliza principalmente para el desarrollo de aplicaciones para el sistema operativo Windows. Aunque también posee herramientas que ayudan al desarrollo de aplicaciones móviles, videojuegos o software en Linux.

Ejemplos de sistema embebido  

Las aplicaciones de los sistemas embebidos están presentes tanto en elementos sofisticados como de uso corriente. Sin darnos cuenta vivimos rodeados de sistemas embebidos que se encuentran en casi cualquier elemento de nuestra vida cotidiana, desde los sistemas en coches inteligentes hasta una simple lavadora.

Podemos encontrar sistemas embebidos por ejemplo en:

  • Electrodomésticos

Muy posiblemente nuestra lavadora posea un sistema con software embebido para controlar el programa de lavado, la pantalla donde se muestra información al usuario, los botones que permiten que el usuario interactúe con el aparato y por ejemplo la apertura/cerradura de válvulas que permiten el paso del agua. Normalmente hay sistemas empotrados también en nuestros microondas para controlar la pantalla, temperaturas y tiempos, o incluso en las básculas para que manden sus resultados a nuestros teléfonos.

  • Domótica o casa inteligente

La casa inteligente es otra de las vertientes en auge actualmente: cámaras de seguridad que transmiten a nuestros dispositivos, sistemas de control automático por hora de apertura/cierre de persianas, regulación de suelos calefactables desde dispositivos como tablets, y mucho más. 

  • Medios de transporte

Basta pensar en los sectores automoción y aeronáutico o – aún más presentes en nuestro uso cotidiano – en patinetes, coches, trenes y autobuses. Los sistemas embebidos se usan para la localización de buses, control de las puertas, sistemas de comunicación, control e información. En Tribalyte, por ejemplo, tenemos mucha experiencia en el desarrollo de sistema embebido para trenes y sector ferroviario: sistemas embarcados de comunicación, entretenimiento e información al pasajero. 

  • Asistentes virtuales

Un asistente virtual es un agente de software que ayuda a usuarios realizando tareas con la mínima interacción hombre-máquina. La interacción ocurre a través de la voz humana que, procesada e interpretada por el asistente virtual, permite el cumplimiento de tareas específicas.  Uno de los asistentes virtuales más conocido es el Asistente de Google, que está programado precisamente en C++ y que puede encontrarse en dispositivos móviles, wearables y domótica.

¿Qué son los sistemas inteligentes?

Representan, por así decirlo, la “evolución” de los sistemas embebidos y son aquellos sistemas que precisan de nulo o escaso control por un ser humano. Normalmente tienen sensores para obtener información de su entorno, además de hacer uso de un microprocesador o microcontrolador para coordinar y llevar a cabo sus funciones. De hecho, podríamos imaginar un microprocesador como “el cerebro” del aparato electrónico, su central de procesamiento. Un microcontrolador está formado por un microprocesador y algunos otros periféricos/componentes como puertos de entrada/salida, memoria y temporizadores.

¿Por qué programar en C++?

Porque C + + ofrece alto rendimiento, infinidad de usos, capacidad de ejecutarse en diferentes plataformas y, pese a su longevidad, se sigue modernizando con actualizaciones y mejoras. Después de todo lo que hemos visto hasta aquí, es evidente que los sistemas embebidos son parte de nuestra vida diaria y que las potencialidades que ofrecen para todo tipo de sector son casi ilimitadas. El desarrollo de software empotrado es algo tan común actualmente que una gran parte de los lenguajes de programación como por ejemplo Python y JavaScript se utilizan en entornos embebidos.

Compartir en:

Relacionados