ftexplore


Nameftexplore JSON
Version 2.1.0 PyPI version JSON
download
home_pagehttps://www.henrici.name/projects/ftexplore.html
Summaryft-Explore allows to control motors and to check inputs by GUI and user-provided Python code
upload_time2022-12-02 22:25:20
maintainer
docs_urlNone
authorDirk Henrici
requires_python>=3.5
license
keywords motorhat raspberrypi fischertechnik education
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ft-Explore

> ft-Explore allows to control motors and to check inputs by GUI and user-provided Python code.

<!-- <a href="https://www.henrici.name/projects/ftexplore.html"><img src="https://www.henrici.name/projects/images/ftexplore1_401.gif" title="ft-Explore GUI" alt="ft-Explore GUI"></a> -->

[![ft-Explore GUI](https://www.henrici.name/projects/images/ftexplore1.gif)](https://www.henrici.name/projects/ftexplore.html)

ft-Explore was implemented to interface with hardware of technical models for educational purposes. It is open-source and contains interface modules for widely available hardware (RaspberryPi with Adafruit Motor HAT).

---

## Installation

ft-Explore can be installed easily. See the sections below depending on your platform.

### Windows

- Download msi installer file (can be found "dist" folder)
- Install using the msi installer
- Afterwards the application can be started via shortcut "ft-Explore" in start menu

Alternatively, you can download the source code and run it after installing Python (e.g. via https://www.anaconda.com/distribution/). See the Linux section below for required Python packages.

### Linux

- Make sure that you use Python version 3.5 or newer
- Install Python libraries as needed:

> in case the application shall not just be used locally and shall use the network

```shell
$ pip install cffi pynng
```

> in case you are running on a RaspberryPi and want to access the GPIOs as inputs

```shell
$ pip install RPi.GPIO
```

> in case you are running on a RaspberryPi with an Adafruit Motor HAT

```shell
$ pip install adafruit_motorkit
```

- Install ft-Explore:

```shell
$ pip install ftexplore
```

- Run ft-Explore

> run and show help page

```shell
$ python -m ftexplore --help
```

### Clone (for developers only)

- Clone this repo to your local machine using `https://www.hosting-srv.de/gitea/HNET/ftexplore.git`

---

## Features

- Graphical user interface for controlling four motors/lights and showing the state of eight digital inputs
- Platform independent, tested on Windows and Linux (Debian and Raspbian)
- No dependencies except hardware drivers when operating locally
- Controlling motors/lights and getting the state of the inputs can be done by user-provided Python scripts
- The user-provided Python scripts can be executed and interrupted in the GUI. Script output and exceptions are shown there
- Manual control via GUI and script-based control is possible simultaneously
- GUI and hardware can be distributed to multiple machines, e.g. hardware on a headless RaspberryPi can be controlled via GUI on a Windows notebook

## Usage

- Demo usage

> Show GUI and use no real hardware for demo purposes (the default):

```shell
$ python -m ftexplore
```

> This is equivalent to

```shell
$ python -m ftexplore --loglevel info --hardware demo
```

In this mode, there is just emulated hardware. When you control the motors, depending on the direction of the motors the inputs are set.

- Show GUI and use the locally available default hardware (Adafruit Motor HAT and eight RaspberryPi GPIOs as inputs)

```shell
$ python -m ftexplore --hardware default
```

Use this mode if you're working locally on a RaspberryPi with an Adafruit Motor HAT shield.0

- Distributed operation with local GUI and remote hardware')

> Listening side with the hardware (adapt port as needed)

```shell
$ python -m ftexplore --hardware default --listen 2201
```
> Client side with the GUI (adapt IP address and port as needed)

```shell
$ python -m ftexplore --hardware 192.168.1.1:2201
```

- Show help page for details on command line arguments

```shell
$ python -m ftexplore --help
```

## Documentation

- src/ftexplore/eventprocessor

This folder contains code for event processing and event distribution to the applications submodules. The application works by broadcasting events between the different application modules.

- src/ftexplore/gui

This folder contains the code for the graphical user interface. That interface is based on Tk.

- src/ftexplore/hardware

This folder contains modules to communicate with different types of hardware. A special hardware is "remote" hardware that resides on another machine and is accessed via network. Adapt the demo hardware to quickly implement support for your special hardware.

- src/ftexplore/listener

This folder contains the module that provides access to the local hardware via the network. One or more clients can be connected.

- src/ftexplore/usercode 

This folder contains the code controlling the execution of user-provided code.

---

## License

[![License](http://img.shields.io/:license-gpl3-blue.svg?style=flat-square)](http://opensource.org/licenses/gpl-license.php)

- **[GPL3 license](http://opensource.org/licenses/gpl-license.php)**
- Copyright 2019 © <a href="https://www.henrici.name/projects/ftexplore.html" target="_blank">Dirk Henrici</a>.

            

Raw data

            {
    "_id": null,
    "home_page": "https://www.henrici.name/projects/ftexplore.html",
    "name": "ftexplore",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.5",
    "maintainer_email": "",
    "keywords": "motorhat raspberrypi fischertechnik education",
    "author": "Dirk Henrici",
    "author_email": "ftexplore@henrici.name",
    "download_url": "https://files.pythonhosted.org/packages/fd/a7/248f670c5b7f8395de1f4fcbf7949fad3235d7fa204815462c9ff9640cfd/ftexplore-2.1.0.tar.gz",
    "platform": null,
    "description": "# ft-Explore\r\n\r\n> ft-Explore allows to control motors and to check inputs by GUI and user-provided Python code.\r\n\r\n<!-- <a href=\"https://www.henrici.name/projects/ftexplore.html\"><img src=\"https://www.henrici.name/projects/images/ftexplore1_401.gif\" title=\"ft-Explore GUI\" alt=\"ft-Explore GUI\"></a> -->\r\n\r\n[![ft-Explore GUI](https://www.henrici.name/projects/images/ftexplore1.gif)](https://www.henrici.name/projects/ftexplore.html)\r\n\r\nft-Explore was implemented to interface with hardware of technical models for educational purposes. It is open-source and contains interface modules for widely available hardware (RaspberryPi with Adafruit Motor HAT).\r\n\r\n---\r\n\r\n## Installation\r\n\r\nft-Explore can be installed easily. See the sections below depending on your platform.\r\n\r\n### Windows\r\n\r\n- Download msi installer file (can be found \"dist\" folder)\r\n- Install using the msi installer\r\n- Afterwards the application can be started via shortcut \"ft-Explore\" in start menu\r\n\r\nAlternatively, you can download the source code and run it after installing Python (e.g. via https://www.anaconda.com/distribution/). See the Linux section below for required Python packages.\r\n\r\n### Linux\r\n\r\n- Make sure that you use Python version 3.5 or newer\r\n- Install Python libraries as needed:\r\n\r\n> in case the application shall not just be used locally and shall use the network\r\n\r\n```shell\r\n$ pip install cffi pynng\r\n```\r\n\r\n> in case you are running on a RaspberryPi and want to access the GPIOs as inputs\r\n\r\n```shell\r\n$ pip install RPi.GPIO\r\n```\r\n\r\n> in case you are running on a RaspberryPi with an Adafruit Motor HAT\r\n\r\n```shell\r\n$ pip install adafruit_motorkit\r\n```\r\n\r\n- Install ft-Explore:\r\n\r\n```shell\r\n$ pip install ftexplore\r\n```\r\n\r\n- Run ft-Explore\r\n\r\n> run and show help page\r\n\r\n```shell\r\n$ python -m ftexplore --help\r\n```\r\n\r\n### Clone (for developers only)\r\n\r\n- Clone this repo to your local machine using `https://www.hosting-srv.de/gitea/HNET/ftexplore.git`\r\n\r\n---\r\n\r\n## Features\r\n\r\n- Graphical user interface for controlling four motors/lights and showing the state of eight digital inputs\r\n- Platform independent, tested on Windows and Linux (Debian and Raspbian)\r\n- No dependencies except hardware drivers when operating locally\r\n- Controlling motors/lights and getting the state of the inputs can be done by user-provided Python scripts\r\n- The user-provided Python scripts can be executed and interrupted in the GUI. Script output and exceptions are shown there\r\n- Manual control via GUI and script-based control is possible simultaneously\r\n- GUI and hardware can be distributed to multiple machines, e.g. hardware on a headless RaspberryPi can be controlled via GUI on a Windows notebook\r\n\r\n## Usage\r\n\r\n- Demo usage\r\n\r\n> Show GUI and use no real hardware for demo purposes (the default):\r\n\r\n```shell\r\n$ python -m ftexplore\r\n```\r\n\r\n> This is equivalent to\r\n\r\n```shell\r\n$ python -m ftexplore --loglevel info --hardware demo\r\n```\r\n\r\nIn this mode, there is just emulated hardware. When you control the motors, depending on the direction of the motors the inputs are set.\r\n\r\n- Show GUI and use the locally available default hardware (Adafruit Motor HAT and eight RaspberryPi GPIOs as inputs)\r\n\r\n```shell\r\n$ python -m ftexplore --hardware default\r\n```\r\n\r\nUse this mode if you're working locally on a RaspberryPi with an Adafruit Motor HAT shield.0\r\n\r\n- Distributed operation with local GUI and remote hardware')\r\n\r\n> Listening side with the hardware (adapt port as needed)\r\n\r\n```shell\r\n$ python -m ftexplore --hardware default --listen 2201\r\n```\r\n> Client side with the GUI (adapt IP address and port as needed)\r\n\r\n```shell\r\n$ python -m ftexplore --hardware 192.168.1.1:2201\r\n```\r\n\r\n- Show help page for details on command line arguments\r\n\r\n```shell\r\n$ python -m ftexplore --help\r\n```\r\n\r\n## Documentation\r\n\r\n- src/ftexplore/eventprocessor\r\n\r\nThis folder contains code for event processing and event distribution to the applications submodules. The application works by broadcasting events between the different application modules.\r\n\r\n- src/ftexplore/gui\r\n\r\nThis folder contains the code for the graphical user interface. That interface is based on Tk.\r\n\r\n- src/ftexplore/hardware\r\n\r\nThis folder contains modules to communicate with different types of hardware. A special hardware is \"remote\" hardware that resides on another machine and is accessed via network. Adapt the demo hardware to quickly implement support for your special hardware.\r\n\r\n- src/ftexplore/listener\r\n\r\nThis folder contains the module that provides access to the local hardware via the network. One or more clients can be connected.\r\n\r\n- src/ftexplore/usercode \r\n\r\nThis folder contains the code controlling the execution of user-provided code.\r\n\r\n---\r\n\r\n## License\r\n\r\n[![License](http://img.shields.io/:license-gpl3-blue.svg?style=flat-square)](http://opensource.org/licenses/gpl-license.php)\r\n\r\n- **[GPL3 license](http://opensource.org/licenses/gpl-license.php)**\r\n- Copyright 2019 \u00c2\u00a9 <a href=\"https://www.henrici.name/projects/ftexplore.html\" target=\"_blank\">Dirk Henrici</a>.\r\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "ft-Explore allows to control motors and to check inputs by GUI and user-provided Python code",
    "version": "2.1.0",
    "split_keywords": [
        "motorhat",
        "raspberrypi",
        "fischertechnik",
        "education"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "3cf63c06f5b9e65fa10ad5128ed78d51",
                "sha256": "6b429ae40191278e6c552d7261f1de7045ff977b36064df1f57d0aaa895c83bd"
            },
            "downloads": -1,
            "filename": "ftexplore-2.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3cf63c06f5b9e65fa10ad5128ed78d51",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.5",
            "size": 45785,
            "upload_time": "2022-12-02T22:25:15",
            "upload_time_iso_8601": "2022-12-02T22:25:15.740457Z",
            "url": "https://files.pythonhosted.org/packages/4e/5b/b23a655b9fce02bcb2a1cd381610eab6f96b07b148bf35c7e671a3bec5f1/ftexplore-2.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "7e924ed9e3a2ae377db0813fef4547ad",
                "sha256": "8f82fb447459a4cefc7a0c3196135074625636d3f9cba5973b9b1b5d328cf746"
            },
            "downloads": -1,
            "filename": "ftexplore-2.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "7e924ed9e3a2ae377db0813fef4547ad",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.5",
            "size": 39228,
            "upload_time": "2022-12-02T22:25:20",
            "upload_time_iso_8601": "2022-12-02T22:25:20.897387Z",
            "url": "https://files.pythonhosted.org/packages/fd/a7/248f670c5b7f8395de1f4fcbf7949fad3235d7fa204815462c9ff9640cfd/ftexplore-2.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-12-02 22:25:20",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "ftexplore"
}
        
Elapsed time: 0.12559s