Exemplo n.º 1
0
    def __init__(self, address=0x20, num_gpios=16, columnCount=4):

        self.mcp2 = Adafruit_MCP230XX(address, num_gpios)

        # Constants
        self.INPUT       = 0
        self.OUTPUT      = 1
        self.HIGH        = 1
        self.LOW         = 0

        if columnCount is 3:
            self.KEYPAD = [
                [1,2,3],
                [4,5,6],
                [7,8,9],
                ["*",0,"#"]
            ]

            self.ROW         = [6,5,4,3]
            self.COLUMN      = [2,1,0]

        elif columnCount is 4:
            self.KEYPAD = [
                [1,2,3,"A"],
                [4,5,6,"B"],
                [7,8,9,"C"],
                ["*",0,"#","D"]
            ]

            self.ROW         = [15,14,13,12]
            self.COLUMN      = [11,10,9,8]
        else:
            return
Exemplo n.º 2
0
    def generateCube(filename):
        fp = open(filename, "r")
        cubeData = json.load(fp)
        fp.close()

        if not "expanders" in cubeData:
            raise Exception("missing expander definition")

        expanders = {}
        for expander in cubeData["expanders"]:
            expanders[expander["id"]] = \
                Adafruit_MCP230XX(busnum = expander["bus"], address = expander["address"], num_gpios = expander["gpio"])

        if not "cube" in cubeData:
            raise Exception("missing cube data")
        cube = LEDCube()
        if not "levels" in cubeData["cube"]:
            raise Exception("levels data missing for cube")

        for level in cubeData["cube"]["levels"]:
            cube.addLevel(expanders[level["expander"]], level["pin"])

        if not "columns" in cubeData["cube"]:
            raise Exception("column data missing for cube")

        for col in cubeData["cube"]["columns"]:
            cube.addCol(expanders[col["expander"]], col["pin"])

        return cube
    def __init__(self,
                 busnum=0,
                 pin_rs=15,
                 pin_e=13,
                 pins_db=[12, 11, 10, 9],
                 pin_rw=14):
        self.pin_rs = pin_rs
        self.pin_e = pin_e
        self.pin_rw = pin_rw
        self.pins_db = pins_db

        self.mcp = Adafruit_MCP230XX(busnum=busnum, address=0x20, num_gpios=16)

        self.mcp.config(self.pin_e, self.OUTPUT)
        self.mcp.config(self.pin_rs, self.OUTPUT)
        self.mcp.config(self.pin_rw, self.OUTPUT)
        self.mcp.output(self.pin_rw, 0)
        self.mcp.output(self.pin_e, 0)

        for pin in self.pins_db:
            self.mcp.config(pin, self.OUTPUT)

        self.write4bits(0x33)  # initialization
        self.write4bits(0x32)  # initialization
        self.write4bits(0x28)  # 2 line 5x7 matrix
        self.write4bits(0x0C)  # turn cursor off 0x0E to enable cursor
        self.write4bits(0x06)  # shift cursor right

        self.displaycontrol = self.LCD_DISPLAYON | self.LCD_CURSOROFF | self.LCD_BLINKOFF

        self.displayfunction = self.LCD_4BITMODE | self.LCD_1LINE | self.LCD_5x8DOTS
        self.displayfunction |= self.LCD_2LINE
        """ Initialize to default text direction (for romance languages) """
        self.displaymode = self.LCD_ENTRYLEFT | self.LCD_ENTRYSHIFTDECREMENT
        self.write4bits(self.LCD_ENTRYMODESET
                        | self.displaymode)  #  set the entry mode

        # turn on backlights!
        self.mcp.config(6, self.mcp.OUTPUT)
        self.mcp.config(7, self.mcp.OUTPUT)
        self.mcp.config(8, self.mcp.OUTPUT)
        self.mcp.output(6, 0)  # red
        self.mcp.output(7, 0)  # green
        self.mcp.output(8, 0)  # blue

        # turn on pullups
        self.mcp.pullup(self.SELECT, True)
        self.mcp.pullup(self.LEFT, True)
        self.mcp.pullup(self.RIGHT, True)
        self.mcp.pullup(self.UP, True)
        self.mcp.pullup(self.DOWN, True)
        self.mcp.config(self.SELECT, self.mcp.INPUT)
        self.mcp.config(self.LEFT, self.mcp.INPUT)
        self.mcp.config(self.RIGHT, self.mcp.INPUT)
        self.mcp.config(self.DOWN, self.mcp.INPUT)
        self.mcp.config(self.UP, self.mcp.INPUT)
