Skip to content

Commit

Permalink
GPIO pins working
Browse files Browse the repository at this point in the history
  • Loading branch information
9and3r committed Aug 8, 2014
1 parent ef93f34 commit 4abfb1e
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 17 deletions.
5 changes: 5 additions & 0 deletions mopidy_touchscreen/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ def get_config_schema(self):
schema['fullscreen'] = config.Boolean()
schema['cache_dir'] = config.Path()
schema['gpio'] = config.Boolean()
schema['gpio_left'] = config.Integer()
schema['gpio_right'] = config.Integer()
schema['gpio_up'] = config.Integer()
schema['gpio_down'] = config.Integer()
schema['gpio_enter'] = config.Integer()
return schema

def setup(self, registry):
Expand Down
7 changes: 6 additions & 1 deletion mopidy_touchscreen/ext.conf
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,9 @@ screen_height = 240
cursor = True
fullscreen = False
cache_dir = $XDG_CACHE_DIR/mopidy/touchscreen
gpio = False
gpio = False
gpio_left = 4
gpio_right = 27
gpio_up = 22
gpio_down = 23
gpio_enter = 24
30 changes: 15 additions & 15 deletions mopidy_touchscreen/gpio_inpput_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,32 +7,28 @@

class GPIOManager():

def __init__(self):
def __init__(self, pins):
GPIO.setmode(GPIO.BCM)

# Left Button
GPIO.setup(4, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.add_event_detect(4, GPIO.BOTH, callback=left, bouncetime=30)
GPIO.setup(pins['left'], GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.add_event_detect(pins['left'], GPIO.BOTH, callback=left, bouncetime=30)

# Right Button
GPIO.setup(21, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.add_event_detect(21, GPIO.BOTH, callback=right, bouncetime=30)
GPIO.setup(pins['right'], GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.add_event_detect(pins['right'], GPIO.BOTH, callback=right, bouncetime=30)

# Up Button
GPIO.setup(22, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.add_event_detect(22, GPIO.BOTH, callback=up, bouncetime=30)
GPIO.setup(pins['up'], GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.add_event_detect(pins['up'], GPIO.BOTH, callback=up, bouncetime=30)

# Down Button
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.add_event_detect(23, GPIO.BOTH, callback=right, bouncetime=30)
GPIO.setup(pins['down'], GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.add_event_detect(pins['down'], GPIO.BOTH, callback=right, bouncetime=30)

# Enter Button
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.add_event_detect(24, GPIO.BOTH, callback=right, bouncetime=30)




GPIO.setup(pins['enter'], GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.add_event_detect(pins['enter'], GPIO.BOTH, callback=right, bouncetime=30)


def right(channel):
Expand All @@ -45,6 +41,7 @@ def right(channel):
event = pygame.event.Event(type, dict)
pygame.event.post(event)


def left(channel):
dict = {}
if GPIO.input(channel) == 1:
Expand All @@ -55,6 +52,7 @@ def left(channel):
event = pygame.event.Event(type, dict)
pygame.event.post(event)


def down(channel):
dict = {}
if GPIO.input(channel) == 1:
Expand All @@ -65,6 +63,7 @@ def down(channel):
event = pygame.event.Event(type, dict)
pygame.event.post(event)


def up(channel):
dict = {}
if GPIO.input(channel) == 1:
Expand All @@ -75,6 +74,7 @@ def up(channel):
event = pygame.event.Event(type, dict)
pygame.event.post(event)


def enter(channel):
dict = {}
if GPIO.input(channel) == 1:
Expand Down
8 changes: 7 additions & 1 deletion mopidy_touchscreen/touch_screen.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,13 @@ def __init__(self, config, core):
self.gpio = config['touchscreen']['gpio']
if self.gpio:
from .gpio_inpput_manager import GPIOManager
self.gpio_manager = GPIOManager()
pins = {}
pins['left'] = config['touchscreen']['gpio_left']
pins['right'] = config['touchscreen']['gpio_right']
pins['up'] = config['touchscreen']['gpio_up']
pins['down'] = config['touchscreen']['gpio_down']
pins['enter'] = config['touchscreen']['gpio_enter']
self.gpio_manager = GPIOManager(pins)

def start_thread(self):
clock = pygame.time.Clock()
Expand Down

0 comments on commit 4abfb1e

Please sign in to comment.