diff options
author | Jakob Stendahl <jakob@Jakobs-MacBook-Pro.local> | 2016-10-21 07:57:13 +0200 |
---|---|---|
committer | Jakob Stendahl <jakob@Jakobs-MacBook-Pro.local> | 2016-10-21 07:57:13 +0200 |
commit | 3c6a622c71c8f092e3de3f9a2fbbbfcca67cf720 (patch) | |
tree | 98c824fd583530da53e4eb2c697a4db1f01c7045 /Raspberry Pi | |
parent | 6dafff0b4844f50df78bc23cb5aa26ba339cc3b0 (diff) | |
download | i2c-Neopixel-3c6a622c71c8f092e3de3f9a2fbbbfcca67cf720.tar.gz i2c-Neopixel-3c6a622c71c8f092e3de3f9a2fbbbfcca67cf720.zip |
Make Arduino Project. update scripts
Diffstat (limited to 'Raspberry Pi')
-rw-r--r-- | Raspberry Pi/i2cPixel.py | 198 | ||||
-rw-r--r-- | Raspberry Pi/python.py | 166 |
2 files changed, 240 insertions, 124 deletions
diff --git a/Raspberry Pi/i2cPixel.py b/Raspberry Pi/i2cPixel.py index 4e6785c..360b3f3 100644 --- a/Raspberry Pi/i2cPixel.py +++ b/Raspberry Pi/i2cPixel.py @@ -2,6 +2,28 @@ import smbus import sys import time +import logging + +logging.basicConfig(filename='error.log',level=logging.DEBUG) + +def errorHandler(type, errorMsg): + if type == 1: # Debug + logging.debug(errorMsg) + print("Debug Message: See logfile") + elif type == 2: # info + logging.info(errorMsg) + elif type == 3: # Warning + logging.warning(errorMsg) + elif type == 4: # Error + logging.error(errorMsg) + print("Error: See logfile") + elif type == 5: # Error + logging.critical(errorMsg) + print("Critical Error: See logfile") + else: + logging.critical(errorMsg) + print("Something went terribly wrong! Not even the errorhandler was able to find out what. Which basically means 'You are doomed'") + """ Variables """ lockdown = False @@ -9,84 +31,132 @@ lockdown = False def version(): print "i2cPixel is Version 1.0.0" +def available(): + global lockdown + return lockdown + def setAddress(address): global arduinoAddress arduinoAddress = address def setBus(n): - if available = False: - return 2 - else: - global bus - try: - bus = smbus.SMBus(n) - except: - errorMsg = sys.exc_info()[0] - errorHandler(5, errorMsg) - -def available(): - global lockdown - return lockdown - + if available == False: + return 2 + else: + lockdown = False + global bus + try: + bus = smbus.SMBus(n) + except: + errorMsg = sys.exc_info()[0] + errorHandler(5, errorMsg) + lockdown = True + def greeting(): - if available = False: - return 2 - else: - try: - """ Send heartbeat """ - bus.write_byte(arduinoAddress, 0x01) + if available == False: + return 2 + else: + lockdown = False + try: + """ Send heartbeat """ + bus.write_byte(arduinoAddress, 0x01) + + """ Wait for response """ + try: + response = bus.read_byte(arduinoAddress) + if response == 0x01: + returnMsg = True + else: + returnMsg = False + except: + errorMsg = sys.exc_info()[0] + errorHandler(5, errorMsg) + returnMsg = False + + """ Return if heartbeat was received """ + return returnMsg + + except: + errorMsg = sys.exc_info()[0] + errorHandler(5, errorMsg) + lockdown = True - """ Wait for response """ - try: - response = bus.read_byte(arduinoAddress) - if response == 0x01: - returnMsg = True - else: - returnMsg = False - except: - errorMsg = sys.exc_info()[0] - errorHandler(5, errorMsg) - returnMsg = False - - """ Return if heartbeat was received """ - return returnMsg - - except: - errorMsg = sys.exc_info()[0] - errorHandler(5, errorMsg) +def ping(): + # Send 0x07 vil faa tilbake 42 hvis live + return False +def setBrightness(intensity): + if available == False: + return 2 + else: + lockdown = False + try: + bus.write_block_data(arduinoAddress, 0x06, [intensity]) + except: + errorMsg = sys.exec_info()[0] + errorHandler(5, errorMsg) + lockdown = True + +def disableTimeout(): + if available == False: + return 2 + else: + lockdown = False + try: + bus.write_byte(arduinoAddress, 0x05) + except: + errorMsg = sys.exec_info()[0] + errorHandler(5, errorMsg) + lockdown = True + +def blink(n, Red, Green, Blue): + bus.write_block_data(arduinoAddress, 0x04, [Red, Green, Blue, n]) + def setPixel(n, red, green, blue): """ Send values for changing pixel values """ - if available = False: - return 2 - else: - try: - bus.write_block_data(arduinoAddress, 0x02, [n, red, green, blue]) - except: - errorMsg = sys.exc_info()[0] - errorHandler(5, errorMsg) + if available == False: + return 2 + else: + lockdown = False + try: + if n > 255: + n1 = 255 + n2 = n - 255 + else: + n1 = 0 + n2 = n + #print("{", n1, n2, "}") + bus.write_block_data(arduinoAddress, 0x02, [n1, n2, red, green, blue]) + except: + errorMsg = sys.exc_info()[0] + errorHandler(5, errorMsg) + lockdown = True def show(): - """ Send values for turning pixels on """ - if available = False: - return 2 - else: - try: - bus.write_byte(arduinoAddress, 0x03) - except: - errorMsg = sys.exc_info()[0] - errorHandler(5, errorMsg) + """ Send values for turning pixels on """ + if available == False: + return 2 + else: + lockdown = False + try: + bus.write_byte(arduinoAddress, 0x03) + except: + errorMsg = sys.exc_info()[0] + errorHandler(5, errorMsg) + lockdown = True def blink(time, red, green, blue): - """ Flash all pixels with a colour """ - if available = False: - return 2 - else: - try: - bus.write_block_data(arduinoAddress, 0x04, [red, green, blue, time]) - except: - errorMsg = sys.exc_info()[0] - errorHandler(5, errorMsg) + """ Flash all pixels with a colour """ + if available == False: + return 2 + else: + lockdown = False + try: + bus.write_block_data(arduinoAddress, 0x04, [red, green, blue, time]) + except: + errorMsg = sys.exc_info()[0] + errorHandler(5, errorMsg) + lockdown = True def waitForSensor(): while True: diff --git a/Raspberry Pi/python.py b/Raspberry Pi/python.py index ee61bec..3078683 100644 --- a/Raspberry Pi/python.py +++ b/Raspberry Pi/python.py @@ -7,8 +7,7 @@ import json import i2cPixel """ Decalrations """ -pixels = 72 # Change this to the appropriate number for your setup -pixels = 10 +pixels = 348 # Change this to the appropriate number for your setup addresses = [0, 24, 25, 35] # legg til en start og en stopp for hvert trinn def hexToRgb(value): @@ -17,76 +16,123 @@ def hexToRgb(value): return tuple(int(value[i:i+lv/3], 16) for i in range(0, lv, lv/3)) def lightStaircase(direction): - repeats = len(addresses) - repeats = repeats / 2 - - if direction = "up": - loopCondition = repeats - while loopCondition >> pixels - - else: - loopCondition = 0 - - return true - + repeats = len(addresses) + repeats = repeats / 2 + + if direction == "up": + loopCondition = repeats + + + else: + loopCondition = 0 + + return true + def errorHandler(type, errorMsg): - if type = 1: # Debug - logging.debug(errorMsg) - print("Debug Message: See logfile") - else if type = 2: # info - logging.info(errorMsg) - else if type = 3: # Warning - logging.warning(errorMsg) - else if type = 4: # Error - logging.error(errorMsg) - print("Error: See logfile") - else if type = 5: # Error - logging.critical(errorMsg) - print("Critical Error: See logfile") - else: - logging.critical(errorMsg) - print("Something went terribly wrong! Not even the errorhandler was able to find out what. Which basically means 'You are doomed'") - + if type == 1: # Debug + logging.debug(errorMsg) + print("Debug Message: See logfile") + elif type == 2: # info + logging.info(errorMsg) + elif type == 3: # Warning + logging.warning(errorMsg) + elif type == 4: # Error + logging.error(errorMsg) + print("Error: See logfile") + elif type == 5: # Error + logging.critical(errorMsg) + print("Critical Error: See logfile") + else: + logging.critical(errorMsg) + print("Something went terribly wrong! Not even the errorhandler was able to find out what. Which basically means 'You are doomed'") + def setup(): - - """ Setup Log File """ - logging.basicConfig(filename='error.log',level=logging.DEBUG) - - """ Print first line of log file """ - logging.info('Starting App') - + + """ Setup Log File """ + logging.basicConfig(filename='error.log',level=logging.DEBUG,mode='w') + + """ Print first line of log file """ + logging.info('Starting App') + + """ Set time """ + start_time = time.time() + """ Setup i2c communication """ i2cPixel.version() i2cPixel.setBus(1) i2cPixel.setAddress(0x04) - -def main(): - """ Wait for heartbeat from Arduino """ while True: - try: - if i2cPixel.greeting(): - print "Arduino is Online" - break - except Exception: - pass + try: + if i2cPixel.greeting(): + print "Arduino is Online" + time.sleep(1) + break + except Exception: + pass + + """i = 0 + while i < pixels: + i2cPixel.setPixel(i, 0, 0, 0) + i2cPixel.show()""" - """while True: - i2cPixel.waitForSensor()""" - """ Test, set all pixels to entered color """ - while True: - test = raw_input() - colour = hexToRgb(test) - - i = 0 - while i < pixels: - i2cPixel.setPixel(i, colour[0], colour[1], colour[2]) - i = i + 1 - i2cPixel.show() +def main(): + + print "GO!" + timer = time.time() + i = 0 + while i < pixels: + i2cPixel.setPixel(i, 255, 255, 255) + i2cPixel.show() + i = i + 1 + print("--- %s seconds ---" % (time.time() - timer)) - i2cPixel.waitForSensor() + timer = time.time() + i = 0 + while i < pixels: + i2cPixel.setPixel(i, 255, 255, 255) + i = i + 1 + i2cPixel.show() + print("--- %s seconds ---" % (time.time() - timer)) + + pixelsPerStair = [21, 23, 23, 24, 25, 27, 31, 33, 28, 26, 25, 24, 24] + + i = 0 + o = 0 + j = 0 + timer = time.time() + while i < len(pixelsPerStair): + time1 = time.time() + mellomRekning = o + pixelsPerStair[i] + + if j == 0: + color = (255, 0, 225) + j = j + 1 + elif j == 1: + color = (0, 63, 255) + j = j + 1 + elif j == 2: + color = (25, 255, 0) + j = j + 1 + elif j == 3: + color = (255, 0, 4) + j = j + 1 + else: + color = (255, 250, 0) + j = 0 + + while o <= mellomRekning: + i2cPixel.setPixel(o, *color) + o = o + 1 + i2cPixel.show() + i = i + 1 + print("--- %s seconds ---" % (time.time() - timer)) + + + + """ Start script """ |