Metadata-Version: 2.1
Name: adafruit-circuitpython-apds9960
Version: 2.2.8
Summary: CircuitPython driver for APSD9960 Gesture breakout board
Home-page: https://github.com/adafruit/Adafruit_CircuitPython_APDS9960
Author: Adafruit Industries
Author-email: circuitpython@adafruit.com
License: MIT
Keywords: adafruit apsd9960 gesture color proximity light sensor hardware micropython circuitpython
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: System :: Hardware
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Description-Content-Type: text/x-rst
License-File: LICENSE


Introduction
============

.. image:: https://readthedocs.org/projects/adafruit-circuitpython-apds9960/badge/?version=latest
    :target: https://circuitpython.readthedocs.io/projects/apds9960/en/latest/
    :alt: Documentation Status

.. image :: https://img.shields.io/discord/327254708534116352.svg
    :target: https://adafru.it/discord
    :alt: Discord

.. image:: https://github.com/adafruit/Adafruit_CircuitPython_APDS9960/workflows/Build%20CI/badge.svg
    :target: https://github.com/adafruit/Adafruit_CircuitPython_APDS9960/actions/
    :alt: Build Status

The APDS9960 is a specialized chip that detects hand gestures, proximity
and ambient light color over I2C. Its available on
`Adafruit as a breakout <https://www.adafruit.com/product/3595>`_.


Installation and Dependencies
=============================
This driver depends on:

* `Adafruit CircuitPython <https://github.com/adafruit/circuitpython>`_

Please ensure all dependencies are available on the CircuitPython filesystem.
This is easily achieved by downloading
`the Adafruit library and driver bundle <https://github.com/adafruit/Adafruit_CircuitPython_Bundle>`_.

Installing from PyPI
--------------------

On supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from PyPI <https://pypi.org/project/adafruit-circuitpython-apds9960/>`_. To install for current user:

.. code-block:: shell

    pip3 install adafruit-circuitpython-apds9960

To install system-wide (this may be required in some cases):

.. code-block:: shell

    sudo pip3 install adafruit-circuitpython-apds9960

To install in a virtual environment in your current project:

.. code-block:: shell

    mkdir project-name && cd project-name
    python3 -m venv .env
    source .env/bin/activate
    pip3 install adafruit-circuitpython-apds9960

Usage Example
=============

.. code-block:: python3

    import board
    import digitalio
    from adafruit_apds9960.apds9960 import APDS9960

    i2c = board.I2C()
    int_pin = digitalio.DigitalInOut(board.D5)
    apds = APDS9960(i2c)

    apds.enable_proximity = True
    apds.proximity_interrupt_threshold = (0, 175)
    apds.enable_proximity_interrupt = True

    while True:
            print(apds.proximity)
            apds.clear_interrupt()

Hardware Set-up
---------------

Connect Vin to 3.3 V or 5 V power source, GND to ground, SCL and SDA to the appropriate pins.

Basics
------

Of course, you must import i2c bus device, board pins, and the library:

.. code:: python3


  import board
  from adafruit_apds9960.apds9960 import APDS9960
  import digitalio

To set-up the device to gather data, initialize the I2CDevice using SCL
and SDA pins.   Then initialize the library.  Optionally provide an interrupt
pin for proximity detection.

.. code:: python3

  int_pin = digitalio.DigitalInOut(board.A1)
  i2c = board.I2C()
  apds = APDS9960(i2c)

Gestures
--------

To get a gesture, see if a gesture is available first, then get the gesture Code

.. code:: python3

  gesture = apds.gesture()
  if gesture == 1:
    print("up")
  if gesture == 2:
    print("down")
  if gesture == 3:
    print("left")
  if gesture == 4:
    print("right")

Color Measurement
-----------------

To get a color measure, enable color measures, wait for color data,
then get the color data.

.. code:: python3

  apds.enable_color = True

  while not apds.color_data_ready:
      time.sleep(0.005)

  r, g, b, c = apds.color_data
  print("r: {}, g: {}, b: {}, c: {}".format(r, g, b, c))

Proximity Detection
---------------------

To check for a object in proximity, see if a gesture is available first, then get the gesture Code

.. code:: python3

  apds.enable_proximity = True

  # set the interrupt threshold to fire when proximity reading goes above 175
  apds.proximity_interrupt_threshold = (0, 175)

  # enable the proximity interrupt
  apds.enable_proximity_interrupt = True

  while True:
    if not interrupt_pin.value:
      print(apds.proximity)

      # clear the interrupt
      apds.clear_interrupt()


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

API documentation for this library can be found on `Read the Docs <https://circuitpython.readthedocs.io/projects/apds9960/en/latest/>`_.

Contributing
============

Contributions are welcome! Please read our `Code of Conduct
<https://github.com/adafruit/Adafruit_CircuitPython_APDS9960/blob/main/CODE_OF_CONDUCT.md>`_
before contributing to help this project stay welcoming.

Building locally
================

To build this library locally you'll need to install the
`circuitpython-travis-build-tools <https://github.com/adafruit/circuitpython-build-tools>`_ package.

.. code-block::shell

    python3 -m venv .env
    source .env/bin/activate
    pip install -r requirements.txt

Once installed, make sure you are in the virtual environment:

.. code-block::shell

    source .env/bin/activate

Then run the build:

.. code-block::shell

    circuitpython-build-bundles --filename_prefix adafruit-circuitpython-apds --library_location .

Sphinx documentation
-----------------------

Sphinx is used to build the documentation based on rST files and comments in the code. First,
install dependencies (feel free to reuse the virtual environment from above):

.. code-block:: shell

    python3 -m venv .env
    source .env/bin/activate
    pip install Sphinx sphinx-rtd-theme

Now, once you have the virtual environment activated:

.. code-block:: shell

    cd docs
    sphinx-build -E -W -b html . _build/html

This will output the documentation to ``docs/_build/html``. Open the index.html in your browser to
view them. It will also (due to -W) error out on any warning like Travis will. This is a good way to
locally verify it will pass.


