Skip to content
This repository was archived by the owner on Sep 30, 2019. It is now read-only.

Commit c9ee560

Browse files
committed
my mods
1 parent 2d4678f commit c9ee560

16 files changed

+572
-0
lines changed
2.04 KB
Binary file not shown.

Adafruit_LEDBackpack/Adafruit_I2C.pyc

5.96 KB
Binary file not shown.
3.34 KB
Binary file not shown.

Adafruit_LEDBackpack/countdown.py

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
#!/usr/bin/python
2+
3+
import time, datetime, sys, sevensegdict, argparse, os, scroll
4+
from Adafruit_7Segment import SevenSegment
5+
from Adafruit_LEDBackpack import LEDBackpack
6+
7+
parser = argparse.ArgumentParser(description='Display a countdown on the attached 4 digit 7 segment LED display.')
8+
parser.add_argument('mins', type=int, help='number of integer mins to count down')
9+
parser.add_argument('-w', '--word', default=' ', help='word to display at end of countdown (4 characters)')
10+
args = parser.parse_args()
11+
12+
inputmins = args.mins
13+
inputword = args.word
14+
15+
with open('/home/pi/.thermclock.pid') as p:
16+
pid = int(p.read())
17+
18+
os.kill(pid,19)
19+
20+
segment = SevenSegment(address=0x70)
21+
ledbp = LEDBackpack()
22+
23+
duration = datetime.timedelta(minutes=inputmins)
24+
starttime = datetime.datetime.now()
25+
stoptime = starttime + duration
26+
now = starttime
27+
28+
# Continually update the time on a 4 char, 7-segment display
29+
while(stoptime>now):
30+
now = datetime.datetime.now()
31+
# get dimmer at night, brighter during day
32+
if now.hour > 22:
33+
ledbp.setBrightness(2)
34+
elif now.hour > 21:
35+
ledbp.setBrightness(8)
36+
elif now.hour > 7:
37+
ledbp.setBrightness(16)
38+
else:
39+
ledbp.setBrightness(2)
40+
41+
timeleft = stoptime - now
42+
secondsleft = int(timeleft.total_seconds())
43+
minute = int(secondsleft/60)
44+
second = secondsleft - minute*60
45+
46+
# Set mins
47+
if minute == 0:
48+
segment.writeDigitRaw(0,0)
49+
segment.writeDigitRaw(1,0)
50+
elif minute < 10:
51+
segment.writeDigitRaw(0,0)
52+
segment.writeDigit(1, minute % 10)
53+
else:
54+
segment.writeDigit(0, int(minute / 10)) # Tens
55+
segment.writeDigit(1, minute % 10) # Ones
56+
57+
# Set seconds
58+
if minute == 0:
59+
if second < 10:
60+
segment.writeDigitRaw(3,0)
61+
segment.writeDigit(4, second)
62+
else:
63+
segment.writeDigit(3, int(second / 10))
64+
segment.writeDigit(4, second % 10)
65+
else:
66+
segment.writeDigit(3, int(second / 10)) # Tens
67+
segment.writeDigit(4, second % 10) # Ones
68+
69+
# Toggle colon
70+
if (second % 2):
71+
blink = 2
72+
else:
73+
blink = 0
74+
75+
segment.writeDigitRaw(2,blink)
76+
# Wait one second
77+
time.sleep(1)
78+
79+
segment.writeDigitRaw(4,0)
80+
81+
scroll.scroller(inputword,0.1,False)
82+
83+
ledbp.setBlinkRate(1)
84+
85+
time.sleep(60)
86+
87+
ledbp.setBlinkRate(0)
88+
89+
# clear display
90+
segment.writeDigitRaw(0,0)
91+
segment.writeDigitRaw(1,0)
92+
segment.writeDigitRaw(3,0)
93+
segment.writeDigitRaw(4,0)
94+
95+
os.kill(pid,18)

Adafruit_LEDBackpack/ex_7seg_test.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/python
2+
3+
import sys
4+
import time
5+
from Adafruit_7Segment import SevenSegment
6+
#from Adafruit_LEDBackpack import LEDBackpack
7+
8+
segment = SevenSegment(address=(0x70))
9+
#lowlevel = LEDBackpack()
10+
11+
for i in range(0,128):
12+
segment.writeDigitRaw(0,i)
13+
time.sleep(0.05)
14+

Adafruit_LEDBackpack/holly.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/python
2+
3+
from Adafruit_7Segment import SevenSegment
4+
segment = SevenSegment(address=(0x70))
5+
6+
segment.writeDigitRaw(0,118)
7+
segment.writeDigitRaw(1,92)
8+
segment.writeDigitRaw(2,0)
9+
segment.writeDigitRaw(3,54)
10+
segment.writeDigitRaw(4,110)
11+

Adafruit_LEDBackpack/jase.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/python
2+
3+
from Adafruit_7Segment import SevenSegment
4+
segment = SevenSegment(address=(0x70))
5+
6+
segment.writeDigitRaw(0,14)
7+
segment.writeDigitRaw(1,119)
8+
segment.writeDigitRaw(2,0)
9+
segment.writeDigitRaw(3,109)
10+
segment.writeDigitRaw(4,121)
11+

Adafruit_LEDBackpack/scroll.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#!/usr/bin/python
2+
3+
def scroller(inputstr,pausetime=0.2,scrolloff=True):
4+
import time
5+
import datetime
6+
import sevensegdict
7+
from collections import deque
8+
from Adafruit_7Segment import SevenSegment
9+
from Adafruit_LEDBackpack import LEDBackpack
10+
11+
segment = SevenSegment(address=0x70)
12+
ledbp = LEDBackpack()
13+
14+
now = datetime.datetime.now()
15+
16+
charqueue = deque(sevensegdict.str_to_seg(inputstr))
17+
if scrolloff:
18+
charqueue.extend([0,0,0,0])
19+
20+
#start with clear display
21+
word = deque([0,0,0,0])
22+
segment.writeDigitRaw(0,word[0])
23+
segment.writeDigitRaw(1,word[1])
24+
segment.writeDigitRaw(2,0)
25+
segment.writeDigitRaw(3,word[2])
26+
segment.writeDigitRaw(4,word[3])
27+
28+
# Continually update the time on a 4 char, 7-segment display
29+
while(len(charqueue)):
30+
# get dimmer at night, brighter during day
31+
if now.hour > 22:
32+
ledbp.setBrightness(2)
33+
elif now.hour > 21:
34+
ledbp.setBrightness(8)
35+
elif now.hour > 7:
36+
ledbp.setBrightness(16)
37+
else:
38+
ledbp.setBrightness(2)
39+
40+
word.popleft()
41+
word.append(charqueue.popleft())
42+
43+
segment.writeDigitRaw(0,word[0])
44+
segment.writeDigitRaw(1,word[1])
45+
segment.writeDigitRaw(3,word[2])
46+
segment.writeDigitRaw(4,word[3])
47+
48+
# Wait one second
49+
time.sleep(pausetime)
50+
51+
if __name__ == "__main__":
52+
import sys
53+
import argparse
54+
55+
parser = argparse.ArgumentParser(description='Display a scrolling message on the attached 4 digit 7 segment LED display.')
56+
parser.add_argument('msg', default=sys.stdin, help='message to scroll')
57+
parser.add_argument('-p', '--pause', type=float, default=0.2, help='number of seconds to pause between chars')
58+
parser.add_argument('-s', '--scrolloff', action='store_false', help='whether or not to scroll the message off the left side')
59+
args = parser.parse_args()
60+
61+
scroller(args.msg, args.pause, args.scrolloff)
62+

Adafruit_LEDBackpack/scroll.pyc

2.09 KB
Binary file not shown.

Adafruit_LEDBackpack/sevensegdict.py

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
#!/usr/bin/python
2+
3+
import collections
4+
5+
def str_to_seg(s = ' '):
6+
"""Return decimals for raw digit writing to 7 segment display
7+
based on ascii input."""
8+
9+
# define how to display each possible letter.
10+
# special cases where 2 letters can be displayed in one 7seg
11+
# | = ll
12+
# m = il
13+
# k = li
14+
# I is on left, l is on right
15+
# i is on left, ! is on right
16+
17+
d = collections.defaultdict(lambda: 0)
18+
19+
d.update({\
20+
'A': 119,\
21+
'b': 124,\
22+
'C': 57, \
23+
'c': 88, \
24+
'd': 94, \
25+
'E': 121,\
26+
'e': 121,\
27+
'F': 113,\
28+
'f': 113,\
29+
'G': 61, \
30+
'g': 111,\
31+
'H': 118,\
32+
'h': 116,\
33+
'I': 48, \
34+
'i': 16, \
35+
'!': 4, \
36+
'J': 30, \
37+
'j': 14, \
38+
'k': 52, \
39+
'L': 56, \
40+
'l': 6, \
41+
'|': 54, \
42+
'm': 22, \
43+
'n': 84, \
44+
'O': 63, \
45+
'o': 92, \
46+
'p': 115,\
47+
'q': 103,\
48+
'r': 80, \
49+
'S': 109,\
50+
's': 109,\
51+
't': 120,\
52+
'U': 62, \
53+
'u': 28, \
54+
'y': 110,\
55+
'z': 91, \
56+
'=': 72, \
57+
'_': 8, \
58+
'-': 64, \
59+
'0': 63, \
60+
'1': 6, \
61+
'2': 91, \
62+
'3': 79, \
63+
'4': 102,\
64+
'5': 109,\
65+
'6': 125,\
66+
'7': 7, \
67+
'8': 127,\
68+
'9': 111})
69+
70+
n = []
71+
72+
for i in range(len(s)):
73+
n.append(d[s[i]])
74+
75+
return n
76+

0 commit comments

Comments
 (0)