簡體   English   中英

用pygame和pyserial控制電機

[英]Controlling motor with pygame and pyserial

我已經使用 UART 協議在我的筆記本電腦和 Arduino 之間建立了通信。 我已經使用 pygame 來按下KEY_UPKEY_DOWN之類的鍵盤按鍵,並使用 pyserial 從我的筆記本電腦向 Arduino 傳輸一個字節。 我想開發我現有的代碼,這樣當按下特定的鍵,即KEY_UP時,電機會旋轉,但是一旦我釋放鍵,它就不會關閉,可能是因為字節仍然保留在串行緩沖區中所以基本上我希望代碼能夠工作,這樣當我松開鑰匙時,電機應該會關閉。

import pygame
import serial

ser = serial.Serial('/dev/ttyACM1',9600)
pygame.init()

win =  pygame.display.set_mode((100,100))

pygame.display.set_caption("ugv")
x = 20
y = 20
w = 30
h = 40
vel = 5


run = True
while run:
      pygame.time.delay(100)
      for event in pygame.event.get():
          if event.type == pygame.QUIT:
             run = False
      keys = pygame.key.get_pressed()
      if keys[pygame.K_LEFT]:
         ser.write(b'c')
      if keys[pygame.K_RIGHT]:
         ser.write(b'd')
      if keys[pygame.K_UP]:
         ser.write(b'a')
      if keys[pygame.K_DOWN]:
         ser.write(b'b')


    pygame.draw.rect(win,(0,255,0),(x,y,w,h)) 
    pygame.display.update()   
pygame.quit()

您需要在 python 代碼中添加一個外殼,用於當沒有按鍵被按下時,在這種情況下發送一個信號告訴電機停止。

或者,您可以修改您的 Arduino 代碼,以便在收到信號后僅在一小段時間內發送電機信號,然后重置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM