Как программировать и управлять Arduino с помощью Python

Как программировать и управлять Arduino с помощью Python

Python штурмом захватил мир программирования. Наряду с появлением этого нового языка процветала и сфера DIY-электроники. Платы для разработки и одноплатные компьютеры от таких компаний, как Ардуино и Raspberry Pi изменили способ создания домашней электроники. Разве не было бы замечательно, если бы вы могли запрограммировать Arduino с Python?





vt-x включен, но не работает

Нет ничего лучше, чем объединить две крутые вещи. К сожалению, напрямую запрограммировать Arduino на Python невозможно, так как платы не имеют возможности встроенной интерпретации языка. Однако возможно прямое управление через USB с помощью программы Python.





В этой статье будет показано, как настроить Arduino UNO (хотя здесь может работать любая совместимая с Arduino плата) для программирования и управления из командной строки с помощью программ Python. Это руководство написано для Windows 10, но также работает для Mac и Linux. Вы даже можете использовать этот рабочий процесс для управления Arduino непосредственно с Raspberry Pi, чтобы получить незабываемые впечатления от самостоятельной работы.





Настройка Arduino для Python

В сегодняшнем проекте мы будем использовать Arduino Uno вместе с интерфейсом pyFirmata для Python. Для этого вы можете использовать практически любую Arduino-совместимую плату, хотя на момент написания только Arduino Uno, Mega, Due и Nano поддерживаются интерфейсом pyFfirmata. Если вы уже являетесь гуру Python, вы можете добавить поддержку собственных плат в pyFirmata - обязательно обновите их GitHub, если вы это сделаете!

Если вы еще этого не сделали, установите Arduino IDE. Если вы новичок в мире микроконтроллеров, наш руководство по Arduino для новичков поможет вам все поставить на свои места.



Подключите плату Arduino и откройте IDE. Убедитесь, что вы выбрали правильную плату и порт. Инструменты меню. Загрузите StandardFirmata пример эскиза и загрузите его на доску. Это позволит вам управлять Arduino напрямую, если он подключен к компьютеру через USB. Если эскиз загружен на вашу доску без ошибок, вы готовы двигаться дальше.

Python и управление из командной строки

Мы будем использовать Python 3.4 для управления нашим Arduino, поскольку модуль, который вы будете устанавливать, определяет его как последнюю совместимую версию. Любая предыдущая версия должна работать нормально, а более поздние версии, как сообщается, работают. Вы можете скачать Python 3.4 для Windows 10 с Фонд программного обеспечения Python сайт. Если вы хотите запустить несколько версий Python, наше руководство по виртуальным средам Python сможет вам помочь.





После того, как вы установили Python, мы хотим добавить его в системную переменную PATH. Это позволит нам запускать код Python непосредственно из командной строки без необходимости находиться в каталоге, в котором он был установлен. Вы можете сделать это, открыв Панель управления , поиск Среда и нажмите на Отредактируйте переменные системной среды . Внизу окна выберите Переменные среды . Это вызовет это окно:

Если ты уже видишь ДОРОЖКА в списке нажмите 'Изменить' и добавьте свой Python а также Python / Скрипты каталог. Если у вас нет переменной PATH, нажмите «Создать» и добавьте ее. Обратите внимание, что Python был установлен непосредственно в C: здесь. Если вы установили его в другом месте, вам необходимо изменить его, чтобы отразить это. Нажмите OK, вернувшись в цепочку окон, и вы почти готовы управлять своим Arduino с помощью Python!





Волшебная смазка

Вам понадобится еще один последний кусочек головоломки, чтобы Python хорошо разговаривал с нашим Arduino. Это происходит в форме интерфейса Python под названием pyFirmata . Этот интерфейс, созданный Тино де Брюйном, является доступно для скачивания из github, хотя вы можете установить его прямо из командной строки, набрав:

pip install pyfirmata

Если все в порядке, он должен установиться и выглядеть следующим образом:

Если это не удается, перейдите к добавлению Python в Переменная среды раздел и убедитесь, что вы указали правильный путь к своему каталогу Python.

Как сделать это

Теперь все настроено, и вы можете создать программу Python для своего Arduino, чтобы протестировать ее. Откройте IDE по вашему выбору. Мы будем использовать Затмение сегодня, но с таким же успехом можно использовать любой текстовый редактор или даже среду IDE в облаке.

