掌控板是干什么用的?

掌控板是干什么用的?,第1张

1、掌控板是创客教育专家委员会、猫友汇、广大一线老师共同提出需求并与创客教育行业优秀企业代表共同参与研发的教具、学具,是一块为教育而生的开源硬件,也是一个公益项目。

2、“掌控板”是一个可玩性、可拓展性超高的微型掌上电脑,集多种传感器、感应器于一身,配备一块OLED屏幕,集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。

3、同时板上集成OLED显示屏,RGB灯,加速度计,麦克风,数字光线传感器,蜂鸣器,按键开关,触摸开关,金手指外部拓展接口,支持图形化及python代码编程。

4、可实现智能机器人,创客智造作品等智能控制类应用,利用掌控上丰富的传感器,结合它小尺寸的特点还可以做很多智能穿戴,电子饰品等各种DIY作品应用,创意当实现,这是信仰,掌控帮助所有编程级别的用户将想法变为现实。

掌控板是干什么用的

1、教学应用:普及STEAM创客教育、人工智能教育、编程教育的“神器”。

支持图形化和代码编程,可供不同阶段学生学习编程,体积小,空间利用率高,方便收纳、携带、管理及作品制作,内置多种输入输出,在不外接设备的情况下也能完成多种创意作品,方便拓展,兼容性强,有丰富的智能电子硬件、结构件等周边资源。

2、无线群组功能,能实现相互之间的控制,团队协作,共同完成项目,物联网功能,能够完成现实应用案例,让学生真正做到学以致用。

1、报错提示:OSError: [Errno 19] ENODEV

问题原因:未连接上外接传感器

解决办法:1、检查扩展板供电是否正常;2、检查外接传感器连接线是否正常;3、检查引脚口是否接对;4、确定以上3步都ok后重启掌控板或重新刷入程序

2、报错提示:NameError: name 'xxx' isn't defined

问题原因:xxx变量没有定义

解决办法:1、检查xxx变量是否为自行定义的变量。2、如果xxx变量为掌控板系统定义的,重刷固件即可解决问题。

3、报错提示:MemoryError: memory allocation failed

问题原因:程序太大,掌控板内存不够了

解决办法:1,按掌控板背部重启按键释放内存;2、如1不能解决,用最新的mPython刷入不带蓝牙的固件;3、如2不能解决请删减程序代码

4、报错提示:ImportError: no module named 'xxx'

问题原因:找不到xxx库

解决办法:1,如果xxx是掌控板固件内置的库,重刷掌控板固件就能解决该问题

5、SyntaxError: invalid syntax

问题原因:程序语法有问题

解决办法:1,仔细看报错提示,能看到是多少行有问题

6、报错提示:OSError: SSID invalid / failed to scan this wifi

问题原因:wifi连接不上

解决办法:1,检查wifi名和密码是否正确

7、报错提示:TypeError: can't convert float to int

问题原因:没有进行类型转换

解决办法:1,根据报错提示转成相应的类型

8、报错提示:AttributeError: 'ADC' object has no attribute 'init'

问题原因:ADC没有init属性,大部分情况是用mPython给掌控板编程,主控却切换到了人工智能交互实验箱,使用了里面的声音值

解决办法:1,给掌控板编程时把主控切换到掌控板板模式

9、报错提示:OSError: Timeout!,check your wifi password and keep your network unblocked

问题原因:连接超时

解决办法:1,检查wifi密码是否正确

10、报错提示:ImportError: no module named 'smartcamera'

问题原因:使用AI摄像头时没有导入smartcamera库

解决办法:1,硬件编程模式下,点击扩展=>硬件扩展=>加载AI摄像头=>跳出提示是否加载库,点击确定

11、报错提示:TypeError: function takes 0 positional arguments but 1 were given

问题原因:网络请求的返回结果不符合当前程序的预期,如语音识别没有识别到结果

解决办法:1,将网络请求的返回结果打印出来,加上判断指令,如果返回有问题,则不使用当前返回结果

12、报错提示:IndexError: list index out of range

问题原因:数组越界了

解决办法:1,选择数组某一项的时候不能大于数组长度

13、OSError: 28

问题原因:设备上没有剩余空间

