This commit is contained in:
Jonas Zeunert
2020-07-02 20:23:48 +02:00
parent 75d3527f30
commit ec2b6ab07a
28 changed files with 1151 additions and 0 deletions

186
test/initialize.py.bak Executable file
View File

@@ -0,0 +1,186 @@
import wiringpi
import tty
import itertools
import sys
from time import sleep
class Test(object):
def __init__(self, i2c_addr, base):
self.i2c_addr = i2c_addr
self.base = base
self.pins = range(base, base+16)
self.init_component()
def init_component(self):
wiringpi.mcp23017Setup(self.base, self.i2c_addr)
for i in self.pins:
wiringpi.pinMode(i,1)
wiringpi.digitalWrite(i, 1)
print(self.pins)
def write(self, pin, value):
print(self.pins[pin])
wiringpi.digitalWrite(self.pins[pin], value)
class Test_Display(Test):
def __init__(self, i2c_addr = 0x21, base = 65 + 16):
super(Test_Display, self).__init__(i2c_addr, base)
self.pin_dic = {'d0' : base, 'd1' : base + 1, 'd2' : base + 2, 'bcd0': base + 3, 'bcd1': base + 4, 'bcd2' : base + 5, 'bcd3' : base + 6, 'bcdLT' : base + 7, 'disp1' : base + 8, 'disp2' : base + 9, 'disp3' : base + 10, 'disp4' : base + 11, 'disp5' : base + 12, 'disp6' : base + 13, 'run' : base + 14}
def write_number(self, number):
print('Writing number: ' + str(number))
wiringpi.digitalWrite(self.pin_dic['bcd0'], bool(number % 2))
number = number / 2
wiringpi.digitalWrite(self.pin_dic['bcd1'], bool(number % 2))
number = number / 2
wiringpi.digitalWrite(self.pin_dic['bcd2'], bool(number % 2))
number = number / 2
wiringpi.digitalWrite(self.pin_dic['bcd3'], bool(number % 2))
def select_digit(self, digit):
print('Selecting 7 segment number: ' + str(digit))
wiringpi.digitalWrite(self.pin_dic['d0'], bool(digit % 2))
digit = digit / 2
wiringpi.digitalWrite(self.pin_dic['d1'], bool(digit % 2))
digit = digit / 2
wiringpi.digitalWrite(self.pin_dic['d2'], bool(digit % 2))
def disp_select(self, number):
print('Selecting Display: ' + str(number))
for i in range(1, 6):
if(i == number):
wiringpi.digitalWrite(self.pin_dic['disp' + str(i)], 0)
else:
wiringpi.digitalWrite(self.pin_dic['disp' + str(i)], 1)
#sleep(.1)
def run(self):
wiringpi.digitalWrite(self.pin_dic['run'], 0)
#sleep(.001)
wiringpi.digitalWrite(self.pin_dic['run'], 1)
def toggleLT(self):
sleep(.1)
wiringpi.digitalWrite(self.pin_dic['bcdLT'], 0)
sleep(.1)
wiringpi.digitalWrite(self.pin_dic['bcdLT'], 1)
def clear_disp_select(self):
print("Clearing Display")
for i in range(1, 7):
wiringpi.digitalWrite(self.pin_dic['disp' + str(i)], 1)
def test_digit1(self):
for i in range(0, 8):
for j in range(0, 10):
self.select_digit(i)
self.clear_disp_select()
self.write_number(j)
self.disp_select(1)
self.run()
def test(self):
for k in range(1, 6):
for i in range(0, 8):
self.select_digit(i)
for j in range(0, 10):
self.write_number(j)
# self.toggleLT()
self.disp_select(k)
self.clear_disp_select()
self.run()
def test123(self):
self.clear_disp_select()
self.select_digit(0)
self.write_number(7)
wiringpi.digitalWrite(self.pin_dic['run'], 0)
self.disp_select(1)
def manual_test(self, display, digit, number):
self.select_digit(digit)
self.write_number(number)
self.disp_select(display)
self.clear_disp_select()
self.run()
def test_digits(self):
tty.setcbreak(sys.stdin.fileno())
self.write_number(3)
for i in range(0,8):
self.select_digit(i)
self.disp_select(0)
self.run()
sleep(.5)
def permutation_test(self):
self.select_digit(3)
self.write_number(0)
functions = [self.disp_select, self.clear_disp_select, self.run, self.toggleLT]
i = 0
for permutation in itertools.permutations(functions, 4):
print(str(i))
for function in permutation:
function(3)
print(permutation)
i = i+1
raw_input()
class Sound_Test(Test):
def __init__(self, i2c_addr = 0x22, base = 65 + 32):
super(Sound_Test, self).__init__(i2c_addr, base)
self.pins = [x + base for x in [15, 14, 12, 10, 8, 9, 11, 13]]
def fire(self):
self.write(7, 0)
def stop(self):
self.write(7, 1)
def init_component(self):
super(Sound_Test, self).init_component()
wiringpi.digitalWrite(self.base + 12, 1)
def rotate(self):
for i in range(22, 78):
self.write(0, i & 0b00000001)
self.write(1, i & 0b00000010)
self.write(2, i & 0b00000100)
self.write(3, i & 0b00001000)
self.write(4, i & 0b00010000)
self.write(5, i & 0b00100000)
self.write(6, i & 0b01000000)
self.write(7, i & 0b10000000)
self.fire()
# sleep(1)
a = raw_input()
self.stop()
"""
def init_flipper(self):
init_driver()
init_display()
init_sound()
def init_driver(self):
i2c_driver = 0x20
base_driver = 65
wiringpi.mcp23017Setup(base_driver, i2c_driver)
def init_display(self):
i2c_display= 0x21
base_display = 65 + 16
wiringpi.mcp23017Setup(base_display, i2c_display)
for i in range(base_display, base_display+16):
wiringpi.pinMode(i,1)
wiringpi.digitalWrite(i, 0)
def init_sound(self):
i2c_sound = 0x22
base_sound = 65 + 32
wiringpi.mcp23017Setup(base_sound, i2c_sound)
for i in range(base_sound, base_sound+16):
wiringpi.pinMode(i,1)
wiringpi.digitalWrite(i, 0)
# set fire to 1 (out)
def """