Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Ingebed

Wanneer kunnen elektrotechnici Python gebruiken? Toepassingen voor de programmeertaal Python

Waar kunnen EE's Python dagelijks gebruiken? Hier is een overzicht van de toepassingen waarin Python uitblinkt.

Waar kunnen EE's Python dagelijks gebruiken? Hier is een overzicht van de toepassingen waarin Python uitblinkt.

In het vorige artikel stelden we de vraag "Waarom zou een ingenieur zelfs de moeite nemen om Python te leren?"

Laten we nu bespreken hoe Python relevant kan zijn in het werk van een elektrotechnisch ingenieur.

De Zwitserse zakmesingenieur

EE's houden zich niet alleen bezig met circuitontwerp. We staan ​​ook voor een hele reeks andere taken waar we voor moeten zorgen. Er is firmware-programmering, foutopsporing, het testen van prototypehardware en -software, het testen van productiemonsters, het werken aan kwaliteitscontrole en schijnbaar oneindige hoeveelheden gegevensverzameling, evaluatie en analyse.

Hoe kan Python hierbij helpen?

Voer Python in, de taal van het Zwitserse zakmes

Python is buitengewoon goed in het zijn van een universele programmeertaal. Talen zoals HDL's (hardwarebeschrijvingstalen zoals VHDL, Verilog) doen één specifiek ding, zoals synthetiseren naar hardware. C/C++ draait lean en is zeer geschikt voor embedded programmeren. Maar het hebben van een Zwitsers zakmes in je gereedschapsriem kan helpen bij algemene taken die vaak de meeste dingen uitmaken die we afhandelen.

Meestal zijn deze taken zaken als testen, gegevensverzameling of automatisering, die een groot deel van de tijd van een ingenieur uitmaken. In mijn ervaring kost het ontwerpen slechts ongeveer 5-10% van de tijd van een ingenieur. De andere 90% of zo wordt verbruikt door zaken als onderzoek, het testen van prototypes, debuggen, het maken van testmallen en -programma's, productietests, kwaliteitscontrole en natuurlijk het gevreesde "D"-woord ... documentatie.

Veel van de dingen die aan het ontwerp voorafgaan (zoals het onderzoeken van onderdelen en implementaties en het bedenken van systeemarchitecturen) kunnen niet echt worden geautomatiseerd. Dat zijn de taken die ons de creatieve, ambachtelijke ingenieurs maken die we zijn. Maar als het ontwerp eenmaal is geïmplementeerd (d.w.z. het leuke gedeelte), moet er nog veel gezwoeg worden afgehandeld.

Hier zijn enkele van die saaie taken en hoe Python kan helpen ze efficiënt uit te voeren.

Bestandsverwerking voor het indienen van Gerber-bestanden

Een van de toepassingen die het vaakst moet worden geautomatiseerd, is bestandsverwerking. Procesworkflows verschillen afhankelijk van de software, leverancier, klant, enz. Meestal omvatten deze het verwerken van bestanden in een bepaald formaat. Mijn PCB-leverancier vereist dat ik mijn Gerber-bestanden met specifieke bestandsextensies indient, zodat hun werknemers kunnen analyseren, controleren en bevestigen dat ze voldoen aan de ontwerpvereisten.

Aangezien mijn PCB CAD-tool Gerbers niet in het vereiste formaat uitvoert, moet ik mijn bestandsextensies elke keer dat ik een PCB indien, wijzigen. Het is geen enorme taak, maar aangezien ik elk jaar vele ontwerpen en ontwerprevisies doorloop, wordt het vermoeiend om de Gerber-bestandsextensies op ongeveer 10 verschillende bestanden te veranderen telkens wanneer ik een ontwerp naar de fab verzend.

Een meer substantieel voorbeeld van bestandsverwerking is wanneer u een bestand in het ene formaat (bijv. XML) heeft en een klant het in een ander formaat (bijv. CSV) nodig heeft. Dit is een veelvoorkomende situatie die voor sommige klanten normaal gesproken een enorme hoofdpijn zou zijn, zo niet een showstopper. Maar met een paar bibliotheken en wat eenvoudige Python-code is het mogelijk om tekstbestanden te wisselen tussen meerdere formaten.

