Arduino вместе с Python
- Войдите на сайт для отправки комментариев
Доброго времени суток форумчане, в этой статье я расскажу как управлять ардуино с помощью python.
- Как происходит управление ардуино с помощью python?
На самом деле мы просто отправляем команды на наш последовательный порт, ардуино получает информацию и выполняет команду.
- Для чего это надо?
Вы можете управлять пинами ардуино и получать информацию с датчиков. Можно сделать бота для какой-то социальной сети и через бота вы сможете управлять ардуино. Есть и другие варианты применения, например создание графиков из данных датчика, запись данных в файл, автоматическое включение света когда кто-то прошёл перед веб камерой компьютера или ноутбука, так же можно использовать ардуино с кнопками как доп. клавиатура. Вообщем применений много, но главное имеет идею.
Итак есть три более распространённых пайтон модулей, это: pyfirmata, pyserial, ArduinoPyApi. На самом деле все эти модули почти похожи, но есть различия в написании кода и в способе работы.
Давайте рассмотрим как мы можем мигнуть светодиодом разными способами.
Pyfirmata
Для использования нам надо скачать библиотеку в Arduino ide firmata и pyfirmata для пайтона: pip install pyfirmata
from pyfirmata import util, Arduino
import time
board = Arduino('/dev/ttyACM0')
it = util.Iterator(board)
it.start()
led_13 = board.get_pin('d:13:o')
led_13.write(1)
time.sleep(2)
led_13.write(0)
Arduino Python api
Нам надо загрузить скетч в ардуино, скачиваем репозиторий (там есть файл для ардуино и есть примеры на пайтон) https://github.com/mkals/Arduino-Python3-Command-API
from Arduino import Arduino
import time
board = Arduino() # plugged in via USB, serial com at rate 115200
board.pinMode(13, "OUTPUT")
board.digitalWrite(13, "LOW")
time.sleep(1)
board.digitalWrite(13, "HIGH")
Pyserial
С этим модулем всё по-другому, мы сначала пишем код в Arduino ide, а потом просто отправляем какой-то текст на порт, а ардуино проверяет этот текст и выполняет какие-то действия. Скачиваем вот так: pip install pyserial
void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
}
void loop()
{
while (Serial.available())
{
data = Serial.read();
}
if (data == '1')
digitalWrite (LED, HIGH);
else if (data == '0')
digitalWrite (LED, LOW);
}
import serial #for Serial communication
import time #for delay functions
board = serial.Serial('com4',9600)
arduino.write('1') #send 1
time.sleep(1)
arduino.write('0') #send 0
Все подробности об установке и использовании каждого модуля тут
https://youtube.com/playlist?list=PLtP-fYSM8Zq9KYD57VykWqolte7eJKT8B
Prosta, прежде чем постить какую-то бредятину, стоило почитать правила оформления постов на форуме
Мне кажется, что питон и ардуино в чём-то родственники ну или товарищи по несчастью! Для многих что там, что сям вся "разработка" заключается в том "как пройти в библиотеку?". Точнее - "как найти библиотеку?" :)