Ардуино плюс Python

Урок 10. Загрузка скетча Firmata

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

Эскиз доступен во встроенных примерах Arduino IDE. Чтобы открыть его, откройте меню «Файл» (File), затем «Примеры» (Examples), затем Firmata и, наконец, StandardFirmata:

Скетч будет отображен в новом окне IDE. Чтобы загрузить его в Arduino, вы можете выполнить те же действия, что и ранее:

  1. Подключите USB-кабель к ПК.
  2. Выберите соответствующую плату и порт в IDE.
  3. Нажмите "Загрузить".

После окончания загрузки вы не заметите никаких действий на Arduino. Для управления им все равно нужна программа, которая может связываться с платой через последовательное соединение.

Для работы с протоколом Firmata в Python вам понадобится пакет pyFirmata, который вы можете установить с помощью pip:

$ pip install pyfirmata

После завершения установки вы можете запустить аналогичное приложение Blink, используя Python и Firmata:

import pyfirmata
import time

board = pyfirmata.Arduino('/dev/ttyACM0')

while True:
    board.digital[13].write(1)
    time.sleep(1)
    board.digital[13].write(0)
    time.sleep(1)

Вот как работает эта программа. Вы импортируете pyfirmata и используете его для установления последовательного соединения с платой Arduino, которая представлена объектом board в строке 4. Вы также конфигурируете порт в этой строке, передавая аргумент pyfirmata.Arduino(). Вы можете использовать Arduino IDE, чтобы найти порт.

board.digital - это список, элементы которого представляют цифровые контакты Arduino. Эти элементы имеют методы read() и write(), которые будут читать и записывать состояние выводов. Как и большинство встроенных программ для устройств, эта программа в основном состоит из бесконечного цикла:

  • В строке 7 включен цифровой вывод 13, который включает светодиод на одну секунду.
  • В строке 9 этот вывод отключен, что приводит к выключению светодиода на одну секунду.

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