Отправка команд на Arduino через Python
Отправляю команду на рутина для выставления всех сервоприводов в положение 90 градусов, ответа от устройства никакого. До этого писал на Arduno IDE всё работало.
import time
import datetime
from Project.Station.Connection.close import close_connection
from Project.Station.Connection.establishing import establishing_connection
def station_calibration():
connection = establishing_connection()
left_servos = [30, 32, 34, 36, 38, 40]
right_servos = [31, 33, 35, 37, 39, 41]
for servo in right_servos:
command = f"#{servo}P1500T1000\n"
connection.write(command.encode())
print(f"[{datetime.datetime.now()}] Отправлена команда: {command.strip()}")
for servo in left_servos:
command = f"#{servo}P1500T1000\n"
connection.write(command.encode())
print(f"[{datetime.datetime.now()}] Отправлена команда: {command.strip()}")
time.sleep(2)
close_connection(connection)
Ответы (1 шт):
Автор решения: Revolucion for Monica
→ Ссылка
Конечно, вот как вы можете отправлять команды на Arduino из Python:
import serial
import time
def send_commands():
# Укажите последовательный порт и скорость передачи данных (baudrate)
port = '/dev/ttyUSB0' # Замените на правильный последовательный порт вашей Arduino
baudrate = 9600 # Убедитесь, что это тот же, что и в вашем скетче Arduino
# Инициализация последовательного соединения
ser = serial.Serial(port, baudrate)
# Подождать, пока последовательное соединение будет готово
time.sleep(2)
# Отправка команд сервоприводам
left_servos = [30, 32, 34, 36, 38, 40]
right_servos = [31, 33, 35, 37, 39, 41]
for servo in right_servos:
command = "#{}P1500T1000\n".format(servo)
ser.write(command.encode())
print("Отправлено: {}".format(command.strip()))
for servo in left_servos:
command = "#{}P1500T1000\n".format(servo)
ser.write(command.encode())
print("Отправлено: {}".format(command.strip()))
# Немного подождать перед закрытием соединения
time.sleep(2)
# Закрыть последовательное соединение
ser.close()
# Вызов функции для отправки команд
send_commands()
Этот код использует библиотеку serial для установления соединения с Arduino через последовательный порт и отправки команд. Убедитесь, что вы правильно указали порт (port) и скорость передачи данных (baudrate), которые соответствуют вашему скетчу Arduino.