ВВЕДЕНИЕ
Каждый аппаратный инженер и энтузиаст IOT взаимодействовал с рядом микроконтроллеров и встроенных устройств, наиболее распространенным является микроконтроллер Arduino. Ну, это хорошо подходит для нубов, которые хотят забрать ноги мокрыми, но единственное предостережение – это гибридный язык C/C ++, используемый в Arduino IDE, так как большинство Devs находит его совсем запугивающим. Сегодня я собираюсь доставить вас с помощью кроличьей дыры со мной, показывая вам, как использовать Python, чтобы запрограммировать ваш микроконтроллер Arduino.
ТРЕБОВАНИЯ
Для начала вам понадобится следующее оборудование:
- Arduino (UNO, MEGA2560 … и т. Д.)
- USB-кабель Arduino
- Светодиоды
- Нажать кнопку
- 10Комм резисторов
Ну, единственное требование к программному обеспечению является Arduino IDE.
ОБЪЯСНЕНИЕ
Теория позади того, что мы пытаемся сделать, это общение с Arduino, используя последовательное соединение между нашим компьютером и самим микрокомитетом. Есть ряд способов, которыми это может быть достигнуто; В Python например, Pyserial Библиотека может пригодиться, эффективно захватывая последовательные данные, передаваемые между доской и компьютером. Но это статья на другой день.
В этой статье мы собираемся использовать Фирмы Протокол, который уже доступен по умолчанию в Post-установке Arduino IDE. Этот протокол устанавливает серийный формат связи, который позволяет читать цифровые и аналоговые входы, а также отправлять информацию на цифровые и аналоговые выходы.
Загрузка эскиза фирмы
Давайте погрузимся вправо и посмотрим, что мы можем сделать. Эскиз фирмы (как я уже говорил ранее), уже доступен в Arduino IDE, так на рабочем столе, запустите IDE и перейдите к Файл тогда Примеры тогда Фирмы и нажмите на StandardFirmata эскиз. Альтернативное окно будет открыто, на котором вы должны выбрать соответствующий тип и порт доски после подключения доски на компьютер через USB-кабель. Составьте эскиз и загрузка.
Python Fun.
Теперь давайте поиграм с некоторым кодом Python. Вам нужно будет установить Pyfirmata
Пакет через менеджер пакета Python, пипс
. Теперь для * NIX Systems I.E (MacOS/Linux) Запустите свой терминал и для пользователей Windows, запустите вашу командную строку, а затем запустите следующую команду: Пип Установите Pyfirmata
Вы должны получить какой-то результат, похожий на это …
После установки запустите свой любимый текстовый редактор в моем случае, я напишу код Python на версию открытого исходного кода VS. Теперь мы напишем несколько простых эквивалентных кода Python Equivalent Blinke Sketch (Hello World arduino😉).
Теперь давайте взломать каждый бит кода (PAL PERENTED😉). Таким образом, мы впервые импортируем библиотеку, нам нужно установить последовательное соединение между нашей доской и компьютером. Наш план состоит в том, чтобы контролировать встроенный светодиод, подключенный к PIN 13 на доске, поэтому будет осторожно использовать модуль времени, чтобы контролировать, как долго мы включаем/выключаем светодиод.
Поскольку связь находится через последовательный протокол, нам нужно определить наш порт. Вы можете получить эту информацию от Arduino IDE и для моего случая, как это предусмотрено выше. Для пользователей Windows это может быть COMX
где X – любое целое число. Затем мы создали нашу доску ( babboard
) и передайте порт как аргумент для Pyfirmata. Arduino ()
Следующим шагом является запустить основной блок кода в цикле, как в синтаксизе Arduino. Так что давайте будем использовать в то время как
Цикл для этого … доска. Digital
Является ли списком Python, содержащий все цифровые контакты Arduino, но в нашем случае мы используем PIN 13. .write ()
Метод используется для записи состояния на цифровой контакт. Состояние представлено как 1 или 0 для Высокий
или Низкий
соответственно. Первый представляющий 5 В и последнее 0V, следовательно, высокий или низкий. Высокий
Состояние предоставляет 5 В светодиодам и включается в то время как Низкий
Государство предоставляет 0 В, следовательно, выключение его. .sleep ()
Метод из время
Модуль отвечает за обработку, как долго требуется каждое действие; Так же, как задержка ()
Функция в синтаксизе Arduino.
Запуск кода
Теперь мы можем запустить код, запустив терминал и выполнение: Python Pyduino.py.
Однако вы должны обратить внимание, что правильный синтаксис: python [filename.py]
Теперь не так просто. Давайте еще глубже, добавив кнопку, которая изменит состояние нашего цифрового штифта …
Больше практического опыта
Сначала подключите нашу цепь следующим образом: –
Кнопка подключена к тому, чтобы понизить резистор 10K, чтобы убедиться, что напряжение полностью отстраняется до 0 В на цифровом контакте.
Наш код будет немного изменять, и это будет так же просто, как и другой:
Мы знаем строки с 1 по 5. Линия 6 используется для определения итератора, который постоянно читает состояние наших цифровых контактов. Линия 7 только мнениямирует или активирует его. Линия 9 Явно объявляет цифровой PIN-код 10 как вывод через Pyfirmata. Вход
метод. Это необходимо, поскольку использование конфигурации по умолчанию для цифровых контактов является как вывод и не вводится.
Затем мы ходим в нашу петлю и определите наш выключатель. Остальное так же интуитивно понятно, как он получает. Последний шаг, очевидно, работает наш сценарий Python и Voila! Некоторые действия.
ЗАКЛЮЧЕНИЕ
Микроконтроллеры и встроенные устройства находятся на повышении многочисленных приложений, особенно в Интернете вещей (IOT). Энтузиасты, хоббисты, инженеры и другие разработчики получают возможность изучить многочисленные возможности, создающие проекты и содействуя другим. Для болельщиков Arduino эта статья только верхушка айсберга. Путешествие является глубоким темным кроликом, что, как только вы попадете в себя, нет поворота. Это также относится к программистам Python, которые просто не любят C/C ++. Для тех, кто интересуется узнать больше, есть отличная документация на Pyfirmata здесь Это будет иметь большое пользование. Для тех, кто хочет, чтобы изгнать IOT в Python, то есть другие микроконтроллеры, такие как Микропитон и известный Raspberry Pi . Но детские шаги первые😅; Мы все начинаем от где-то.
Во всяком случае, это все сейчас. Надеюсь, тебе понравилось. Спасибо.
Оригинал: “https://dev.to/williamotieno/using-python-for-arduino-projects-2np”