¿Cómo se usa Python en sistemas embebidos?

Las aplicaciones de sistemas integrados se escriben principalmente en lenguajes de programación de bajo nivel como C, ensamblaje, etc.

He visto lenguajes de script como Perl y Python utilizados por desarrolladores integrados en los siguientes casos:

  • Automatizar sistemas de construcción:

Perl se usa mucho con otros marcos de integración continua para automatizar sistemas de compilación. Perl se usa principalmente aquí para copiar archivos, limpiar antes y después de construir, recoger artefactos construidos y colocarlos en varias máquinas. Programación de dispositivos e inicio de ejecución de diversas pruebas.

  • Pruebas automatizadas:

Perl y Python se usan mucho para escribir scripts que activan y prueban varios parámetros de IUT (Implementación bajo prueba). Una vez había escrito un marco que permitía escribir scripts en python que enviarán y recibirán datos a través del puerto serie para comunicarse con el firmware del dispositivo. También me gustaría señalar que el tipo de perl / python utilizado aquí no se parece en nada al utilizado por los programadores web. Estas secuencias de comandos se centran principalmente en ejercer varios parámetros de sistemas. Y una vez más, aquí también se encontrará jugando mucho con bytes / bits individuales, utilizando la manipulación de listas de bajo nivel.

  • Analizando registros y proporcionando resultados en abstracciones más altas:

Aquí utiliza perl / python para analizar archivos de registro y generar registros de muy alto nivel que alguien que no esté familiarizado con el sistema exacto puede leer y comprender. Por ejemplo, puede ejecutar pruebas para un ‘sistema de intérprete de comandos’ a varias velocidades de baudios y finalmente obtener un resultado de alto nivel que proporcione información sobre el corte de la velocidad de baudios por encima o por debajo del cual el sistema no funciona.

Sugerencia: Perl y Python son simplemente utilizados por desarrolladores integrados para automatizar tareas mundanas. No cuente con estos para conseguir trabajo como ‘DESARROLLADOR INCORPORADO ‘.

Para un sistema embebido típico que requiere garantía de rendimiento en tiempo real, Python puede no ser el mejor candidato. Sin embargo, las siguientes razones hacen que Python valga la pena pensar en sistemas embebidos:

  • El hardware utilizado para sistemas integrados está mejorando día a día. Ahora es una práctica común tener Linux integrado en SoC. Python, por lo tanto, se puede usar fácilmente en tales sistemas
  • Python tiene un buen soporte de procesamiento de datos que se puede utilizar cuando se procesan los datos del sensor.
  • En la actualidad, muchos sistemas integrados tienen capacidad de red. Las capacidades de módulos de red, programación de sockets y alojamiento de servidores web de Python son útiles para algunas aplicaciones (por ejemplo, dispositivos IoT)
  • Con la popularidad de Raspberry Pi, Python tiene un buen soporte en línea y una gran base de desarrolladores disponible.
  • La creación rápida de prototipos es posible con Python, también la legibilidad del código es mejor que el ensamblado / C / C ++
  • La naturaleza modular de Python lo hace ideal para ser utilizado en base a la infraestructura disponible en el sistema embebido dado.

Python definitivamente se puede usar en una capa de abstracción más alta en un Proyecto de Sistema Embebido. A nivel del sistema, C y C ++ continuarán dominando. Las otras respuestas son bastante buenas y han dado una buena perspectiva del uso de Python en sistemas integrados.

Particularmente, mi caso de uso de Python fue diferente en un proyecto de sistema integrado. Preparé una estación meteorológica donde utilicé las bibliotecas de Python para proporcionar una capa interactiva y de trazado de datos para el usuario. Algunas bibliotecas útiles que utilicé que pueden ser útiles en cualquier proyecto de sistema integrado son:

PySerial : una biblioteca para la comunicación del puerto serie.

NumPy : para la computación numérica que incluye soporte para funciones matemáticas de alto nivel, matrices multidimensionales y soporte de matrices.