Exemplo n.º 4
0
def setup_soundboard_bus():
    soundboard = Adafruit_MCP230XX(address=SOUNDBOARD_ADDR, num_gpios=16)
    soundboard.pullup(0, ENABLE)
    soundboard.pullup(1, ENABLE)
    soundboard.pullup(2, ENABLE)
    soundboard.pullup(3, ENABLE)
    soundboard.pullup(4, ENABLE)
    soundboard.pullup(5, ENABLE)
    soundboard.pullup(6, ENABLE)
    soundboard.pullup(7, ENABLE)
    soundboard.pullup(8, ENABLE)
    soundboard.pullup(9, ENABLE)
    soundboard.pullup(10, ENABLE)
    soundboard.pullup(11, ENABLE)
    soundboard.pullup(12, ENABLE)
    soundboard.pullup(13, ENABLE)
    soundboard.pullup(14, ENABLE)
    soundboard.pullup(15, ENABLE)
    return soundboard
Exemplo n.º 5
0
 def initGPIO(self):
     if (self.__Mode == "GPIO"):
         GPIO.setwarnings(False)
         GPIO.setmode(GPIO.BCM)
         GPIO.setup(self.__GPIOup, GPIO.OUT)
         GPIO.setup(self.__GPIOdown, GPIO.OUT)
         GPIO.output(self.__GPIOup, GPIO.HIGH)
         GPIO.output(self.__GPIOdown, GPIO.HIGH)
     elif (self.__Mode == "MCP230xx"):
         self.__mcp = Adafruit_MCP230XX(busnum=1,
                                        address=0x20,
                                        num_gpios=16)
         self.__mcp.config(self.__GPIOup, self.__mcp.OUTPUT)
         self.__mcp.config(self.__GPIOdown, self.__mcp.OUTPUT)
         self.__mcp.output(self.__GPIOup, 1)
         self.__mcp.output(self.__GPIOdown, 1)
     self.__stop_event = threading.Event()
     self.__ShutterThread = threading.Thread(target=self.Act)
     self.__ShutterThread.daemon = True
     self.__ShutterThread.start()
