Arduino вместе с Python

Prosta
Offline
Зарегистрирован: 25.08.2021


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

       

 

 

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

Prosta
Offline
Зарегистрирован: 25.08.2021
b707
Offline
Зарегистрирован: 26.05.2017

Prosta, прежде чем постить какую-то бредятину, стоило почитать правила оформления постов на форуме

kalapanga
Offline
Зарегистрирован: 23.10.2016

Мне кажется, что питон и ардуино в чём-то родственники ну или товарищи по несчастью! Для многих что там, что сям вся "разработка" заключается в том "как пройти в библиотеку?". Точнее - "как найти библиотеку?" :)