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

View File

@@ -0,0 +1,156 @@
import wiringpi
from time import sleep
base = 65
i2c = 0x20
timer = 0.7
pins = {"A0" : 9,#
"A1" : 8,#
"A2" : 1,#
"D0" : 0,
"RUN" : 7,#
"E1" : 2,#
"E2" : 10,
"E3" : 3,#
"E4" : 11,
"E5" : 4,#
"E6" : 12,
"E7" : 5,
"E8" : 13,
"E9" : 10,#PGIO06 wegen fehlender Porterweiterung
"E10" : 9,#GPIO12 wegen fehlender Porterweiterung
"E11" : 6,#
"E12" : 14,
"E13" : 15 }#
"""
A0 = 3
A1 = 2
A2 = 1
D0 = 17
E13 = 15
RUN = 16
E1 = 5
E2 = 6
E3 = 7
E4 = 8
E5 = 9
E6 = 10
E7 = 11
E8 = 12
E9 = pi
E10 = pi
E11 = 13
E12 = 14
E13 = 15
"""
"""
GPA0 0= 16
GPA1 1= 14
GPA2 2= 12
GPA3 3= 10
GPA4 4= 8
GPA5 5= 6
GPA6 6= 2
GPA7 7= 17
GPB0 8= 1
GPB1 9= 3
GPB2 10= 5
GPB3 11= 7
GPB4 12= 9
GPB5 13= 11
GPB6 14= 13
GPB7 15= 15
"""
for key in pins.keys():
pins[key] += base
pins["E10"] -= base
pins["E9"] -= base
def init():
wiringpi.wiringPiSetupGpio()
wiringpi.mcp23017Setup(base, i2c)
for i in pins.values():
wiringpi.pinMode(i, 1)
wiringpi.digitalWrite(i, 1)
data(0)
wiringpi.digitalWrite(pins["RUN"], 0)
def data(value):
wiringpi.digitalWrite(pins["D0"], value)
def select_latch(latch):
deselect_latches()
wiringpi.digitalWrite(pins["E" + str(latch)], 0)
def deselect_latches():
for i in range(1,14):
wiringpi.digitalWrite(pins["E" + str(i)], 1)
def select_pin(pin):
wiringpi.digitalWrite(pins["A0"], pin & 0b001)
wiringpi.digitalWrite(pins["A1"], pin & 0b010)
wiringpi.digitalWrite(pins["A2"], pin & 0b100)
def trigger_pin(latch, pin, t=timer):
select_latch(latch)
select_pin(pin)
data(1)
sleep(t)
data(0)
def rotate():
for i in range(1, 14):
for j in range(8):
trigger_pin(i, j)
print("activated latch "+str(i)+ "\t pin "+str(j))
def activate_all_lamps():
for latch in range(1,11):
for pin in range(8):
data(1)
select_latch(latch)
select_pin(pin)
sleep(0.03)
def all_lamps():
activate_all_lamps()
def outhole():
trigger_pin(11,0)
def right_kicker():
trigger_pin(12,5)
def right_flap():
trigger_pin(13,5,0.4)
def right_bank():
trigger_pin(13,2,0.4)
def activate_pin(latch, pin):
select_latch(latch)
select_pin(pin)
data(1)
deselect_latches()
def deactivate_pin(latch, pin):
select_latch(latch)
select_pin(pin)
data(0)
deselect_latches()
def activate_flipper():
activate_pin(8, 4)
def activate_top_flipper():
activate_pin(12, 4)
def deactivate_flipper():
deactivate_pin(8, 4)
def deactivate_top_flipper():
deactivate_pin(12, 4)
init()