Exemplo n.º 6
0
    def __init__(self, address=0x21, num_gpios=8, columnCount=3):

        self.mcp2 = Adafruit_MCP230XX(address, num_gpios)
        # Constants
        self.INPUT = 0
        self.OUTPUT = 1
        self.HIGH = 1
        self.LOW = 0

        if columnCount is 3:
            # CONSTANTS
            self.KEYPAD = [[1, 2, 3], [4, 5, 6], [7, 8, 9], ["*", 0, "#"]]

            self.ROW = [6, 5, 4, 3]
            self.COLUMN = [2, 1, 0]
        elif columnCount is 4:
            self.KEYPAD = [[1, 2, 3, "A"], [4, 5, 6, "B"], [7, 8, 9, "C"],
                           ["*", 0, "#", "D"]]

            self.ROW = [7, 6, 5, 4]
            self.COLUMN = [3, 2, 1, 0]
        else:
            return
    def __init__(self, pin_rs=0, pin_e=1, pins_db=[2, 3, 4, 5], GPIO=None):
        # Emulate the old behavior of using RPi.GPIO if we haven't been given
        # an explicit GPIO interface to use
        if not GPIO:
            #import RPi.GPIO as GPIO
            GPIO = Adafruit_MCP230XX(busnum=1, address=0x21, num_gpios=16)
        self.GPIO = GPIO
        self.pin_rs = pin_rs
        self.pin_e = pin_e
        self.pins_db = pins_db

        GPIO.config(self.pin_e, GPIO.OUTPUT)
        GPIO.config(self.pin_rs, GPIO.OUTPUT)
        #self.GPIO.setmode(GPIO.BCM)
        #self.GPIO.setup(self.pin_e, GPIO.OUT)
        #self.GPIO.setup(self.pin_rs, GPIO.OUT)

        for pin in self.pins_db:
            #self.GPIO.setup(pin, GPIO.OUTPUT)
            self.GPIO.config(pin, GPIO.OUTPUT)

        self.write4bits(0x33)  # initialization
        self.write4bits(0x32)  # initialization
        self.write4bits(0x28)  # 2 line 5x7 matrix
        self.write4bits(0x0C)  # turn cursor off 0x0E to enable cursor
        self.write4bits(0x06)  # shift cursor right

        self.displaycontrol = self.LCD_DISPLAYON | self.LCD_CURSOROFF | self.LCD_BLINKOFF

        self.displayfunction = self.LCD_4BITMODE | self.LCD_1LINE | self.LCD_5x8DOTS
        self.displayfunction |= self.LCD_2LINE
        """ Initialize to default text direction (for romance languages) """
        self.displaymode = self.LCD_ENTRYLEFT | self.LCD_ENTRYSHIFTDECREMENT
        self.write4bits(self.LCD_ENTRYMODESET
                        | self.displaymode)  #  set the entry mode

        self.clear()
Exemplo n.º 8
0
# Improved by Tom Paulus, @tompaulus

from time import sleep
from Adafruit_I2C import Adafruit_I2C
from Adafruit_MCP230xx import Adafruit_MCP230XX
import smbus

# ===========================================================================
# CharLCDPlate
# ===========================================================================

# This class is meant to be used with the 16x2 LCD
# displays available from Adafruit

# change busnum = 0 to bbusnum = 1 if you have a rev 2 Pi!
mcp = Adafruit_MCP230XX(busnum=0, address=0x20, num_gpios=16)


class Adafruit_CharLCD:
    OUTPUT = 0
    INPUT = 1

    # LED colors
    RED = 0x01
    GREEN = 0x02
    BLUE = 0x04
    YELLOW = 0x03
    TEAL = 0x06
    VIOLET = 0x05
    ON = 0x07
    OFF = 0x0
Exemplo n.º 9
0
#!/usr/bin/env python2
import smbus
from time import sleep
from Adafruit_MCP230xx import Adafruit_MCP230XX
import picamera

counter = 0
slice_of_pi = Adafruit_MCP230XX(0x20, 8)


def setup():
    slice_of_pi.config(0, Adafruit_MCP230XX.OUTPUT)
    slice_of_pi.config(7, Adafruit_MCP230XX.INPUT)
    slice_of_pi.output(0, 1)


def take_video():
    global counter
    counter += 1
    with picamera.PiCamera() as camera:
        camera.start_recording('pic_' + str(counter) + '.jpg')
        camera.start_preview()
        while triggered:
            triggered = read_sensor()
        camera.stop_preview()
        camera.stop_recording()


def read_sensor():
    return slice_of_pi.input(7)
Exemplo n.º 10
0
#!/usr/bin/env python3

from Adafruit_MCP230xx import Adafruit_MCP230XX

red_led = 0     # Single Red LED
red     = 1     # Parts of an RGB LED
green   = 2
blue    = 3

button  = 4     # Button input

mcp = Adafruit_MCP230XX(address = 0x20, num_gpios = 16) # MCP23017

bit_led = 1

bit0 = 0;
bit1 = 0;
bit2 = 0;

# Set pins 0-3 to output
mcp.config(red_led, mcp.OUTPUT)
mcp.config(red, mcp.OUTPUT)
mcp.config(green, mcp.OUTPUT)
mcp.config(blue, mcp.OUTPUT)

