aboutsummaryrefslogtreecommitdiff
path: root/Raspberry Pi
diff options
context:
space:
mode:
authorJakob Stendahl <jakob@Jakobs-MacBook-Pro.local>2016-10-21 07:57:13 +0200
committerJakob Stendahl <jakob@Jakobs-MacBook-Pro.local>2016-10-21 07:57:13 +0200
commit3c6a622c71c8f092e3de3f9a2fbbbfcca67cf720 (patch)
tree98c824fd583530da53e4eb2c697a4db1f01c7045 /Raspberry Pi
parent6dafff0b4844f50df78bc23cb5aa26ba339cc3b0 (diff)
downloadi2c-Neopixel-3c6a622c71c8f092e3de3f9a2fbbbfcca67cf720.tar.gz
i2c-Neopixel-3c6a622c71c8f092e3de3f9a2fbbbfcca67cf720.zip
Make Arduino Project. update scripts
Diffstat (limited to 'Raspberry Pi')
-rw-r--r--Raspberry Pi/i2cPixel.py198
-rw-r--r--Raspberry Pi/python.py166
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 """