示例#1
0
#First program with MCP23017
import wiringpi2 as wiringpi
import time

pin_base = 65                   #lowest available starting number
ic_addr = 0x10                 #IC address with i2cdetect -y 1

wiringpi.wiringPiSetup()        #initializes wiringpi 
wiringpi.mcp23s17Setup(pin_base, 0, ic_addr)    #initializes this IC to these pins on this CE0
wiringpi.mcp23s17Setup(81, 1, 0x10)             #initializing second SPI chip

#Address function for LED One (MANUALLY ENTER PINs HERE)
def adrOne() :
    red = 73
    green = 74
    blue = 75
    power = 72

    wiringpi.pinMode(red, 1)   #Red set as output
    wiringpi.pinMode(green, 1) #Green set as output
    wiringpi.pinMode(blue, 1)  #Blue set as output
    wiringpi.pinMode(power, 1) #Power set as output

    return red, green, blue, power

#Writing function to prompt user input
def prompt(promptStr) :
    x = raw_input(promptStr)
    return x

#Function to assign certain LED to specific color
示例#2
0
 def __init__(self):
     self.output_pins1 = [65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80]
     self.output_pins2 = [81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96]
     self.output_pins3 = [97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112]
     self.output_pins4 = [113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128]
     
     self.input_pins1 = [129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144]
     self.input_pins2 = [145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160]  
     
     self.led_pins1 = [161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176]  
     self.led_pins2 = [177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192] 
     
     self.ulazi = []
     for i in range(32):
         self.ulazi.append(0);
     
     self.indikatori = []
     for i in range(32):
         self.indikatori.append(0);
             
     self.svi = []
     self.svi =self.svi+ self.output_pins1 
     self.svi =self.svi+ self.output_pins2 
     self.svi =self.svi+ self.output_pins3 
     self.svi =self.svi+ self.output_pins4 
     self.svi =self.svi+ self.led_pins1        
     self.svi =self.svi+ self.led_pins2 
     
     self.svi_motori = []
     self.svi_motori = self.svi_motori + self.output_pins1 
     self.svi_motori = self.svi_motori + self.output_pins2 
     self.svi_motori = self.svi_motori + self.output_pins3 
     self.svi_motori = self.svi_motori + self.output_pins4 
     
     self.svi_ulazi = []
     self.svi_ulazi=self.svi_ulazi + self.input_pins1 
     self.svi_ulazi =self.svi_ulazi + self.input_pins2
     
     self.svi_indikatori = []
     self.svi_indikatori = self.svi_indikatori + self.led_pins1
     self.svi_indikatori = self.svi_indikatori + self.led_pins2
     
     wiringpi.wiringPiSetup()
     wiringpi.mcp23s17Setup(65,0,0) # first pin,spi port,i2c address
     wiringpi.mcp23s17Setup(81,0,1)
     wiringpi.mcp23s17Setup(97,0,2)
     wiringpi.mcp23s17Setup(113,0,3)
     #ulazi
     wiringpi.mcp23s17Setup(129,1,0)
     wiringpi.mcp23s17Setup(145,1,1)
     #indikatori
     wiringpi.mcp23s17Setup(161,1,2) # za led na drugoj liniji
     wiringpi.mcp23s17Setup(177,1,3) # za led na drugoj liniji
     
     for i in self.svi_motori:
         wiringpi.pinMode(int(i),1)     # sets pin of mcp23s17-0 to output
     for i in self.svi_ulazi:
         wiringpi.pinMode(int(i),0)    
     for i in self.svi_indikatori:
         wiringpi.pinMode(int(i),0) 
def enable_device():
    """enable the specified device """
    try:
        devices = cm.hardware.devices

        for key in devices.keys():
            device = key
            device_slaves = devices[key]

            # mcp23017
            if device.lower() == "mcp23017":
                for slave in device_slaves:
                    params = slave
                    wiringpi.mcp23017Setup(int(params['pinBase']),
                                           int(params['i2cAddress'],
                                               16))

            # mcp23s17
            elif device.lower() == "mcp23s17":
                for slave in device_slaves:
                    params = slave
                    wiringpi.mcp23s17Setup(int(params['pinBase']),
                                           int(params['spiPort'],
                                               16),
                                           int(params['devId']))

            # TODO: Devices below need testing, these should work but
            # could not verify due to lack of hardware

            # mcp23016
            elif device.lower() == "mcp23016":
                for slave in device_slaves:
                    params = slave
                    wiringpi.mcp23016Setup(int(params['pinBase']),
                                           int(params['i2cAddress'],
                                               16))

            # mcp23s08 - Needs Testing
            elif device.lower() == "mcp23008":
                for slave in device_slaves:
                    params = slave
                    wiringpi.mcp23008Setup(int(params['pinBase']),
                                           int(params['i2cAddress'],
                                               16))

            # mcp23s08 - Needs Testing
            elif device.lower() == "mcp23s08":
                for slave in device_slaves:
                    params = slave
                    wiringpi.mcp23s08Setup(int(params['pinBase']),
                                           int(params['spiPort'],
                                               16),
                                           int(params['devId']))

            # sr595 - Needs Testing
            elif device.lower() == "sr595":
                for slave in device_slaves:
                    params = slave
                    wiringpi.sr595Setup(int(params['pinBase']),
                                        int(params['numPins']),
                                        int(params['dataPin']),
                                        int(params['clockPin']),
                                        int(params['latchPin']))

            # pcf8574
            elif device.lower() == "pcf8574":
                for slave in device_slaves:
                    params = slave
                    wiringpi.pcf8574Setup(int(params['pinBase']),
                                          int(params['i2cAddress'],
                                              16))

            else:
                logging.error("Device defined is not supported, please check "
                              "your devices settings: " + str(device))
    except Exception as error:
        logging.debug("Error setting up devices, please check your devices "
                      "settings.")
        logging.debug(error)
