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

Python взял штурмом мир кодирования. Наряду с появлением этого нового языка, сцена электроники DIY также процветала. Макетные платы и одноплатные компьютеры от таких компаний, как Arduino

и малиновый пи

изменили способ создания домашней электроники. Разве это не было бы здорово, если бы вы могли программировать Arduino с Python?

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

Эта статья покажет вам, как настроить Arduino UNO (хотя любая Arduino-совместимая плата

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

для окончательного двойного опыта DIY.

Настройка вашего Arduino для Python

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

программа и управление arduino с питоном

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

поможет вам все на месте.

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

Python и контроль командной строки

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

смогу вам помочь.

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

программа и управление arduino с питоном

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

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

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

pip install pyfirmata

Все хорошо, он должен установить и выглядеть так:

программа и управление arduino с питоном

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

Как это случилось

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

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

или даже IDE в облаке

,

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

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

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 с питоном

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

программа и управление arduino с питоном

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

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

Если вы используете сервер Linux

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

Ваш ящик для хранения NAS может взять на себя целый новый набор полезных функций.

Чтобы сделать его незабываемым, почему бы не создать собственную коробку NAS

и использовать его для управления своими приборами? Представьте, как здорово было бы нажать play на вашем Plex

сервер и выключить свет автоматически!

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

Ссылка на основную публикацию
Adblock
detector