Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Embarqué

Quand les ingénieurs électriciens peuvent-ils utiliser Python ? Applications pour le langage de programmation Python

Où les EE peuvent-ils utiliser Python au quotidien ? Voici un aperçu des applications où Python excelle.

Où les EE peuvent-ils utiliser Python au quotidien ? Voici un aperçu des applications où Python excelle.

Dans l'article précédent, nous avons posé la question "Pourquoi un ingénieur devrait-il même prendre la peine d'apprendre Python ?"

Voyons maintenant comment Python peut être pertinent dans le travail d'un ingénieur électricien.

L'ingénieur du couteau suisse

Les EE ne traitent pas seulement de la conception de circuits. Nous sommes également confrontés à de nombreuses autres tâches dont nous devons nous occuper. Il y a la programmation du micrologiciel, le débogage, le test du matériel et des logiciels prototypes, le test des échantillons de production, le contrôle de la qualité et des quantités apparemment sans fin de collecte, d'évaluation et d'analyse de données.

Comment Python peut-il aider avec tout cela ?

Entrez Python, le langage du couteau suisse

Python est extrêmement doué pour être un langage de programmation polyvalent. Des langages comme les HDL (langages de description de matériel comme VHDL, Verilog) font une chose spécifique comme synthétiser au matériel. C/C++ fonctionne au plus juste et est très bien adapté à la programmation embarquée. Mais avoir un langage de couteau suisse dans votre ceinture à outils peut vous aider dans les tâches générales qui constituent souvent la majorité des choses que nous gérons.

Habituellement, ces tâches seraient des choses comme les tests, la collecte de données ou l'automatisation, qui constituent une grande partie du temps d'un ingénieur. D'après mon expérience, la conception ne prend que 5 à 10 % du temps d'un ingénieur. Les 90 % environ sont consommés par des choses comme la recherche, les tests de prototypes, le débogage, la création de gabarits et de programmes de test, les tests de production, le contrôle de la qualité et, bien sûr, le redoutable mot « D »… la documentation.

Beaucoup de choses qui précèdent la conception (comme la recherche de pièces et d'implémentations et l'élaboration d'architectures système) ne peuvent pas vraiment être automatisées. Telles sont les tâches qui font de nous les ingénieurs créatifs et artisanaux que nous sommes. Mais, une fois la conception mise en œuvre (c'est-à-dire la partie amusante), il reste encore beaucoup de corvées à gérer.

Voici quelques-unes de ces tâches de type corvée et comment Python peut vous aider à les accomplir efficacement.

Traitement de fichiers pour la soumission de fichiers Gerber

L'une des applications nécessitant le plus d'automatisation est le traitement de fichiers. Les workflows de processus diffèrent selon le logiciel, le fournisseur, le client, etc. La plupart du temps, ils incluent le traitement des fichiers dans un certain format. Mon fournisseur de PCB exige que je soumette mes fichiers Gerber avec des extensions de fichier spécifiques afin que leurs employés puissent analyser, vérifier et confirmer qu'ils sont conformes aux exigences de conception.

Étant donné que mon outil de CAO PCB ne produit pas de Gerbers dans le format requis, je dois modifier mes extensions de fichier chaque fois que je soumets un PCB. Ce n'est pas une tâche énorme, mais comme je parcoure de nombreuses conceptions et révisions de conception chaque année, cela devient fatiguant de changer les extensions de fichier Gerber sur environ 10 fichiers différents chaque fois que je soumets une conception à l'usine.

Un exemple plus substantiel de traitement de fichier est lorsque vous avez un fichier dans un format (par exemple, XML) et qu'un client en a besoin dans un autre (par exemple, CSV). Il s'agit d'une situation courante qui serait normalement un énorme casse-tête, voire un obstacle pour certains clients. Mais en utilisant quelques bibliothèques et du code Python simple, il est possible de modifier les fichiers texte entre plusieurs formats.

Automatisation des équipements de test

En tant qu'EE, l'un des grands avantages de l'utilisation de Python est le contrôle et l'automatisation des équipements de test. Il est de plus en plus courant de trouver des équipements de test à bas prix équipés de sorties USB capables de collecter des données et de les stocker dans des formats courants tels que CSV.

Python a été créé à l'origine pour l'analyse de texte, il est donc incroyablement utile de passer au crible d'énormes quantités de données textuelles pour en extraire des informations utiles. Par exemple, l'un de mes oscilloscopes portables que j'emporte avec moi sur le terrain est un vieil oscilloscope à stockage numérique Hantek DSO5202P fidèle. Il est peu coûteux et peut produire des formes d'onde sous forme de données CSV brutes.

Oscilloscope à stockage numérique Hantek DSO5202P avec interface USB

Cela signifie que vous pouvez réellement capturer les données d'une forme d'onde, les analyser, les traiter et tracer la sortie. Ce sont des données physiques en direct avec lesquelles vous pouvez maintenant jouer à l'intérieur de votre ordinateur et voir comment elles se comportent avec vos filtres numériques. Mieux encore, vous pouvez le formater pour alimenter un générateur de signaux arbitraires et recréer le signal exact pour le tester sur un circuit.

L'interface GPIB à l'arrière d'un multimètre numérique Keysight. Image de Farnell

Si vous utilisez un équipement de test qui prend en charge l'interface GPIB, vous pouvez également utiliser des bibliothèques Python comme pyVISA pour les contrôler. Auparavant, vous deviez acheter une configuration National Instruments pour faire tout cela, en la limitant aux grandes entreprises qui pouvaient se le permettre. Désormais, vous pouvez automatiser la configuration d'un équipement de test pour le prix d'un ordinateur et d'un peu de savoir-faire Python.