# Set pin 4 to input with the pullup resistor enabled
mcp.config(button, mcp.INPUT)
mcp.pullup(button, 1)

mcp.output(red_led, 1)
mcp.output(red, 1)
Exemplo n.º 11
0
)  #>>>>PUT IN THE URL OF GIT REPO HERE<<<<<
import time  #import system time
import os  #add os library
import picamera  #import the python camera controls
import smbus  #allows gpio on mcp23008 to communicate on i2c
import RPi.GPIO as GPIO  #turn on gpio
from Adafruit_I2C import Adafruit_I2C  #import Adafruit_I2C module
from Adafruit_MCP230xx import Adafruit_MCP230XX  #import Adafruit_MCP230XX module

#########################
## C H I P   S E T U P ##
#### M C P 2 3 0 0 8 ####
#########################

mcp = Adafruit_MCP230XX(
    busnum=1, address=0x20,
    num_gpios=8)  #define the i2c address and number of gpio

#########################
## G P I O   S E T U P ##
####### B O A R D #######
#########################

## G P I O   F O R   P I ##
GPIO.setwarnings(
    False)  ## disables messages about GPIO pins already being in use
GPIO.setmode(GPIO.BOARD)  ## indicates which pin numbering configuration to use
GPIO.setup(
    37, GPIO.IN,
    pull_up_down=GPIO.PUD_DOWN)  #set pin to watch for the shutter button
GPIO.setup(35, GPIO.OUT)  #set pin to send signal for image capture
Exemplo n.º 12
0
 def __init__(self, busnum, address, num_gpios):
     self.chip = Adafruit_MCP230XX(busnum, address, num_gpios)
Exemplo n.º 13
0
def setup_control_bus():
    control = Adafruit_MCP230XX(address=CONTROL_ADDR, num_gpios=16)
    control.pullup(0, ENABLE)
    control.pullup(1, ENABLE)
    return control
Exemplo n.º 14
0
#!/usr/bin/python

from Adafruit_MCP230xx import Adafruit_MCP230XX
expander1 = Adafruit_MCP230XX(busnum=1, address=0x20, num_gpios=16)
expander2 = Adafruit_MCP230XX(busnum=1, address=0x21, num_gpios=16)

expander1.config(0, 0)
expander1.config(1, 0)
expander1.config(2, 0)
expander1.config(3, 0)
expander1.config(4, 0)
expander1.config(5, 0)
expander1.config(6, 0)
expander1.config(7, 0)
expander1.config(8, 0)
expander1.config(9, 0)
expander1.config(10, 0)
expander1.config(11, 0)
expander1.config(12, 0)
expander1.config(13, 0)
expander1.config(14, 0)
expander1.config(15, 0)

expander2.config(0, 0)
expander2.config(1, 0)
expander2.config(2, 0)
expander2.config(3, 0)
expander2.config(4, 0)
expander2.config(5, 0)
expander2.config(6, 0)
expander2.config(7, 0)
Exemplo n.º 15
0
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#If this code works, it was written by Seunghyun Lee(www.bluebaynetworks.co.kr).
#If not, I don't know who wrote it

#다운로드 받은 Adafruit_MCP230xx.py 파일에서 Adafruit_MCP230XX를 임포트한다.
from Adafruit_MCP230xx import Adafruit_MCP230XX
from time import sleep

#MCP23008을 초기화 한다.
mcp23008 = Adafruit_MCP230XX(0x20, 8)

for j in range(0, 4):
    mcp23008.config(j, mcp23008.OUTPUT)
for j in range(4, 8):
    mcp23008.config(j, mcp23008.INPUT)

i = 0
try:
    while (True):
        i += 1
        for j in range(0, 4):
            mcp23008.output(j, (i % 2))
            print "GPIO:", j, " WRITE:", (i % 2)

        sleep(0.005)
        for j in range(4, 8):
            ret = mcp23008.input(j)
            ret = ret >> j
            print "GPIO:", j, " READ:", ret