使用异步python控制乐高(tm)蓝牙集线器、电机和传感器

bricknil的Python项目详细描述


image_pypiimage_downloadsimage_licensepassingqualityCoverage Status

bricknil[*]提供了连接和编程乐高®的简单方法。 蓝牙集线器(包括Poweredup客运列车60197和货运列车60198以及乐高 Duplo Steam Train10874和Cargo Train10875)在OS X和 Linux系统。这项工作的灵感来自于这个EuroBricks线程和nodejs Powered-Up 图书馆。与乐高提供的官方应用不同,bricknil允许您控制多个 只有一个程序的集线器,让您可以轻松地扩展到编程大型交互系统。

bricknil需要现代python(为3.7设计和测试)并使用异步 建立在Curio异步库之上的事件编程。作为旁白,选择 异步库是相当任意的;并且启用另一个库,如asyncio或trio 应该直截了当。

控制列车电机速度的bricknil程序示例如下:

fromcurioimportsleepfrombricknilimportattach,startfrombricknil.hubimportPoweredUpHubfrombricknil.sensorimportTrainMotor@attach(TrainMotor,name='motor')classTrain(PoweredUpHub):asyncdefrun(self):foriinrange(2):# Repeat this control two timesawaitself.motor.ramp_speed(80,5000)# Ramp speed to 80 over 5 secondsawaitsleep(6)awaitself.motor.ramp_speed(0,1000)# Brake to 0 over 1 secondawaitsleep(2)asyncdefsystem():train=Train('My train')if__name__=='__main__':start(system)
[*]BrickNil’s name comes from the word “Nil” (නිල්) in Sinhala which means Blue (as in Bluetooth)

功能

  • 支持以下乐高®蓝牙系统:
  • 支持以下执行器/传感器:
    • 内部电机
    • 列车电机
    • 集线器LED颜色
    • 增强视觉传感器(颜色、距离)
    • 增强内部倾斜/定向/加速计
    • 增压外部电机
    • 外部照明
    • 轮毂按钮
    • 电火花线切割外部电机
    • 电火花线切割倾斜和运动传感器
  • 完全支持python异步关键字和协程
    • 允许使用异步/等待语法进行表示性并发编程
    • 当前实现使用david beazley的异步库Curio
  • 跨平台
    • 使用适用于Mac OS X的Adafruit Bluefruit Bluetoothle库
    • 在linux和win10上使用bleak蓝牙库;也在raspberry pi上进行了测试。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java类。getResource和ClassLoader。getSystemResource:有没有理由选择其中一个而不是另一个?   在Java中以编程方式粘贴后恢复剪贴板   Java字符串到日期没有时间   JavaSpring注释:@Component起作用,@Repository不起作用   java“addScript”在HSQL中是否有最大记录计数?   java如何将值从JDialog框返回到父JFrame?   java我的模块库的用户有没有办法访问尚未导出的类?   java javac:未找到命令   java如何解决jsoup错误:无法找到请求目标的有效证书路径   类中的java作用域变量   Java中集合实现中的arraylist add()方法不起作用   java如何使用while循环和从用户接收输入来近似Pi?   java Spring安全CSRF培训模式   在安卓系统中,如何通过在警报框外单击来限制用户?