{ "info": { "author": "Paulo Mateus Moura da Silva (SrMouraSilva)", "author_email": "mateus.moura@hotmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Multimedia :: Sound/Audio" ], "description": "|Raspberry P0 symbol| Raspberry P0\n==================================\n\n.. |Raspberry P0 symbol| image:: docs/P0.gif\n :alt: Raspberry P0 symbol: Tho footswitches and a seven segments display showing the letters 'P0'\n :height: 50px\n\n|Build Status| |Code Health| |Codacy Badge|\n\nA simple physical controller for change and view the current pedalboard\nwith 2 buttons and 7 two segments displays\n\n::\n\n \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n \u2551 P e d a l P i P0 \u2551\n \u2551 \u250c \u23af \u23af \u2510 \u2551\n \u2551 |\u23a5\u23af\u239c\u23a5 \u239c | \u2551\n \u2551 |\u23a5 \u23a5\u23af\u239c.| \u2551\n \u2551 \u2514-------\u2518 \u2551\n \u2551---------------------\u252c---------------------\u2562\n \u2551 ..=.............=.. | .........=......... \u2551\n \u2551 ....=.........=.... | ......=.....=...... \u2551\n \u2551 ......=.....=...... | ....=.........=.... \u2551\n \u2551 .........=......... | ..=.............=.. \u2551\n \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d\n\n\n**Documentation:**\n https://github.com/PedalPi/Raspberry-P0#raspberry-p0\n\n**Code:**\n https://github.com/PedalPi/Raspberry-P0\n\n**Python Package Index:**\n https://pypi.org/project/PedalPi-Raspberry-P0\n\n**License:**\n `Apache License 2.0`_\n\n.. _Apache License 2.0: https://github.com/PedalPi/Raspberry-P0/blob/master/LICENSE\n\nElements list:\n--------------\n\n- |A seven segments displays component| 2 seven segments displays;\n- |A push button component| 2 push buttons for Pedalboard change.\n\nInstallation\n------------\n\nPedalPi components enable the extension of `Pedal Pi - Application`_.\nThrough them, opening services are offered. A list of components can be found in the `Components repository`_.\n\n.. _Pedal Pi - Application: http://pedalpi-application.readthedocs.io/en/latest/\n.. _Components repository: https://github.com/PedalPi/Components#list\n\nUse the pip to install the *PedalPi-Raspberry-P0*\n\n.. code-block:: bash\n\n pip3 install PedalPi-Raspberry-P0\n\nCreate the ``program.py``\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe following example demonstrates a basic setup for the Pedal Pi -\nRaspberry P0. If you want to add other components, check the `component\nlist `__.\n\n.. code-block:: python\n\n import sys\n from signal import pause\n\n from application.application import Application\n from raspberry_p0.raspberry_p0 import RaspberryP0\n\n application = Application(path_data=\"data/\", address='localhost')\n application.register(RaspberryP0(application))\n\n application.start()\n\n try:\n pause()\n except KeyboardInterrupt:\n application.stop()\n\nStart\n~~~~~\n\n.. code-block:: bash\n\n python3 program.py\n\nSchematic\n---------\n\nThe following image shows the connections between components and Raspberry Pi\nto the default configuration. If you wish to change the pins, refer to\n`Configuration File <#configuration-file>`__.\n\n.. figure:: docs/schematic.jpg\n :alt: P0 in the Fritzing\n\nPins\n~~~~\n\nThe pins of the seven-segment displays are shared with each other. That\nis, the ``pin_a`` of display 1 is shorted with the\\ ``pin_a`` of display\n2, ``pin_b`` of display 1 is shorted with\\ ``pin_b`` of display 2 and so\non. However, this rule does not apply to ``common_pin``, where each\ndisplay must have its own control pin.\n\nThe used pins are:\n\n+-----------------------+------------+-------------+---------------------------------+\n| Config identifier | Pin\u00b9 | Type | Function |\n+=======================+============+=============+=================================+\n| pin\\_a | ``13`` | integer | Seven segments - Pin A |\n+-----------------------+------------+-------------+---------------------------------+\n| pin\\_b | ``6`` | integer | Seven segments - Pin B |\n+-----------------------+------------+-------------+---------------------------------+\n| pin\\_c | ``16`` | integer | Seven segments - Pin C |\n+-----------------------+------------+-------------+---------------------------------+\n| pin\\_d | ``20`` | integer | Seven segments - Pin D |\n+-----------------------+------------+-------------+---------------------------------+\n| pin\\_e | ``21`` | integer | Seven segments - Pin E |\n+-----------------------+------------+-------------+---------------------------------+\n| pin\\_f | ``19`` | integer | Seven segments - Pin F |\n+-----------------------+------------+-------------+---------------------------------+\n| pin\\_g | ``26`` | integer | Seven segments - Pin G |\n+-----------------------+------------+-------------+---------------------------------+\n| pin\\_dp | ``0`` | integer | Seven segments - Dot point pin |\n+-----------------------+------------+-------------+---------------------------------+\n| common\\_pins | ``[5, 1]`` | integer | Seven segments - Common pins |\n| | | list | |\n+-----------------------+------------+-------------+---------------------------------+\n| common\\_anode | ``True`` | bool | ``True`` if the displays are |\n| | | | anode. ``False`` if are |\n| | | | cathode. |\n+-----------------------+------------+-------------+---------------------------------+\n| next\\_pedalboard | ``14`` | integer | Button - Set to next Pedalboard |\n+-----------------------+------------+-------------+---------------------------------+\n| before\\_pedalboard | ``15`` | integer | Button - Set to before |\n| | | | Pedalboard |\n+-----------------------+------------+-------------+---------------------------------+\n| momentary\\_footswitch | ``False`` | bool | ``True`` if buttons are |\n| | | | momentary. ``False`` if buttons |\n| | | | are two state |\n+-----------------------+------------+-------------+---------------------------------+\n\n\u00b9 `BCM pin numeration `__\n\n.. _configuration-file:\n\nConfiguration file\n------------------\n\nIt's possible changes the pins using a configuration file. The numbering\nof the pins corresponds to **BCM**. Isn't necessary to inform all\nconfigurations. An element not informed will be treated with your\ndefault value.\n\nA Raspberry Pi pinout schematic can be seen in\n`pinout.xyz `__.\n\nThe **config\\_file** has the following structure:\n\n::\n\n [display]\n pin_a = 13\n pin_b = 6\n pin_c = 16\n pin_d = 20\n pin_e = 21\n pin_f = 19\n pin_g = 26\n pin_dp = 0\n\n common_pins = [5, 1]\n common_anode = True\n\n [pedalboard]\n next_pedalboard = 14\n before_pedalboard = 15\n\n momentary_footswitch = True\n\n [test]\n test = False\n\nFor P0 to loads the new configuration, references the file in\n``RaspberryP0`` constructor.\n\n.. code-block:: python\n\n # The config file has named as 'path/my_awersome_config.ini'.\n application.register(RaspberryP0(application, configuration_file='my_awersome_config.ini'))\n\n|A seven segments displays component| ``[display]`` Seven segments display\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe seven-segment display consists of eight pins corresponding to the\nleds (``pin_a`` to\\ ``pin_g`` and ``pin_dp``) and two common pins (which\nare short-circuited).\n\nThere are two types of seven-segment displays: Cathode and Anode.\n``common_anode`` informs if the displays are Anode or Cathode.\n\nThe image obtained from `Circuits\nToday `__\nillustrates the correspondence of the pins with the LEDs.\n\nLed pins\n^^^^^^^^\n\nTo save the amount of pins required for the project, the pins of the\nseven-segment displays are shared with each other. In this way, the pins\ncorresponding to the pins leds (``pin_a`` to\\ ``pin_g`` and ``pin_dp``)\nmust respectively be short-circuited to the displays. That is, the\n``pin_a`` of display 1 is short-circuited with the\\ ``pin_a`` of display\n2, ``pin_b`` of display 1 is short-circuited with\\ ``pin_b`` of display\n2 and so on.\n\n+---------------------+-----------------+-----------+-----------------+\n| Config identifier | Default value | Type | Function |\n+=====================+=================+===========+=================+\n| ``pin_a`` | ``13`` | integer | Pin A |\n+---------------------+-----------------+-----------+-----------------+\n| ``pin_b`` | ``6`` | integer | Pin B |\n+---------------------+-----------------+-----------+-----------------+\n| ``pin_c`` | ``16`` | integer | Pin C |\n+---------------------+-----------------+-----------+-----------------+\n| ``pin_d`` | ``20`` | integer | Pin D |\n+---------------------+-----------------+-----------+-----------------+\n| ``pin_e`` | ``21`` | integer | Pin E |\n+---------------------+-----------------+-----------+-----------------+\n| ``pin_f`` | ``19`` | integer | Pin F |\n+---------------------+-----------------+-----------+-----------------+\n| ``pin_g`` | ``26`` | integer | Pin G |\n+---------------------+-----------------+-----------+-----------------+\n| ``pin_dp`` | ``0`` | integer | Dot point pin |\n+---------------------+-----------------+-----------+-----------------+\n\nCommon pins\n^^^^^^^^^^^\n\nTo describe the ``common_pin`` of the displays, a list of integers is\nused, where the significance of the digits follows the ascending order:\nthe *tens* corresponds to the first element of the list and the *units*\nto the second element of the list.\n\n+---------------------+-------------+------------+--------------------------------+\n| Config identifier | Default | Type | Function |\n| | value | | |\n+=====================+=============+============+================================+\n| ``common_pins`` | ``[5, 1]`` | integer | Pin that controls the display |\n| | | list | view |\n+---------------------+-------------+------------+--------------------------------+\n| ``common_anode`` | ``True`` | bool | ``True`` if the displays are |\n| | | | anode. ``False`` if are |\n| | | | cathode. |\n+---------------------+-------------+------------+--------------------------------+\n\nIn `Quora there is a\ntutorial `__\non how you can identify if a display is cathode or anode.\n\n|A push button component| ``[pedalboard]`` Push buttons\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSimple push buttons were used to change the current pedalboard. For use\nwith foot, is recommended use footswitches (like the temporary\nfootswitch in image below). The two types of buttons the system\nsupports are temporary buttons and two-state buttons (on-off).\n\n.. image:: docs/momentary-footswitch.jpg\n :align: right\n :alt: Temporary footswitch\n\n+-----------------------+-------------+---------+-------------------------------------+\n| Config identifier | Default | Type | Function |\n| | value | | |\n+=======================+=============+=========+=====================================+\n| next\\_pedalboard | ``14`` | integer | Set the current pedalboard for the |\n| | | | next |\n+-----------------------+-------------+---------+-------------------------------------+\n| before\\_pedalboard | ``15`` | integer | Set the current pedalboard for the |\n| | | | before |\n+-----------------------+-------------+---------+-------------------------------------+\n| momentary\\_footswitch | ``False`` | bool | ``True`` if buttons are momentary. |\n| | | | ``False`` if buttons are two state |\n+-----------------------+-------------+---------+-------------------------------------+\n\n``[test]`` Test\n~~~~~~~~~~~~~~~\n\n+---------------------+-----------------+--------+------------------------------------------+\n| Config identifier | Default value | Type | Function |\n+=====================+=================+========+==========================================+\n| ``test`` | ``False`` | bool | Disable GPIOZero for development tests |\n+---------------------+-----------------+--------+------------------------------------------+\n\nCommon questions\n----------------\n\nSee `FAQs on the wiki `__.\n\nExamples\n--------\n\n.. figure:: docs/Example.jpg\n :alt: P0 in a protoboard\n\n.. |Build Status| image:: https://travis-ci.org/PedalPi/Raspberry-P0.svg?branch=master\n :target: https://travis-ci.org/PedalPi/Raspberry-P0\n.. |Code Health| image:: https://landscape.io/github/PedalPi/Raspberry-P0/master/landscape.svg?style=flat-square\n :target: https://landscape.io/github/PedalPi/Raspberry-P0/master\n.. |Codacy Badge| image:: https://api.codacy.com/project/badge/Grade/f3e1af57f11d4d9e8be097153ce68195\n :target: https://www.codacy.com/app/mateus-moura/Raspberry-P0?utm_source=github.com&utm_medium=referral&utm_content=PedalPi/Raspberry-P0&utm_campaign=Badge_Grade\n.. |A seven segments displays component| image:: docs/seven-segments-example.jpg\n.. |A push button component| image:: docs/button-example.jpg\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/PedalPi/Raspberry-P0", "keywords": "pedal-pi mod-host lv2 audio plugins-manager raspberry", "license": "Apache Software License v2", "maintainer": "", "maintainer_email": "", "name": "PedalPi-Raspberry-P0", "package_url": "https://pypi.org/project/PedalPi-Raspberry-P0/", "platform": "Linux", "project_url": "https://pypi.org/project/PedalPi-Raspberry-P0/", "project_urls": { "Homepage": "https://github.com/PedalPi/Raspberry-P0" }, "release_url": "https://pypi.org/project/PedalPi-Raspberry-P0/0.2.1/", "requires_dist": null, "requires_python": "", "summary": "A simple physical controller for change and view the current pedalboard", "version": "0.2.1" }, "last_serial": 2942331, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "a0b9353064cc46e20873a6afb272a34c", "sha256": "e3f9b6e75f1703d65450025b0611f5ff25f6f87478b25c17048bbba0b0b03c88" }, "downloads": -1, "filename": "PedalPi-Raspberry-P0-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a0b9353064cc46e20873a6afb272a34c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14636, "upload_time": "2017-06-03T17:04:11", "url": "https://files.pythonhosted.org/packages/37/43/bba335e73468bde34de66053f81236df30a1c084eb5c12c65dc6b96da383/PedalPi-Raspberry-P0-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "cbcb9584c4a6f6e15c4189654efd9aa0", "sha256": "2b25642a6314b4763fedf543e005cf9c0da0934a4aa69f6ad23c46b76135d18c" }, "downloads": -1, "filename": "PedalPi-Raspberry-P0-0.2.1.tar.gz", "has_sig": false, "md5_digest": "cbcb9584c4a6f6e15c4189654efd9aa0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14618, "upload_time": "2017-06-11T16:25:40", "url": "https://files.pythonhosted.org/packages/d0/61/ded0a1503084fbf3f346b88d749e049a953eeb184671fe5af0aa5f1a108e/PedalPi-Raspberry-P0-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cbcb9584c4a6f6e15c4189654efd9aa0", "sha256": "2b25642a6314b4763fedf543e005cf9c0da0934a4aa69f6ad23c46b76135d18c" }, "downloads": -1, "filename": "PedalPi-Raspberry-P0-0.2.1.tar.gz", "has_sig": false, "md5_digest": "cbcb9584c4a6f6e15c4189654efd9aa0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14618, "upload_time": "2017-06-11T16:25:40", "url": "https://files.pythonhosted.org/packages/d0/61/ded0a1503084fbf3f346b88d749e049a953eeb184671fe5af0aa5f1a108e/PedalPi-Raspberry-P0-0.2.1.tar.gz" } ] }