Giter VIP home page Giter VIP logo

codelab_adapter_extensions's Introduction

codelab_adapter_extensions

Codelab Adapter extensions.

CodeLab Adapter 是由CodeLab构建的基础项目(v2 是最新版本),致力于连接万物,无论是软件还是硬件,无论是 AI、开源硬件、现实世界的物体、还是虚拟世界的动画角色,在 CodeLab Adapter 的驱动下,皆可彼此互动。

目前,我们在 CodeLab Neverland 中使用 CodeLab Adapter。CodeLab Neverland 是一个由 CodeLab Adapter 驱动的可编程空间,空间里的所有事物皆可编程。

codelab_adapter_extensions's People

Contributors

bilikyar avatar hidaris avatar m102981 avatar wangshub avatar wwj718 avatar zhouf96 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codelab_adapter_extensions's Issues

希望把ESP32接入codelab,但是没有成功,能否给予一些例子。

基于ESP32低廉的成本以及micropython的通用性,希望将ESP32接入codelab.

参考了网站的相关文档,只找到这一篇,但没有复现。
https://adapter.codelab.club/extension_guide/SimplePyboard/

疑问:
1、ESP32所需刷入的固件是官方的micropython固件吗?
2、测试刷入了官方micropython固件,然后搭建了以下积木,反馈如下
2.1 连接到【COM3】
反馈:ok
2.2 【start】【extension_simple_pyboard】
反馈:running
2.3 exec(初始化导入)【import machine】
反馈:‘SimplePyboardHelper’ object has no attribute 'exec'
2.4 执行【import machine】
反馈 ('exception',b",b'Traceback(most recent call last): file:"",line1 SyntaxError: invalid syntax)
2.5 执行【led_onboard = machine.Pin(22,machine.Pin.OUT)】
反馈: NameError: name machine isn't defined

感觉导入模块部分无法进行,不知该如何解决。

另discuss.codelab.club论坛,注册过程的邮件服务估计坏掉了,分别使用两个邮箱注册,都没有收到注册邮件。

构建dongle版的microbit插件

@wangshub 完成了dongle class,我这两天会发布一个包含dongle class新版本。

大家可以先用于本地测试

import time
import pygatt
import tenacity
import binascii


# pygatt api doc : https://github.com/peplin/pygatt/blob/master/pygatt/device.py
class Dongle(object):
    def __init__(self):
        self.adapter = pygatt.BGAPIBackend()
        self.device = None
        self.is_running = True

    @tenacity.retry(stop=tenacity.stop_after_attempt(3))
    def bled_start(self):
        self.adapter.start()

    def bled_stop(self):
        self.adapter.stop()
        self.is_running = False

    def bled_scan(self):
        devices = self.adapter.scan()
        return devices

    def bled_rssi(self):
        return self.device.get_rssi()

    @tenacity.retry(stop=tenacity.stop_after_attempt(3))
    def bled_connect(self, mac_addr):
        self.device = self.adapter.connect(mac_addr, address_type=pygatt.BLEAddressType.random)
        print('connect to {}'.format(mac_addr))
        print("rssi   : " + str(self.device.get_rssi()))
        print("chars  : " + str(self.device.discover_characteristics()))
        time.sleep(1)

    def bled_subscribe(self, uuid, callback=None, indication=False):
        self.device.subscribe(uuid, callback=callback, indication=indication)

    def bled_write(self, uuid, data):
        self.device.char_write(uuid, bytearray(data))

    def bled_read(self, uuid):
        data = self.device.char_read(uuid)
        return data

    @staticmethod
    def _ascii_to_hex(rawhex):
        return binascii.unhexlify(rawhex)


if __name__ == '__main__':

    def read_cb(handle, value):
        bytes_str = binascii.hexlify(value)
        print(bytes_str)

    dongle = Dongle()
    try:
        dongle.bled_start()

        devices = dongle.bled_scan()
        for dev in devices:
            print(dev.get('address'), dev.get('rssi'), dev.get('name'))

        dongle.bled_connect('C1:68:4E:87:AD:70')

        dongle.bled_subscribe('0000ffe4-0000-1000-8000-00805f9a34fb', callback=read_cb)

        data = dongle.bled_read('0000ffe4-0000-1000-8000-00805f9a34fb')
        print('data = ', data)

        while True:
            time.sleep(1)
    finally:
        dongle.bled_stop()

我之前已经完成了对microbit官方固件的分析:https://blog.just4fun.site/scratch3-microbit-analysis.html ,可以直接接入scratch microbit官方固件。read部分我测试已经没问题了。

插件的连接状态信息

利用message报告给Scratch Extension,各个插件在运行之后订阅各自硬件的连接状态。

可以模仿Scratch microbit的消息提醒UI。

PixyCam 插件

image

pixy

Pixy is a fast vision sensor for DIY robotics and similar applications. You can teach Pixy an object just by pressing a button. Use Pixy for lots of different applications! It’s capable of tracking hundreds of objects simultaneously and only provides the data you are interested in.

除了EIM之外其他的scratch插件在哪能看到呢?

看了这篇文章https://codelab-adapter-docs.codelab.club/dev_guide/helloworld/
其中说插件需要两个部分:

  1. scratch3.0网页中的插件(内应)
  2. 在CodeLab Adapter中写一个插件,代理硬件设备、AI或其他程序

scratch端的插件(内应)示例我只找到了EIM,请问其他的插件(比如Tello, Vector等)是开源的吗?
我本来是想看看怎么处理异步发送的消息如何等待它成功执行返回,比如下面的伪代码

Scratch blocks:
<Vector drive_forward 100>
<Vector turn_left 90>

<drive_forward 100>代码块执行可能要几秒钟才返回,如何让它阻塞直到成功返回后在执行下一句呢?

另外请问codelab-adapter有开源吗?
谢谢!

在windows下运行python-kernel-extension错误

2020-02-24 20:32:38.229 | INFO | extension_python_kernel:extension_message_handle:62 - python code: print('hello')
2020-02-24 20:32:38.229 | DEBUG | codelab_adapter_client.base:publish:276 - adapter/nodes/PythonKernelExtension publish: topic: adapter/extensions/data payload:{'extension_id': 'eim/python', 'content': "'NoneType' object is not subscriptable", 'message_id': 1, 'token': 'b54d29ae21294fc7', 'sender': 'from_scratch'}

extension-usb-mircobit插件对应固件usbMicrobit新增功能请求

请求开放usbMicrobit相关资源,以便增加以下功能:

  1. microbit与codelab-adapter握手,从codelab-adapter一侧确认microbit处于随时可以与Scratch3交互的状态(而不是仅仅检测连接到了硬件)

  2. 集成一键烧入codelab-adapter microbit插件所对应的usbMicrobit固件的功能。

谢谢您的辛苦付出,以及无私分享。

语音识别插件

Scratch3.0官方内置的语音识别插件在国内不够稳定。

最简单的替代方案是构建一个scratch extension接入国内的语音服务,如百度云、阿里云、 腾讯云。但可能存在浏览器跨域问题。考虑到这个插件的通用型,倾向于在codelab-adapter一侧构建插件。如此一来codelab-adapter可以把这种能力带给任何网站。

kittenbot在这块做了出色的工作,可供参考: https://kittenbot.readthedocs.io/zh_CN/latest/AI/%E7%99%BE%E5%BA%A6%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB.html

源码在 https://github.com/KittenBot/s3ext-baiduai

尝试使用树莓派来做硬件教学的探索--电源问题上的探讨

由于公司业务的原因,正在探索新形式的硬件课程,从半个月前跳入树莓派这个大坑后,就发现这个板子的内容极其丰富,所以,尝试把这个作为硬件课程的核心内容。可当在做移动小车的时候,就发现了问题,树莓派的供电比较麻烦,移动电源上方案还不完善,虽然网上各种技术帖子都说5v 2A的电源就够了,可今天用了充电宝的5v 2A电源接上树莓派,并且树莓派因此变砖之后,有点心凉,心疼我宝贝板子。
这里的最大的原因是,树莓派本身没有过电保护,而且,不像Arduino那样的单片机,需要规范的关机和开机过程才能保证寿命。 所以,直接用树莓派来做硬件课程的挑战性和难度,相对较大,还需要认真探索一段时间。

TTGO T-watch插件

image

image

image

TTGO T-watch是一款开源的可编程手表,允许外接拓展积木。基于ESP32。

扩展为codelab-adapter插件之后可以用来与CodeLab Neverland房间里的一切事物互动。是非常理想的交互设备。

请教下 本项目和下载版本的区别

比对 项目的代码和下载版本的代码,结构差别挺大,zip版本是根据本项目拓展一些功能打包生成的吗
zip版本中除了增加的python环境以及一些依赖库以外
还有添加了以及其他什么吗?

关于Scratch-VM里安装MQTT包时,webpack打包错误问题

由于最近adapter里内置了MQTT客户端,所以尝试在本地的Scratch-vm里安装了MQTT包,想尝试写一下Scratch和adapter的通讯插件. 可在VM里yarn run watch的时候,就会报一下错误:

ERROR in ./node_modules/mqtt/mqtt.js
Module parse failed: Unexpected character '#' (1:0)

虽然这个并不会影响插件功能的正常运行,可我的强迫症对这种错误的发生是无法置之不理的,所以通过MQTT.js github 社区里面找到了问题原因.
主要原因是,在 ./node_modules/mqtt/mqtt.js里的#!/usr/bin/env node并不是有效的js代码,所以是无法被webpack打包程序所识别的.
可行的解决方案是,在webpack.config.js里面添加如下代码:

var webpack = require("webpack");

const base = {
    // ... other webpack config ...
    plugins: [
        new webpack.NormalModuleReplacementPlugin(/^mqtt$/, "mqtt/dist/mqtt.js"),
    ],
};

这段代码告诉Webpack当看到require(“mtqq”)require(“mqtt / dist / mqtt.js”)替换它,这是MQTT库的缩小版本,并且没有#!的开始。
参考issue链接
参考wiki

cmder下载后出问题,运行不成,文件坏了

运行scratch-gui
我的开发环境为MacOS 10.13.5,确保你在本地按照了git和nodejs。
windows用户
有读者在邮件里反馈说,在Windows下遇到一些问题。我在Windows 10里做了测试,把注意事项补充进来。
安装nodejs.
使用cmder,而不是cmd。

完善Arduino插件

收到一封来自印度的邮件,之前始终没认真考虑接入Arduino,毕竟社区认为micro:bit/MicroPython/RPI更可能是未来,但由于低廉的价格,大量落后地区在使用Arduino,所以打算将pymata-aio内置到CodeLab Adapter,提供开箱可用的Arduino插件,不知是否有小伙伴愿意一起在这个分支上工作。

image

目前bilikyar已经完成了一部分工作:scratch3_arduino, 我们可以在这个基础上继续前进。

已经发布了内置pymata-aio的codelab-adapter版本: v0_8_3 。

彩虹糖插件(candy)

构建彩虹糖插件,用以复现Dynamicland里的演示:

使用糖果作为音量控制器(物理编程): 在桌子上将糖果摆成 1 字型,当摆放3颗糖果时,房间里音量为3格,加上一个糖果,房间里音量为4格。这些糖果是拟物化的 🔊(音量控制器)

同样地糖果也可以用来控制房间里的任何设备。

背后的概念是,整个房间是一个计算机。

image

思路:

  • 拍摄candy的一些图片,用于训练神经网络
  • 使用opencv 进行圆形检测

Extension中執行到while循環來執行攝像頭數據讀取后,疑似綫程阻塞導致插件無法响應後面的eim消息, 請教有沒有什麽辦法可以解決?

正在開發一款Adapter Extension, 其中有一條command是利用while循環從opencv capture攝像頭的畫面數據。 問題是一旦執行到這段while指令, 這個extension下其他指令都無法工作了, 從scratch發過來的eim消息得不到响應,extension_message_handle 無法觸發(其他extension的消息可以正常地響應)。 不知是不是與run機制有關,又或者是while阻塞了當前extension綫程, 請教有沒有什麽方法可以解決這個問題?

脑电波传感器插件

基于muse 2

目前的插件,只提取出非常简单的脑电波数据模式,更多的探索需要基于机器学习来做。

希望adapter有scratch link 一样的小图标

bilikyar在微信中提到:

希望后面adapter跟scratch link一样的小图标最好,否则用户很难感觉到他的存在

我把我的思考贴过来, 用这个issue跟进这块的工作

小图标也在规划中,这块可能需要用到系统相关的库,我比较慎重,你可以提个issue,我们在那儿讨论细节,我已经做了一些工作在这块

请问toio是通过什么方式连接的。

购买了一个Toio,基于codelab使用,发现codelab adapter不启动,也可以连接toio进行使用,请问是直接基于WEB BLE连接么;toio官方的能力我看是通过scratch link连接的。

Scratch3 Alphamini extension and enabling other features

Hi,

You have done a really awesome job. FYI I've been playing Alpha Mini with python mini-sdk and tried the official Scratch programming for alphamini called uCode. But I really excited with your huge works.

I'm planning to add some other Alpha mini features.

  • make a drop down list for blocks code : behavior, actions, and expressions. As you know this three features are built-in and can't be modified. IMO it would be great if the App let user choose (ex: the behavior name) rather than entering the code name defined by UBTECH.
  • adding playing a sound block. Both locally and online.
  • adding speech recognition block
  • adding IR sensor block
  • adding touch sensor block
  • and other feature that mentioned in the mini-sdk

So I'm looking for scratch extension for alphamini. Would you help me with that?

Thank you

Extension_vector

Hey, @wwj718

Firstoff: if this is not the right place to ask this question feel free to redirect me.

I was following this tutorial: https://adapter.codelab.club/extension_guide/vector/
To enable vector programming by SCRATCH but I cant find the extension for it,
Also i saw that it is missing in the extensions_v3 folder, is it possible to add this feature?

Thanks.

关于树莓派插件

最新版本的codelab_adapter中似乎移除了树莓派插件 请问这个是基于什么考虑呢 还是用另外的插件替代了他的功能?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.