Найти в Дзене
Prosta Programming

Ардуино на Пайтон, примеры

Доброго времени суток форумчане, в этой статье я расскажу как управлять ардуино с помощью python.  - Как происходит управление ардуино с помощью python? На самом деле мы просто отправляем команды на наш последовательный порт, ардуино получает информацию и выполняет команду. - Для чего это надо? Вы можете управлять пинами ардуино и получать информацию с датчиков. Можно сделать бота для какой-то социальной сети и  через бота вы сможете управлять ардуино. Есть и другие варианты применения, например создание графиков из данных датчика, запись данных в файл, автоматическое включение света когда кто-то прошёл перед веб камерой компьютера или ноутбука, так же можно использовать ардуино с кнопками как доп. клавиатура. Вообщем применений много, но главное имеет идею. Итак есть три более распространённых пайтон модулей, это: pyfirmata, pyserial, ArduinoPyApi. На самом деле все эти модули почти похожи, но есть различия в написании кода и в способе работы.  Давайте рассмотрим как мы можем

Доброго времени суток форумчане, в этой статье я расскажу как управлять ардуино с помощью 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
    

Все подробности об установке и использовании каждого модуля тут 👉

Arduino Python Api 



Pyserial  

Pyfirmata