解决办法:清理掌控板的存储空间,如不知道怎么清理存储空间可直接刷入固件。

14、OSError: [Errno 110] ETIMEDOUT

问题原因:连接超时

解决办法:请检查程序连接网络、扩展传感器等代码是否编写正确。如连接网络服务器,则可能是网络不稳定或者网络服务器无法访问。

1.编程语言

WebServer应用示例:不到100行代码玩转Siri语音控制 | ESP32轻松学(Arduino版)

铁熊玩创客

原创

关注

5点赞·1352人阅读

ESP32轻松学系列文章目录:

ESP32 概述与 Arduino 软件准备

蓝牙翻页笔(PPT 控制器)

B 站粉丝计数器

Siri 语音识别控制 LED 灯

Siri 语音识别获取传感器数据

本期给大家带来的是:掌控板 Siri 语音识别智能终端。

不好意思,用这种标题党的方式把你吸引进来,不到 100 行代码的确有点夸张,因为实际上核心代码:

不到 50 行!

不到 50 行!

不到 50 行!

国际惯例,访问链接查看演示效果:

https://www.bilibili.com/video/av93961105/

项目概述

前一段时间,掌控板 2.0 正式上市了,但是呢第一批产品生产数量有限,所以很多朋友买不到最新版的板子。拿着手里的 1.0 版本,却只能眼巴巴看着别人用掌控板 2.0 玩语音识别了。

所以我们要坚决对这种行为说不!在这篇文章中,我就教大家让任何版本的掌控板(或其他基于 ESP32、ESP8266 芯片的开发板)实现语音识别,而且识别的效果更好!

在项目开始讲解之前,我们先来看一下完整思路。在这个项目中,我们将掌控板 ESP32 设置为一个 Web 服务器,当用户在网页上访问这个服务器 IP 地址的时候,就会跳出如下界面。

我们可以通过点击 Light On 或者 Light Off 按键,来控制掌控板上的 RGB LED 的亮灭,也可以访问这两个按键的对应 IP 地址,来控制 LED 灯的亮灭。这样就完成了基本的通过 Web 页面控制掌控板的功能。

在这基础之后,我们可以进一步通过设置一些语音助手,比如 Siri、天猫语音精灵等,通过语音命令访问这些 IP 地址,从而实现语音识别开关灯的功能。

库文件安装

这个项目需要用到 3 个 Arduino 库:Adafruit_NeoPixel、ESPAsyncWebServer、AsyncTCP。

Arduino 库安装的教程不是本篇的重点,这里不再赘述,只给出 3 个库的网址,大家可以自行百度查找 Arduino 怎么安装库。

Adafruit_NeoPixel:https://github.com/adafruit/Adafruit_NeoPixel

ESPAsyncWebServer:https://github.com/me-no-dev/ESPAsyncWebServer

AsyncTCP:https://github.com/me-no-dev/AsyncTCP

Arduino 代码

先把完整的程序放出来,再进行讲解。

在程序的开头,我们首先引入了需要用到的库函数:

#include "WiFi.h"

#include "ESPAsyncWebServer.h"

#include <Adafruit_NeoPixel.h>

登录后复制

然后设置网络的账号和密码:

const char *ssid = "wifi_name"

const char *password = "wifi_password"

登录后复制

接着定义了 NeoPixel 对象(RGB LED 灯)和 WebServer 对象:

Adafruit_NeoPixel pixels(3, 17, NEO_GRB + NEO_KHZ800)

AsyncWebServer server(80)

登录后复制

在初始化函数 setup() 中,我们首先对串口和 RGB 灯进行了初始化:

Serial.begin(9600)

pixels.begin()

登录后复制

然后将掌控板连接到网络,并把 IP 地址在串口中打印出来:

// Connect to Wi-Fi

WiFi.begin(ssid, password)

while (WiFi.status() != WL_CONNECTED)

{

delay(1000)

Serial.println("Connecting to WiFi..")

}

Serial.println("WiFi connected")

// Print ESP32 Local IP Address and Some Tips

Serial.print("Open your brower, and visit: http://")

Serial.println(WiFi.localIP())

Serial.println()

登录后复制

最后就是最重要的 Web 服务器设置。关于 Web 服务器设置的详细教程,可以查看官网:https://github.com/me-no-dev/ESPAsyncWebServer

