Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Incrustado

¿Cuándo pueden los ingenieros eléctricos usar Python? Aplicaciones para el lenguaje de programación Python

¿Dónde pueden los EE utilizar Python en su día a día? Aquí hay un vistazo a las aplicaciones en las que Python sobresale.

¿Dónde pueden los EE utilizar Python en su día a día? Aquí hay un vistazo a las aplicaciones en las que Python sobresale.

En el artículo anterior, planteamos la pregunta "¿Por qué un ingeniero debería siquiera molestarse en aprender Python?"

Ahora, analicemos cómo Python puede ser relevante en el trabajo de un ingeniero eléctrico.

El ingeniero de navajas suizas

Los EE no solo se ocupan del diseño de circuitos. También nos enfrentamos a una gran cantidad de otras tareas de las que tenemos que ocuparnos. Hay programación de firmware, depuración, pruebas de hardware y software prototipo, pruebas de muestras de producción, trabajo en el control de calidad y cantidades aparentemente interminables de recopilación, evaluación y análisis de datos.

¿Cómo puede ayudar Python con todo esto?

Introduzca Python, el idioma de las navajas suizas

Python es extremadamente bueno para ser un lenguaje de programación para todo uso. Los lenguajes como HDL (lenguajes de descripción de hardware como VHDL, Verilog) hacen una cosa específica como sintetizar en hardware. C / C ++ se ejecuta de forma ajustada y se adapta muy bien a la programación integrada. Pero tener un lenguaje de navaja suiza en su cinturón de herramientas puede ayudar con tareas de propósito general que a menudo constituyen la mayoría de las cosas que manejamos.

Por lo general, estas tareas serían cosas como pruebas, recopilación de datos o automatización, que constituyen una gran parte del tiempo de un ingeniero. En mi experiencia, el diseño solo toma alrededor del 5-10% del tiempo de un ingeniero. El otro 90% más o menos se consume en cosas como investigar, probar prototipos, depurar, crear plantillas y programas de prueba, pruebas de producción, control de calidad y, por supuesto, la temida palabra "D" ... documentación.

Muchas de las cosas que vienen antes del diseño (como investigar partes e implementaciones y crear arquitecturas de sistemas) realmente no se pueden automatizar. Esas son las tareas que nos convierten en los ingenieros creativos y artesanales que somos. Pero, una vez que se implementa el diseño (es decir, la parte divertida), todavía hay mucho trabajo por hacer.

Estas son algunas de esas tareas pesadas y cómo Python puede ayudar a realizarlas de manera eficiente.

Procesamiento de archivos para el envío de archivos Gerber

Una de las aplicaciones que más a menudo necesita automatización es el procesamiento de archivos. Los flujos de trabajo del proceso difieren según el software, el proveedor, el cliente, etc. La mayoría de las veces, estos incluyen el procesamiento de archivos en algún formato. Mi proveedor de PCB me exige que envíe mis archivos Gerber con extensiones de archivo específicas para que sus trabajadores puedan analizar, verificar y confirmar que cumplen con los requisitos de diseño.

Dado que mi herramienta CAD de PCB no genera Gerbers en el formato requerido, necesito cambiar mis extensiones de archivo cada vez que envío un PCB. No es una tarea enorme, pero como repito muchos diseños y revisiones de diseño cada año, se vuelve agotador cambiar las extensiones de archivo Gerber en aproximadamente 10 archivos diferentes cada vez que envío un diseño a la fábrica.

Un ejemplo más sustancial de procesamiento de archivos es cuando tiene un archivo en un formato (por ejemplo, XML) y un cliente lo requiere en otro (por ejemplo, CSV). Esta es una situación común que normalmente sería un gran dolor de cabeza, si no un espectáculo para algunos clientes. Pero usando algunas bibliotecas y un código Python simple, es posible cambiar archivos de texto entre múltiples formatos.

Automatización de equipos de prueba

Como EE, una de las grandes ventajas de usar Python es controlar y automatizar los equipos de prueba. Cada vez es más común encontrar equipos de prueba de bajo costo equipados con salidas USB que pueden recopilar datos y almacenarlos en formatos comunes como CSV.

Python se creó originalmente para el análisis de texto, por lo que es increíblemente útil examinar grandes cantidades de datos de texto para extraer información útil. Por ejemplo, uno de mis osciloscopios portátiles que llevo conmigo al campo es un viejo y confiable osciloscopio de almacenamiento digital Hantek DSO5202P. Es económico y puede generar formas de onda como datos CSV sin procesar.

Osciloscopio de almacenamiento digital Hantek DSO5202P con interfaz USB

Esto significa que puede capturar los datos de alguna forma de onda, analizarlos, procesarlos y trazar la salida. Estos son datos físicos en vivo con los que ahora puede jugar dentro de su computadora y ver cómo se comporta con sus filtros digitales. Mejor aún, puede formatearlo para alimentarlo a un generador de formas de onda arbitrario y recrear la forma de onda exacta para probar en un circuito.

La interfaz GPIB en la parte posterior de un multímetro digital Keysight. Imagen de Farnell

Si está usando un equipo de prueba que admite la interfaz GPIB, también puede usar bibliotecas de Python como pyVISA para controlarlas. Solía ​​necesitar comprar una configuración de National Instruments para hacer todo eso, limitándola a compañías más grandes que podrían pagarla. Ahora, puede automatizar la configuración de un equipo de prueba por el precio de una computadora y un poco de conocimiento de Python.