Testapparatuur automatiseren

Als EE is een van de grote voordelen van het gebruik van Python het aansturen en automatiseren van testapparatuur. Het wordt steeds gebruikelijker om goedkope testapparatuur te vinden die is uitgerust met USB-uitgangen die gegevens kunnen verzamelen en opslaan in gangbare formaten zoals CSV.

Python is oorspronkelijk gemaakt voor het ontleden van tekst, dus het is verbazingwekkend handig om door enorme hoeveelheden tekstgegevens te bladeren om nuttige informatie te extraheren. Een van mijn draagbare oscilloscopen die ik in het veld meeneem, is bijvoorbeeld een vertrouwde oude Hantek DSO5202P digitale opslagoscilloscoop. Het is goedkoop en kan golfvormen uitvoeren als onbewerkte CSV-gegevens.

Hantek DSO5202P digitale opslagoscilloscoop met USB-interface

Dit betekent dat u de gegevens van een golfvorm daadwerkelijk kunt vastleggen, ontleden, verwerken en de uitvoer plotten. Dit zijn live, fysieke gegevens waarmee u nu op uw computer kunt spelen en kunt zien hoe deze zich gedraagt ​​met uw digitale filters. Beter nog, je kunt het formatteren om het naar een willekeurige golfvormgenerator te sturen en de exacte golfvorm opnieuw te creëren voor testen op een circuit.

De GPIB-interface op de achterkant van een Keysight digitale multimeter. Afbeelding van Farnell

Als u testapparatuur gebruikt die de GPIB-interface ondersteunt, kunt u ook Python-bibliotheken zoals pyVISA gebruiken om ze te besturen. Vroeger moest je daarvoor een opstelling van National Instruments kopen, en je beperkte het tot grotere bedrijven die het zich konden veroorloven. Nu kunt u de installatie van testapparatuur automatiseren voor de prijs van een computer en een beetje Python-knowhow.

Zodra u uw testapparatuur kunt automatiseren, voelt u zich een goochelaar. U kunt gesloten-lustests opzetten, zoals het stimuleren van een te testen apparaat met een willekeurige golfvormgenerator en gegevens verzamelen over hoe het reageert via een oscilloscoop, multimeter of datalogger. De mogelijkheden zijn eindeloos.

Flask, een Python-microframework

Het stopt echter niet alleen bij het automatiseren van testapparatuur. Tegenwoordig wordt het steeds gebruikelijker om producten te ontwerpen die verbinding maken met een internetservice of ermee communiceren via een REST API. Terwijl je de hardware ontwikkelt en de testfirmware schrijft, kun je Python ook gebruiken om een ​​testserver in te stellen met een REST API om verbinding mee te maken.

Je hebt hier geen fancy webontwikkelaar voor nodig of een andere taal leren, want het is vrij eenvoudig om een ​​REST API op te zetten met behulp van het Python/Flask-framework. Je kunt letterlijk binnen een uur een aangepaste REST API opzetten.

Als professionele elektrotechnisch ingenieur zul je waarschijnlijk op een gegeven moment betrokken zijn bij de productie en de mogelijkheid om het testen voor productie te automatiseren is buitengewoon handig. Hoe consistenter en grondiger de tests, hoe beter het is voor de bedrijfsresultaten, of die besparingen nu het gevolg zijn van minder storingen in het veld, minder geretourneerde voorraad of minder reputatieschade door slechte kwaliteitscontrole.

Voor mijn circuitontwerpen krijg ik aangepaste testmallen gemaakt met de spijkerbedsondes, de kabelboom en het klemmechanisme. Deze testmallen kunnen worden gekoppeld aan een aangepast bord zoals een Arduino of Raspberry Pi en worden bestuurd vanaf een computer. Mijn standaard productietestsysteem bestaat uit zoiets als dit met de kabelboom die is aangesloten op een Arduino met de Firmata-protocolfirmware.

