Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Integrado

Quando os engenheiros elétricos podem usar Python? Aplicativos para a linguagem de programação Python

Onde os EEs podem usar Python em seu dia a dia? Aqui está uma olhada nos aplicativos em que o Python se destaca.


Onde os EEs podem usar Python no dia a dia? Aqui está uma olhada nos aplicativos em que o Python se destaca.

No artigo anterior, levantamos a questão "Por que um engenheiro deveria se incomodar em aprender Python?"

Agora, vamos discutir como o Python pode ser relevante no trabalho de um engenheiro elétrico.


O Engenheiro Canivete Suíço


Os EEs não lidam apenas com o projeto do circuito. Enfrentamos uma série de outras tarefas das quais também temos que cuidar. Há programação de firmware, depuração, teste de protótipo de hardware e software, teste de amostras de produção, trabalho no controle de qualidade e quantidades aparentemente intermináveis ​​de coleta, avaliação e análise de dados.

Como o Python pode ajudar com tudo isso?




Digite Python, a linguagem do canivete suíço



Python é extremamente bom em ser uma linguagem de programação para todos os fins. Linguagens como HDLs (linguagens de descrição de hardware como VHDL, Verilog) fazem uma coisa específica como sintetizar em hardware. C / C ++ é executado de forma enxuta e é muito adequado para programação embarcada. Mas ter uma linguagem de canivete suíço em seu cinto de ferramentas pode ajudar em tarefas de uso geral que muitas vezes constituem a maioria das coisas que realizamos.

Normalmente, essas tarefas seriam coisas como testes, coleta de dados ou automação, que constituem uma grande parte do tempo de um engenheiro. Na minha experiência, o projeto leva apenas cerca de 5-10% do tempo de um engenheiro. Os outros 90% ou mais são consumidos por coisas como pesquisa, teste de protótipos, depuração, criação de gabaritos e programas de teste, teste de produção, controle de qualidade e, claro, a temida palavra “D” ... documentação.

Muitas das coisas que vêm antes do design (como pesquisar peças e implementações e criar arquiteturas de sistema) não podem ser realmente automatizadas. Essas são as tarefas que nos tornam os engenheiros artesanais criativos que somos. Mas, uma vez que o design é implementado (ou seja, a parte divertida), há muito trabalho enfadonho que ainda precisa ser tratado.

Aqui estão algumas dessas tarefas enfadonhas e como o Python pode ajudar a realizá-las com eficiência.

Processamento de arquivo para envio de arquivo Gerber


Um dos aplicativos que mais precisam de automação é o processamento de arquivos. Os fluxos de trabalho do processo diferem dependendo do software, fornecedor, cliente, etc. Na maioria das vezes, isso inclui o processamento de arquivos em algum formato. Meu fornecedor de PCB exige que eu envie meus arquivos Gerber com extensões de arquivo específicas para que seus funcionários possam analisar, verificar e confirmar se eles estão em conformidade com os requisitos de design.

Uma vez que minha ferramenta de PCB CAD não produz Gerbers no formato necessário, preciso alterar minhas extensões de arquivo toda vez que enviar um PCB. Não é uma tarefa enorme, mas como eu itero em muitos designs e revisões de design todos os anos, fica cansativo alterar as extensões de arquivo Gerber em cerca de 10 arquivos diferentes cada vez que envio um design para a fábrica.

Um exemplo mais substancial de processamento de arquivo é quando você tem um arquivo em um formato (por exemplo, XML) e um cliente exige em outro (por exemplo, CSV). Esta é uma situação comum que normalmente seria uma grande dor de cabeça, se não um empecilho para alguns clientes. Mas, usando algumas bibliotecas e algum código Python simples, é possível alterar arquivos de texto entre vários formatos.

Automatizando equipamentos de teste


Como um EE, uma das grandes vantagens de usar Python é controlar e automatizar equipamentos de teste. Está se tornando cada vez mais comum encontrar equipamentos de teste de baixo custo equipados com saídas USB que podem coletar dados e armazená-los em formatos comuns, como CSV.

Python foi originalmente criado para análise de texto, por isso é incrivelmente útil filtrar grandes quantidades de dados de texto para extrair informações úteis. Por exemplo, um dos meus osciloscópios portáteis que levo comigo para o campo é um velho e confiável osciloscópio de armazenamento digital Hantek DSO5202P. É barato e pode gerar formas de onda como dados CSV brutos.




Osciloscópio de armazenamento digital Hantek DSO5202P com interface USB



Isso significa que você pode realmente capturar os dados de alguma forma de onda, analisá-los, processá-los e plotar a saída. São dados físicos ao vivo com os quais você agora pode brincar dentro do computador e ver como se comportam com os filtros digitais. Melhor ainda, você pode formatá-lo para alimentar um gerador de forma de onda arbitrário e recriar a forma de onda exata para teste em um circuito.



A interface GPIB na parte traseira de um multímetro digital da Keysight. Imagem de Farnell



Se você estiver usando um equipamento de teste compatível com a interface GPIB, também poderá usar bibliotecas Python, como o pyVISA, para controlá-los. Você costumava precisar comprar uma configuração da National Instruments para fazer tudo isso, limitando-se a empresas maiores que pudessem pagá-la. Agora, você pode automatizar a configuração de um equipamento de teste pelo preço de um computador e um pouco de know-how em Python.

