Когда инженеры-электрики могут использовать Python? Приложения для языка программирования Python
Где EE могут использовать Python в повседневной жизни? Вот примеры приложений, в которых Python выделяется.
Где EE могут использовать Python в повседневной жизни? Взгляните на приложения, в которых Python выделяется.
В предыдущей статье мы задали вопрос «Зачем инженеру вообще изучать Python?»
Теперь давайте обсудим, как Python может быть актуален в работе инженера-электрика.
Инженер по ножам из швейцарской армии
ЭО занимаются не только схемотехникой. Перед нами стоит множество других задач, о которых мы также должны позаботиться. Это программирование микропрограмм, отладка, тестирование прототипов оборудования и программного обеспечения, тестирование производственных образцов, работа над контролем качества и, казалось бы, бесконечные объемы сбора, оценки и анализа данных.
Как Python может помочь со всем этим?
Введите Python, язык швейцарских армейских ножей
Python чрезвычайно хорош как универсальный язык программирования. Такие языки, как HDL (языки описания оборудования, такие как VHDL, Verilog), выполняют одну конкретную задачу, например, синтезируют с оборудованием. C / C ++ работает экономно и очень хорошо подходит для встраиваемого программирования. Но владение языком швейцарского армейского ножа в вашем поясе с инструментами может помочь в решении универсальных задач, которые часто составляют большую часть того, что мы делаем.
Обычно это такие задачи, как тестирование, сбор данных или автоматизация, которые составляют значительную часть рабочего времени инженера. По моему опыту, проектирование занимает всего 5-10% рабочего времени инженера. Остальные 90% или около того расходуются на такие вещи, как исследования, тестирование прототипов, отладка, создание тестовых шаблонов и программ, производственные испытания, контроль качества и, конечно же, устрашающее слово «D»… документация.
Многие вещи, которые предшествуют проектированию (например, исследование частей и реализаций, а также разработка системных архитектур), на самом деле не могут быть автоматизированы. Это задачи, которые делают нас творческими, кустарными инженерами, которыми мы и являемся. Но после того, как дизайн будет реализован (т. Е. Самая интересная часть), предстоит еще много утомить.
Вот некоторые из этих рутинных задач и то, как Python может помочь в их эффективном выполнении.
Обработка файла для отправки файла Gerber
Одним из приложений, наиболее часто нуждающихся в автоматизации, является обработка файлов. Рабочие процессы процессов различаются в зависимости от программного обеспечения, поставщика, клиента и т. Д. В большинстве случаев они включают обработку файлов в том или ином формате. Мой поставщик печатных плат требует, чтобы я отправлял мои файлы Gerber с определенными расширениями файлов, чтобы их сотрудники могли анализировать, проверять и подтверждать их соответствие проектным требованиям.
Поскольку мой инструмент CAD для печатных плат не выводит герберы в требуемом формате, мне нужно изменять расширения файлов каждый раз, когда я отправляю печатную плату. Это не такая уж большая задача, но, поскольку я каждый год перебираю множество дизайнов и пересматриваю их, становится утомительно менять расширения файлов Gerber примерно на 10 разных файлах каждый раз, когда я отправляю дизайн на фабрику.
Более существенный пример обработки файлов - это когда у вас есть файл в одном формате (например, XML), а клиент требует его в другом (например, CSV). Это обычная ситуация, которая обычно была бы огромной головной болью, если бы не препятствием для некоторых клиентов. Но с помощью нескольких библиотек и некоторого простого кода Python можно переключать текстовые файлы между разными форматами.
Автоматизация испытательного оборудования
Одним из больших преимуществ использования Python в качестве EE является управление и автоматизация тестового оборудования. Все чаще встречается недорогое тестовое оборудование с USB-выходами, которое может собирать данные и сохранять их в распространенных форматах, таких как CSV.
Первоначально Python был создан для анализа текста, поэтому он чрезвычайно полезен для анализа огромных объемов текстовых данных для извлечения полезной информации. Например, один из моих портативных осциллографов, которые я беру с собой в поле, - это старый надежный цифровой запоминающий осциллограф Hantek DSO5202P. Это недорогое средство, позволяющее выводить сигналы в виде необработанных данных CSV.
Цифровой запоминающий осциллограф Hantek DSO5202P с интерфейсом USB
Это означает, что вы можете фактически захватить данные из некоторой формы сигнала, проанализировать их, обработать и построить график вывода. Это живые, физические данные, с которыми теперь вы можете поиграть на своем компьютере и посмотреть, как они себя ведут, с вашими цифровыми фильтрами. Более того, вы можете отформатировать его для подачи на генератор сигналов произвольной формы и воссоздать точную форму сигнала для тестирования в цепи.
Интерфейс GPIB на задней панели цифрового мультиметра Keysight. Изображение от Фарнелла
Если вы используете тестовое оборудование, поддерживающее интерфейс GPIB, вы также можете использовать библиотеки Python, такие как pyVISA, для управления им. Раньше вам приходилось покупать установку National Instruments, чтобы делать все это, ограничивая ее более крупными компаниями, которые могли себе это позволить. Теперь вы можете автоматизировать настройку испытательного оборудования по цене компьютера и небольшого количества ноу-хау Python.
Как только вы сможете автоматизировать свое испытательное оборудование, вы почувствуете себя волшебником. Вы можете настроить тесты с обратной связью, например стимулировать тестируемое устройство с помощью генератора сигналов произвольной формы, и собирать данные о его реакции с помощью осциллографа, мультиметра или регистратора данных. Возможности безграничны.
Flask, микрофреймворк на Python
Однако автоматизация испытательного оборудования не ограничивается. В наши дни становится все более распространенным разрабатывать продукты, которые подключаются к какой-либо интернет-службе или взаимодействуют с ней через REST API. По мере разработки оборудования и написания тестовой прошивки вы также можете использовать Python для настройки тестового сервера с REST API для подключения.
Для этого не нужен модный веб-разработчик или изучать другой язык, потому что настроить REST API с помощью среды Python / Flask довольно просто. Вы можете буквально за час настроить собственный REST API.
Как профессиональный инженер-электрик, вы, вероятно, в какой-то момент будете вовлечены в производство, и возможность автоматизировать испытания для производства чрезвычайно полезна. Чем более последовательным и тщательным является тестирование, тем лучше для чистой прибыли компании, будь то экономия за счет меньшего количества отказов на местах, меньшего количества возвращаемых запасов или меньшего ущерба репутации из-за плохого контроля качества.
Для своих схемных проектов я использую специальные испытательные приспособления, изготовленные с использованием щупов с гвоздями, жгутов проводов и зажимного механизма. Эти тестовые стенды могут быть подключены к специальной плате, такой как Arduino или Raspberry Pi, и управляться с компьютера. Моя стандартная производственная тестовая система состоит из чего-то вроде этого с жгутом проводов, подключенным к Arduino, на котором запущена прошивка протокола Firmata.
Это позволяет мне общаться с ним на Python с помощью pyFirmata. Я могу настроить каждый вывод как вход или выход, проверить состояние каждого контакта, записать все данные, сгенерировать уникальный серийный номер и вывести большое сообщение PASS или FAIL. Когда платы находятся на заводе сборки, мне просто нужно научить человека запускать тестовый сценарий Python, ждать большого PASS или FAIL, и данные автоматически сохраняются вместе со статистикой для этого производственного цикла.
SQL:язык управления базами данных
О, я упоминал о хранении? Это подводит меня к теме баз данных. На самом деле работать с базами данных в Python - одно удовольствие. Он поставляется с SQLite3, который, как следует из названия, представляет собой легкую базу данных, основанную на одном файле.
Если вам нужна возможность переноса кода в другие базы данных, особенно серверные, я рекомендую библиотеку под названием SQLAlchemy. Это позволяет вам взаимодействовать со многими популярными реляционными базами данных, такими как SQLite, PostgreSQL и MySQL, без изменения кода.
Вы спросите, а как бы EE использовать базу данных?
Что ж, в автоматизированной настройке тестирования, о которой я упоминал ранее, тестовая система выдает серийный номер, а также другие данные, такие как статистика, результаты тестирования и разные примечания. Все они могут быть сохранены в базе данных, которую вы создаете, так что там будет журнал, отслеживающий историю каждой созданной доски. Когда плата возвращается, можно посмотреть серийный номер и просмотреть историю платы. Возможно, он был ранее возвращен для RMA или один раз не прошел тест, но прошел при следующей попытке.
Или даже, возможно, на плате вышел из строя операционный усилитель, и, когда вы выполнили простой поиск в своей базе данных, обнаружили, что это уже пятый раз, когда конкретный операционный усилитель выходит из строя в этом производственном цикле. Подобные идеи повышают эффективность производства, прибыль и ценность инженера для компании.
Заключение
Я мог бы продолжать и продолжать, и это действительно потому, что Python может открыть для вас как для инженера совершенно новые миры.
Основой для инженеров-электриков по-прежнему является дизайн электроники. Но в наши дни становится все труднее жить исключительно в мире электроники. Мы также должны писать прошивку, проводить тестирование, собирать данные, участвовать в производстве и проводить экспертизу возвращенных или неисправных продуктов.
Наряду с основами электроники и C / C ++, знание Python может помочь практикующему инженеру усовершенствовать свои навыки от проектирования схем до участия в полном жизненном цикле продукта.
Так что присоединяйтесь к нам, когда мы начнем эту серию статей и познакомимся с Python в контексте инженера-электрика.
Встроенный
- Лучший язык программирования для приложений промышленного Интернета вещей
- 7 самых высокооплачиваемых рынков для облачных инженеров
- Cervoz:выбор подходящего флеш-хранилища для промышленных приложений
- Что 5G может предоставить подключенному автомобилю?
- Как eSIM может стимулировать рост операторов
- Язык программирования C PDF:учебник по основам для начинающих
- Знание, когда использовать датчики для роботизированной сварки
- Когда будет готов блокчейн для цепочки поставок?
- ИИ:найдите правильное применение искусственному интеллекту
- Применения для литья в песчаные формы для автомобильного рынка