#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 tkinter as tk
import serial
try:
ser = serial.Serial('COM3', 9600)
except:
ser = None
root = tk.Tk()
root.title("robot")
root.geometry("500x500")
try:
root.iconphoto(False, tk.PhotoImage(file="icon.png"))
except:
pass
img_u = tk.PhotoImage(file="up.png")
img_d = tk.PhotoImage(file="down.png")
img_l = tk.PhotoImage(file="left.png")
img_r = tk.PhotoImage(file="right.png")
def send_f(e):
if ser: ser.write(b'F')
def send_b(e):
if ser: ser.write(b'B')
def send_l(e):
if ser: ser.write(b'L')
def send_r(e):
if ser: ser.write(b'R')
def send_s(e):
if ser: ser.write(b'S')
fr = tk.Frame(root)
fr.place(relx=0.5, rely=0.5, anchor=tk.CENTER)
b_f = tk.Button(fr, image=img_u, text="Вперед", compound=tk.LEFT, width=100, height=50)
b_l = tk.Button(fr, image=img_l, text="Влево", compound=tk.LEFT, width=100, height=50)
b_r = tk.Button(fr, image=img_r, text="Вправо", compound=tk.LEFT, width=100, height=50)
b_b = tk.Button(fr, image=img_d, text="Назад", compound=tk.LEFT, width=100, height=50)
b_f.grid(row=0, column=1, pady=10, padx=10)
b_l.grid(row=1, column=0, pady=10, padx=10)
b_r.grid(row=1, column=2, pady=10, padx=10)
b_b.grid(row=2, column=1, pady=10, padx=10)
b_f.bind("<ButtonPress-1>", send_f)
b_f.bind("<ButtonRelease-1>", send_s)
b_b.bind("<ButtonPress-1>", send_b)
b_b.bind("<ButtonRelease-1>", send_s)
b_l.bind("<ButtonPress-1>", send_l)
b_l.bind("<ButtonRelease-1>", send_s)
b_r.bind("<ButtonPress-1>", send_r)
b_r.bind("<ButtonRelease-1>", send_s)
root.mainloop()