Arduino + Python 3
16.01.2021(Всего голосов: 0)
Нам понадобятся:
1) Arduino (Uno, Nano или Mega);
2) Любой потенциометр (лучше два).
Для программирования:
1) Среда разработки Python (у меня PyCharm);
2) Среда разработки Arduino IDE.
Коммутируем потенциометр с платой согласно схеме:
Посредством программы Arduino IDE загружаем скетч в плату Arduino:
int pin = A0;
int str;
void setup() {
Serial.begin(9600); //инициализируем работу порта на скорости 9600 бод
pinMode(pin, INPUT); //пин А0 инициализируем в качестве входа
Serial.println("Hi! I am Arduino"); //сигнал в порт о готовности к работе
}
void loop() {
str = analogRead(pin); //считываем сигнал с пина А0 (от 0 до 724 (3V3) или 1023 (5V))
Serial.println(str); //отправляем числовое значение сигнала в порт
}
Загружаем код в среду разработки Python (перед запуском необходимо выбрать порт, к которому подключен модуль, у меня СОМ4):
#для взаимодействия с портом
import serial
#для использования функций времени
import time
#выбор порта и частоты обмена данными
ArduinoSerial = serial.Serial('COM4', 9600)
#ждем 2 секунды для стабилизации
time.sleep(2)
#вывод данных из порта в консоль
print(ArduinoSerial.readline().decode().strip())
while 1:
#прием и декодирование строки (сигнала с потенциометра)
line = ArduinoSerial.readline()
print(line.decode().strip())
Крайние ноги второго потенциометра также вставляем в 3V3 (можно и в 5V - сути не меняет) и GND, а среднюю - в А1.
Загружаем скетч в плату Arduino:
int pin1 = A0;
int pin2 = A1;
int str1, str2;
void setup() {
Serial.begin(9600);
pinMode(pin1, INPUT);
pinMode(pin2, INPUT);
}
void loop() {
str1 = analogRead(pin1);
str2 = analogRead(pin2);
Serial.println((String)str1 + " " + str2);
}
Загружаем код в среду разработки Python:
import serial
import time
ArduinoSerial = serial.Serial('COM4', 9600)
time.sleep(2)
while 1:
line = ArduinoSerial.readline().decode().strip()
#разделение строки по пробелу
mas = line.split()
print(mas[0])
print(mas[1])