Создайте новый скрипт и сохраните его как blink.py . Нарушая традицию со стандартной программой мигания светодиода, вы собираетесь создать программу, которая запрашивает у пользователя количество миганий светодиода перед ее выполнением. Это короткая программа, которую вы можете Скачать здесь если вы хотите сразу перейти к делу, но давайте разберемся с этим.

Во-первых, вы захотите импортировать то, что вам нужно, из pyFirmata модуль вместе со стандартным Python Время модуль.

как разблокировать iphone 7 с паролем
from pyfirmata import Arduino, util
import time

Теперь вам нужно настроить плату Arduino. В этой статье предполагается, что вы используете Arduino uno плата, хотя поддерживаются несколько других плат Arduino. Обратитесь к pyFirmata github для получения подробной информации о поддержке платы.

Проверьте, какой COM-порт вы используете в Arduino IDE, и введите его в свой код в качестве переменной доска .

board = Arduino('COM3')

Теперь вы настроите пользовательскую подсказку. Те, кто знаком с Python, узнают здесь все. Вы выводите вопрос на экран, используя Вход функция и сохраните ответ как переменную. После того, как пользователь ввел номер, программа сообщает, сколько раз мигнет светодиод.

loopTimes = input('How many times would you like the LED to blink: ')
print('Blinking ' + loopTimes + ' times.')

Чтобы светодиодный индикатор мигал нужное количество раз, используйте для цикла . Если ты новичок в Python , позаботьтесь об отступах, так как в отличие от других языков пробелы являются частью синтаксиса. Обратите внимание, что вывод 13 - это встроенный светодиод для Arduino Uno, вам нужно будет изменить его, если ваша плата отличается.

for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)

Вы бросите loopTimes здесь можно преобразовать в целое число, так как ввод от пользователя будет автоматически сохранен в виде строки. В этой простой демонстрации мы предполагаем, что пользователь вводит числовое значение. Любая другая запись, например «восемь», вызовет ошибку.

Сохраните свой сценарий и откройте Командная строка .

Мигающие огни и другие откровения

Все готово к работе, все, что вам нужно сделать, это перейти туда, где находится скрипт, и запустить его. Сделайте это, набрав cd [путь к каталогу скрипта] а затем набрав python blink.py .

Если все в порядке, ваша программа запустится с небольшой задержкой, когда Arduino инициализируется, запросит номер, а затем многократно мигнет с помощью встроенного светодиода.

Вывод программы должен выглядеть так:

Как только вы нажмете клавишу ввода после выбранного количества миганий, Arduino должен выполнить ваши заказы.

Маленькое начало

Этот проект положил начало общению между Python и платой Arduino. Этот подход сильно отличается от обычного рабочего процесса загрузки скриптов в саму Arduino, но он открывает совершенно новый способ работы с платформой, особенно если вам нравится язык программирования Python.

Если вы используете Linux сервер дома этот метод связи с платами Arduino может превратить этот сервер в полноценную систему домашней автоматизации DIY. Объединив сценарии Python, управляющие микроконтроллером, со схемой автоматизации DIY, ваш ящик для хранения NAS может взять на себя совершенно новый набор полезных функций.

как проверить видеокарту на пк

Почему бы и нет, чтобы сделать его идеальным самостоятельным занятием? построить свой собственный NAS-ящик и использовать его также для управления вашей бытовой техникой? Представьте, как круто было бы нажать кнопку воспроизведения на сервере Plex, и свет погаснет автоматически!

Вы уже управляете Arduino с помощью Python? Есть ли удивительные обходные пути, о которых мы еще не знаем? Дайте нам знать в разделе комментариев ниже!

Делиться Делиться Твитнуть Эл. адрес 5 советов, как зарядить ваши машины VirtualBox Linux

Устали от низкой производительности виртуальных машин? Вот что вам нужно сделать, чтобы повысить производительность VirtualBox.

Читать далее
Похожие темы
  • Сделай сам
  • Программирование
  • Ардуино
  • Домашняя автоматизация
  • Python
Об авторе Ян Бакли(Опубликовано 216 статей)

Ян Бакли - независимый журналист, музыкант, исполнитель и видеопродюсер, живущий в Берлине, Германия. Когда он не пишет или на сцене, он возится с электроникой или кодом своими руками в надежде стать безумным ученым.

Ещё от Ian Buckley

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться