mirror of
				https://github.com/KevinMidboe/python-gpiozero.git
				synced 2025-10-29 17:50:37 +00:00 
			
		
		
		
	Split Notes into FAQ and Recipes
Notes was always a bit of a "vague" section and half of it felt like FAQs. Hopefully this is a little more consistent
This commit is contained in:
		
							
								
								
									
										74
									
								
								docs/faq.rst
									
									
									
									
									
								
							
							
						
						
									
										74
									
								
								docs/faq.rst
									
									
									
									
									
								
							| @@ -84,3 +84,77 @@ suppress the warnings you've got a couple of options: | ||||
|    Refer to the :mod:`warnings` module documentation for more refined ways to | ||||
|    filter out specific warning classes. | ||||
|  | ||||
|  | ||||
| How can I tell what version of gpiozero I have installed? | ||||
| ========================================================= | ||||
|  | ||||
| The gpiozero library relies on the setuptools package for installation | ||||
| services.  You can use the setuptools ``pkg_resources`` API to query which | ||||
| version of gpiozero is available in your Python environment like so: | ||||
|  | ||||
| .. code-block:: pycon | ||||
|  | ||||
|     >>> from pkg_resources import require | ||||
|     >>> require('gpiozero') | ||||
|     [gpiozero 1.3.2 (/usr/lib/python3/dist-packages)] | ||||
|     >>> require('gpiozero')[0].version | ||||
|     '1.3.2' | ||||
|  | ||||
| If you have multiple versions installed (e.g. from ``pip`` and ``apt``) they | ||||
| will not show up in the list returned by the ``require`` method. However, the | ||||
| first entry in the list will be the version that ``import gpiozero`` will | ||||
| import. | ||||
|  | ||||
| If you receive the error "No module named pkg_resources", you need to install | ||||
| the ``pip`` utility. This can be done with the following command in Raspbian: | ||||
|  | ||||
| .. code-block:: console | ||||
|  | ||||
|     $ sudo apt install python-pip | ||||
|  | ||||
| Alternatively, install pip with `get-pip`_. | ||||
|  | ||||
| .. _get-pip: https://pip.pypa.io/en/stable/installing/ | ||||
|  | ||||
|  | ||||
| .. _keep-your-script-running: | ||||
|  | ||||
| How do I keep my script running? | ||||
| ================================ | ||||
|  | ||||
| The following script looks like it should turn an LED on:: | ||||
|  | ||||
|     from gpiozero import LED | ||||
|  | ||||
|     led = LED(17) | ||||
|     led.on() | ||||
|  | ||||
| And it does, if you're using the Python (or IPython or IDLE) shell. However, | ||||
| if you saved this script as a Python file and ran it, it would flash on | ||||
| briefly, then the script would end and it would turn off. | ||||
|  | ||||
| The following file includes an intentional :func:`~signal.pause` to keep the | ||||
| script alive:: | ||||
|  | ||||
|     from gpiozero import LED | ||||
|     from signal import pause | ||||
|  | ||||
|     led = LED(17) | ||||
|     led.on() | ||||
|     pause() | ||||
|  | ||||
| Now the script will stay running, leaving the LED on, until it is terminated | ||||
| manually (e.g. by pressing Ctrl+C). Similarly, when setting up callbacks on | ||||
| button presses or other input devices, the script needs to be running for the | ||||
| events to be detected:: | ||||
|  | ||||
|     from gpiozero import Button | ||||
|     from signal import pause | ||||
|  | ||||
|     def hello(): | ||||
|         print("Hello") | ||||
|  | ||||
|     button = Button(2) | ||||
|     button.when_pressed = hello | ||||
|     pause() | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,6 @@ Table of Contents | ||||
|     :numbered: | ||||
|  | ||||
|     recipes | ||||
|     notes | ||||
|     installing | ||||
|     api_input | ||||
|     api_output | ||||
|   | ||||
							
								
								
									
										105
									
								
								docs/notes.rst
									
									
									
									
									
								
							
							
						
						
									
										105
									
								
								docs/notes.rst
									
									
									
									
									
								
							| @@ -1,105 +0,0 @@ | ||||
| ===== | ||||
| Notes | ||||
| ===== | ||||
|  | ||||
| .. currentmodule:: gpiozero | ||||
|  | ||||
|  | ||||
| .. _keep-your-script-running: | ||||
|  | ||||
| Keep your script running | ||||
| ======================== | ||||
|  | ||||
| The following script looks like it should turn an LED on:: | ||||
|  | ||||
|     from gpiozero import LED | ||||
|  | ||||
|     led = LED(17) | ||||
|     led.on() | ||||
|  | ||||
| And it does, if you're using the Python (or IPython or IDLE) shell. However, | ||||
| if you saved this script as a Python file and ran it, it would flash on | ||||
| briefly, then the script would end and it would turn off. | ||||
|  | ||||
| The following file includes an intentional :func:`~signal.pause` to keep the | ||||
| script alive:: | ||||
|  | ||||
|     from gpiozero import LED | ||||
|     from signal import pause | ||||
|  | ||||
|     led = LED(17) | ||||
|     led.on() | ||||
|     pause() | ||||
|  | ||||
| Now the script will stay running, leaving the LED on, until it is terminated | ||||
| manually (e.g. by pressing Ctrl+C). Similarly, when setting up callbacks on | ||||
| button presses or other input devices, the script needs to be running for the | ||||
| events to be detected:: | ||||
|  | ||||
|     from gpiozero import Button | ||||
|     from signal import pause | ||||
|  | ||||
|     def hello(): | ||||
|         print("Hello") | ||||
|  | ||||
|     button = Button(2) | ||||
|     button.when_pressed = hello | ||||
|     pause() | ||||
|  | ||||
|  | ||||
| Importing from GPIO Zero | ||||
| ======================== | ||||
|  | ||||
| In Python, libraries and functions used in a script must be imported by name | ||||
| at the top of the file, with the exception of the functions built into Python | ||||
| by default. | ||||
|  | ||||
| For example, to use the :class:`Button` interface from GPIO Zero, it | ||||
| should be explicitly imported:: | ||||
|  | ||||
|     from gpiozero import Button | ||||
|  | ||||
| Now :class:`~gpiozero.Button` is available directly in your script:: | ||||
|  | ||||
|     button = Button(2) | ||||
|  | ||||
| Alternatively, the whole GPIO Zero library can be imported:: | ||||
|  | ||||
|     import gpiozero | ||||
|  | ||||
| In this case, all references to items within GPIO Zero must be prefixed:: | ||||
|  | ||||
|     button = gpiozero.Button(2) | ||||
|  | ||||
|  | ||||
| How can I tell what version of gpiozero I have installed? | ||||
| ========================================================= | ||||
|  | ||||
| The gpiozero library relies on the setuptools package for installation | ||||
| services.  You can use the setuptools ``pkg_resources`` API to query which | ||||
| version of gpiozero is available in your Python environment like so: | ||||
|  | ||||
| .. code-block:: pycon | ||||
|  | ||||
|     >>> from pkg_resources import require | ||||
|     >>> require('gpiozero') | ||||
|     [gpiozero 1.3.2 (/usr/lib/python3/dist-packages)] | ||||
|     >>> require('gpiozero')[0].version | ||||
|     '1.3.2' | ||||
|  | ||||
| If you have multiple versions installed (e.g. from ``pip`` and ``apt``) they | ||||
| will not show up in the list returned by the ``require`` method. However, the | ||||
| first entry in the list will be the version that ``import gpiozero`` will | ||||
| import. | ||||
|  | ||||
| If you receive the error "No module named pkg_resources", you need to install | ||||
| the ``pip`` utility. This can be done with the following command in Raspbian: | ||||
|  | ||||
| .. code-block:: console | ||||
|  | ||||
|     sudo apt install python-pip | ||||
|  | ||||
| Alternatively, install pip with `get-pip`_. | ||||
|  | ||||
|  | ||||
| .. _get-pip: https://pip.pypa.io/en/stable/installing/ | ||||
| @@ -24,6 +24,31 @@ example, if an LED was attached to "GPIO17" you would specify the pin number as | ||||
| 17 rather than 11: | ||||
|  | ||||
| .. image:: images/pin_layout.* | ||||
|     :align: center | ||||
|  | ||||
| Importing GPIO Zero | ||||
| =================== | ||||
|  | ||||
| In Python, libraries and functions used in a script must be imported by name | ||||
| at the top of the file, with the exception of the functions built into Python | ||||
| by default. | ||||
|  | ||||
| For example, to use the :class:`Button` interface from GPIO Zero, it | ||||
| should be explicitly imported:: | ||||
|  | ||||
|     from gpiozero import Button | ||||
|  | ||||
| Now :class:`~gpiozero.Button` is available directly in your script:: | ||||
|  | ||||
|     button = Button(2) | ||||
|  | ||||
| Alternatively, the whole GPIO Zero library can be imported:: | ||||
|  | ||||
|     import gpiozero | ||||
|  | ||||
| In this case, all references to items within GPIO Zero must be prefixed:: | ||||
|  | ||||
|     button = gpiozero.Button(2) | ||||
|  | ||||
| LED | ||||
| === | ||||
|   | ||||
		Reference in New Issue
	
	Block a user