MatPlotLib : Usado para graficar y graficar datos.

DrawNow : para el trazado de datos en vivo. La siguiente figura para referencia.

Socket : Biblioteca para interfaz de socket de bajo nivel. Para un modelo de servidor cliente a través de Ethernet.

Hay muchas otras bibliotecas útiles en Python que pueden ser inmensamente útiles en cualquier proyecto integrado. , en una capa por encima del nivel del sistema.
El desarrollo en Python va a un ritmo muy rápido y puede esperar verlo más en el desarrollo de sistemas integrados en los próximos años.

Python es el lenguaje de programación introductorio más popular. La estructura de código abierto y la sintaxis simple lo hacen popular. Python se está extendiendo por todo el mundo en todos los campos de la industria.

C, C ++ también se utilizan en sistemas embebidos. Pero, estos lenguajes de programación son lentos, propensos a errores y con frecuencia ilegibles. Debido a estas desventajas, muchos programadores integrados han cambiado su elección a Python.

La reducción de errores, la legibilidad y la estructura simple hacen de Python la mejor opción para sistemas integrados. Python es adoptado por muchos sistemas operativos como Windows y Linux para diseñar sistemas embebidos. Raspberry Pi también se ha movido a este lenguaje simple. Hoy en día, los bucles de control y todas las estructuras complicadas son reemplazadas por redes neuronales. Python se ha convertido en el medio de comunicación más fuerte entre el usuario y el sistema integrado.

Python se usa en sistemas integrados para diferentes propósitos como:

  1. Probar los guiones
  2. Automatización de sistemas integrados en tiempo real
  3. Procesamiento de imágenes

Si quieres saber cómo usar Python para redes neuronales, mira esta publicación

Tutorial de redes neuronales

¡Feliz aprendizaje!

Python no se usa típicamente en sistemas embebidos. En su mayoría verá C, C ++ y ensamblaje.

Sin embargo, Embedded Linux está creciendo en popularidad, y es típico ver a Python utilizado en estos sistemas. Sin embargo, hay una larga lista de inconvenientes para seguir esta ruta, por lo que no la recomendaría para proyectos profesionales. Perfectamente bien para proyectos educativos / aficionados.

Python también se usa para escribir scripts de prueba. Los scripts de prueba basados ​​en consola (CLI) y gráficos (GUI) se pueden desarrollar en Python y usar para probar sistemas integrados a través de su puerto UART de depuración

Python es lo único que se puede integrar fácilmente con microcontroladores y SoC y especialmente para la aplicación IoT, principalmente para la programación de SoC o la puerta de enlace IoT. Python es el mejor.

Más sobre IoT es el 80% de los sistemas integrados y está relacionado con las redes de sensores, por lo que el análisis de la lectura del sensor sería muy fácil con Python.

Potentes Smart SoC como begalbone black Raspberry Pi se puede programar usando python muy fácilmente.

Incrustar Python es similar a extenderlo, pero no del todo. La diferencia es que cuando extiende Python, el programa principal de la aplicación sigue siendo el intérprete de Python, mientras que si incrusta Python, el programa principal puede no tener nada que ver con Python; en cambio, algunas partes de la aplicación ocasionalmente llaman al intérprete de Python ejecutar algún código de Python.

Entonces, si está incrustando Python, está proporcionando su propio programa principal. Una de las cosas que tiene que hacer este programa principal es inicializar el intérprete de Python. Como mínimo, debe llamar a la función Py_Initialize (). Hay llamadas opcionales para pasar argumentos de línea de comando a Python. Luego, puede llamar al intérprete desde cualquier parte de la aplicación.

Hay varias formas diferentes de llamar al intérprete: puede pasar una cadena que contiene declaraciones de Python a PyRun_SimpleString (), o puede pasar un puntero de archivo stdio y un nombre de archivo (solo para identificación en mensajes de error) a PyRun_SimpleFile (). También puede llamar a las operaciones de nivel inferior descritas en los capítulos anteriores para construir y usar objetos de Python.

Python, como otros lenguajes de secuencias de comandos, se utiliza para la automatización de códigos largos. También es útil si desea generar registros de fallas y éxitos, errores o advertencias en función de las condiciones especificadas en el código. Algunos pueden ser predeterminados, algunos pueden ser definidos por el usuario también.

Por lo general, se usa en el lado de la puerta de enlace o en áreas donde los datos deben concentrarse y usarse. Alternativamente, también se está utilizando en aplicaciones de medios. Python reside en gran medida en las capas superiores de los sistemas integrados.

Las capas centrales siempre se rigen por C!

Para hacer la automatización, se usa la secuencia de comandos Python. Es un ahorro de tiempo y recursos o también menos.

En el campo de automoción para ecus, escribimos guiones utilizando algunas herramientas de conversión de vectores.

Ecus no son más que nodos a los que llamamos y para diferentes backend de ecus usan scripts de Python y ejecutan las pruebas en automatización. así es como usamos las secuencias de comandos de Python

¿Has mirado a MicroPython – Python para microcontroladores? Su código abierto debería ser altamente personalizable

Puede comprar su kit y comenzar de inmediato. La programación parece ser súper fácil. Mira este programa de ejemplo:

  del pin de importación de la máquina

 # crea un pin de E / S en modo de salida
 p = Pin ('X1', Pin.OUT)

 # alternar el pin
 p.high ()
 arado()

¿No es fácil? Las siguientes opciones para explorar serían portar a su propio tablero, multitarea, etc.

Sin embargo, puede no ser adecuado para aplicaciones profesionales.

Descargo de responsabilidad: no estoy afiliado a micropython de ninguna manera. No he usado sus productos, así que prueba bajo tu propio riesgo 🙂

Python se puede usar en Raspberry Pi, que es una computadora de placa única y no un sistema integrado en términos estrictos.

Luego está MicroPython y PyBoard.

Python no se usa generalmente en sistemas integrados. Los lenguajes de programación de bajo nivel como C, C ++ o Java se usan en sistemas integrados. Sin embargo, hay ciertas excepciones

Únase a i3indya Technologies para obtener la mejor capacitación sobre sistemas integrados y robótica

More Interesting

¿Un gusto por Arduino se traduce en una carrera en sistemas integrados?

¿Cuáles son los requisitos para convertirse en ingeniero de sistemas de control?

¿Cuáles son algunas situaciones en las que se prefiere un RTOS (SO en tiempo real) sobre un bucle while infinito simple en un sistema integrado?

¿Cómo se compara Mbed con Particle Photon?

¿Qué debe saber un desarrollador de sistemas integrados en 2015?

¿Puede el titular de un diploma ECE convertirse en ingeniero de sistemas integrados también?

Dado que la generación automática de código C o C ++ para sistemas integrados se ha generalizado y la codificación manual está mal vista en muchas partes de la industria automotriz, ¿podría un desarrollo similar afectar a otras partes de la industria y hacer que las habilidades de programación sean inútiles eventualmente?

¿Cómo puedo diseñar un sistema integrado para un microcontrolador que no puedo simular?

¿Cuál es la diferencia entre PIC, AVR, ARM y microcontroladores Arduino?

¿Cómo progresaremos en la visión de dispositivos con recursos limitados (sistemas integrados), considerando la adopción de Deep Learning? También el estado actual?

¿Qué examen es necesario para hacer un doctorado en sistemas integrados en Alemania?

¿Puedo conectar un sensor de corriente ACS712 con un microcontrolador 8051?

¿Cuál es la mejor opción de carrera entre sistemas embebidos, automatización de procesos, IoT y VLSI? ¿Cuál debería elegir?

Cómo cambiar mi carrera de sistemas integrados (3.5 años) a diferentes tecnologías en auge como SAP y ciencia de datos

¿Cómo funciona un sistema en chip (soc)?