Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Eingebettet

Wann können Elektroingenieure Python verwenden? Anwendungen für die Programmiersprache Python

Wo können EEs Python im Alltag einsetzen? Hier ist ein Blick auf die Anwendungen, bei denen Python sich auszeichnet.

Wo können EEs Python im Alltag verwenden? Hier ist ein Blick auf die Anwendungen, in denen Python sich auszeichnet.

Im vorherigen Artikel haben wir die Frage gestellt "Warum sollte sich ein Ingenieur überhaupt die Mühe machen, Python zu lernen?"

Lassen Sie uns nun besprechen, wie Python für die Arbeit eines Elektroingenieurs relevant sein kann.

Der Schweizer Messer-Ingenieur

EEs befassen sich nicht nur mit dem Schaltungsdesign. Wir müssen uns auch einer Reihe anderer Aufgaben stellen, um die wir uns kümmern müssen. Es gibt Firmware-Programmierung, Debugging, Testen von Prototyp-Hardware und -Software, Testen von Produktionsmustern, Arbeiten an der Qualitätskontrolle und scheinbar endlose Mengen an Datenerfassung, Auswertung und Analyse.

Wie kann Python bei all dem helfen?

Geben Sie Python ein, die Schweizer Taschenmessersprache

Python ist extrem gut darin, eine Allzweck-Programmiersprache zu sein. Sprachen wie HDLs (Hardware-Beschreibungssprachen wie VHDL, Verilog) tun eine bestimmte Sache wie die Synthese von Hardware. C/C++ läuft schlank und eignet sich sehr gut für eingebettete Programmierung. Aber eine Schweizer Taschenmessersprache in Ihrem Werkzeuggürtel kann bei allgemeinen Aufgaben helfen, die oft den Großteil unserer Aufgaben ausmachen.

Normalerweise handelt es sich bei diesen Aufgaben um Dinge wie Testen, Datenerfassung oder Automatisierung, die einen großen Teil der Zeit eines Ingenieurs ausmachen. Meiner Erfahrung nach nimmt das Design nur etwa 5-10% der Zeit eines Ingenieurs in Anspruch. Die anderen 90 % werden für Dinge wie Forschung, Testen von Prototypen, Debuggen, Erstellen von Testvorrichtungen und -programmen, Produktionstests, Qualitätskontrolle und natürlich das gefürchtete "D"-Wort ... Dokumentation verbraucht.

Viele Dinge, die vor dem Design stehen (wie die Recherche von Teilen und Implementierungen und die Entwicklung von Systemarchitekturen) können nicht wirklich automatisiert werden. Das sind die Aufgaben, die uns zu den kreativen, handwerklichen Ingenieuren machen, die wir sind. Aber sobald das Design implementiert ist (d. h. der lustige Teil), gibt es noch eine Menge Plackerei zu bewältigen.

Hier sind einige dieser plackerartigen Aufgaben und wie Python dabei helfen kann, sie effizient zu erledigen.

Dateiverarbeitung für die Übermittlung von Gerber-Dateien

Eine der Anwendungen, die am häufigsten automatisiert werden muss, ist die Dateiverarbeitung. Prozessabläufe unterscheiden sich je nach Software, Anbieter, Kunde usw. Meistens beinhalten diese die Verarbeitung von Dateien in einem bestimmten Format. Mein PCB-Anbieter verlangt von mir, dass ich meine Gerber-Dateien mit bestimmten Dateierweiterungen einreiche, damit seine Mitarbeiter die Designanforderungen analysieren, überprüfen und bestätigen können.

Da mein PCB-CAD-Tool Gerbers nicht im erforderlichen Format ausgibt, muss ich jedes Mal, wenn ich eine PCB einreiche, meine Dateierweiterungen ändern. Es ist keine große Aufgabe, aber da ich jedes Jahr viele Designs und Design-Revisionen durcharbeite, wird es ermüdend, die Gerber-Dateierweiterungen bei etwa 10 verschiedenen Dateien jedes Mal zu ändern, wenn ich ein Design an die Fab schicke.

Ein aussagekräftigeres Beispiel für die Dateiverarbeitung ist, wenn Sie eine Datei in einem Format (z. B. XML) haben und ein Kunde sie in einem anderen (z. B. CSV) benötigt. Dies ist eine häufige Situation, die für einige Kunden normalerweise große Kopfschmerzen bereiten würde, wenn nicht sogar ein Showstopper. Aber mit ein paar Bibliotheken und etwas einfachem Python-Code ist es möglich, Textdateien zwischen mehreren Formaten zu ändern.

