惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Heimdal Security Blog
P
Privacy International News Feed
S
Schneier on Security
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
Spread Privacy
Spread Privacy
P
Privacy & Cybersecurity Law Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Scott Helme
Scott Helme
K
Kaspersky official blog
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
aimingoo的专栏
aimingoo的专栏
Simon Willison's Weblog
Simon Willison's Weblog
S
Securelist
Help Net Security
Help Net Security
B
Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Security Archives - TechRepublic
Security Archives - TechRepublic
云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
N
News and Events Feed by Topic
Hacker News: Ask HN
Hacker News: Ask HN
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
M
MIT News - Artificial intelligence
雷峰网
雷峰网
博客园 - 司徒正美
V
V2EX
AWS News Blog
AWS News Blog
Know Your Adversary
Know Your Adversary
N
News | PayPal Newsroom
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
PCI Perspectives
PCI Perspectives
Google DeepMind News
Google DeepMind News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
U
Unit 42
C
Cybersecurity and Infrastructure Security Agency CISA
P
Palo Alto Networks Blog
G
Google Developers Blog
T
Threat Research - Cisco Blogs
博客园 - Franky
I
InfoQ
D
DataBreaches.Net
爱范儿
爱范儿
Y
Y Combinator Blog
博客园 - 叶小钗
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事
codelab.club ❤️ Vector(v3)
种瓜 · 2020-05-03 · via 夜行人

文章目录

说明

这是之前的文章,更新以匹配 CodeLab Adapter 3.0


前言

Vector

我们近期接入了Vector!这是我们今年的里程碑之一,Vector 代表着机器人的一种可能的未来。它是Cozmo的下一代。在我看来,Cozmo/Vector 是划时代的 AI 玩具,它甚至成为了 CMU(卡内基梅隆大学)教学机器人的教具,如 CMU 的Dave Touretzky 教授(他是 cozmo 死忠粉)在社区里说的: Cozmo 在很多方面,至今一骑绝尘。

CodeLab Adapter

CodeLab Adaptercodelab.club构建的基础设施之一。CodeLab Adapter 目标是使万物积木化,帮助没有编程经验又热爱创造的人,更容易地去实现他们的创意。

CodeLab Adapter是社区里第一个将 Vector 积木化的工具,我们甚至赶在了官方的前边。今年上半年 anki(Vector 所属的公司)就推荐社区里关心教育的用户,使用 CodeLab Adapter 作为将 Cozmo 接入教育平台的工具。

演示

先来看下演示视频:

例子中,我通过手势来"驾驶" Vector。 通过简单拼搭leap motion积木和 Vector 积木,我们就可以利用手势来"驾驶" Vector。

开发者视角

CodeLab Adapter希望打造一个开放的生态,鼓励开发者和公司将自己的设备接入进来。我们希望降低开发者的接入门槛,不必从 Scratch3.0 的源码入手。目前官方的扩展机制,抛开文档缺失不说,每次发布新的积木,都得经历编写 js 插件、build vm、build gui,重新打包发布的过程, 繁琐而缓慢。

为了简化开发者自定义插件的流程,我们构建了CodeLab Adapter,同时我们在scratch3v3.codelab.club中构建了通用的通道:EIM(everything is a message), 利用这两个东西,允许开发者连接 AI、开源硬件、物联网或任何开放的东西。为了支持开发者做更复杂的扩展,我们加入了 json 积木,允许用户在自定义的 Python 插件和 Scratch 之间传递复杂的数据结构:Python 与 Scratch 的双向通信。如果开发者追求简便而不是扩展性,我们也准备了更为便捷的通道:使用 Python 拓展 Scratch 的能力

EIM 虽然扩展了 Scratch 的能力,但开发者往往觉得还不够,他们希望能自定义积木的外观和构建新的原语,而不是使用 EIM 中最原始的通信原语,也就是说他们希望直接面相用户构建积木的样式。Vector 的接入是很好的案例,我们在此把技巧分享给大家。

在这个例子中,我们演示了如何使用 json 积木块来传递复杂的数据结构(类似RPC的参数构造,包含方法(method)和参数(params)),之后使用 EIM 的 send 积木,将数据发往CodeLab Adapter,这是 CodeLab Adapter 中解析这个消息的插件代码:node_vector.py

在 scratch 一侧,通过 Scratch 的自定义积木功能,创建出特定于应用的积木,而不是使用最原始的 EIM 积木。如此以来 EIM 成为实现自定义积木的底层设施。

我们构建了新的插件机制!CodeLab Adapter 为 scratch 3.0 构建了一种新的抽象层,兼容官方源码,但允许你用 Python 而不是 JavaScript 来动态扩展 Scratch3.0,无须重新 build 整个平台,同时为你保留了自定义积木外观的能力,这是我们构建开放的开放者生态的重要一步,欢迎开发者入坑: )

如此一来,开发者就这样就可以构建直观的积木给用户使用,eim 作为实现它的底层,用户无需关心这部分。为了更加友好,你可以把自定义的部分放在一个独立的 target(角色)里。在概念上它就像拓展包。target E 表示EIM

插件本身包含在源码中,无需重新编译发布 Scratch 平台,这意味着扩展是分布式进行的,平台本身不需要调整(意味着更好的兼容性),你可以在我们不知情的情况下快速展开你的工作。完成你的扩展之后。下载下来分发给用户即可!

2019 年 1 月份等 Scratch team 正式发布了 Scratch3.0 的稳定版,我们将同步开始构建线上社区,到时候你只需要给你的用户分发 URL 就行。