0
我在寫一個Python腳本,它將使用串口與Arduino進行通信。 Arduino將實現一個簡單的音樂鍵盤。當鍵盤按鍵被按下或釋放時寫入串口
因此所需的行爲是:
- 當我按我的電腦鍵盤上的按鍵,有些字節通過串行發送;
- 當我按住按鍵時,什麼都不發送;
- 當我釋放該密鑰時,發送另一個給定的字節。
我在寫一個Python腳本,它將使用串口與Arduino進行通信。 Arduino將實現一個簡單的音樂鍵盤。當鍵盤按鍵被按下或釋放時寫入串口
因此所需的行爲是:
對於來自鍵盤的單字符輸入讀取this article。
如果你真的想要堅韌不拔,最好用pygtk製作一個小GUI。您可以輕鬆訪問按鍵,keyrelease事件。它可以用很少的代碼完成。
在串口方面,PySerial讓人想起 - 這使得更容易改變波特率等來適應Arduino。
你想發送MIDI命令嗎?
import pygtk
import gtk
class MainWindow(gtk.Window):
def __init__(self, debug = None):
gtk.Window.__init__(self)
self.connect("delete-event", self.on_delete_event)
self.set_size_request(400, 300)
bff = gtk.TextBuffer()
self.txtview = gtk.TextView(bff)
self.add(self.txtview)
self.connect("key-press-event", self.on_key_press)
self.connect("key-release-event", self.on_key_release)
def on_key_press(self, key, event):
# Send something
print("Key pressed")
pass
def on_key_release(self, key, event):
# Send something
print("Key released")
pass
def on_delete_event(self, win, data):
gtk.main_quit()
def run(self):
self.show_all()
gtk.mainloop()
def main():
# Do you PySerial initializing here
w = MainWindow()
w.run()
return 0
if __name__ == '__main__':
main()
我結束了使用PyGame,但Gtk將相當於我認爲。經過思考和閱讀後,使用UI工具包最終成爲最熱門的方法。而我發送的不是MIDI,儘管意圖非常相似。 – heltonbiker