Gerade dieses Teil von Amazon erhalten und wollte (mal eben) dieses in Python an meinen Raspberry bringen.
Tja die ersten Versuche verendeten im Sand, bis ich bemerkte, dass das Teil nicht mit denen von Adafruit zu tun hat.
Also nochmal schnell in der Porduktbeschreibung nachgesehen, und siehe da, hier findet sich ein Hinweis auf 52pi.com.
Dort wird erklärt wie man das Teil mit Hilfe von WiringPi unter C zum Laufen bekommt.
Wer das Teil aber wie ich unter Python nutzen will, der sollte zuerst WiringPi für Python installieren,
siehe hier WiringPi-Python.
Danach habe ich mal das C Beispiel der 52pi.com Seite in Python übersetzt und um Beispiele für die Buttons erweitert.
Ist sicherlich ein guter Start mit dem Teil und erleichtert die Arbeit.
Hier der Test Code in Python
#!/bin/python
import wiringpi
import time
wiringpi.wiringPiSetup()
wiringpi.mcp23017Setup (100, 0x20) # //init mcp23017 chip I2C address: 0x20,the first pin number: 100
print ("Raspberry Pi - MCP23017 Test\n") #//print information
wiringpi.pinMode(100,1) # //set pin 100 - 115 as output
wiringpi.pinMode(101,1) # //set pin 100 - 115 as output
wiringpi.pinMode(102,1) # //set pin 100 - 115 as output
wiringpi.pinMode(103,1) # //set pin 100 - 115 as output
wiringpi.pinMode(104,1) # //set pin 100 - 115 as output
wiringpi.pinMode(105,1) # //set pin 100 - 115 as output
wiringpi.pinMode(106,1) # //set pin 100 - 115 as output
wiringpi.pinMode(107,0) #
wiringpi.pinMode(108,0) #
wiringpi.pinMode(109,0) #
wiringpi.pinMode(110,0) #
wiringpi.pinMode(111,0) #
wiringpi.pinMode(112,0) #
wiringpi.pinMode(113,0) #
wiringpi.pinMode(114,0) #
wiringpi.pinMode(115,0) #
wiringpi.digitalWrite(101,0) # //set pin 101 low voltage
display = wiringpi.lcdInit(2,16,4,100,102,103,104,105,106,0,0,0,0) # //lcd init 2*16,4 bit control,use 100,101,102,103,104 pin as control pin
wiringpi.lcdHome(display) # //reset cursor
wiringpi.lcdClear(display) # //clear screen
wiringpi.lcdPosition(display,0,0) # //set display location (0,0)
wiringpi.lcdPuts(display,"Hallo World") # //print string "Hello World"
wiringpi.lcdPosition(display,6,1) # //set display location(0,1)
wiringpi.lcdPuts(display,"Rudi") # //print string "www.52pi.net"
wiringpi.pinMode(0, 1) # //set Raspberry pi pin 0 as output
wiringpi.pinMode(2, 1) # //set Raspberry Pi pin 2 as output
wiringpi.pinMode(3, 1) # //set Raspberry Pi pin 3 as output
wiringpi.softPwmCreate (3, 50, 100) # //set soft PWM pin 3 PWM scale (0-100) original 50
wiringpi.softPwmCreate (2, 50, 100) # //set soft PWM pin 2 PWM scale (0-100) original 50
wiringpi.softPwmCreate (0, 50, 100) # //set soft PWM pin 0 PWM scale (0-100) original 50
wiringpi.softPwmWrite (3,100) #
time.sleep(1)
wiringpi.softPwmWrite (2,100) #
time.sleep(1)
wiringpi.softPwmWrite (0,100) #
time.sleep(1)
wiringpi.softPwmWrite (3,100) # Blau
wiringpi.softPwmWrite (2,0) #
wiringpi.softPwmWrite (0,0) #
time.sleep(1)
wiringpi.softPwmWrite (3,0) # gru"n
wiringpi.softPwmWrite (2,100) #
wiringpi.softPwmWrite (0,0) #
time.sleep(1)
wiringpi.softPwmWrite (3,0) # rot
wiringpi.softPwmWrite (2,0) #
wiringpi.softPwmWrite (0,100) #
print (wiringpi.digitalRead(108)) #far right
print (wiringpi.digitalRead(109)) #down
print (wiringpi.digitalRead(110)) #left
print (wiringpi.digitalRead(111)) #right
print (wiringpi.digitalRead(112)) #up
wiringpi.softPwmWrite (3,0) # display beleuchtung aus
wiringpi.softPwmWrite (2,0) #
wiringpi.softPwmWrite (0,0) #
wiringpi.lcdDisplay(display,0) # diisplay aus