Una vez que pueda automatizar su equipo de prueba, se sentirá como un mago. Puede configurar pruebas de circuito cerrado como estimular un dispositivo bajo prueba con un generador de forma de onda arbitraria y recopilar datos sobre cómo responde a través de un osciloscopio, multímetro o registrador de datos. Las posibilidades son infinitas.

Frasco, un microframework de Python

Sin embargo, no se limita a automatizar los equipos de prueba. En estos días, es cada vez más común diseñar productos que se conecten a algún servicio de Internet o se comuniquen con él a través de una API REST. Mientras desarrolla el hardware y escribe el firmware de prueba, también puede usar Python para configurar un servidor de prueba con una API REST para conectarse.

No necesita un desarrollador web sofisticado ni aprender otro lenguaje para esto porque es bastante fácil configurar una API REST usando el marco Python / Flask. Literalmente, puede configurar una API REST personalizada en una hora.

Como ingeniero eléctrico profesional, es probable que participe en la fabricación en algún momento y la capacidad de automatizar las pruebas para la producción es extremadamente útil. Cuanto más consistentes y exhaustivas sean las pruebas, mejor será para los resultados de la empresa, ya sea que esos ahorros provengan de menos fallas en el campo, menos existencias devueltas o menos daño a la reputación debido a un control de calidad deficiente.

Para mis diseños de circuitos, obtengo plantillas de prueba personalizadas hechas con las sondas de lecho de clavos, el arnés de cableado y el mecanismo de sujeción. Estas plantillas de prueba se pueden interconectar con una placa personalizada como un Arduino o Raspberry Pi y se pueden controlar desde una computadora. Mi sistema de prueba de producción estándar consiste en algo como esto con el arnés de cableado interconectado a un Arduino que ejecuta el firmware del protocolo Firmata.

Esto me permite comunicarme con él en Python usando pyFirmata. Puedo configurar cada pin como entrada o salida, verificar el estado de cada pin, registrar todos los datos, generar un número de serie único y enviar un mensaje grande de PASA o FALLO. Cuando los tableros están en la casa de ensamblaje de la fábrica, solo necesito enseñarle a una persona cómo ejecutar el script de prueba de Python, esperar el gran PASA o FALLO, y los datos se almacenan automáticamente junto con las estadísticas para esa ejecución de producción.

SQL:lenguaje de administración de bases de datos

Oh, ¿mencioné el almacenamiento? Eso me lleva al tema de las bases de datos. En realidad, trabajar con bases de datos es un placer en Python. Viene con SQLite3 que, como su nombre lo indica, es una base de datos liviana basada en un solo archivo.

Si desea tener la opción de migrar su código a diferentes bases de datos, especialmente las basadas en servidor, le recomiendo una biblioteca llamada SQLAlchemy. Esto le permite interactuar con muchas de las bases de datos relacionales populares como SQLite, PostgreSQL y MySQL sin tener que cambiar su código.

Ahora, ¿cómo utilizaría una EE una base de datos?

Bueno, en la configuración de prueba automatizada que mencioné anteriormente, el sistema de prueba emitió un número de serie, así como otros datos como estadísticas, resultados de pruebas y notas diversas. Todos estos se pueden almacenar en una base de datos que usted crea, por lo que hay un registro que rastrea el historial de cada tablero que se produce. Cuando se devuelve una placa, se puede buscar el número de serie y se puede examinar el historial de la placa. Quizás fue devuelto previamente para una RMA o falló una prueba una vez pero pasó en el siguiente intento.

O incluso tal vez el amplificador operacional falló en la placa y, cuando hizo una búsqueda simple en su base de datos, descubrió que era la quinta vez que un amplificador operacional específico fallaba en esta ejecución de producción. Información como esa mejora la eficiencia de la producción, los resultados y el valor de un ingeniero para una empresa.

Conclusión

Podría seguir y seguir, y eso es realmente porque Python puede abrirte mundos completamente nuevos como ingeniero.

La base de los ingenieros eléctricos sigue siendo el diseño electrónico. Pero, en estos días, es cada vez más difícil vivir exclusivamente en el mundo de la electrónica. También tenemos que escribir firmware, realizar pruebas, recopilar datos, involucrarnos en la producción y realizar análisis forenses en productos devueltos o fallidos.

Junto con el pan y la mantequilla de la electrónica y C / C ++, el conocimiento de Python puede ayudar a un ingeniero en ejercicio a completar sus habilidades desde el diseño de circuitos hasta participar en el ciclo de vida completo del producto.

Así que únase a nosotros mientras comenzamos esta serie y eche un vistazo práctico a Python desde el contexto de un ingeniero eléctrico.


Incrustado

  1. El mejor lenguaje de programación para aplicaciones industriales de Internet de las cosas
  2. ¿Para qué se utiliza el elemento zirconio? | Aplicaciones del circonio
  3. Los siete mercados que más pagan para los ingenieros de nube
  4. Cervoz:elegir el almacenamiento flash adecuado para aplicaciones industriales
  5. ¿Qué puede ofrecer 5G para el automóvil conectado?
  6. Cómo la eSIM puede impulsar el crecimiento de los operadores
  7. Lenguaje de programación C PDF:tutorial básico para principiantes
  8. Saber cuándo usar sensores para soldadura robótica
  9. ¿Cuándo estará listo Blockchain para la cadena de suministro?
  10. AI:Encuentre el uso adecuado para la inteligencia artificial
  11. Aplicaciones de fundición en arena para el mercado automotriz