Şimdi Ara

Oluşturduğum kordinat sistemini arduino da kullanmak için?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
1
Favori
32
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba pycharmda tkinter kullanarakbir kordinat sistemi oluşturdum bunu arduinoya bağlayarak servo motoru hareket ettirmek istiyorum kordinat sisteminde x eksenlerine basarak derece dönüşlerini yapmak istiyorum bunu nasıl yapabilirim ?



    GUİ kodları bu arkadaşlar


    Kod

    Yığını:
    import tkinter as tk import tkinter.ttk as ttk from tkinter import Canvas import math pencere = tk.Tk() pencere.title("Koordinat Sistemi") X = 800 Y = 600 can = Canvas(pencere, width=X+1, height=Y+1, bg="white") can.pack() can.create_rectangle(800, 600, can.winfo_width(), can.winfo_height(), fill="white") can.create_line(0, 300, 800, 300, fill="black", width=2, arrow=tk.BOTH) can.create_line(400, 0, 400, 600, fill="black", width=2, arrow=tk.BOTH) width = 800 height = 600 cell_size = 25 # Her bir hücrenin boyutu # Dikey çizgileri çizme for x in range(0, 800, cell_size): can.create_line(x, 0, x, height, fill="black",dash=(4, 2)) # Yatay çizgileri çizme for y in range(0, 600, cell_size): can.create_line(0, y, width, y, fill="black",dash=(4, 2)) # nokta oluşturmak ov_size=(6,6) def get_oval_centre(coords): x = (coords[0] + coords[2])//2 y = (coords[1] + coords[3])//2 return [x,y] def set_oval_coords(t, xy): x,y = xy can.coords(t, (x-5, y-5, x+5, y+5) ) def evn(e): xx = can.canvasx(e.x) yy = can.canvasy(e.y) #cc = c.find_closest(xx,yy) t = can.find_withtag('point') #c.move(t, 20,20) #print(c.find_all()) #c.itemconfig(t, ) oc = get_oval_centre(can.bbox(t)) oc[0] += cell_size oc[1] += cell_size def mot(e): xg = (e.x+cell_size/2)//cell_size yg = (e.y+cell_size/2)//cell_size t = can.find_withtag('point') set_oval_coords(t, (xg*cell_size, yg*cell_size)) # Fare imlecinin yeni konumunu ekrana yazdır print(f"Fare İmleci Konumu: ({xg-16}, {(yg-abs(12))*-1})") # Label içeriğini güncelle mouse_position_label.config(text=f"X: Y: ({xg-16}, {(yg-abs(12))*-1})") mouse_position_label.pack(side="bottom") # Metni sola hizala # Fare pozisyonunu gösterecek Label widget'ı oluştur mouse_position_label = tk.Label(pencere, text="X: Y: (0, 0)", font=("Helvetica", 14)) mouse_position_label.pack(pady=25) mouse_position_label.pack(side="left") # Metni sola hizala #Fare Tıklama Olayı can.bind('<Button-1>', evn) can.bind('<Motion>', mot) ov = can.create_oval(-3,-3, 3, 3, tags='point', fill='red') def fare_konumunu_guncelle(event): x = (event.x + cell_size / 2) // cell_size - 16 y = ((event.y + cell_size / 2) // cell_size - abs(12)) * -1 fare_konumu_etiketi.config(text=f"Fare Konumu: x={x}, y={y}") # En yakın 25 pixel aralıklı noktanın koordinatlarını bul nearest_x = round(event.x / 25) * 25 nearest_y = round(event.y / 25) * 25 # Canvas üzerine nokta çiz can.create_oval(nearest_x - 10, nearest_y - 10, nearest_x + 10, nearest_y + 10, outline="red") fare_konumu_etiketi = tk.Label(pencere, text="Fare Konumu: x=0, y=0", font=("Helvetica", 14)) fare_konumu_etiketi.pack(pady=20) # Fare hareketlerini dinlemek için canvas'a bağlanma can.bind("<Button-1>", fare_konumunu_guncelle) pencere.mainloop()

    Alıntı

    metni:








  • Merhaba. Arduino ile seri haberleşme sağlayan kodları python kodunuza ekleyip, butonlara basıldığında arduinoya mesaj göndermesini sağlamalısınız. Arduino tarafında da bu mesajları yorumlayıp servo motora gerekli komutları gönderecek program yazılmalı.


    Python'a pek hakim değilim ama youtube'a "pycharm tkinter arduino" yazınca bulduğum bir video başlangıç için yardımcı olabilir. İlk videodaki seri haberleşme kodlarını kendi programınıza ekleyip arduino ile seri port üzerinden habereşmesini sağlayabilirseniz o noktadan ilerlemek zor olmayacaktır. Video açıklamalarında kodların linki bulunuyor.


    İyi çalışmalar.





  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.