这里只放出本文需要的代码。当访问根目录“/”时,显示一些提示语;当访问“/on”目录时,设置 LED 灯为亮,并在串口和网页端显示提示语;当访问“/off”目录时,设置 LED 灯为灭,并在串口和网页端显示提示语。

// Root / Webpage

server.on("/", HTTP_GET, [](AsyncWebServerRequest * request) {

request->send_P(200, "text/plain", "Turn On Light: IP/on\nTurn Off Light: IP/off")

})

// Webpage to turn on light

server.on("/on", HTTP_GET, [](AsyncWebServerRequest * request) {

pixels.setPixelColor(0, 0xFF0000)

pixels.setPixelColor(1, 0xFF0000)

pixels.setPixelColor(2, 0xFF0000)

pixels.show()

Serial.println("Light is on")

request->send_P(200, "text/plain", "Light is on")

})

// Webpage to turn off light

server.on("/off", HTTP_GET, [](AsyncWebServerRequest * request) {

pixels.clear()

Serial.println("Light is off")

request->send_P(200, "text/plain", "Light is off")

})

登录后复制

在 setup() 函数的最后,运行 Web 服务器:

server.begin()

登录后复制

至此,整个程序就编写完成了,在 loop() 函数中,不需要做任何事,当然你也可以运行其他你想要的代码。

程序上传

在 Arduino 中选择掌控板或者 ESP32 相关的芯片,然后将程序上传,打开串口监视器,我们可以看到串口监视器中提示我们访问相应的网址。(如果没看到相应信息,可以按一下掌控板后面的 RST 按键,重启程序)

打开电脑浏览器或者手机浏览器,访问相应的 IP 地址,这里是:192.168.10.202,我们可以看到网页上显示了相应的提示信息。访问地址 192.168.10.202/on 可以打开 LED 灯,访问地址 192.168.10.202/off 可以关闭 LED 灯。

尝试访问对应的地址,当访问 192.168.10.202/on 时,浏览器和串口监视器中,都输出了相应的提示信息,同时我们也可以看到掌控板上的 RGB 灯也亮了起来。

当访问 192.168.10.202/off 时,浏览器和串口监视器中,也都输出了相应的提示信息,同时掌控板上的 RGB 灯也熄灭了。

网页设计

这部分不是本文的重点,也不会影响最终语音控制的效果,所以如果您对网页设计不感兴趣,也可以略过,直接跳转到下一节。

在上文中,我们已经基本完成了通过网页来控制 LED 灯的相关功能,但是这个网页毕竟还是太简陋了。所以我们对网页稍微进行一些优化。

HTML 是用来设计网页的代码,它可以控制我们在浏览器中看到的网页的外观样式。由于本人对网页设计也不擅长,所以这里只放一个基础的外观改进代码。

上述代码最终形成的效果如下。我们可以直接点击 Light On 和 Light Off 两个按钮(或链接)来控制 LED 的亮灭,从而避免了手动输入网址的麻烦。

当然在这个项目中,不用设计 HTML 代码也是完全没有问题的,我们只是为了方便在网页上控制。

设计完网页,我们要怎么加到代码中去呢?其实也很简单。

我们在程序开头定义一个字符串变量,将网页的代码保存到这个变量中:

const char index_html[] PROGMEM = R"rawliteral(

<!DOCTYPE html>

<html>

<head>

<meta name="viewport" content="width=device-width, initial-scale=1" />

<style>

html {

text-align: center

}

</style>

</head>

<body>

<h2>mPython Light Switch</h2>

<a href="/on">Light On</a>

<p></p>

<a href="/off">Light Off</a>

</body>

</html>)rawliteral"

登录后复制

然后将几处 server.on() 代码中的 request->send_P() 部分都修改为如下代码即可:

request->send_P(200, "text/html", index_html)

登录后复制

这个时候,重新上传程序,再去访问相应的网页,你就可以看到网页编程上图所示的样子了。

放个预告

如果你对网页设计比较擅长的话,你也可以设计好看一些的页面,比如:

我们不仅可以在网页中控制 LED 灯的亮灭,也可以显示各种传感器的信息,这些内容以后再讲。

