Skip to main content

A package providing convenient access to the Fischertechnik BT-Smart Controller

Project description

Authors:

Prof. Dr. Rainer Neumann

Version:
0.1.2 of 2022/12/26

A small library that helps to build simple projects based on the Fischertechnik BT-Smart Controller using Bluetooth LE. The library uses the bleak libray to handle the BLE protocol and asyncio to access device features.

Installation

pip install btsmart

Getting Started

Assume we have attached a Button to the first input of the Controller, as simple lamp to output 1 and a motor element to output 2. Then we can use the library like this

import asyncio
from btsmart import BTSmartController, Button, Dimmer, MotorXM

btn = Button()
dim = Dimmer()
motor = MotorXM()

async def butten_pressed():
    print("Button pressed")
    await asyncio.gather(
        dim.set_level(100),
        motor.run_at(speed=150, time=0.5)
    )

async def butten_released():
    print("Button released")
    await dim.set_level(0)

async def main():
    btSmart = await BTSmartController.discover()
    if btSmart is not None:
        await btSmart.connect()

        btn.pressed = butten_pressed
        btn.released = butten_released

        btn.attach(btSmart, 1)
        dim.attach(btSmart, 1)
        motor.attach(btSmart, 2)

        await asyncio.sleep(30)

        await btSmart.disconnect()

asyncio.run(main())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

btsmart-0.1.3.tar.gz (10.2 kB view hashes)

Uploaded Source

Built Distribution

btsmart-0.1.3-py2.py3-none-any.whl (12.2 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page