Dave Jones 8e0c6e243b Refactor low level implementation
This commit is a fairly major piece of work that abstracts all pin
operations (function, state, edge detection, PWM, etc.) into a base
"Pin" class which is then used by input/output/composite devices to
perform all required configuration.

The idea is to pave the way for I2C based IO extenders which can present
additional GPIO ports with similar capabilities to the Pi's "native"
GPIO ports. As a bonus it also abstracts away the reliance on the
RPi.GPIO library to allow alternative pin implementations (e.g. using
RPIO to take advantage of DMA based PWM), or even pure Python
implementations.
2016-02-08 14:54:18 +00:00
2016-01-30 23:40:12 +00:00
2016-02-08 14:54:18 +00:00
2015-10-03 16:24:12 +01:00
2016-02-08 12:01:42 +00:00
2015-10-10 15:54:08 +01:00
2016-02-08 14:54:18 +00:00

========
gpiozero
========

.. image:: https://badge.fury.io/py/gpiozero.svg
    :target: https://badge.fury.io/py/gpiozero
    :alt: Latest Version

A simple interface to everyday GPIO components used with Raspberry Pi.

Created by `Ben Nuttall`_ of the `Raspberry Pi Foundation`_, `Dave Jones`_, and
other contributors.

About
=====

Component interfaces are provided to allow a frictionless way to get started
with physical computing::

    from gpiozero import LED
    from time import sleep

    led = LED(17)

    while True:
        led.on()
        sleep(1)
        led.off()
        sleep(1)

With very little code, you can quickly get going connecting your components
together::

    from gpiozero import LED, Button
    from signal import pause

    led = LED(17)
    button = Button(3)

    button.when_pressed = led.on
    button.when_released = led.off

    pause()

The library includes interfaces to many simple everyday components, as well as
some more complex things like sensors, analogue-to-digital converters, full
colour LEDs, robotics kits and more.

Install
=======

First, update your repositories list::

    sudo apt-get update

Then install the package of your choice. Both Python 3 and Python 2 are
supported. Python 3 is recommended::

    sudo apt-get install python3-gpiozero

or::

    sudo apt-get install python-gpiozero

Documentation
=============

Comprehensive documentation is available at https://gpiozero.readthedocs.org/.

Development
===========

This project is being developed on `GitHub`_. Join in:

* Provide suggestions, report bugs and ask questions as `issues`_
* Provide examples we can use as `recipes`_
* Contribute to the code

Alternatively, email suggestions and feedback to mailto:ben@raspberrypi.org or
add to the `Google Doc`_.

Contributors
============

- `Ben Nuttall`_ (project maintainer)
- `Dave Jones`_
- `Martin O'Hanlon`_


.. _Ben Nuttall: https://github.com/bennuttall
.. _Raspberry Pi Foundation: https://www.raspberrypi.org/
.. _Dave Jones: https://github.com/waveform80
.. _GitHub: https://github.com/RPi-Distro/python-gpiozero
.. _issues: https://github.com/RPi-Distro/python-gpiozero/issues
.. _recipes: http://gpiozero.readthedocs.org/en/latest/recipes.html
.. _Google Doc: https://goo.gl/8zJLif
.. _Ben Nuttall: https://github.com/bennuttall
.. _Dave Jones: https://github.com/waveform80
.. _Martin O'Hanlon: https://github.com/martinohanlon
Description
A simple interface to GPIO devices with Raspberry Pi
Readme 7.3 MiB
Languages
Python 98.8%
Makefile 1.2%