#include <Servo.h>
Servo s;
char cmd = 'S';
void setup() {
Serial.begin(9600);
s.attach(5);
s.write(90);
pinMode(8, OUTPUT); pinMode(9, OUTPUT);
pinMode(10, OUTPUT); pinMode(11, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
cmd = Serial.read();
// Выполняем действия только в момент прихода новой команды
if (cmd == 'F') {
s.write(90);
digitalWrite(8, HIGH); digitalWrite(9, HIGH);
digitalWrite(10, LOW); digitalWrite(11, LOW);
}
else if (cmd == 'B') {
s.write(90);
digitalWrite(8, LOW); digitalWrite(9, LOW);
digitalWrite(10, HIGH); digitalWrite(11, HIGH);
}
else if (cmd == 'R') {
s.write(135);
digitalWrite(8, HIGH); digitalWrite(9, HIGH);
digitalWrite(10, LOW); digitalWrite(11, LOW);
}
else if (cmd == 'L') {
s.write(45);
digitalWrite(8, HIGH); digitalWrite(9, HIGH);
digitalWrite(10, LOW); digitalWrite(11, LOW);
}
else if (cmd == 'S') {
s.write(90);
digitalWrite(8, LOW); digitalWrite(9, LOW);
digitalWrite(10, LOW); digitalWrite(11, LOW);
}
}
}
import serial
import time
try:
ser = serial.Serial('COM3', 9600, timeout=1)
time.sleep(2)
except:
print("Ошибка подключения к COM-порту")
exit()
print("Соединение установлено. Нажимайте клавиши для управления.")
while True:
# Запрос ввода одной буквы
cmd = input("Команда (F/B/L/R/S/Q для выхода): ").strip().upper()
if cmd == 'Q':
ser.write(b'S') # Останавливаем робота перед выходом
ser.close()
break
elif cmd in ['F', 'B', 'L', 'R', 'S']:
ser.write(cmd.encode())