Une fois que vous pourrez automatiser votre équipement de test, vous vous sentirez comme un magicien. Vous pouvez configurer des tests en boucle fermée comme la stimulation d'un appareil à tester avec un générateur de signaux arbitraires et collecter des données sur la façon dont il répond via un oscilloscope, un multimètre ou une centrale de mesure. Les possibilités sont infinies.

Flask, un microframework Python

Cela ne s'arrête pas seulement à l'automatisation des équipements de test, cependant. De nos jours, il est de plus en plus courant de concevoir des produits qui se connectent à un service Internet ou communiquent avec lui via une API REST. Pendant que vous développez le matériel et écrivez le micrologiciel de test, vous pouvez également utiliser Python pour configurer un serveur de test avec une API REST à laquelle vous connecter.

Vous n'avez pas besoin d'un développeur Web sophistiqué ou d'apprendre un autre langage pour cela, car il est assez facile de configurer une API REST à l'aide du framework Python/Flask. Vous pouvez littéralement configurer une API REST personnalisée en une heure.

En tant qu'ingénieur électricien professionnel, vous serez probablement impliqué dans la fabrication à un moment donné et la possibilité d'automatiser les tests pour la production est extrêmement utile. Plus les tests sont cohérents et approfondis, meilleurs sont les résultats de l'entreprise, que ces économies proviennent de moins de défaillances sur le terrain, de moins de retours de stock ou de moins de dommages à la réputation dus à un mauvais contrôle qualité.

Pour mes conceptions de circuits, je reçois des gabarits de test personnalisés fabriqués avec les sondes de lit de clous, le faisceau de câbles et le mécanisme de serrage. Ces gabarits de test peuvent être interfacés avec une carte personnalisée comme un Arduino ou un Raspberry Pi et contrôlés depuis un ordinateur. Mon système de test de production standard consiste en quelque chose comme ça avec le faisceau de câblage interfacé à un Arduino exécutant le firmware du protocole Firmata.

Cela me permet de communiquer avec lui en Python en utilisant pyFirmata. Je peux configurer chaque broche comme entrée ou sortie, vérifier l'état de chaque broche, enregistrer toutes les données, générer un numéro de série unique et émettre un gros message PASS ou FAIL. Lorsque les cartes sont à l'usine d'assemblage, j'ai juste besoin d'enseigner à une personne comment exécuter le script de test Python, attendre le gros PASS ou FAIL, et les données sont automatiquement stockées avec les statistiques de ce cycle de production.

SQL :langage de gestion de base de données

Oh, ai-je mentionné le stockage ? Cela m'amène au sujet des bases de données. En fait, travailler avec des bases de données est un plaisir en Python. Il est livré avec SQLite3 qui, comme son nom l'indique, est une base de données légère basée sur un seul fichier.

Si vous souhaitez avoir la possibilité de migrer votre code vers différentes bases de données, en particulier celles basées sur un serveur, je vous recommande une bibliothèque appelée SQLAlchemy. Cela vous permet de vous connecter à de nombreuses bases de données relationnelles populaires telles que SQLite, PostgreSQL et MySQL sans avoir à modifier votre code.

Maintenant, comment un EE utiliserait-il une base de données, demandez-vous ?

Eh bien, dans la configuration de test automatisée que j'ai mentionnée plus tôt, le système de test a publié un numéro de série ainsi que d'autres données telles que des statistiques, des résultats de test et des notes diverses. Ceux-ci peuvent tous être stockés dans une base de données que vous créez afin qu'il y ait un journal de suivi de l'historique de chaque carte produite. Lorsqu'une carte est retournée, le numéro de série peut être recherché et l'historique de la carte peut être examiné. Peut-être qu'il a déjà été renvoyé pour un RMA ou qu'il a échoué une fois à un test mais qu'il a réussi au prochain essai.

Ou peut-être même que l'ampli-op a échoué sur la carte et, lorsque vous avez effectué une simple recherche dans votre base de données, vous avez découvert que c'était la cinquième fois qu'un ampli-op spécifique échouait dans cette série de production. De telles informations améliorent l'efficacité de la production, les résultats et la valeur d'un ingénieur pour une entreprise.

Conclusion

Je pourrais continuer encore et encore, et c'est vraiment parce que Python peut vous ouvrir de tout nouveaux mondes en tant qu'ingénieur.

La base des ingénieurs électriciens reste la conception électronique. Mais, de nos jours, il devient de plus en plus difficile de vivre uniquement dans le monde de l'électronique. Nous devons également écrire un micrologiciel, effectuer des tests, collecter des données, participer à la production et effectuer des analyses sur les produits retournés ou défectueux.

En plus du pain et du beurre de l'électronique et du C/C++, la connaissance de Python peut aider un ingénieur en exercice à compléter ses compétences, de la conception de circuits à la participation au cycle de vie complet du produit.

Alors rejoignez-nous alors que nous commençons cette série et jetez un œil pratique à Python dans le contexte d'un ingénieur électricien.


Embarqué

  1. Les 7 marchés les mieux rémunérés pour les ingénieurs cloud
  2. Cervoz :choisir le bon stockage flash pour les applications industrielles
  3. Que peut apporter la 5G pour la voiture connectée ?
  4. Comment l'eSIM peut stimuler la croissance des opérateurs
  5. Langage de programmation C PDF :Tutoriel de base pour les débutants
  6. Savoir quand utiliser des capteurs pour le soudage robotisé
  7. Quand la blockchain sera-t-elle prête pour la chaîne d'approvisionnement ?
  8. IA :trouver le bon usage de l'intelligence artificielle
  9. Applications de moulage au sable pour le marché automobile