Skip to content

Commit d49e534

Browse files
Autogenerated. Convert PyPi packaging and add Readme Updates
1 parent 74f4ab9 commit d49e534

File tree

6 files changed

+171
-180
lines changed

6 files changed

+171
-180
lines changed

README.md

Lines changed: 88 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,106 +1,122 @@
1-
Qwiic_Button_Py
2-
===============
1+
![Qwiic BUTTON - Python Package](docs/images/gh-banner.png "qwiic BUTTON Python Package")
32

4-
<p align="center">
5-
<img src="https://cdn.sparkfun.com/assets/custom_pages/2/7/2/qwiic-logo-registered.jpg" width=200>
6-
<img src="https://www.python.org/static/community_logos/python-logo-master-v3-TM.png" width=240>
7-
</p>
8-
<p align="center">
9-
<a href="https://pypi.org/project/sparkfun-qwiic-button/" alt="Package">
10-
<img src="https://img.shields.io/pypi/pyversions/sparkfun-qwiic-button.svg" /></a>
11-
<a href="https://github.com/sparkfun/Qwiic_Button_Py/issues" alt="Issues">
12-
<img src="https://img.shields.io/github/issues/sparkfun/Qwiic_Button_Py.svg" /></a>
13-
<a href="https://qwiic-button-py.readthedocs.io/en/main/?" alt="Documentation">
14-
<img src="https://readthedocs.org/projects/qwiic-button-py/badge/?version=main&style=flat" /></a>
15-
<a href="https://github.com/sparkfun/Qwiic_Button_Py/blob/master/LICENSE" alt="License">
16-
<img src="https://img.shields.io/badge/license-MIT-blue.svg" /></a>
17-
<a href="https://twitter.com/intent/follow?screen_name=sparkfun">
18-
<img src="https://img.shields.io/twitter/follow/sparkfun.svg?style=social&logo=twitter"
19-
alt="follow on Twitter"></a>
3+
# SparkFun Qwiic BUTTON - Python Package
204

21-
</p>
5+
![PyPi Version](https://img.shields.io/pypi/v/sparkfun_qwiic_button)
6+
![GitHub issues](https://img.shields.io/github/issues/sparkfun/qwiic_button_py)
7+
![License](https://img.shields.io/github/license/sparkfun/qwiic_button_py)
8+
![X](https://img.shields.io/twitter/follow/sparkfun)
9+
[![API](https://img.shields.io/badge/API%20Reference-blue)](https://docs.sparkfun.com/qwiic_button_py/classqwiic__button_1_1_qwiic_button.html)
2210

23-
<img src="https://cdn.sparkfun.com/assets/parts/1/4/5/7/3/15932-SparkFun_Qwiic_Button_-_Red-01.jpg" align="right" width=300 alt="SparkFun Qwiic Button">
11+
The SparkFun Qwiic Button BUTTON Module provides a simple and cost effective solution for adding Button capabilities to your project. Implementing a SparkFun Qwiic I2C interface, these sensors can be rapidly added to any project with boards that are part of the SparkFun Qwiic ecosystem.
2412

25-
Python module for the [SparkFun Qwiic Button](https://www.sparkfun.com/products/15932)
13+
This repository implements a Python package for the SparkFun Qwiic BUTTON. This package works with Python, MicroPython and CircuitPython.
2614

27-
This module is also compatible with the following products:
28-
* [SparkFun Qwiic Button - Green LED](https://www.sparkfun.com/products/16842)
29-
* [SparkFun Qwiic Button Breakout](https://www.sparkfun.com/products/15931)
30-
* [Qwiic Arcade - Red](https://www.sparkfun.com/products/15591)
31-
* [Qwiic Arcade - Blue](https://www.sparkfun.com/products/15592)
32-
* [Qwiic Switch](https://www.sparkfun.com/products/15586)
15+
### Contents
3316

34-
Please remember that SparkX products are experimental, therefore full functionality is not gauranteed.
17+
* [About](#about-the-package)
18+
* [Getting Started](#getting-started)
19+
* [Installation](#installation)
20+
* [Supported Platforms](#supported-platforms)
21+
* [Documentation](https://docs.sparkfun.com/qwiic_button_py/classqwiic__button_1_1_qwiic_button.html)
22+
* [Examples](#examples)
3523

36-
This python package is a port of the existing [SparkFun Qwiic Button Arduino Library](https://github.com/sparkfun/SparkFun_Qwiic_Button_Arduino_Library)
24+
## About the Package
3725

38-
This package can be used in conjunction with the overall [SparkFun qwiic Python Package](https://github.com/sparkfun/Qwiic_Py)
26+
This python package enables the user to access the features of the BUTTON via a single Qwiic cable. This includes <checking button state, configuring button LED, change I2C address> and more. The capabilities of the BUTTON are each demonstrated in the included examples.
3927

4028
New to qwiic? Take a look at the entire [SparkFun qwiic ecosystem](https://www.sparkfun.com/qwiic).
4129

42-
## Contents
30+
### Supported SparkFun Products
4331

44-
* [Supported Platforms](#supported-platforms)
45-
* [Dependencies](#dependencies)
46-
* [Installation](#installation)
47-
* [Documentation](#documentation)
48-
* [Example Use](#example-use)
32+
This Python package supports the following SparkFun qwiic products on Python, MicroPython and Circuit python.
4933

50-
Supported Platforms
51-
--------------------
52-
The Qwiic Button Python package current supports the following platforms:
53-
* [Raspberry Pi](https://www.sparkfun.com/search/results?term=raspberry+pi)
54-
* [NVidia Jetson Nano](https://www.sparkfun.com/products/15297)
55-
* [Google Coral Development Board](https://www.sparkfun.com/products/15318)
34+
* [SparkFun Button Sensor - BUTTON](http://www.sparkfun.com/qwiic)
5635

57-
Dependencies
58-
--------------
59-
This driver package depends on the qwiic I2C driver:
60-
[Qwiic_I2C_Py](https://github.com/sparkfun/Qwiic_I2C_Py)
36+
### Supported Platforms
6137

62-
Documentation
63-
-------------
64-
The SparkFun Qwiic Button module documentation is hosted at [ReadTheDocs](https://qwiic-button-py.readthedocs.io/en/main/?)
38+
| Python | Platform | Boards |
39+
|--|--|--|
40+
| Python | Linux | [Raspberry Pi](https://www.sparkfun.com/raspberry-pi-5-8gb.html) , [NVIDIA Jetson Orin Nano](https://www.sparkfun.com/nvidia-jetson-orin-nano-developer-kit.html) via the [SparkFun Qwiic SHIM](https://www.sparkfun.com/sparkfun-qwiic-shim-for-raspberry-pi.html) |
41+
| MicroPython | Raspberry Pi - RP2, ESP32 | [SparkFun RP2040 Thing+](https://www.sparkfun.com/sparkfun-thing-plus-rp2040.html), [SparkFun RP2350 Thing+](https://www.sparkfun.com/sparkfun-thing-plus-rp2350.html), [SparkFun ESP32 Thing+](https://www.sparkfun.com/sparkfun-thing-plus-esp32-wroom-usb-c.html)
42+
|CircuitPython | Raspberry Pi - RP2, ESP32 | [SparkFun RP2040 Thing+](https://www.sparkfun.com/sparkfun-thing-plus-rp2040.html), [SparkFun RP2350 Thing+](https://www.sparkfun.com/sparkfun-thing-plus-rp2350.html), [SparkFun ESP32 Thing+](https://www.sparkfun.com/sparkfun-thing-plus-esp32-wroom-usb-c.html)
6543

66-
Installation
67-
---------------
68-
### PyPi Installation
44+
> [!NOTE]
45+
> The listed supported platforms and boards are the primary platform targets tested. It is fully expected that this package will work across a wide variety of Python enabled systems.
6946
70-
This repository is hosted on PyPi as the [sparkfun-qwiic-button](https://pypi.org/project/sparkfun-qwiic-button/) package. On systems that support PyPi installation via pip, this library is installed using the following commands
47+
## Installation
7148

72-
For all users (note: the user must have sudo privileges):
49+
The first step to using this package is installing it on your system. The install method depends on the python platform. The following sections outline installation on Python, MicroPython and CircuitPython.
50+
51+
### Python
52+
53+
#### PyPi Installation
54+
55+
The package is primarily installed using the `pip3` command, downloading the package from the Python Index - "PyPi".
56+
57+
Note - the below instructions outline installation on a Linux-based (Raspberry Pi) system.
58+
59+
First, setup a virtual environment from a specific directory using venv:
7360
```sh
74-
sudo pip install sparkfun-qwiic-button
61+
python3 -m venv path/to/venv
7562
```
76-
For the current user:
63+
You can pass any path as path/to/venv, just make sure you use the same one for all future steps. For more information on venv [click here](https://docs.python.org/3/library/venv.html).
7764

65+
Next, install the qwiic package with:
66+
```sh
67+
path/to/venv/bin/pip3 install sparkfun-qwiic-button
68+
```
69+
Now you should be able to run any example or custom python scripts that have `import qwiic_button` by running e.g.:
7870
```sh
79-
pip install sparkfun-qwiic-button
71+
path/to/venv/bin/python3 example_script.py
8072
```
81-
To install, make sure the setuptools package is installed on the system.
8273

83-
Direct installation at the command line:
74+
### MicroPython Installation
75+
If not already installed, follow the [instructions here](https://docs.micropython.org/en/latest/reference/mpremote.html) to install mpremote on your computer.
76+
77+
Connect a device with MicroPython installed to your computer and then install the package directly to your device with mpremote mip.
78+
```sh
79+
mpremote mip install github:sparkfun/qwiic_button_py
80+
```
81+
82+
If you would also like to install the examples for this repository, issue the following mip command as well:
83+
```sh
84+
mprmeote mip install github:sparkfun/qwiic_button_py@examples
85+
```
86+
87+
### CircuitPython Installation
88+
If not already installed, follow the [instructions here](https://docs.circuitpython.org/projects/circup/en/latest/#installation) to install CircUp on your computer.
89+
90+
Ensure that you have the latest version of the SparkFun Qwiic CircuitPython bundle.
8491
```sh
85-
python setup.py install
92+
circup bundle-add sparkfun/Qwiic_Py
8693
```
8794

88-
To build a package for use with pip:
95+
Finally, connect a device with CircuitPython installed to your computer and then install the package directly to your device with circup.
8996
```sh
90-
python setup.py sdist
91-
```
92-
A package file is built and placed in a subdirectory called dist. This package file can be installed using pip.
97+
circup install --py qwiic_button
98+
```
99+
100+
If you would like to install any of the examples from this repository, issue the corresponding circup command from below. (NOTE: The below syntax assumes you are using CircUp on Windows. Linux and Mac will have different path seperators (i.e. "/" vs. "\"). See the [CircUp "example" command documentation](https://learn.adafruit.com/keep-your-circuitpython-libraries-on-devices-up-to-date-with-circup/example-command) for more information)
101+
93102
```sh
94-
cd dist
95-
pip install sparkfun-qwiic-button-<version>.tar.gz
103+
circup example qwiic_button\qwiic_button_ex1_buttonPress
104+
circup example qwiic_button\qwiic_button_ex2_LEDon
105+
circup example qwiic_button\qwiic_button_ex3_LEDconfig
106+
circup example qwiic_button\qwiic_button_ex4_queueUsage
107+
circup example qwiic_button\qwiic_button_ex5_popQueue
108+
circup example qwiic_button\qwiic_button_ex6_changeI2CAddress
109+
circup example qwiic_button\qwiic_button_ex7_2Buttons
96110
```
97111

98112
Example Use
99-
-------------
100-
See the examples directory for more detailed use examples.
113+
---------------
114+
Below is a quickstart program to print readings from the BUTTON.
115+
116+
See the examples directory for more detailed use examples and [examples/README.md](https://github.com/sparkfun/qwiic_button_py/blob/main/examples/README.md) for a summary of the available examples.
101117

102118
```python
103-
from __future__ import print_function
119+
104120
import qwiic_button
105121
import time
106122
import sys
@@ -119,12 +135,12 @@ def run_example():
119135
while True:
120136

121137
if my_button.is_button_pressed() == True:
122-
print("\nThe button is pressed!")
138+
print("The button is pressed!")
123139

124140
else:
125-
print("\nThe button is not pressed!")
141+
print("The button is not pressed!")
126142

127-
time.sleep(0.02)
143+
time.sleep(0.1)
128144

129145
if __name__ == '__main__':
130146
try:
@@ -133,7 +149,6 @@ if __name__ == '__main__':
133149
print("\nEnding Example 1")
134150
sys.exit(0)
135151

136-
137152
```
138153
<p align="center">
139154
<img src="https://cdn.sparkfun.com/assets/custom_pages/3/3/4/dark-logo-red-flame.png" alt="SparkFun - Start Something">

docs/images/gh-banner.png

633 KB
Loading

examples/README.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Sparkfun BUTTON Examples Reference
2+
Below is a brief summary of each of the example programs included in this repository. To report a bug in any of these examples or to request a new feature or example [submit an issue in our GitHub issues.](https://github.com/sparkfun/qwiic_button_py/issues).
3+
4+
NOTE: Any numbering of examples is to retain consistency with the Arduino library from which this was ported.
5+
6+
## Qwiic Button Ex1 Buttonpress
7+
Simple Example for the Qwiic Button. Checks whether the button is pressed and
8+
then prints its status.
9+
10+
## Qwiic Button Ex2 Ledon
11+
Simple Example for the Qwiic Button. Turns on the button's built in LED
12+
when pressed and prints status.
13+
14+
## Qwiic Button Ex3 Ledconfig
15+
Simple Example for the Qwiic Button. Checks whether the button is pressed and
16+
and the LED pulses if it is.
17+
18+
## Qwiic Button Ex4 Queueusage
19+
Simple Example for the Qwiic Button. Shows how to use he FIFO Queue on the Qwiic Button.
20+
21+
## Qwiic Button Ex5 Popqueue
22+
Simple Example for the Qwiic Button. Shows how to use he FIFO Queue on the Qwiic Button.
23+
24+
## Qwiic Button Ex6 Changei2Caddress
25+
Simple Example for the Qwiic Button. Shows how to change the I2C address of
26+
the Qwiic Button
27+
28+
## Qwiic Button Ex7 2Buttons
29+
Simple Example for the Qwiic Button. Daisy chain together two Qwiic Buttons
30+
with different I2C addresses. This example works for a Qwiic Button with the
31+
default address of 0x6F and one with an address changed to 0x5B. To change
32+
the address of a Qwiic Button, please visit example 6.
33+
34+

pyproject.toml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
[build-system]
2+
requires = ["setuptools"]
3+
4+
[project]
5+
name = "sparkfun_qwiic_button"
6+
version = "2.0.2"
7+
description = "This package allows the user to: determine whether or not the button/switch is pressed or has been clicked \
8+
readme = "DESCRIPTION.rst"
9+
10+
authors = [{name="Sparkfun Electronics", email="info@sparkfun.com"}]
11+
dependencies = ["sparkfun_qwiic_i2c"]
12+
13+
classifiers=[
14+
# How mature is this project? Common values are
15+
# 3 - Alpha
16+
# 4 - Beta
17+
# 5 - Production/Stable
18+
"Development Status :: 5 - Production/Stable",
19+
20+
# Indicate who your project is intended for
21+
"Intended Audience :: Developers",
22+
"Topic :: Software Development :: Build Tools",
23+
24+
# Pick your license as you wish (should match "license" above)
25+
"License :: OSI Approved :: MIT License",
26+
27+
# Specify the Python versions you support here. In particular, ensure
28+
# that you indicate whether you support Python 2, Python 3 or both.
29+
"Programming Language :: Python :: 3.5",
30+
"Programming Language :: Python :: 3.6",
31+
"Programming Language :: Python :: 3.7",
32+
"Programming Language :: Python :: 3.8",
33+
"Programming Language :: Python :: 3.9",
34+
"Programming Language :: Python :: 3.10",
35+
"Programming Language :: Python :: 3.11",
36+
"Programming Language :: Python :: 3.12",
37+
"Programming Language :: Python :: 3.13",
38+
"Programming Language :: Python :: 3.14",
39+
"Programming Language :: Python :: Implementation :: MicroPython",
40+
# NOTE: CircuitPython is also supported, but no classifier exists for it
41+
]
42+
43+
keywords = ["electronics, maker"]
44+
45+
[project.urls]
46+
homepage = "http://www.sparkfun.com/qwiic"
47+
48+
[tool.setuptools]
49+
py-modules = ["qwiic_button"]

setup.cfg

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)