Automatisierung von Testgeräten

Als EE ist einer der großen Vorteile der Verwendung von Python die Steuerung und Automatisierung von Testgeräten. Es wird immer häufiger, kostengünstige Testgeräte mit USB-Ausgängen zu finden, die Daten sammeln und in gängigen Formaten wie CSV speichern können.

Python wurde ursprünglich für die Textanalyse entwickelt, daher ist es unglaublich nützlich, riesige Mengen an Textdaten zu durchsuchen, um nützliche Informationen zu extrahieren. Zum Beispiel ist eines meiner tragbaren Oszilloskope, die ich im Feld mitnehme, ein treues altes Hantek DSO5202P Digitalspeicher-Oszilloskop. Es ist kostengünstig und kann Wellenformen als CSV-Rohdaten ausgeben.

Hantek DSO5202P digitales Speicheroszilloskop mit USB-Schnittstelle

Dies bedeutet, dass Sie die Daten einer Wellenform tatsächlich erfassen, analysieren, verarbeiten und die Ausgabe darstellen können. Dies sind physische Live-Daten, mit denen Sie jetzt in Ihrem Computer spielen und sehen können, wie sie sich mit Ihren digitalen Filtern verhalten. Besser noch, Sie können es so formatieren, dass es einem Arbiträrsignalgenerator zugeführt wird und das genaue Signal zum Testen in einer Schaltung neu erstellt wird.

Die GPIB-Schnittstelle auf der Rückseite eines Keysight-Digitalmultimeters. Bild von Farnell

Wenn Sie Testgeräte verwenden, die die GPIB-Schnittstelle unterstützen, können Sie auch Python-Bibliotheken wie pyVISA verwenden, um diese zu steuern. Früher mussten Sie für all dies ein Setup von National Instruments kaufen und es auf größere Unternehmen beschränken, die es sich leisten konnten. Jetzt können Sie zum Preis eines Computers und ein wenig Python-Know-how die Einrichtung eines Testgeräts automatisieren.

Sobald Sie Ihre Testgeräte automatisieren können, werden Sie sich wie ein Zauberer fühlen. Sie können Closed-Loop-Tests einrichten, z. B. ein zu testendes Gerät mit einem Arbiträrsignalgenerator stimulieren und Daten über seine Reaktion über ein Oszilloskop, Multimeter oder Datenlogger sammeln. Die Möglichkeiten sind endlos.

Flask, ein Python-Mikroframework

Es hört jedoch nicht nur bei der Automatisierung von Testgeräten auf. Heutzutage wird es immer üblicher, Produkte zu entwickeln, die sich mit einem Internetdienst verbinden oder über eine REST-API mit ihm kommunizieren. Während Sie die Hardware entwickeln und die Test-Firmware schreiben, können Sie mit Python auch einen Testserver mit einer REST-API einrichten, zu der Sie eine Verbindung herstellen können.

Sie brauchen dafür weder einen ausgefallenen Webentwickler noch das Erlernen einer anderen Sprache, da es recht einfach ist, eine REST-API mit dem Python/Flask-Framework einzurichten. Sie können buchstäblich innerhalb einer Stunde eine benutzerdefinierte REST-API einrichten.

Als professioneller Elektroingenieur werden Sie wahrscheinlich irgendwann in die Fertigung involviert sein und die Fähigkeit, Tests für die Produktion zu automatisieren, ist äußerst nützlich. Je konsistenter und gründlicher die Tests sind, desto besser ist es für das Endergebnis des Unternehmens, unabhängig davon, ob diese Einsparungen aus weniger Feldausfällen, weniger zurückgegebenen Lagerbeständen oder weniger Rufschädigung durch schlechte Qualitätskontrollen resultieren.

Für meine Schaltungsdesigns erhalte ich kundenspezifische Testvorrichtungen, die mit den Nagelbettsonden, dem Kabelbaum und dem Klemmmechanismus hergestellt werden. Diese Testvorrichtungen können mit einer benutzerdefinierten Platine wie einem Arduino oder Raspberry Pi verbunden und von einem Computer aus gesteuert werden. Mein Standard-Produktionstestsystem besteht aus so etwas, wobei der Kabelbaum mit einem Arduino verbunden ist, auf dem die Firmata-Protokoll-Firmware läuft.