示例#4
0
GPIO.setmode(GPIO.BCM)      #Need GPIO for Hall Sensors
GPIO.setwarnings(False)

wiringpi.wiringPiSetup()

#Hall Sensors
HALL_ADDR1 = 5
GPIO.setup(HALL_ADDR1, GPIO.IN)

#Making array each IC is addressed by pin_base[IC#-1]
PIN_BASE = 65
pin_base = [PIN_BASE, PIN_BASE+16, PIN_BASE+32, PIN_BASE+48, PIN_BASE+64, PIN_BASE+80, PIN_BASE+96, PIN_BASE+112, PIN_BASE+128, PIN_BASE+144, PIN_BASE+160, PIN_BASE+176]

#doing setup for each individual IC
wiringpi.mcp23s17Setup(pin_base[0], 0, 0x10)    #IC 1  (LEDs 1-4)   (Pins 65-80)
wiringpi.mcp23s17Setup(pin_base[1], 0, 0x11)    #IC 2  (LEDs 5-8)   (Pins 81-96)
wiringpi.mcp23s17Setup(pin_base[2], 0, 0x12)    #IC 3  (LEDs 9-12)  (Pins 97-112)
wiringpi.mcp23s17Setup(pin_base[3], 0, 0x13)    #IC 4  (LEDs 13-16) (Pins 113-128)
wiringpi.mcp23s17Setup(pin_base[4], 0, 0x14)    #IC 5  (LEDs 17-20) (Pins 129-144)
wiringpi.mcp23s17Setup(pin_base[5], 0, 0x15)    #IC 6  (LEDs 21-24) (Pins 145-160)
wiringpi.mcp23s17Setup(pin_base[6], 1, 0x10)    #IC 7  (LEDs 25-28) (Pins 161-176)
wiringpi.mcp23s17Setup(pin_base[7], 1, 0x11)    #IC 8  (LEDs 29-32) (Pins 177-192)
wiringpi.mcp23s17Setup(pin_base[8], 1, 0x12)    #IC 9  (LEDs 33-36) (Pins 193-208)
wiringpi.mcp23s17Setup(pin_base[9], 1, 0x13)    #IC 10 (LEDs 37-40) (Pins 209-224)
wiringpi.mcp23s17Setup(pin_base[10], 1, 0x14)   #IC 11 (LEDs 41-44) (Pins 225-240)
wiringpi.mcp23s17Setup(pin_base[11], 1, 0x15)   #IC 12 (LEDs 45-48) (Pins 241-256)

#-------------   Address functions for LED    -----------------------------------------------#
def addr_1() :
    [power, red, green, blue] = [pin_base[0], pin_base[0]+1, pin_base[0]+2, pin_base[0]+3] 
def enable_device():
    """enable the specified device """
    try:
        devices = cm.hardware.devices

        for key in devices.keys():
            device = key
            device_slaves = devices[key]

            # mcp23017
            if device.lower() == "mcp23017":
                for slave in device_slaves:
                    params = slave
                    wiringpi.mcp23017Setup(int(params['pinBase']),
                                           int(params['i2cAddress'], 16))

            # mcp23s17
            elif device.lower() == "mcp23s17":
                for slave in device_slaves:
                    params = slave
                    wiringpi.mcp23s17Setup(int(params['pinBase']),
                                           int(params['spiPort'], 16),
                                           int(params['devId']))

            # TODO: Devices below need testing, these should work but
            # could not verify due to lack of hardware

            # mcp23016
            elif device.lower() == "mcp23016":
                for slave in device_slaves:
                    params = slave
                    wiringpi.mcp23016Setup(int(params['pinBase']),
                                           int(params['i2cAddress'], 16))

            # mcp23s08 - Needs Testing
            elif device.lower() == "mcp23008":
                for slave in device_slaves:
                    params = slave
                    wiringpi.mcp23008Setup(int(params['pinBase']),
                                           int(params['i2cAddress'], 16))

            # mcp23s08 - Needs Testing
            elif device.lower() == "mcp23s08":
                for slave in device_slaves:
                    params = slave
                    wiringpi.mcp23s08Setup(int(params['pinBase']),
                                           int(params['spiPort'], 16),
                                           int(params['devId']))

            # sr595 - Needs Testing
            elif device.lower() == "sr595":
                for slave in device_slaves:
                    params = slave
                    wiringpi.sr595Setup(int(params['pinBase']),
                                        int(params['numPins']),
                                        int(params['dataPin']),
                                        int(params['clockPin']),
                                        int(params['latchPin']))

            # pcf8574
            elif device.lower() == "pcf8574":
                for slave in device_slaves:
                    params = slave
                    wiringpi.pcf8574Setup(int(params['pinBase']),
                                          int(params['i2cAddress'], 16))

            else:
                logging.error("Device defined is not supported, please check "
                              "your devices settings: " + str(device))
    except Exception as error:
        logging.debug("Error setting up devices, please check your devices "
                      "settings.")
        logging.debug(error)