Tengo un arduino corriendo con un bitlash corriendo conectado a un shiftbrite.
Puedo usar un programa de terminal para enviar comandos como rgb (1023,0,1023) y funcionará, pero cuando lo hago con python, no.
Aquí está mi código de python. No sé por qué no funciona. Incluso puedo imprimir la cadena en una pantalla LCD conectada a ella y sale correctamente
#Python Menu
#File: PythonMenu.py
#Basic menu system for use with Arduino and Shiftbrites
#over a wireless xbee link
import os #For clear
import time #For delay
import serial #For serial comms to the device
def printMenu():
"""Prints the menu ready with all options"""
print "/--------------------------------------------\"
print "| | | | | /--- | | __ ---| |"
print "| |--| | | | - |--| |__ |___ |"
print "| | | |__| |__| | | |__ ___| |"
print "|--------------------------------------------|"
print "| Please select from the following options |"
print "| |"
print "| (1) White |"
print "| (2) Red |"
print "| (3) Green |"
print "| (4) Blue |"
print "| (5) Fade |"
print "| (6) Off |"
print "|--------------------------------------------|"
print "| (0) Exit |"
print "\--------------------------------------------/"
def clear():
"""Clears the console screen"""
os.system('clear')
def sendColour( r, g, b ):
"""Sends a RGB value to the shiftbrite"""
#build up string
tmpData = "rgb("
tmpData += str(r)
tmpData += ","
tmpData += str(g)
tmpData += ","
tmpData += str(b)
tmpData += ")"
ser.write(tmpData)
print(tmpData)
return
###
#
###
#Setup serial
ser = serial.Serial('/dev/tty.usbserial-A600dJm8',9600)
#Start main code LOOP
while True:
clear()
printMenu()
userInput = raw_input('Selection:')
if userInput == '1':
sendColour(1023,1023,1023)
elif userInput == '2':
sendColour(1023,0,0)
elif userInput == '3':
sendColour(0,1023,0)
elif userInput == '4':
sendColour(0,0,1023)
elif userInput == '5':
sendColour(0,0,0) #To be implemented
elif userInput == '6':
sendColour(0,0,0)
elif userInput == '0':
print "Quitting"
ser.close()
exit()
time.sleep(2)
¿Alguien tiene alguna idea?