Dadurch kann ich in Python mit pyFirmata kommunizieren. Ich kann jeden Pin als Eingang oder Ausgang einrichten, den Zustand jedes Pins überprüfen, alle Daten protokollieren, eine eindeutige Seriennummer generieren und eine große PASS- oder FAIL-Meldung ausgeben. Wenn die Platinen im Montagehaus der Fabrik sind, muss ich nur einer Person beibringen, wie man das Python-Testskript ausführt, auf das große PASS oder FAIL wartet, und die Daten werden automatisch zusammen mit den Statistiken für diesen Produktionslauf gespeichert.

SQL:Datenbankverwaltungssprache

Oh, habe ich Speicher erwähnt? Das bringt mich zum Thema Datenbanken. Tatsächlich ist die Arbeit mit Datenbanken in Python ein Vergnügen. Es wird standardmäßig mit SQLite3 geliefert, das, wie der Name schon sagt, eine leichtgewichtige Datenbank ist, die auf einer einzigen Datei basiert.

Wenn Sie die Möglichkeit haben möchten, Ihren Code in verschiedene Datenbanken zu migrieren, insbesondere in serverbasierte, empfehle ich eine Bibliothek namens SQLAlchemy. Auf diese Weise können Sie eine Schnittstelle zu vielen der beliebten relationalen Datenbanken wie SQLite, PostgreSQL und MySQL herstellen, ohne Ihren Code ändern zu müssen.

Wie würde ein EE nun eine Datenbank verwenden, fragen Sie?

Nun, in dem oben erwähnten automatisierten Testaufbau gab das Testsystem eine Seriennummer sowie andere Daten wie Statistiken, Testergebnisse und sonstige Notizen aus. Diese können alle in einer von Ihnen erstellten Datenbank gespeichert werden, sodass ein Protokoll mit dem Verlauf jedes produzierten Boards erstellt wird. Bei Rückgabe einer Platine kann die Seriennummer nachgeschlagen und die Historie der Platine eingesehen werden. Vielleicht wurde es zuvor für eine RMA zurückgegeben oder es hat einen Test einmal nicht bestanden, aber beim nächsten Versuch bestanden.

Oder vielleicht ist sogar der Operationsverstärker auf der Platine ausgefallen und bei einer einfachen Suche in Ihrer Datenbank stellte sich heraus, dass es das fünfte Mal war, dass ein bestimmter Operationsverstärker in diesem Produktionslauf ausfiel. Erkenntnisse wie diese verbessern die Produktionseffizienz, das Endergebnis und den Wert eines Ingenieurs für ein Unternehmen.

Schlussfolgerung

Ich könnte immer weiter machen, und das liegt wirklich daran, dass Python Ihnen als Ingenieur ganz neue Welten eröffnen kann.

Das Fundament für Elektroingenieure ist immer noch das Elektronikdesign. Aber heutzutage wird es immer schwieriger, rein in der Welt der Elektronik zu leben. Wir müssen auch Firmware schreiben, Tests durchführen, Daten sammeln, uns an der Produktion beteiligen und Forensik für zurückgegebene oder fehlerhafte Produkte durchführen.

Zusammen mit dem Brot und der Butter der Elektronik und C/C++ können Kenntnisse in Python einem praktizierenden Ingenieur helfen, seine Fähigkeiten vom Schaltungsdesign bis zur Beteiligung am gesamten Produktlebenszyklus zu vervollständigen.

Begleiten Sie uns also, wenn wir diese Serie beginnen, und werfen Sie einen praktischen Blick auf Python aus dem Kontext eines Elektroingenieurs.


Eingebettet

  1. Die beste Programmiersprache für industrielle Internet-of-Things-Anwendungen
  2. Die 7 bestbezahlten Märkte für Cloud-Ingenieure
  3. Cervoz:Auswahl des richtigen Flash-Speichers für industrielle Anwendungen
  4. Was kann 5G für das vernetzte Auto leisten?
  5. Wie die eSIM das Wachstum für Betreiber fördern kann
  6. Programmiersprache C PDF:Grundlagen-Tutorial für Anfänger
  7. Wissen, wann Sensoren für Roboterschweißen eingesetzt werden sollten
  8. Wann wird Blockchain für die Lieferkette bereit sein?
  9. KI:Finden Sie den richtigen Einsatz für künstliche Intelligenz
  10. Sandgussanwendungen für den Automobilmarkt