From c1e6c76ca2248de87fb10980a184e5dabebb348b Mon Sep 17 00:00:00 2001 From: Eric Teunis de Boone Date: Mon, 30 Jan 2017 23:04:55 +0100 Subject: [PATCH] working python connection, though too much data right now, too slow connection --- mpcArduino.ino | 8 +++++++- serial.ino | 9 ++++++--- ttycontrol.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 4 deletions(-) create mode 100755 ttycontrol.py diff --git a/mpcArduino.ino b/mpcArduino.ino index 695f1b4..a0fbf57 100644 --- a/mpcArduino.ino +++ b/mpcArduino.ino @@ -67,12 +67,18 @@ void setup() { delay(500); layout(tick); calcMaxTicks(); + + while(!Serial); } void loop() { - // print the string when a newline arrives: + // print the string when a newline arrives: if (stringComplete) { setFromSerial( inputString ); + + // clear the string: + inputString = ""; + stringComplete = false; } layout(tick++); if ( tick > maxticks ) tick = 0; diff --git a/serial.ino b/serial.ino index 437454c..f98ae26 100644 --- a/serial.ino +++ b/serial.ino @@ -25,21 +25,27 @@ void setFromSerial (String inputString) { switch ( inputString.charAt(0) ) { case 'V': volume = inputString.substring(1).toInt(); + Serial.println("Setting volume to " + String(volume)); break; case 'T': title = inputString.substring(1); + Serial.println("Setting title to " + String(title)); break; case 'A': artist = inputString.substring(1); + Serial.println("Setting artist to " + String(artist)); break; case 'a': album = inputString.substring(1); + Serial.println("Setting album to " + String(album)); break; case 'r': repeat = inputString.substring(1) != 0; + Serial.println("Setting repeat to " + String(repeat)); break; case 'z': shuffle = inputString.substring(1) != 0; + Serial.println("Setting shuffle to " + String(shuffle)); break; default: Serial.println(F("!Invalid line:")); @@ -48,7 +54,4 @@ void setFromSerial (String inputString) { break; } calcMaxTicks(); - // clear the string: - inputString = ""; - stringComplete = false; } diff --git a/ttycontrol.py b/ttycontrol.py new file mode 100755 index 0000000..2079398 --- /dev/null +++ b/ttycontrol.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python +tty = '/dev/ttyACM1' +baud = 9600 + +import serial +import time + +ser = serial.Serial(tty, baud) + +# Setup +print("Setup") +print(ser) +print("------") + +ser.write("!Booya\n") +ser.readline() + +# Final Loop +volume = 0 +title = "Blub" +artist = "ee" +album = "dd" +repeat = True +shuffle = True + + +def output(string): + ser.write(string+"\n") + time.sleep(0.4) + +def check_serial(): + if (ser.inWaiting()>0): #if incoming bytes are waiting to be read from the serial input buffer + data_str = ser.read(ser.inWaiting()).decode('ascii') #read the bytes and convert from binary array to ASCII + print(data_str) +while True: + volume = (volume + 1) + output("V" + str(volume)) + output("T" + title) + output("A" + artist) + output("a" + album) + output("r" + str(repeat)) + output("z" + str(shuffle)) + print("--- output ---") + check_serial() + print("--- output ---")