Как управлять Arduino с помощью Python. Какие библиотеки потребуются для работы с Arduino на Python. Как настроить среду разработки для программирования Arduino на Python. Какие преимущества дает использование Python вместо C++ для Arduino.
Почему стоит использовать Python для программирования Arduino
Arduino традиционно программируется на C++, но использование Python для управления этой популярной платформой имеет ряд преимуществ:
- Более простой и понятный синтаксис Python по сравнению с C++
- Богатая экосистема библиотек Python для работы с данными, построения графиков, машинного обучения и т.д.
- Возможность быстрого прототипирования и отладки кода
- Более высокий уровень абстракции при работе с аппаратной частью
- Удобство интеграции Arduino-проектов с другими Python-скриптами
При этом Python позволяет реализовать практически все те же функции, что и C++ при программировании Arduino. Давайте разберемся, как настроить среду разработки и начать писать код на Python для управления Arduino.
Необходимые инструменты и библиотеки
Для программирования Arduino на Python потребуются следующие компоненты:
- Плата Arduino (например, Arduino Uno или Arduino Nano)
- USB-кабель для подключения Arduino к компьютеру
- Python 3 (рекомендуется версия 3.7 или выше)
- Библиотека pyFirmata для взаимодействия с Arduino
- Библиотека pySerial для работы с последовательным портом
Установить необходимые библиотеки Python можно с помощью pip:
pip install pyfirmata pyserial
Настройка Arduino для работы с Python
Чтобы Arduino могла принимать команды от Python-скриптов, необходимо загрузить на нее специальную прошивку StandardFirmata. Для этого:
- Подключите Arduino к компьютеру через USB
- Откройте Arduino IDE
- Выберите File > Examples > Firmata > StandardFirmata
- Загрузите скетч на плату Arduino
Теперь Arduino готова к взаимодействию с Python через протокол Firmata.
Базовый пример: мигание светодиодом
Давайте напишем простой Python-скрипт для управления встроенным светодиодом на Arduino. Этот пример демонстрирует базовое взаимодействие с платой:
from pyfirmata import Arduino, util
import time
# Укажите порт, к которому подключена Arduino
board = Arduino('/dev/ttyACM0') # Для Linux
# board = Arduino('COM3') # Для Windows
# Настройка пина 13 (встроенный светодиод) на выход
led = board.get_pin('d:13:o')
# Основной цикл
while True:
led.write(1) # Включить светодиод
time.sleep(1) # Пауза 1 секунда
led.write(0) # Выключить светодиод
time.sleep(1) # Пауза 1 секунда
Этот скрипт выполняет следующие действия:
- Импортирует необходимые библиотеки
- Устанавливает соединение с Arduino
- Настраивает пин 13 (встроенный светодиод) на выход
- В бесконечном цикле включает и выключает светодиод с интервалом в 1 секунду
Чтение данных с аналогового входа
Теперь рассмотрим пример чтения данных с аналогового входа Arduino. Это может быть полезно при работе с различными сенсорами:
from pyfirmata import Arduino, util
import time
board = Arduino('/dev/ttyACM0') # Измените на свой порт
# Настройка аналогового входа A0
analog_input = board.get_pin('a:0:i')
# Запуск итератора для чтения входных данных
it = util.Iterator(board)
it.start()
# Основной цикл
while True:
# Чтение значения с аналогового входа
value = analog_input.read()
# Вывод значения (от 0 до 1)
print(f"Аналоговое значение: {value}")
time.sleep(0.1) # Небольшая задержка для стабильности чтения
Этот скрипт демонстрирует:
- Настройку аналогового входа на Arduino
- Использование итератора для асинхронного чтения входных данных
- Непрерывное считывание и вывод значений с аналогового входа
Управление сервоприводом
Python также позволяет легко управлять сервоприводами через Arduino. Вот пример, демонстрирующий поворот сервопривода:
from pyfirmata import Arduino, util, SERVO import time board = Arduino('/dev/ttyACM0') # Измените на свой порт # Настройка пина 9 для работы с сервоприводом servo_pin = board.get_pin('d:9:s') # Функция для поворота сервопривода на заданный угол def set_servo_angle(angle): servo_pin.write(angle) time.sleep(0.015) # Пауза для стабилизации сервопривода # Основной цикл while True: # Поворот сервопривода от 0 до 180 градусов for angle in range(0, 181, 5): set_servo_angle(angle) # Поворот сервопривода от 180 до 0 градусов for angle in range(180, -1, -5): set_servo_angle(angle)
Этот пример показывает:
- Настройку пина для работы с сервоприводом
- Функцию для установки угла поворота сервопривода
- Плавное вращение сервопривода в обоих направлениях
Преимущества использования Python для Arduino
Использование Python для программирования Arduino предоставляет ряд существенных преимуществ:
- Простота синтаксиса: Python известен своим читаемым и лаконичным синтаксисом, что упрощает написание и отладку кода.
- Богатая экосистема библиотек: Python имеет обширную коллекцию библиотек для работы с данными, машинного обучения, визуализации и многого другого, что расширяет возможности Arduino-проектов.
- Быстрое прототипирование: Python позволяет быстро тестировать идеи и вносить изменения в код без необходимости компиляции.
- Интеграция с другими системами: Python легко интегрируется с веб-приложениями, базами данных и другими сервисами, что упрощает создание комплексных проектов.
- Кроссплатформенность: Python-скрипты могут работать на различных операционных системах без изменений.
Ограничения при использовании Python с Arduino
Несмотря на многочисленные преимущества, у подхода программирования Arduino на Python есть и некоторые ограничения:
- Производительность: Python-скрипты выполняются на компьютере, а не на самой Arduino, что может вызвать задержки при работе в реальном времени.
- Зависимость от компьютера: Для работы Python-скрипта Arduino должна быть постоянно подключена к компьютеру.
- Ограниченный доступ к низкоуровневым функциям: Некоторые специфические функции Arduino могут быть недоступны через Python-интерфейс.
- Потребление ресурсов: Python-скрипты могут потреблять больше ресурсов компьютера по сравнению с нативным кодом Arduino.
Заключение
Программирование Arduino с использованием Python открывает новые возможности для разработчиков и энтузиастов электроники. Этот подход сочетает в себе простоту и мощь Python с гибкостью аппаратной платформы Arduino, позволяя создавать сложные и интересные проекты.
Начав с простых примеров, таких как управление светодиодами и чтение данных с сенсоров, вы можете постепенно переходить к более сложным проектам, используя всю мощь экосистемы Python. Будь то домашняя автоматизация, сбор данных или роботизированные системы, комбинация Python и Arduino предоставляет отличную платформу для реализации ваших идей.
Продолжайте экспериментировать, изучать новые библиотеки и техники, и вы сможете раскрыть весь потенциал этого интересного сочетания программного и аппаратного обеспечения.
Anaconda (Python) для вашего Arduino
Anaconda — это бесплатный и открытый дистрибутив языка программирования Python. (и R). Помните, что сегодня это один из наиболее широко используемых языков, который позволяет создавать сценарии, поскольку это интерпретируемый язык. Следовательно, это зависит от интерпретатора Python, чтобы машина могла его понять и обработать. Напротив, скомпилированные языки переводятся в двоичный файл, который может быть понят машиной напрямую без посредника.
Ну, Анаконда Он широко используется в сфере образования и машинного обучения. Но и что вы можете использовать для управления платой Arduino. Да, именно так, вы могли бы использовать язык программирования Python для создания своих программ для управления Arduino без каких-либо проблем и простым способом. Здесь мы объясним, как это сделать, шаг за шагом …
Индекс
- 1 Что такое анаконда
- 2 API для использования с Arduino
Что такое анаконда
Ну, вы уже знаете, что такое дистрибутив Python, и поэтому имеет общие характеристики с официальным Python.
- Это позволяет вам устанавливать и управлять пакетами, зависимостями и средами для науки о данных простым способом.
- Это позволяет использовать различные среды программирования или IDE, в том числе вы можете использовать его с Arduino, Raspberry Pi и т. д.
- Учетная запись инструменты такие как numpy, Numba, Dask, Bokeh, Datashader, Holoviews, Matplotlib и т. д., для анализа и визуализации данных.
- Это позволяет скомпилировать Python в машинный код вместо интерпретации для более быстрого выполнения. То есть он стал бы компилируемым языком.
- Это позволяет писать более сложные, высокопроизводительные и даже переносимые программы между платформами, чтобы переносить ваши проекты куда угодно.
API для использования с Arduino
к чтобы использовать Python для управления Arduino, вам понадобится API. После установки Anaconda в вашей операционной системе вы можете установить API очень просто. Это так же просто, как вызвать anaconda из командной строки, в этот момент приглашение оболочки изменится на приглашение Anaconda, а внутри вы можете использовать следующую команду, и conda позаботится обо всем:
conda install -c auto arduino-python
После установки arduino-python уже вы можете начать использовать его в своих проектах Arduino. Но сначала вы должны подготовить среду для создания новой виртуальной среды для вашего первого проекта Arduino. Для этого в приглашении Anaconda вы можете использовать следующую команду, указав имя и версию языка Python, который вы собираетесь использовать. Например:
conda create --name arduino python=3.7
В настоящее время виртуальная среда «arduino» уже создана для использования с Python версии 3.7. Это далее нужно активировать его:
conda activate arduino
После активации оставьте это окно терминала, не закрывайте его, так как вы будете использовать его позже. Как ты можешь это увидеть подсказка теперь (arduino)> так что вы можете начать. Было бы удобно, если бы вы сейчас установили некоторые пакеты, которые вам понадобятся, например PySerial для связи с платой Arduino. Для этого просто используйте из того же приглашения:
conda install pyserial
Хорошо сейчас загрузите и установите Arduino IDE Если у вас его еще не было, то вы можете перейти к следующему шагу, а именно к написанию кода на Python для управления вашим проектом Arduino. Вы можете написать простую программу или использовать для тестирования примеры, поставляемые с Arduino IDE.
По пример, перейдите в Arduino IDE> Файл> Примеры> Связь> PhysicalPixel и загрузите его на свою плату Arduino, подключенную к вашему ПК. Когда эскиз заработает, вы можете использовать Python так же, как на плате Raspberry Pi с GPIO, чтобы изменить результат. Например, в этом случае включить или выключить светодиод по желанию с помощью простого кода Python.
Для этого вы можете вернитесь в окно терминала и в командную строку Anaconda Сделайте следующее:
> conda activate arduino (arduino) > python Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import serial >>> ser = serial.Serial('COM4', 9800, timeout=1) >>> ser.write(b'H') >>> ser.write(b'L') >>> ser.close() >>> exit() (arduino) >
Это сделает функция ser.write может выключить (L) или включить светодиод (H) по желанию. Затем ser.close () завершается, а exit () завершается. Таким образом, вы можете управлять своими проектами Arduino с помощью Python. Очевидно, это всего лишь пример, но вы можете представить себе гораздо больше случаев …
Вы также можете создавать файлы .py с помощью скриптов Python чтобы иметь возможность выполнять их в любое время без необходимости делать это непосредственно из командной строки anaconda. Например, это другое:
# Ejemplo titileo_LED.py import serial import time # Define el puerto serie # Debes comprobar desde el gestor de dispositivos de tu sistma operativo a qué puerto se corresponde el USB de la placa Arduino, en Windows sería COM4 en nuestro caso ser = serial.Serial('COM4', 9600) def led_on_off(): user_input = input("\n Elige comando: encendido / apagado / quitar : ") if user_input =="encendido": print("LED está encendido...") time.sleep(0.1) ser.write(b'H') led_on_off() elif user_input =="apagado": print("LED está apagado...") time.sleep(0.1) ser.write(b'L') led_on_off() elif user_input =="quitar" or user_input == "q": print("Salir del programa") time.sleep(0.1) ser.write(b'L') ser.close() else: print("Comando no válido") led_on_off() time.sleep(2) # Espera a que el puerto serie inicialice led_on_off()
Простая правда? Кроме того, если вы уже знали язык Python, все это вам будет намного проще. В этом случае вам нужно будет только запустить свой .py и взаимодействовать с интерактивными параметрами этой программы, чтобы вводить команды для включения, выключения или выхода из программы.
Как программировать и управлять Arduino с помощью Python
Python взял штурмом мир кодирования. Наряду с появлением этого нового языка, сцена электроники DIY также процветала. Макетные платы и одноплатные компьютеры от таких компаний, как Arduino и Raspberry Pi изменили способ создания домашней электроники. Разве это не было бы здорово, если бы вы могли программировать Arduino с Python?
Нет лучшего ощущения, чем сочетание двух классных вещей. К сожалению, невозможно напрямую программировать Arduino с помощью Python, так как на платах нет возможности встроенной интерпретации языка. Однако возможно прямое управление USB с помощью программы Python.
Эта статья расскажет вам, как настроить Arduino UNO (хотя любая плата, совместимая с плату здесь), которое будет программироваться и управляться из командной строки с помощью программ Python. Этот учебник написан для Windows 10, но также работает для Mac и Linux. Вы даже можете использовать этот рабочий процесс для управления Arduino напрямую из Raspberry Pi с об окончательном опыте «сделай сам».
Настройка вашего Arduino для Python
Для сегодняшнего проекта мы будем использовать Arduino Uno вместе с интерфейсом pyFirmata для Python. Для этого вы можете использовать практически любую Arduino-совместимую плату, хотя на момент написания интерфейса PyFfirmata поддерживались только Arduino Uno, Mega, Due и Nano. Если вы уже являетесь гуру Python, вы можете добавить свою собственную поддержку плат в pyFirmata — обязательно обновите GitHub, если вы это сделаете!
Если вы этого еще не сделали, установите 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 непосредственно из командной строки без необходимости находиться в каталоге, в котором он был установлен. Это можно сделать, открыв Панель управления , выполнив поиск Среды и нажав Изменить системные переменные среды . В нижней части окна выберите Переменные среды . Это вызовет это окно:
Если вы уже видите PATH в списке, нажмите «Изменить» и добавьте каталог Python и Python / Scripts . Если у вас нет переменной PATH, нажмите new и добавьте ее. Обратите внимание, что Python был установлен прямо в C: \ здесь. Если вы установили его в другом месте, вам нужно изменить его, чтобы отразить это. Нажмите OK, чтобы вернуться в цепочку окон, и вы почти готовы управлять своим Arduino с помощью Python!
Волшебная смазка
Вам понадобится один последний кусочек головоломки, чтобы Python хорошо говорил с нашим Arduino. Это происходит в форме интерфейса Python, называемого pyFirmata . Этот интерфейс, созданный Tino de Bruijn, доступен для загрузки с github, хотя вы можете установить его прямо из командной строки, набрав:
pip install pyfirmata
Все хорошо, он должен установить и выглядеть так:
Если это не удается, перейдите к добавлению Python в раздел Переменная среды и убедитесь, что вы указали правильный путь к каталогу Python.
Как это случилось
Теперь все настроено, и вы можете создать программу на Python для своего Arduino, чтобы протестировать ее. Откройте IDE по вашему выбору. Мы будем использовать Eclipse сегодня, но вы также можете легко использовать любой текстовый редактор или даже IDE в облаке.
Создайте новый скрипт и сохраните его как blink.py . Нарушая традицию со стандартной программой мигающих светодиодов, вы создадите программу, которая запрашивает у пользователя количество раз, которое они хотят, чтобы светодиод мигал перед его выполнением. Это короткая программа, которую вы можете скачать здесь, если хотите перейти прямо к ней, но давайте разберем ее.
Во-первых, вы захотите импортировать то, что вам нужно, из модуля pyFirmata вместе со стандартным модулем Python Time .
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.")
Чтобы светодиод мигал соответствующее количество раз, используйте цикл for . Если вы новичок в 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 инициализирует, запросит у вас номер, а затем мигнет много раз, используя встроенный светодиод.
Вывод программы должен выглядеть так:
Как только вы нажмете Enter после выбранного количества миганий, Arduino выполнит ваши заказы.
Маленькие Начало
Этот проект стал началом взаимодействия между Python и платой Arduino. Этот подход сильно отличается от обычного рабочего процесса загрузки скриптов в сам Arduino, но он открывает совершенно новый способ работы с платформой, особенно если вам нравится язык программирования Python.
Если вы используете сервер Linux дома, этот метод связи с платами Arduino может превратить этот сервер в полноценную систему домашней автоматизации DIY. Комбинируя скрипты Python, управляющие микроконтроллером, со схемой автоматизации «Сделай сам , ваш ящик для хранения NAS может взять на себя целый ряд новых полезных функций.
Чтобы сделать его незабываемым, почему бы не создать свой собственный NAS- и использовать его для управления своими приборами? Представьте, как здорово было бы нажать кнопку воспроизведения на Plex. сервера и имейте света выключите автоматически!
Вы уже управляете Arduino с помощью Python? Есть ли удивительные обходные пути, о которых мы просто еще не знаем? Дайте нам знать в разделе комментариев ниже!
MicroPython с платами Arduino | Документация Arduino
Узнайте о совместимости между популярной реализацией MicroPython и платами Arduino, о том, как настроить среду, а также найдите подробные учебные пособия и полезные ссылки.
АВТОР: Karl Söderby
ПОСЛЕДНЯЯ РЕДАКЦИЯ:
07.03.2023, 09:47
Чтобы загрузить микропрограмму, необходимую для запуска MicroPython на плате Arduino, посетите страницу загрузки Arduino MicroPython.
MicroPython — это реализация языка программирования Python®, которая поставляется с подмножеством стандартной библиотеки Python® и разработана для работы на микроконтроллерах .
Большим преимуществом использования MicroPython является то, что он прост в освоении и имеет отличную документацию для ряда плат. На данный момент существует четыре платы, которые можно использовать вместе с MicroPython, подробнее о них можно прочитать в разделе совместимых плат.
Arduino также поддерживает ветку OpenMV MicroPython, и через OpenMV IDE вы можете установить MicroPython, подключить/отключить плату и загрузить свои скрипты.
Платы Arduino официально поддерживают MicroPython.
Существует большая разница между тем, как мы программируем плату Arduino с помощью Arduino IDE, используя язык программирования Arduino (на основе C++), и как мы программируем ее с помощью MicroPython. Загружая на доску то, что мы называем скетчем, мы сначала компилируем написанный нами скетч, затем загружаем его на доску, заменяя старый скетч новым.
Чтобы использовать MicroPython, нам сначала нужно установить его на плату. Затем мы можем загрузить
Script.py
, как и следующий пример Blink:
1 Импорт Время
2FROM Машина импорта
3
4led = PIN 7 led.on()
8 time.sleep_ms(250)
9 led.off()
10 time.sleep_ms(250)
Поскольку MicroPython уже работает на плате, нам не нужно скомпилируйте и загрузите код, нам нужно только предоставить инструкции (что делается через последовательную связь).
При установке MicroPython на плату он может запускать только сценарии MicroPython, пока мы не «удалим» его. Чтобы вернуть плату в «нормальный режим», нам нужно сбросить загрузчик, что является уникальным процессом для каждой платы. Эти инструкции доступны в разделе совместимых плат в этой статье. По сути, вы должны перевести плату в режим загрузчика и загрузить любой .ino-скетч.
Лаборатория Arduino для MicroPython
Arduino Lab для редактора MicroPython
Arduino Lab for MicroPython — это легкий редактор, разработанный для простого взаимодействия между вашим компьютером и платой. С его помощью вы можете выбрать свой порт, загрузить скрипты, использовать оболочку REPL и многое другое.
- Загрузите Arduino Lab для редактора MicroPython.
- Страница загрузки прошивки MicroPython.
Редактор OpenMV
OpenMV — это платформа, поддерживающая программирование плат Arduino с использованием ответвления MicroPython. Через редактор OpenMV мы можем установить этот форк и загружать скрипты прямо на плату. Есть также ряд примеров, доступных непосредственно в редакторе.
OpenMV — отличная платформа для проектов компьютерного зрения и машинного обучения.
Редактор OpenMV.
Примеры OpenMV
Далее в этой статье вы найдете множество полезных примеров кода, которые помогут вам начать работу.
Вы также можете ознакомиться с полным списком примеров в репозитории OpenMV на GitHub.
Совместимые платы
В настоящее время пять плат Arduino официально поддерживают MicroPython. They are listed below:
- Nano 33 BLE
- Nano 33 BLE Sense
- Nano RP2040 Connect
- GIGA R1 WiFi
- Portenta H7
All of above are also compatible with the OpenMV IDE .
В настоящее время GIGA R1 WiFi не поддерживается OpenMV IDE.
Нано 33 BLE
Nano 33 BLE
Если вам нужна помощь в начале работы с MicroPython на Nano 33 BLE , вы можете ознакомиться с инструкциями ниже:
- Установите MicroPython на Nano BLE.
- Начало работы с OpenMV и Nano 33 BLE
- Nano 33 BLE Руководство по Python® API (набор полезных скриптов).
Чтобы сбросить загрузчик на плате Nano 33 BLE, быстро дважды нажмите кнопку сброса. Это вернет вашу плату к заводским настройкам.
Nano 33 BLE Sense
Nano 33 BLE + BLE Sense
Если вам нужна помощь в начале работы с MicroPython на плате Nano 33 BLE Sense , вы можете ознакомиться с приведенными ниже учебными пособиями:
- Установите MicroPython на плату Nano BLE Sense.
- Начало работы с OpenMV и Nano 33 BLE Sense
- Nano 33 BLE Sense Руководство Python® (набор полезных скриптов).
Чтобы сбросить загрузчик на плате Nano 33 BLE Sense, быстро дважды нажмите кнопку сброса. Это вернет вашу плату к заводским настройкам.
Нано RP2040 Connect
Nano RP2040 Connect
Если вам нужна помощь в начале работы с MicroPython на плате Nano RP2040 Connect , вы можете ознакомиться с руководствами ниже:
Чтобы сбросить загрузчик, вам потребуется замкнуть перемычку между контактами REC и GND и нажать кнопку сброса. Более подробные инструкции доступны в техническом справочнике Nano RP2040 Connect.
ГИГА R1
GIGA R1
Если вам нужна помощь в начале работы с MicroPython на плате Arduino GIGA R1 , вы можете ознакомиться с руководством ниже: в настоящее время находится в экспериментальной фазе.
Портента H7
Portenta H7
Если вам нужна помощь в начале работы с MicroPython на Portenta H7 , вы можете ознакомиться с руководством ниже:
- Установите MicroPython на Portenta H7.
- Начало работы с OpenMV и MicroPython на Portenta H7
Изучение Python®
Поскольку MicroPython является реализацией языка Python®, вы также можете запускать множество сценариев Python® непосредственно на плате. Например, запуск этого скрипта Python® на вашем компьютере также работает при запуске его на вашей доске.
1значение1 = 2
2значение2 = 5
3
4print(значение1 + значение2)
Это означает, что пришло время изучить язык Python® , для которого есть много ресурсов. Мы рекомендуем ознакомиться со следующими ресурсами, чтобы лучше понять язык Python®:
- python.org
- Learnpython.org
- Руководство w3schools по Python®
Документы MicroPython
Посетите документацию MicroPython для понимания как Python® работает на микроконтроллерах.
Обратите внимание, что многие примеры в документации MicroPython не будут работать напрямую с платами Arduino, но дадут представление о том, как Python® может работать на вашей плате.
API
Ниже вы найдете несколько полезных примеров, которые можно использовать с любой платой Arduino. Более подробные сведения о функциях, таких как встроенные датчики, возможность подключения и связь, см. в отдельных руководствах:
- Руководство Nano RP2040 Connect Python® API
- Руководство по API Nano BLE
- Руководство по API Nano BLE Sense
Печать
Простой скрипт, который напечатает
"Hello world!"
каждую секунду.
1время импорта
2
3content = "Привет, мир!"
4
5while True:
6 print(content)
7 time.sleep(1)
Функции
Этот скрипт печатает
"Hello world!"
каждую секунду. Кроме того,
counter_function()
также
1время импорта
2
3content = "Привет, мир!"
4count = 0
5
6def counter_function ():
7 Глобальный счет
8 COUNT = COUNT + 1
10WILE TRUE:
)
13 time. sleep(1)
Цикл for
Простое использование цикла for и функций. Этот скрипт считает до 10, а затем обратно до 0.
1время импорта
2
3content = "Привет, мир!"
4count = 0
5
6def function_increase ():
7 Global Count
8 Count = Count +1
9 Печать (COUNT)
10
11DEF FUNCTION_DECREASE ():
12 Глобальный счет
13 count = count -1
14 print(count)
15
16while True:
17 для x в диапазоне (10):
18 function_increase ()
19 Time.sleep (1)
20
21 для x в диапазоне (10):
22 Function_DecRease ()
23 Время. Записывает высокое и низкое значение на цифровой вывод каждую секунду. Также выводит состояние в терминал.
1из импорта машины Pin
2import utime
3
4p2 = Pin(25, Pin.OUT)
5
6пока True:
7 p2.value(0)
8 print("off")
9 utime. sleep(1)
10 p2.value(1)
11 print("on")
12 utime.sleep (1)
Цифровое чтение (вытягивание вверх)
Чтение цифровых контактов с конфигурацией
PULL_UP.
1из импорта машины Pin
2import utime
3
4p2 = Pin(25, Pin.IN, Pin.PULL_UP)
5
6пока True:
0002 7 print(p2.value())8 utime.sleep(1)
Цифровое чтение (вытягивание вниз)
Чтение цифровых выводов с конфигурацией
PULL_DOWN.
1 -й машинный штифт для импорта
2IMPORT UTIME
3
4P2 = PIN (25, PIN.IN, PIN.PULL_DOWN)
5
6.
8 utime.sleep(1)
Аналоговое чтение
Чтение аналогового вывода и вывод его на терминал с задержкой 0,5 секунды.
1машина импорта
2время импорта
3
4# Обязательно следуйте карте GPIO для используемой платы.
5# Контакт 29 в данном случае является контактом «A3» на Nano BLE / BLE Sense
6adc_pin = machine.Pin(29)
7adc = machine.ADC(adc_pin)
8
9while True:
10 чтение = adc.read_u16()
11 print("ADC: ",чтение)
12 time.sleep_ms(500)
PWM
Записать конкретную обязанность на определенный контакт.
1-й машинный штифт для импорта, PWM, ADC
2
3PWM = ШИН (PIN (15)
4DUTY = 30000 #Между 0-65000
5
6PWM.FREQ (1000)
70003
6PWM.FREQ (1000)
8while True:
9 pwm.duty_u16(duty)
Delay
Чтобы использовать простую задержку, мы можем использовать модуль
time. Если мы хотим записать за секунд , мы можем использовать
time.sleep(secs), а для миллисекунд
time. sleep_ms(milliseconds).
1 ИМПОРТ ВРЕМЯ
2
3While True:
4 Время. пример простого прерывания, в котором используется кнопка подтягивания и светодиод.
Программа мигает светодиодом, пока не будет нажата кнопка. Кнопка привязана к прерыванию, которое выключает светодиод на 3 секунды.
1import machine
2from machine import Pin
3import time
4
5interrupt = False
6
7def callback(pin):
8 global interrupt
9 interrupt = True
10
11led = Pin(6, Pin.OUT)
12
13button = machine.Pin(25, machine.Pin.IN, machine.Pin.PULL_UP)
14
IRQ_FALLING, обработчик=обратный вызов)
16
17 Как верно:
18
19 LED.ON ()
20 ВРЕМЯ. SLEEP (0,5)
21 LED.OFF ()
22 ВРЕМЯ. если прерывание:
25 состояние = machine.disable_irq()
26 machine. enable_irq(состояние)
27 led.off()
28 print("Прерывание: светодиод выключен на 3 секунды!")
29 время .sleep(3)
30 прерывание = False
Использование Python с Arduino | Учебники по технологиям
Эта схема сочетает в себе простоту Arduino и мощь Python.Эта серия уроков научит вас, как вывести ваши проекты Arduino на новый уровень, заставив Arduino взаимодействовать с языком программирования Python. Python — это бесплатная программа, которую вы можете скачать. Поскольку вы уже изучили основы программирования на наших первых 20 уроках Arduino, изучение Python будет совсем несложным делом!
Python с Arduino УРОК 1: Этот урок знакомит с концепциями и показывает классный проект, который я сделал, объединив Arduino и Python.
Python с Arduino УРОК 2: В этом уроке показано, как установить бесплатные программные пакеты и библиотеки, чтобы Arduino и Python могли без проблем работать вместе.
Python с Arduino УРОК 3: В этом уроке показано, как создать свой собственный виртуальный мир на Python с помощью библиотеки Vpython. Затем вы можете динамически обновлять свой виртуальный мир, чтобы он соответствовал тому, что происходит в реальном мире. Демонстрация основана на измерении расстояний с помощью Arduino и ультразвукового датчика HC-SR04.
Python с Arduino УРОК 4: Этот урок покажет вам, как расширить ваш виртуальный мир, включив в него датчик расстояния и датчик цвета. Это создает сцену, в которой расстояние до цели и цвет цели динамически обновляются, чтобы отслеживать, что происходит в реальном мире.
Python с Arduino УРОК 5: В этом уроке показано, как построить свой виртуальный мир на Python, используя библиотеку vPython и динамически обновляя ее на основе потоков данных от Arduino.
Python с Arduino УРОК 6: В этом уроке показано, как шаг за шагом установить PIP. Многие из будущих уроков потребуют от вас наличия PIP на вашем компьютере, поэтому вам нужно сейчас сделать паузу и установить его. Я предлагаю посмотреть видео в уроке и следовать ему, чтобы правильно установить PIP.
Python с Arduino УРОК 7: Мы хотим добавить в наши проекты мощные графические возможности, поэтому нам нужно скачать и установить библиотеку matplotlib. Этот урок проведет вас через это шаг за шагом.
Python с Arduino УРОК 8: В этом руководстве представлено простое пошаговое введение в Matplotlib для создания графиков и диаграмм в Python.
Python с Arduino УРОК 9: В этом руководстве показано, как считывать температуру и давление с помощью датчика Adafruit BMP180. В этом уроке датчик подключается, а Arduino запрограммирована на считывание данных с него, а затем на следующем уроке мы начнем потоковую передачу и графическое отображение данных в реальном времени.
Python с Arduino УРОК 10: Чтобы отображать оперативные данные в Python с помощью matplotlib, нам нужна другая библиотека, называемая drawow. В этом руководстве показано, как установить drawow.
Python с Arduino. УРОК 11. В этом уроке показано, как отображать данные в режиме реального времени с Arduino с помощью Python и Matplotlib. Это позволяет нам отображать данные в реальном времени полезным и информативным способом.
Python с Arduino УРОК 12. В этом уроке рассматривается математика, необходимая для расчета изменения высоты в зависимости от изменения давления. Мы делаем упрощающее предположение о постоянной температуре.
Python с Arduino УРОК 13. В этом уроке приведены пошаговые инструкции о том, как рассчитать высоту на основе показаний датчика давления BMP180. Затем данные отображаются в режиме реального времени с использованием Matplotlib 9.0003
Python с Arduino. УРОК 14. Этот урок представляет собой введение в использование радиомодулей Xbee для беспроводной связи. Это позволяет вам общаться между Arduino и Python по беспроводной сети. Этот вводный урок охватывает необходимое оборудование.
Python с Arduino УРОК 15: В этом уроке показано, как программировать радиомодули Xbee и использовать их с Arduino для беспроводной передачи данных на Python на ПК.
Python с Arduino УРОК 16: Простая конфигурация клиент-сервера через Ethernet.