Hierdoor kan ik ermee communiceren in Python met behulp van pyFirmata. Ik kan elke pin instellen als een invoer of uitvoer, de status van elke pin controleren, alle gegevens loggen, een uniek serienummer genereren en een groot PASS- of FAIL-bericht uitvoeren. Wanneer de borden in het fabrieksassemblagehuis zijn, hoef ik iemand alleen maar te leren hoe hij het Python-testscript moet uitvoeren, wachten op de grote PASS of FAIL, en de gegevens worden automatisch opgeslagen samen met statistieken voor die productierun.

SQL:databasebeheertaal

Oh, had ik opslag al genoemd? Dat brengt me bij het onderwerp databases. Eigenlijk is het werken met databases een plezier in Python. Het wordt geleverd met SQLite3 dat, zoals de naam al aangeeft, een lichtgewicht database is op basis van een enkel bestand.

Als je de mogelijkheid wilt hebben om je code naar verschillende databases te migreren, vooral servergebaseerde, dan raad ik een bibliotheek aan met de naam SQLAlchemy. Hierdoor kunt u communiceren met veel van de populaire relationele databases zoals SQLite, PostgreSQL en MySQL zonder dat u uw code hoeft te wijzigen.

Hoe zou een EE een database gebruiken, vraagt ​​u zich af?

Welnu, in de geautomatiseerde testopstelling die ik eerder noemde, gaf het testsysteem een ​​serienummer uit, evenals andere gegevens zoals statistieken, testresultaten en diverse aantekeningen. Deze kunnen allemaal worden opgeslagen in een database die u maakt, zodat er een logboek is dat de geschiedenis bijhoudt van elk bord dat is geproduceerd. Bij het inleveren van een bord kan het serienummer worden opgezocht en kan de historie van het bord worden ingezien. Misschien is het eerder teruggestuurd voor een RMA of is het een keer niet geslaagd voor een test, maar is het bij de volgende poging geslaagd.

Of misschien faalde de op-amp op het bord en toen je een simpele zoekopdracht in je database deed, ontdekte je dat het de vijfde keer was dat een specifieke op-amp faalde in deze productierun. Dergelijke inzichten verbeteren de productie-efficiëntie, de bedrijfsresultaten en de waarde van een ingenieur voor een bedrijf.

Conclusie

Ik zou door kunnen gaan, en dat is echt omdat Python hele nieuwe werelden voor je als ingenieur kan openen.

De basis voor elektrotechnici is nog steeds het ontwerp van de elektronica. Maar tegenwoordig wordt het steeds moeilijker om puur in de wereld van elektronica te leven. We moeten ook firmware schrijven, testen uitvoeren, gegevens verzamelen, betrokken worden bij de productie en forensisch onderzoek doen naar geretourneerde of defecte producten.

Samen met het brood en boter van elektronica en C/C++, kan kennis van Python een praktiserende ingenieur helpen om hun vaardigheden af ​​te ronden, van circuitontwerp tot het spelen van een rol in de volledige levenscyclus van een product.

Dus sluit je bij ons aan als we aan deze serie beginnen en bekijk Python vanuit de context van een elektrotechnisch ingenieur.


Ingebed

  1. De beste programmeertaal voor industriële Internet of Things-toepassingen
  2. Waar wordt het element zirkonium voor gebruikt? | Toepassingen van zirkonium
  3. De 7 best betalende markten voor cloudingenieurs
  4. Cervoz:de juiste flash-opslag kiezen voor industriële toepassingen
  5. Wat kan 5G opleveren voor de connected car?
  6. Hoe de eSIM groei voor operators kan stimuleren
  7. C Programmeertaal PDF:Basishandleiding voor beginners
  8. Weten wanneer je sensoren moet gebruiken voor robotlassen
  9. Wanneer zal Blockchain klaar zijn voor de supply chain?
  10. AI:vind het juiste gebruik voor kunstmatige intelligentie
  11. Zandgiettoepassingen voor de automobielmarkt