语音助手设置

前面说了那么多,终于来到语音识别设置部分了。

你是不是很好奇,代码中完全没有语音识别相关的部分,我们怎么做到语音识别呢?其实也很简单,既然可以通过网页访问相应的网址,我们是不是也可以让语音助手来访问相应的网址呢?

由于笔者手上没有其他语音助手或者智能音箱类产品,所以这里以 Siri 为例。

打开 iOS 系统自带的捷径 App(英文名称 Shortcuts),没有没有的话,也可以去 App Store 免费下载:

然后分别设置两个捷径,命名为开灯和关灯。两个捷径的设置都很简单,就是访问给定的 URL 地址。

由于 iPhone 中的捷径是支持 Siri 语音识别调用的,所以我们可以直接通过 Siri 来运行这两个捷径,从而达到语音开关灯的效果。

效果演示

唤醒你的 Siri 看看效果吧。不过这里需要注意的是,你的 iPhone 和掌控板,必须处于同一局域网中。

总结

在本章中,我们学习了:

WebServer 的基础用法,可以通过浏览器网页来控制 LED 灯的亮灭;

然后通过设计 HTML 网页代码,让交互界面更加友好方便;

最后通过 iOS 的捷径应用,实现了语音识别间接控制 LED 灯的功能

通过类似的方法,我们还能同时控制更多的 LED 灯、其他执行器,甚至通过语音识别来获得相应传感器的信息。当然你也可以将 Siri 语音识别的文字返回给掌控板,实现更多复杂好玩的创意。

代码下载

点击下方链接,查看完整代码下载地址:

https://mp.weixin.qq.com/s/iNKaNmAN3nTWsaPIg0lEXA

2.怎样将Siri语音控件添加到任何树莓派项目

39度创意研究所

2019-10-12

1869

分享海报

电子说

9375人已加入

+加入圈子

描述

步骤1:配置您的Gmail帐户

1) SiriControl需要Gmail帐户。出于安全原因,建议您创建一个新的Gmail帐户,因为您将必须在python脚本中输入用户名和密码。没关系,因为您不会将其用于个人日常使用-仅用于说出命令。

2)然后,需要打开对安全性较低的应用程序的访问权限,可以在此处完成。这是因为Google将python脚本和邮件服务器之间的连接确定为安全性较低。

3)由于该脚本使用IMAP协议来获取新的Notes,因此需要在以下位置启用IMAP: Gmail设置。

步骤2:准备IOS设备

1)现在,在“设置”和“添加您新创建的Gmail帐户:

设置》 Notes》帐户》添加帐户

2)打开该帐户的Notes。

3)确保用于创建Notes的默认帐户使用Siri是您的新Gmail帐户。

就是这样!现在,只需告诉Siri创建一个便笺,如下所示:

“便笺很棒”

新便笺应出现在您的Gmail帐户的“便笺”标签下。如果没有,请再次执行上述步骤。

步骤3:设置SiriControl

1)首先,克隆或下载

2),然后打开siricontrol.py并添加新Gmail帐户的用户名和密码。

3)现在,运行脚本并对Siri说:

“注意生命的意义”

答案应该打印出来,因为在“模块”文件夹中的“生命”模块中。设置现已完成。

步骤4:创建自己的模块

以上模块是默认模块,与SiriControl。可以在modules文件夹下找到。另外,还包含一个模板模块供参考。

moduleName –这是模块的名称,可以是您想要的任何名称。

commandWords –此数组

execute(command) –将在commandWords数组中的所有单词都说完后调用此函数。 “ command”参数是用户对Siri所说的命令。

请记住,您创建的所有模块都必须放在modules文件夹下,否则找不到。

第5步:尽情享受吧!

就是这样!现在,您可以通过创建自己的模块来控制任何内容,并为任何项目添加出色的语音控制。借助Siri的强大功能,一切皆有可能!

它打开了许多选项,例如IoT和家庭自动化,只要您具有Internet连接,就可以从世界任何地方命令Siri。尽管这是一种单向连接,但是您可以编程将电子邮件发送回给您,等等-无限的可能性!


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/502779.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-16
下一篇2023-06-16

发表评论

登录后才能评论

评论列表(0条)

    保存