Amateur Radio Station R9AL Алексей

Введение

      Для программирования Arduino на Python можно использовать библиотеку PyFirmata.

Установка PyFirmata

      Чтобы установить библиотеку нужно сначала установить менеджер для установки пакетов pip. Он устанавливается при установке Python для Windows. Если он не был установлен автоматически, нужно открыть установщик Python и нажать "Modify" -> "Next" -> "Install". Теперь pip установлен. Чтобы проверить, что он установлен, можно ввести в ваш терминал "pip --version".
Далее нужно ввести в CMD/Командную строку/Terminal/Bash/Терминал в редакторе кода следующую команду:

pip3 install pyfirmata 

Теперь библиотека установлена, и можно писать код.

Инициализирование Arduino

      Для инициализации Arduino нужно перейти в Arduino IDE -> вкладка Edit (Правка) сверху -> Examples (Примеры) -> Firmata -> FirmataStandart

Написание кода

      Основы кода

Для начала нужно объявить библиотеку:

import pyfirama as fr


Далее необходимо посмотреть название COM порта подключенной Arduino в Arduino IDE 2. На Windows это обычно COM3.

Далее определяем Arduino:
arduino_board = fr.Arduino('название порта')


Для определения Digital порта используется команда:
pin = arduino_board.get_pin('d:номер порта:o')

"d" - объявление как digital порт
"o" - установка порта как OUTPUT

Включение digital порта

Для включения digital порта (например, светодиода) можно использовать команду:
pin.write(статус)

pin - название объявленного ранее порта
статус - 1 или HIGH для включения, 0 или LOW - для выключения

Теперь есть возможность включать и выключать digital порты.

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

import pyfirmata as fr # импорт библиотеки
arduino_board = fr.Arduino('COM3') # объявление Arduino платы
led = arduino_board.get_pin('d:13:o') # объявление порта

led_status = int( input('Enter led status: ') ) # опрашивание пользователя о статусе светодиода

if led_status == 1: # если статус от пользователя 1
	led.write(1) # то включить светодиод
if led_status == 0: # если статус от пользователя 0
	led.write(0) # то выключить светодиод



Тема форума: https://forum.msevm.ru/index.php?topic=9





Copyright © R9AL 2023 Все права защищены
Рейтинг@Mail.ru Яндекс цитирования