mirror of
https://github.com/KevinMidboe/python-gpiozero.git
synced 2025-10-29 17:50:37 +00:00
e2ddad6fea81767166139e529e1342f767be4540
The motion sensor queue doesn't shut down properly at script end at the moment and prevents the interpreter shutting down. This is because it's a non-daemon thread so `__del__` never gets run and so on. This is a bit of a major PR - I can split it up if you want. Firstly it makes a common base class called `GPIODevice` for both `InputDevice` and `OutputDevice`. This just takes care of the read-only pin stuff. Next it makes a `GPIOThread` class that ensures its a daemon thread, and which also ensures proper cleanup on shutdown. Finally, it fixes `MotionSensor` to use the new `GPIOThread` class (tested this time! Works nicely) and adds the `blink` method to the `LED` class (which also works nicely this time).
========
gpiozero
========
A simple interface to everyday GPIO components used with Raspberry Pi
*A work in progress*
Motivation
==========
The "hello world" program in Java is at least 5 lines long, and contains 11 jargon words which students are taught to ignore.
The "hello world" program in Python is one simple line. However, the "hello world" of physical computing in Python (flashing an LED) is similar to the Java program: 6 lines of code to flash an LED.
Young children and beginners shouldn't need to sit and copy out several lines of text they're told to ignore. They should be able to read their code and understand what it means.
Install
=======
Install with pip::
sudo pip install gpiozero
sudo pip-3.2 install gpiozero
Usage
=====
Example usage for flashing an LED::
from gpiozero import LED
from time import sleep
led = LED(2)
while True:
led.on()
sleep(1)
led.off()
sleep(1)
Development
===========
This project is being developed on `GitHub`_. Join in:
* Provide suggestions
* Help design the `API`_
* Contribute to the code
Alternatively, email suggestions and feedback to ben@raspberrypi.org
.. _`GitHub`: https://github.com/RPi-Distro/python-gpiozero
.. _`API`: https://github.com/RPi-Distro/python-gpiozero/issues/7
Description
Languages
Python
98.8%
Makefile
1.2%