Depois de automatizar seu equipamento de teste, você se sentirá um mágico. Você pode configurar testes de loop fechado, como estimular um dispositivo em teste com um gerador de forma de onda arbitrário e coletar dados sobre como ele responde por meio de um osciloscópio, multímetro ou datalogger. As possibilidades são infinitas.

Flask, um microframework Python


Não se trata apenas de automatizar o equipamento de teste, no entanto. Atualmente, está se tornando mais comum projetar produtos que se conectam a algum serviço de Internet ou se comunicam com ele por meio de uma API REST. Conforme você desenvolve o hardware e escreve o firmware de teste, também pode usar Python para configurar um servidor de teste com uma API REST para se conectar.

Você não precisa de um desenvolvedor da web sofisticado ou aprender outra linguagem para isso porque é muito fácil configurar uma API REST usando a estrutura Python / Flask. Você pode literalmente configurar uma API REST customizada em uma hora.






Como engenheiro elétrico profissional, você provavelmente estará envolvido na fabricação em algum momento e a capacidade de automatizar os testes de produção é extremamente útil. Quanto mais consistente e completo for o teste, melhor será para os resultados financeiros da empresa, independentemente de as economias virem de menos falhas de campo, menos estoque devolvido ou menos danos à reputação por controle de qualidade ruim.

Para meus projetos de circuito, recebo gabaritos de teste personalizados feitos com sondas de leito de pregos, chicote de fiação e mecanismo de fixação. Esses gabaritos de teste podem ter interface com uma placa personalizada como um Arduino ou Raspberry Pi e controlados a partir de um computador. Meu sistema de teste de produção padrão consiste em algo assim com o chicote de fiação conectado a um Arduino executando o firmware do protocolo Firmata.

Isso me permite comunicar com ele em Python usando pyFirmata. Posso configurar cada pino como uma entrada ou saída, verificar o estado de cada pino, registrar todos os dados, gerar um número de série exclusivo e emitir uma grande mensagem de PASSA ou FALHA. Quando as placas estão na casa de montagem da fábrica, eu só preciso ensinar uma pessoa como executar o script de teste Python, esperar pelo grande PASSOU ou FALHA, e os dados são armazenados automaticamente junto com as estatísticas para essa execução de produção.

SQL:linguagem de gerenciamento de banco de dados


Oh, eu mencionei armazenamento? Isso me leva ao assunto de bancos de dados. Na verdade, trabalhar com bancos de dados é um prazer em Python. Ele vem com SQLite3 que, como o próprio nome indica, é um banco de dados leve baseado em um único arquivo.

Se você quiser a opção de migrar seu código para bancos de dados diferentes, especialmente aqueles baseados em servidor, eu recomendo uma biblioteca chamada SQLAlchemy. Isso permite que você faça interface com muitos dos bancos de dados relacionais populares, como SQLite, PostgreSQL e MySQL, sem ter que alterar seu código.







Agora, como um EE usaria um banco de dados, você pergunta?

Bem, na configuração de teste automatizado que mencionei anteriormente, o sistema de teste fornece um número de série, bem como outros dados, como estatísticas, resultados de teste e notas diversas. Todos eles podem ser armazenados em um banco de dados que você cria para que haja um registro de rastreamento do histórico de cada placa produzida. Quando uma placa é devolvida, o número de série pode ser consultado e o histórico da placa pode ser examinado. Talvez tenha sido devolvido anteriormente para um RMA ou falhou em um teste uma vez, mas passou na próxima tentativa.

Ou mesmo talvez o op-amp falhou na placa e, quando você fez uma pesquisa simples em seu banco de dados, descobriu que era a quinta vez que o op-amp específico falhou nesta execução de produção. Insights como esse melhoram a eficiência da produção, os resultados financeiros e o valor do engenheiro para a empresa.

Conclusão


Eu poderia continuar indefinidamente, e isso porque Python pode abrir mundos totalmente novos para você como engenheiro.

A base para engenheiros elétricos ainda é o design eletrônico. Mas, atualmente, está ficando mais difícil viver puramente no mundo da eletrônica. Também temos que escrever firmware, realizar testes, coletar dados, nos envolver com a produção e fazer análises forenses em produtos devolvidos ou com falha.

Junto com o pão e manteiga da eletrônica e C / C ++, o conhecimento de Python pode ajudar um engenheiro praticante a aprimorar suas habilidades, desde o projeto de circuitos até a participação no ciclo de vida completo do produto.

Junte-se a nós no início desta série e dê uma olhada prática no Python do contexto de um engenheiro elétrico.

Integrado

  1. A melhor linguagem de programação para aplicativos industriais da Internet das coisas
  2. Os 7 mercados de maior remuneração para engenheiros de nuvem
  3. Cervoz:escolhendo o armazenamento flash certo para aplicações industriais
  4. O que o 5G pode oferecer para o carro conectado?
  5. Como o eSIM pode impulsionar o crescimento das operadoras
  6. Linguagem de Programação C PDF:Tutorial Básico para Iniciantes
  7. Saber quando usar sensores para soldagem robótica
  8. Quando o Blockchain estará pronto para a cadeia de suprimentos?
  9. AI:encontre o uso certo para a inteligência artificial
  10. Aplicações de fundição de areia para o mercado automotivo