掌控板是一块MicroPython微控制器板,也称开源硬件主控板。它板载ESP-WROOM-32双核芯片,支持WiFi和蓝牙双模通信。 板上集成1.3英寸OLED显示屏、加速度传感器、地磁传感器、声音传感器(麦克风)、光线传感器、蜂鸣器、2个物理按键(A/B)、6个触摸按键(PYTHON)。 除此外,还有一个阻性输入接口,方便接入各种阻性传感器。
掌控板编写的程序,可以在仅256k的代码空间和16k的RAM内运行。另外,掌控板可以与普通Python兼容,以便轻松地将代码从桌面传输到微控制器或嵌入式系统。
掌控板内集成了基本的传感器,OLED显示屏可以显示文字、数字、图案等。可以通过图形化编程或代码编程,结合按钮、声音、光线等传感器完成很多项目。 掌控板还可以通过扩展板连接各种传感器,实现100+种玩法,是学校老师开展创新课程的好帮手。 正因为掌控板上有众多的传感器与控制器,以及蓝牙、wifi等的通讯模块,它可用于学习编程、智造万物、学习物联网及人工智能等。
mPython编程软件是一款用于对掌控板编写程序的应用,它是一款能学习硬件编程和python编程的软件,专为编程教育和信息技术课程而生。 mpython集成三种编程模式,分别是:硬件编程模式、Python模式、Jupyter模式,满足小、初、高各学龄阶段对图形化编程和代码编程的学习需求。
mpython软件下载与安装的流程如下:
1. 在浏览器中输入下载地址:https://www.labplus.cn/software
2. 根据电脑的系统配置,选择到合适版本的软件进行下载:
3. 根据安装向导一步步进行安装,注意安装过程中需要跟随指引安装驱动。
4. 显示安装成功后,将驱动界面关闭即可。
在安装过程中,如果串口识别的驱动没有安装成功,将无法连接到掌控板此时需要手动安装,安装的路径在mpython软件安装位置中,系统为64位的安装标注64的安装包,32位安装标注86的安装包。
例如:D:\mpython\resources\drivers\CP210x_Windows_Drivers
mpython软件可以分为菜单栏、脚本区、编程区、仿真探究区和控制台。
① 模式切换
包括编程模式的切换,可切换为python模式与Jupyter模式。
② 文件
包括文件的新建、文件的打开、文件的保存与掌控板文件。
点击“保存本地”即可将程序保存在本地电脑上。文件的保存有两种模式,分别是图形化的mxml模式与代码的py模式,需要注意的是, 保存成图形化模式时可以将指令转换为代码,但保存成代码模式无法转换为图形化。
③ 教程
教程中包含了软件基本使用的视频介绍、软硬件使用的帮助文档、在线论坛、精品课程与示例程序。在示例程序中,只要点击案例,就能将程序一键加载到编程区。
④ 普通/教学切换
硬件编程的普通模式,是编写图形化指令,通过切换为教学模式,可以看到图形化指令与代码指令的对照。注意,教学模式下的代码不可编辑。
另外,点击菜单栏右侧的“代码”按钮,即可完全切换到硬件编程的代码模式,此时的代码是可编辑的状态(注意,在代码模式编辑完后,切换回图形化会丢失编辑的代码指令)。
⑤ 登录账号
登录mpython云端,即可将代码保存至云端,可私密保存也可开源分享。另外,点击云端的代码库可以查看其他用户上传的程序代码,也可以一键加载程序。
脚本区的模块可以分为掌控板指令区、编程基本语法区、高级语法与拓展区。
可以将脚本区的指令拖动到编程区进行编程,刷入掌控板后实现智能应用。
在编写图形化指令的过程中,删除指令可以通过拖回脚本区、拖到垃圾桶(点击垃圾桶还可以找回)、点击键盘的删除键来实现。
在仿真区可以通过编写指令,模仿部分掌控板的功能;在探究区可以将数据(掌控版数据)一图表的形式呈现出来。
可以在控制台看到程序刷入的进度、程序报错信息等。连接上掌控板后,可通过单击“中断”和“重置”按钮,来中断程序的运行与程序的重新启动。
将掌控板连接到电脑上,才能给掌控板编写程序。掌控板连接电脑的具体方法是:
1. 用USB线一头接入掌控板,另一头接入电脑端;
2. 正确识别后,在mPython软件的主界面,“未连接”处会变为已连接,即可正常使用。
如果掌控板与电脑连接后,无法识别掌控板,那么就需要检查在安装软件时是否安装了掌控板的驱动。具体操作方法见:https://www.labplus.cn/posts/616ff8ffb66aa763232a2129
掌控板可以看成是一个微型的计算机,它是一个硬件,要想实现某些功能,还需要具备一定的系统文件,所以在初次使用掌控板时,需要给它烧录最新的文件系统,以便同步一些最新的功能。
给掌控板烧录固件的方法是:
1. 掌控板与电脑连接后,打开mpython软件,点击右上角的设置按钮,选择烧录固件;
2. 选择一个最新的掌控板固件,点击确定,即可开始给掌控板烧录文件系统(烧录过程持续大概60s)。
3. 烧录固件成功后,控制台会反馈烧录成功的信息,同时掌控板上也会显示最新的固件日期。
除了可以从软件中直接烧录固件,也可以手动烧录固件,手动烧录固件的方法是:
① 从掌控板固件发布中下载固件到iben,掌控板固件发布的链接为:
https://mpython.readthedocs.io/zh/master/release.html#release
② 打开mpython软件,点击右上角的设置—烧录固件,在自定义固件中选择固件文件进行烧录即可。
在软件的编程区编写完程序后,程序运行有两种方式,一种是“刷入程序”,是指将编写的程序文件刷入到掌控板中(此时可以在掌控板的文件中找到编写好的程序文件), 即便掌控板与电脑断开连接,只要给掌控板供电,掌控板依旧可以运行程序;另一种是“运行程序”,是指掌控板与电脑通过USB连接的状态下,将程序文件通过串口进行传输, 一旦掌控板与电脑断开连接,程序将无法运行(掌控板中没有程序文件)。
将程序刷入到掌控板中时,软件中会显示刷入程序的进度,当程序刷入成功时,控制台会反馈信息。
掌控板板载1.3英寸OLED显示屏,分辨率为128x64,可显示文字也可显示图片。OLED屏幕上有坐标系,坐标原点(0,0)为OLED左上角的顶点, 水平的正方向向右,数值逐渐递增,范围是0~127,竖直的正方向向下,范围是0~63,可通过调整坐标来改变显示文字或图片的位置。
1. 在mpython软件的“显示”模块中找到显示文本的指令,有两种编写方式,分别是行显示与坐标显示。如下图所示。
2. OLED显示文字或图片主要由两条指令来控制,分别是“OLED显示(内容)”与“OLED显示生效”的指令,另外在使用过程中也常常会在指令的最前端加入“OLED清空”的指令, 来去除屏幕上多余的内容。以行显示为例,显示文本的程序指令如下图所示。
3. 点击软件中的刷入按钮,将行显示的程序刷入到掌控板中,效果如图所示。
4. 用坐标来显示文本时,需要注意,文本也有坐标原点,汉字的字体高度约为16像素点,宽度约为12像素点,可以将文本看成一个长方形, 文本的坐标原点(0,0)也是在文本的左上角。所以通过坐标来调整文字的位置时,实际调整的是文本左上角的顶点位置。
用坐标将文本调整至OLED显示屏的中央位置,可以通过调整或计算x、y坐标来实现。具体的程序及刷入掌控板后的效果如图所示。
1. 在mpython软件的“显示”模块中找到显示图片的指令,如下图所示。
2. 点击图片中的复选框,可以看到掌控板内置的众多图片。
3. 与显示文本的指令相同,OLED显示图片也需要“OLED显示生效”的指令,最好也要加上“OLED清空”的指令,将之前的内容清空掉,OLED显示图片的指令如下图所示。
4. 将程序刷入到掌控板中,效果如下图所示。
生活中有形形色色的按键开关,如按压按键、触摸按键等,它们可以控制电子设备的开启和关闭,例如按压按键可以控制灯的开关, 触摸按键可以控制电子产品的屏幕切换显示不同的内容等等。按键的应用场景多种多样,你会用按键来做什么呢?
1. 在掌控板上部边沿有按压式A、B两个按键,可作为一些功能的开关或触发装置。
2. 按键控制OLED 显示
① 在“输入”模块中,拖出以下指令,下拉键可以选择A键还是B键。
② 在“显示”指令中拖出绘制进度条的指令。
③ 当按键A被按下时,OLED 显示进度条,当B键被按下时,清空OLED 屏,参考程序如下:
④ 另一种写程序方式如下。两种方式展现的效果是一样的,根据需求进行选择。
1. 在掌控板正面金手指处拓展6个触摸按键,依次P、Y、T、H、O、N,可监测是否被触摸。
2. 触摸切换显示内容
① 在“输入”模块中,拖出以下指令,下拉可以选择P、Y、T、H、O、N键。
② 触摸不同的触摸按键,显示不同的文字,参考程序如下。触摸按键的使用方式与A、B按键类似。
③ 另一种写程序的方式如下。
④ 表达触摸按键被触摸还有一种形式,即通过触摸键的值来判断,当触摸键被触摸,其数值会变小,趋于0。在“输入”模块中,可拖出以下指令。
⑤ 通过“文本”指令打印触摸键的值,观察触摸键的值有无被触摸时的变化。在“文本”指令中拖出“打印”指令。
⑥ 将触摸键P的值显示在控制台。
⑦ 例如当P键被触摸,OLED 屏显示文字。
你是否想过,如果这个世界上是无声的,会是什么样的呢?在我们的现实生活中,声音无处无在,各种各样的声音为我们的世界增添了一份精彩。 声音有大有小,随着科技的进步,如今出现很多可以检测声音大小的设备,我们利用掌控板的声音传感器来制作一个声音检测仪吧!
1. 掌控板板载声音传感器(麦克风),可以用其感知周边环境的声音变化,其数值变化范围是0-4095。
2. 获取声音值
① 在“输入”模块中的“声音值”指令,可以获取声音值。
② 掌控板的OLED 显示声音值:
注:OLED 屏支持显示字符串类型的数据,而声音值是数字类型的数据,因此需要用“转为文本”指令将声音值转为字符串。在“文本”指令中拖出“转为文本”指令,把需要转换的数据接在模块后面的缺口中即可。
③ 刷入程序,对着声音传感器说话或者吹气,可观察到声音值的变化。
3.声音检测仪
通过柱状条的进度表示声音值,声音越大,进度条填充得越多。
① 在“显示”指令中拖出绘制柱状条的指令,柱状条可选垂直或水平方向,当进度值为100,则为满进度。
② 由于进度的范围值是0~100,而声音传感器的模拟值范围是0~4095,因此需用到映射,在“数学”指令中拖出映射指令。
③ 将声音值(0~4095)映射给柱状条的进度(0~100)。
③ 柱状条显示声音进度,参考程序如下。
光照是我们生活中必不可少的条件,更是植物生长的必要条件。光照有强有弱,虽然我们肉眼可看到光线的变化,但是我们并不能确定光线的具体数值, 我们可利用掌控板中的光线传感器采集光线数据并绘制成折线图,通过折线图来直观地了解光线的变化。
1. 掌控板板载光线传感器,可以用其感知周边环境的光线变化,其数值变化范围是0-4095,光照越强,光线值越大,反之,光照越弱,光线值越小。
2. 获取光线值并显示在OLED 屏上
① 在“输入”模块中的“光线值”指令,可以获取光线值。
② 由于OLED 屏显示的文字是字符串类型的数据,而光线值是数字类型的数据,因此需要用“转为文本”指令将光线值转为字符串。在“文本”指令中拖出“转为文本”指令,把需要转换的数据接在模块后面的缺口中即可。
③ 为了直观地看到OLED 屏上显示的是光线值,在其数值前面加上文字说明如“光线值:”。在“文本”指令中拖出可输入文本的指令,并输入文字。
④ 将说明文字“光线值”与获取的光线值串连在一起。
⑤ 整合程序,OLED 屏上显示的光线值。
⑥ 刷入程序,拿手电筒照射光线传感器,可观察到光线值的变化。
3. 绘制光线图表
① 在“数学”指令中拖出以下指令,并将文本“line1”改为“采集光线”。
② 在“数学”指令中拖出打印数据到图表的指令。
③ 将打印随机小数改为打印光线值。
④ 当按下按键A,打印光线数据到绘图区,同时OLED 屏显示光线值。
⑤ 当按下按键A,将光线数据重复打印到绘图区,直到按键B按下,停止打印数据。
⑥ 刷入程序,在仿真区单击“绘图”,切换到绘图模式。
⑦ 按下A按键,开始采集光线数据,可以在绘图区看到随着光线的变化而起伏的折线图,按下B按键,则会停止采集光线数据。
掌控板上集成了三轴加速度传感器,通过传感器可获取自身的运动状态,比如前/后倾斜,左/右倾斜,摇晃,加速,减速,甚至可以用它来检测自由落体运动。
三轴加速度传感器分为X、Y、Z三轴,上下翻转掌控板X轴变化明显,左右翻转掌控板Y轴变化明显,前后翻转掌控板Z轴变化明显。
1. 在“输入”类别拖出一个返回加速度检测值的指令。如下图所示;
2. 点击指令中X后面的倒三角,可切换不同轴加速度返回的检测值;
3. 借助掌控板OLED显示屏查看各个方向加速度的检测值。注意将返回的值转换为文本进行显示;
4. 点击右上角“刷入”,将程序刷入至掌控板运行,观察效果。
随机点名装置就是当掌控板被摇晃时,从大名单中随机抽取一个人名显示出来。
1. 使用列表填写大名单中的所有人名,注意标点符号都需要为英文格式下输入。
2. 选择列表中的随机一项,显示在OLED屏幕上,注意,列表中的项是从0开始计数,列表名称可在“变量”指令区中查找。
3. 点击右上角“刷入”,将程序刷入至掌控板运行,摇晃掌控板,观察效果。
掌控板上集成了3盏RGB LED灯,可通过三原色不同亮度组合,构成五彩斑斓的颜色。
RGB灯是在一个物理封装里面,有R(红)、G(绿)、B(蓝)三种颜色的LED灯,这三个灯非常靠近,从远处看可以当作一个三色的发光点。
R、G、B指的是红色(Red)、绿色(Green)、蓝色(Blue)。通过R、G、B三种颜色不同比例的混合,可以覆盖我们视力所能感知的所有颜色,这就是光的三原色原理。
红绿蓝的范围是0~255,代表的是亮度,尝试修改数值并刷入程序:R=255,G=0,B=0,可以看到红色全亮度;R=255,G=255,B=0,可以看到黄色全亮度;R=0,G=0,B=127,可以看到蓝色一半亮度。
1. 在“RGB灯”类别拖出一个设置RGB灯颜色的指令。如下图所示;
2. 修改指令中R、G、B后面的三个参数;
3. 点击右上角“刷入”,将程序刷入至掌控板运行,观察效果。
1. 呼吸灯是:灯的亮度由暗逐渐变亮,再由亮逐渐变暗,如此这样循环。使用for循环先实现灯由暗变亮,灯的初始亮度为0,最后亮度为255。 注意为了使灯的亮度能取到最亮和最暗即0和255,for循环中的间隔数设置为能整除255的数值;
2. 将for循环中变量的值,赋值给灯的亮度;
3. 再添加一个for循环,实现灯光由亮变暗,再从“循环”中拖住一条for循环指令,修改范围为255到0,并从“变量”中找到新的变量指令,复制给灯的亮度;
4. 添加一直重复指令,将程序刷入掌控板中,查看程序运行效果。
掌控板的主芯片ESP32自带wifi联网功能,可以通过连接网络获取网络资源。
全球共划分为24个时区。规定英国为中时区即零时区。零时区往东依次为东1—12区;零时区往西依次为西1—12区。 当太阳垂直照射零时区时,此时零时区时间为12时,同一时刻往东每隔一个时区时间增加1小时,往西每隔一个时区时间减少1小时。 即当零时区是中午12时,此刻东一区为13时即下午1时,西三区则为上午9时。中国以首都北京所在的东八区来定时,所以广播中进行准点校时都会加上“现在是北京时间X点整”。
1. 在“WIFI”类别拖出连接WIFI的指令。如下图所示;
2. 修改指令中Wi-Fi名称和密码(不建议使用苹果手机热点,因为热点会中断);
3. 使用同步网络时间指令,从中国授时网站上同步对应时区的时间,可点击时区后面的倒三角修改不同的时区;
4. OLED屏幕上显示返回的时间信息;
5. 增加重复执行,将程序刷入掌控板中,查看效果。
电子琴是一种电子键盘乐器,它体积小巧,不受演出场地、环境限制,受到各类音乐爱好者的喜爱。今天我们使用掌控板制作一个多功能的电子琴,既能弹奏音乐,又能播放完整的歌曲,一起来学习吧。
1. 掌控板上有一个无源蜂鸣器,用不同频率的方波驱动,可以发出不同频率的声音。进而可以做出“哆来咪发索拉西”的效果。
1. 播放音符指令
该指令可设置播放特定音符,指令下拉列表中给出了对应钢琴键C3~B5的音符以及常用的音乐节拍。如果使用的是掌控板板载蜂鸣器,引脚使用默认即可。
该指令是设定一个音符列表,依次播放列表里的音符。
2. 播放音调指令
播放特定频率的音调,可选择对应钢琴键C3~B5的音调。第一条指令持续播放音调,第二条指令可设定播放时长,播放完后即停止。
该指令是设定一个频率范围,然后频率按照一定步长增加,蜂鸣器播放这一系列频率的音调。实现一段频率逐渐上升的声音效果。
3. 播放音乐指令
这两条指令都是播放音乐,只播放一次。不同点在于:第一条指令运行的同时,程序直接往下运行。而第二条指令只有整首音乐播放完毕,程序才会继续往下执行。
这条指令也是用来播放音乐,不过有更多参数可以设置,使用起来更加灵活。这两个参数的具体功能如下面表格所示:
1. 简谱基础知识
以上面的《欢乐颂》简谱为例,我们来了解一下简谱的基本概念。
调号:调号是用以确定歌曲、乐曲音高的符号。调号写在简谱的左上方。它表示该曲应该用哪个“调”来演唱或演奏。 不同的调用不同的调号标记,如调号1=C,表示这是一首用C调演奏的曲子,即Do=C。如果是C调,那么简谱和音名的对应关系如下:
拍号:拍号就是节拍记号,用分数的形式来标记,通常写在简谱首页左上角调号之后。如《欢乐颂》简谱拍号为4/4.。拍号的读法是先读分母,再读分子,分母表示以几分音符为一拍,分子表示每一小节有几拍。
音符:音符是记录音的高低、长短的符号,在简谱中用阿拉伯数字1、2、3、4、5、6、7来表示。音符之间通过一定的节奏、节拍组织起来,便构成了一段具有音乐形象的旋律。音符写法和节拍的对应关系如下。
小节、小节线:音乐按照一定的规律组成的最小的节拍组织就是小节,这个有规律的节拍组织依次循环往复组成一首乐曲。在两个小节之间的竖线叫小节线。
2. 编写自定义歌曲
我们下面根据这个较为简单的《小星星》简谱,将其编写为曲子播放出来。
可以看到这个曲子为C调。拍号为2/4拍,即以4分音符为一拍,每小节为两拍。例如第一个音符1是一个四分音符,唱一拍,第7个音符5后面有延时线,是一个二分音符,唱2拍。
那么前面14个音符就可以编写为如下的程序,后面的音乐也按同样的方法编写即可。
3. 电子琴
我们也可以将掌控板制作成一个简易的电子琴,对照着简谱将曲子弹奏出来。
我们看谍战片的时候,肯定都见过使用电报机发送情报的情景。电报机是通过无线电发送信息的,今天我们也来运用掌控板的无线广播功能,制作一个有趣的电报机,一起尝试下吧!
掌控板提供2.4G的无线射频通讯,共 13 个频道。可实现一定区域内的简易组网通讯。在相同通道下,成员可接收广播消息。就类似对讲机一样,在相同频道下实现通话。
1. 功能设计
电报机具有的功能是:
① 可以调节频道,按下按键A,增大频道数,按下按键B,减小频道数;
② 按下触摸键T,发送广播消息,同时蜂鸣器发出声音;
③ 电报机接收到信息后,RGB灯亮一下随后关闭,并且蜂鸣器发出声音。
2.编写程序
① 调节频道的功能编写;
② 发送消息的功能编写:
③ 接收消息的功能编写:
完整的程序如下图所示:
④ 将程序分别刷入两块掌控板,调节两块掌控板处于同一频道,触摸任意一块掌控板的T键发送消息,另一块掌控板就可以接收到消息。
此页面仅列举了掌控单板编程常见的一些问题,更多问题即解决方法参考下面的链接。
https://www.labplus.cn/posts/609893054d982b612f5dfd76
问题1:mPython软件和掌控板不能连接。
解决方法:
① 检查是否驱动未正确安装。重新安装驱动程序或者mPython软件。
② 换不同的USB接口或者更换数据连接线,检查是否硬件问题。
问题2:刷入程序时卡住刷不进去,或者弹出掌控板连接异常的信息。
解决方法:
① 重新插拔掌控板。
② 给掌控板重新刷入固件。
问题3:刷入程序时卡住刷不进去,或者弹出掌控板连接异常的信息。
解决方法:
① 重新插拔掌控板。
② 给掌控板重新刷入固件。
问题4:使用了按键相关的指令,出现如下图所示的报错信息。
解决方法:固件版本太老,刷入最新固件即可。
问题5:wifi不能连接。
解决方法:
① 检查wifi名称和密码是否输入正确,wifi名称和密码尽量简单一些,不要太多特殊字符。
② 确认wifi频段,掌控板只能连接2.4GHz的wifi,不能连接5GHz的wifi。
问题6:能连接wifi,但不能连接其他网络服务器,例如下面所示的程序。
解决方法:检查一下掌控板所连接的wifi是否能连接到互联网。
问题7:使用了磁场传感器相关指令,出现如下图所示错误。
解决方法:磁场相关指令仅适用于2.0以上的掌控板,1.0的掌控板无法使用。
问题8:变量名问题。
解决方法:如果使用了“光线值”指令,变量名不能使用light,会和“光线值”这个指令有冲突,换成别的变量名即可。
1. 掌控板和拓展板的组装
掌控板和掌控拓展板的组合方法如下,用三个铜柱将掌控板和掌控拓展板连接,拧上螺丝固定,套入软质外壳即可。
2. 认识拓展板
掌控拓展板左右两侧扩展出12路引脚接口(掌控拓展板背面标记P为引脚接口),可通过这些接口接入经典的输入模块、输出模块,比如按键、人体红外、LED灯、蜂鸣器等。
拓展板还扩展出两路I2C接口,板上标记为SCL和SDA。可以通过I2C接口来接入I2C通讯模块,如超声波传感器、温湿度传感器等。
拓展板支持两路电机驱动(掌控拓展板背面标记M1和M2),可接入直流电机或满天星灯带。
掌控拓展板内置功放和喇叭,支持音频播放。可播放掌控板DAC(数模转换)输出的音频信号,比如mp3歌曲、语音合成(TTS)生成的音频等。
掌控拓展板内置了300毫安的锂电池,可为掌控板及外接的硬件供电。该锂电池可以通过外接USB电源充电,充电过程中,充电指示灯为红灯闪烁,当红灯熄灭时表示充电已经完成。
拓展板有两个版本,充电方法不一样。如果是1.0的拓展板,拓展板上有一个USB充电口,通过该USB口给电池充电。如果是2.0的拓展板,USB充电口的位置变成了一个红外发射模块,拓展板上没有单独的充电口,它是通过前面掌控板上的TypeC接口给电池充电。
注:无论是哪个版本的拓展板,在使用外接模块的时候,都必须打开拓展板上的电源开关,电源指示灯闪烁绿灯即可正常工作。
1. 数字信号和模拟信号
信号是信息的载体。在我们周围的环境中, 存在着电、声、光、磁、力等各种形式的信号。电子技术所处理的对象是载有信息的电信号。 目前对于电信号的处理技术已经比较成熟。但是,在通信、测量、自动控制以及日常生活等各个领域也会遇到非电信号的处理问题, 在实际中经常需要把待处理的非电信号先变成电信号,经过处理后再还原成非电信号。
在电子技术中遇到的电信号按其不同特点可分为两大类,即模拟信号和数字信号。
① 模拟信号
在时间上和幅值上均是连续的信号叫做模拟信号。此类信号的特点是,在一定动态范围内幅值可取任意值。 许多物理量,例如声音、压力、温度等均可通过相应的传感器转换为时间连续、数值连续的电压或电流。下图所示为一个随时间变化的模拟信号。
② 数字信号
与模拟信号相对应,时间和幅值均离散( 不连续 ) 的信号叫做数字信号。数字信号的特点是幅值只可以取有限个值。下图所示为一个常见的、应用最广的二进制数字信号。
2. 引脚功能
根据信号的类型,以及信号传输的方向,掌控拓展板上的引脚可分为四种功能。
数字输入,即外部的数字信号可通过该引脚输入掌控板;
模拟输入,即外部的模拟信号可通过该引脚输入掌控板;
数字输出,即掌控板可通过该引脚向外部输出数字信号;
模拟输出,即掌控板可通过该引脚向外部输出模拟(PWM)信号。
掌控拓展板上的12路IO引脚说明如下图所示,在连接外接模块的时候需要根据功能选择合适的引脚。例如连接一个模拟信号输入的旋转电位器,就只能选择P0、P1、P2、P3这几个支持模拟输入的引脚。
3. 引脚标识 无论是掌控拓展板还是其他外接模块,每个引脚处都有用英文字符标明该引脚的名称或功能,在连接模块的时候首先要了解这些信息。 任何一个电子模块要工作,都必须通电,以下是常见的电源引脚标识: VCC——电源线,连接线通常是红色。 3V3——电源线,连接线通常是红色。 GND——地线,相当于电源负极,连接线通常是黑色。 除了电源引脚,就是重要的信号引脚了。常见的信号引脚标识如下: (注:NC引脚表示无连接,即该引脚不起任何作用)
在音乐节或者一些节日活动中,经常会看到各种发光棒,打开开关,即可发出五颜六色的灯光,很好地起到烘托氛围的作用。今天我们一起来制作一个类似的七彩按键灯。
1. 添加满天星灯带指令
依次点击mPython软件左侧的“扩展”——“添加”,然后选择“执行器”,从中找到“满天星灯带”,点击“加载“,即可在左侧指令栏看到满天星灯带的指令。
2. 模块连接
满天星灯带可连接拓展板的M1或M2接口,我们以M1接口为例,如下图如所示。
3. 模块测试
打开拓展板电源开关,编写如下程序,刷入掌控板,即可看到满天星灯带亮起。其中亮度可设置的范围为0到100。
效果如下图所示:
1. 添加按键指令
依次点击mPython软件左侧的“扩展”——“添加”,然后选择“传感器”,从中找到“按键”,点击“加载“,即可在左侧指令栏看到按键的指令。
2. 模块连接
从按键指令的引脚选择下拉菜单可看到按键能连接的引脚,从中选择一个连接即可。我们以P0引脚为例。
找到一条4Pin杜邦线,大的一头插入按键模块,扁的一头插入掌控拓展板,其中按键的VCC连接拓展板3V3,按键GND连接拓展板GND, 信号引脚DO对应拓展板P0引脚,剩余的NC引脚对应掌控板P3引脚,这一条连接线并没有实质作用。连接示意图如下:
实物连接图如下:
3. 模块测试
从文本指令区找到“打印“指令,重复执行打印按键连接的P0引脚的状态,在右下角控制台区域可看到打印的值。按下和松开按键,可看到打印的值不同,按下为True,松开则为False,只有这两种状态。
1. 模块连接
满天星灯带连接M1,按键连接P0引脚,实物连接图如下:
2. 按键灯
从逻辑指令区找到条件判断指令。
编写如下程序,即可实现按下按键时灯亮,松开按键时灯灭的效果。
3. 按键灯优化
上面的程序,只有按着按键时灯亮,松开就不亮了。接下来对其进行优化,实现按一次按键,灯保持常亮,再按一次按键,灯熄灭。
创建一个变量flag。
将flag的初始值设定为0。如果按下按键,切换变量flag的值。如果flag原本为0,按下按键后,flag变为1;如果flag原本为1,按下按键后,flag变为0。设置延时,使得变量flag值的变化更加稳定。
根据flag的值设定满天星灯带的状态,如果flag等于1,灯带打开,否则如果flag等于0,灯带关闭。完整程序如下:
生活中随处可见自动感应门,我们也一起来制作一个感应门吧!
1. 认识舵机
舵机是一种位置(角度)调节的驱动器,适用于那些需要角度不断变化并可以保持的控制系统,可调节角度为0到180度。随舵机附带几个不同形状的舵盘,可根据需要选用。
2. 添加舵机指令
依次点击mPython软件左侧的“扩展”——“添加”,然后选择“执行器”,从中找到“舵机”,点击“加载“,即可在左侧指令栏看到舵机的指令。
3. 模块连接
从舵机指令的引脚选择下拉菜单可看到舵机能连接的引脚,从中选择一个连接即可。我们以P13引脚为例。舵机棕色连接线连接拓展板GND引脚,红色线连接拓展板VCC引脚,黄色信号线连接P13引脚。连接示意图如下:
4. 模块测试
舵机的旋转角度为0到180度。编写如下测试程序,刷入掌控板,即可看到舵机舵盘依次从0度旋转到45度、90度、135度,最后停在180度。
1. 认识红外探测模块
红外探测模块是一个测距传感器,检测正前方是否有障碍物。将障碍物置于红外发射管前方,当红外反射回去的强度达到设定的值,DO引脚输出高电平,指示灯点亮。 可通过调节电位器,设定阈值。阈值越小,可探测距离越远。
2. 添加红外探测模块指令
依次点击mPython软件左侧的“扩展”——“添加”,然后选择“传感器”,从中找到“红外探测”模块,点击“加载“,即可在左侧指令栏看到相关指令。
3. 模块连接
从红外探测指令的引脚选择下拉菜单可看到红外探测模块能连接的引脚,从中选择一个连接即可。我们以P2引脚为例。
找到一条4Pin杜邦线,按键的VCC连接拓展板3V3,按键GND连接拓展板GND, 信号引脚DO对应拓展板P2引脚,剩余的NC空引脚对应掌控板P7引脚。连接示意图如下:
4. 模块测试
读取红外探测模块连接的P2引脚的状态,并显示在OLED屏幕上。程序如下:
拿一个物体在红外探测模块前面进行测试,测试效果如下:
1. 模块连接
舵机连接P13引脚,红外探测模块连接P2引脚。
2. 感应门
编写如下程序,当检测到物体,舵机转动到90度,2秒后回到0度。
测试效果如下:
最后使用结构件将其组装成一个完整的作品即可。
台灯是生活中常用的日用品,很多台灯可以调节亮度,可满足不同场景的需求。我们利用掌中宝、旋钮电位器和光环板,来制作一款调光灯吧!
旋扭电位器是一种模拟型传感器(Analog sensor),其输出模拟值范围是0-4095,旋转旋钮可以调节模拟值的大小,可以结合其他模块作为调节控制。在旋钮电位器中,可看到VCC NC AO GND的引脚标识。
光环板有24颗RGB灯珠,灯的亮度范围是0~255。可实现跑马灯、流水灯、彩虹灯等各种灯效。
1. 在指令扩展区中单击“添加”,进入扩展库。
2. 在扩展库界面,单击“传感器”,找到旋钮电位器并单击“加载”。
单击加载后,即可在指令扩展区看到旋钮电位器的指令。
1. 与添加旋钮电位器的指令类似,单击扩展区的“添加”,扩展库界面,单击“执行器”,找到“NeopixelRGB灯”并单击“加载”。
单击加载后,即可在指令扩展区看到RGB灯的指令。
1. 连接旋钮电位器。首先拖出旋转电位器的指令,单击倒三角图标,查看旋转电位器可连接的引脚。旋钮电位器可连接的引脚有P0、P1、P2、P3,其中P3(EXT)是掌控板阻性输入接口占用的引脚,在其没有外接输入时可连接旋钮电位器。
2. 以接入P0为例。使用配套的连接线,有凸起的一端连接旋钮电位器,其中红色线对应VCC,绿色线对应NC,黄色线对应AO,黑色线对应GND。
3. 连接线另一端(扁平的)连接掌中宝的P0引脚。其中黑色线对应GND,红色线对应3V3,黄色线对应P0、绿色线对应P3。
4. 连接光环板。首先拖出RGB灯的指令,单击倒三角图标,查看光环板可连接的引脚。
在这些可连接的引脚中,P7与P9分别为掌控板和掌控实验箱板载的RGB灯占用,在没有用到这两个RGB的情况下才可以使用这两个引脚。
5. 以接入P13为例。将光环板的黑色线对着掌中宝的GND引脚插入,即黑色线对着GND,红色线对应VCC,黄色线对应P13。
6. 调光灯完整的连接电路如下。
1. 初始化灯带,设置灯带的名称、引脚和数量。
2. 设置灯的颜色。拖出设置RGB灯的颜色的指令,输入R(红)、G(绿)、B(蓝)的参数,其范围值均为0~255。
3. 点亮RGB灯必须加上设置灯生效的指令。
4. 点亮光环板。
5. 用旋钮电位器调节光环板的亮度。旋转电位器的数值范围是0到4095,而灯带的亮度是0到255,如何实现旋钮电位器对光环板的调节呢?可在“数学”指令中找出映射指令,映射可将一定范围内的数值转换为另一范围内的数值。
6. 在扩展指令区“旋钮电位器”中拖出旋钮电位器的指令。
将旋转电位器的范围值(0到4095 )映射为灯带的亮度范围(0到255)。
7. 由于旋转电位器的数值携带小数点,所以还需要用转为整数的指令。在“数学”指令中,拖出以下指令。
8. 将映射值转为整数。
9. 单击指令区“变量”,创建变量“liangdu”。
10. 将变量liangdu设为映射值。
11. 将RGB灯的红、绿、蓝的亮度参数设为变量“liangdu”。
12. 将程序刷入掌中宝中,转动旋钮,即可调节光环板的亮度了。
在我们成长的过程中,似乎都经历过测量身高。测量身高的方法有很多种,仪器也很多,在一些体检中心或者药店门口,往往会有一些是测量身高的仪器, 例如超声波身高测量仪,当我们站在仪器指定的位置,测量仪就会显示测量出的身高数据。我们使用掌中宝、超声波传感器、数码管也来制作一个身高测量仪吧!
超声波传感器上有两个像眼睛一样的圆圈,一个发射超声波,另一个负责接收,通过发射与接收之间的时间差,来判断前方障碍物的距离。
在超声波传感器中,可看到VCC SDA SCL GND的引脚标识,其采用I2C通讯将测距值返回主控,它可检测的距离范围是3~300厘米,可用于超声波定位、测距、避障等应用场景。
数码管可显示整形数字,最多可显示4位数。在数码管上,同样可看到VCC SDA SCL GND的引脚标识,它采用I2C通讯,接入主控时应接入I2C接口。
1. 在指令扩展区中单击“添加”,进入扩展库。
2. 在扩展库界面,单击“传感器”,找到超声波传感器并单击“加载”。
单击加载后,即可在指令扩展区看到超声波传感器的指令。
1. 单击扩展区的“添加”,在扩展库界面,单击“执行器”,找到数码管并单击“加载”。
单击加载后,即可在指令扩展区看到数码管的指令。
1. 超声波传感器与数码管都是连接在掌中宝的I2C接口。使用配套的连接线,有凸起的一端连接超声波传感器,其中红色线对应VCC,绿色线对应SDA,黄色线对应SCL,黑色线对应GND。连接数码管同理。
2. 连接线的另一端(扁平的)连接掌中宝的I2C引脚(GND 3V3 SCL SDA)。其中黑色线对应GND,红色线对应3V3,黄色线对应SCL、绿色线对应SDA。
注:掌中宝有两个I2C引脚,超声波传感器与数码管可任意接入其中的一个。
Step3:身高测量仪完整的连接电路如下。
1. 梳理超声波测身高的思路。超声波可以检测其与障碍物之间的距离,超声波传感器垂直向下(地面)安装,当人站在超声波传感器下方, 可以检测出超声波传感器与人(头顶)的距离。假设超声波安装在离地面2米的地方,那么超声波与地面的距离减去超声波与人的距离即是人的身高。
2. 创建一个变量distance,用于存放超声波传感器的检测值,即是超声波与人的距离。
在指令扩展区“超声波传感器”中拖出超声波的指令。
3. 将变量distance设为超声波传感器的值。
4. 创建一个变量height,用于存放身高数据。
5. 根据Step1对测量身高的思路梳理,身高(height)=200cm-distance,因此把变量height设为200减去distance。
6. 在指令扩展区“数码管”中拖出数码管的指令。
把超声波测量的身高值(即是变量height)显示在数码管上。
7. 由于超声波检测值带有小数,可在“数学”指令中拖出四舍五入指令。对超声波测量的身高数据进行四舍五入运算。
8. 数码管显示经过四舍五入运算后的身高数据。
9. 超声波测身高的程序如下。
10. 也可加上条件约束,例如超声波身高测量仪只测量2米以内的身高,即当超声波的检测值小于等于200cm,就测量计算身高并显示出来,否则数码管显示数字“0”。
11. 将程序刷入掌中宝中,测试身高测量仪的效果吧。
许多送餐机器人、搬运机器人以及一些智能小车能够沿着一条黑线来行进,这条黑线叫循迹线,是机器人、智能小车行走的路线。 这些机器是如何沿着循迹线移动的呢?我们利用循迹传感器和TT马达来制作一款循迹小车,一探究竟吧!
循迹传感器上有两个探头(D1、D2),它是基于红外反射原理,红外发射二极管不断发射红外线,红外光电三极管接收反射回来的红外光。由于白色对红外反射强,黑色对红外反射弱,故此可检测黑、白线。
注:安装循迹模块时约距离循迹线1CM左右,循迹线的宽度至少15mm。
TT马达,也叫直流电机,可通过连续旋转来给应用装置提供动力,可正转,可反转,转动速度可调(0~100)。
1. 在指令扩展区中单击“添加”,进入扩展库。
2. 在扩展库界面,单击“传感器”,找到循迹传感器并单击“加载”。
单击加载后,即可在指令扩展区看到循迹波传感器的指令。
1. 单击扩展区的“添加”,在扩展库界面,单击“执行器”,找到直流电机并单击“加载”。
单击加载后,即可在指令扩展区看到TT马达(直流电机)的指令。
1. 连接循迹传感器。首先拖出循迹传感器的指令,单击倒三角图标,查看循迹传感器可连接的引脚。
2. 以接入P0、P3引脚为例。使用配套的连接线,有凸起的一端连接循迹传感器,其中红色线对应VCC,绿色线对应D2,黄色线对应D1,黑色线对应GND。
连接线的另一端(扁平的)连接掌中宝的P0、P3引脚。其中黑色线对应GND,红色线对应3V3,黄色线对应P0、绿色线对应P3,这表示P0引脚控制循迹的D1探头,P3引脚控制循迹的D2探头。
3. 两个TT马达分别接入掌中宝的M1、M2接口。
4. 循迹小车完整的连接电路如下。
1. 在指令扩展区“循迹传感器”拖出循迹传感器的指令。由于循迹的D1、D2探头分别由P0、P3控制,因此需要两条循迹指令,把引脚设为P0和P3。
2. 在指令扩展区“直流电机”中拖出直流电机的指令。
3. 在“逻辑”指令中找出“和”指令。
如果循迹传感器两个探头下方均为黑线,表示没有偏离,小车直线前进。
注:直流电机的正转、反转需结合电机在实物中的组装方向来确定。
4. 如果循迹传感器左侧探头下方白色,右侧下方黑色,表示左侧偏离轨道,小车右转回到轨道。
注:循迹传感器左、右探头需结合左右两个电机在实物中的组装方向来确定。
5. 反之,如果循迹传感器右侧探头下方白色,左侧下方黑色,表示右侧偏离轨道,小车左转回到轨道。
6. 如果循迹传感器两个探头下方均为白线,小车停止,即是关闭直流电机。
7. 整合程序,循迹小车的参考程序如下。
将程序刷入掌中宝中,测试一下循迹小车吧。
外界物体的颜色到底是怎样的呢?我们用肉眼看到的物体颜色会因为外界环境因素的改变而发生变化。在这一课,我们做一个颜色识别器, 用颜色传感器来识别物体颜色,并让4RGB灯亮出同样的颜色,同时将颜色信息在OLED屏显示出来吧!
白光照射到物体时,物体会对白光进行有选择的吸收和反射,反射出来的光谱就是我们看到的物体颜色。例如:红色的花朵会吸收白光中的黄、青、绿、蓝、紫等色光,而反射红光,所以看起来是红色的。
颜色传感器运行时会发出白光,并且采集物体反射的光线,返回检测物的R、G、B分量值。要注意,在使用时,被测物体必须要置于颜色传感器1CM处, 使其能反射光线。除此之外,环境光线对颜色测量也有影响,最好在密闭的黑暗环境下测量。
4RGB LED灯共有4颗全彩灯珠,能够用红(R)、绿(G)、蓝(B)三种光的三原色混合成各种颜色的灯光,它的灯珠亮度范围是0~255。 另外,4RGB LED灯支持单总线控制,即一根管脚即可控制所有灯光,不占用管脚资源。
1. 在连接硬件时,我们需要确定颜色传感器和4RGB LED灯连接的引脚,这个可以从编程的指令中获得。打开mPython软件,点击模块区左下角的“扩展”——“添加”按钮, 点击“传感器”模块,就可以找到颜色识别传感器了,点击“加载”即可在模块区添加颜色传感器的指令,从指令中我们知道了,颜色传感器需要连接I2C引脚。
同样的,4RGB LED灯的指令也可以从“扩展”——“添加”中的“执行器”中找到(4RGB LED灯的指令与光环板和RGB灯带相同),并将它加载到模块区。
从指令中我们可以知道4RGB LED灯可以连接的引脚(13、14、15、16),注意,P7是控制掌控板板载的RGB灯。
2. 确定好颜色传感器和4RGB LED灯可以连接的引脚后,用4pin线将它们连接到掌中宝的扩展板上。在连接时要找到对应引脚,例如颜色传感器接到I2C引脚,4RGB LED灯接到13号引脚。连接图如图所示。
3. 编写程序——亮灯。打开mPython软件,编写程序,将识别物体的颜色用同样颜色的灯光现显示出来。用颜色传感器测量出来的红、绿、蓝的数值对应4RGB LED灯的颜色值。
这部分程序是:
注意!!!在使用灯带的指令时需要初始化引脚、灯的数量,在点亮灯光的时候要加上“灯带设置生效”的指令。
4. 编写程序——显示颜色信息。打开mPython软件,编写程序,将识别物体的颜色值实时显示在OLED屏幕上。
5. 将程序刷入掌控板,查看程序效果,效果如图所示。
植物的生长环境与许多因素都息息相关,例如水、温度等。而养在家中的盆栽更需要人们的细心爱护,在缺水的时候给它浇水,温度过高时给它降温。 我们可以用土壤湿度传感器、温湿度传感器制作一个盆栽土壤环境监测的装置,来实时检测盆栽土壤中的水分、空气中的温度与湿度,并在缺水时播放声音提醒浇水的功能,为盆栽中的植物提供更好的生长环境。
土壤湿度传感器是一个简易的水分传感器可用于检测土壤的水分,土壤湿度传感器作为模拟型传感器,土壤水分越大,AO输出越大,范围值是0~100%RH。
温湿度传感器是一种装有湿敏和热敏元件,能够用来测量温度和湿度的传感器装置。常用于检测环境中的温湿度,具有极高的可靠性和长期稳定性。其中温度的测量范围是:-40~125℃,测量精度:±0.3℃;湿度测量范围:0~100%RH,测量精度:±3%RH。
注意!!!在测量空气中的湿度时,不可将水倒在探头上。
在掌控板的拓展板中有一个可以播放音频的小喇叭。
1. 在连接硬件时,我们需要确定土壤湿度传感器和温湿度传感器连接的引脚,这个可以从编程的指令中获得。 打开mPython软件,点击模块区左下角的“扩展”——“添加”按钮,点击“传感器”模块,就可以找到土壤湿度传感器和温湿度传感器了, 点击“加载”即可在模块区添加土壤湿度传感器和温湿度传感器的指令,从指令中我们可以知道,温湿度传感器需要连接I2C引脚,土壤湿度传感器可以连接P0、P1、P2、P3引脚。
2. 确定好土壤湿度传感器和温湿度传感器可以连接的引脚后,用4pin线将它们连接到掌中宝的扩展板上。在连接时要找到对应引脚,例如温湿度传感器接到I2C引脚,土壤湿度传感器接到0号引脚。连接图如图所示。
3. 编写程序——检测盆栽土壤湿度与空气中的温湿度数据,并将检测到的数据实时显示在OLED屏幕上。
4. 编写程序——当检测到土壤湿度不足20时,让喇叭播放声音“快来浇水呀”。
其中,声音录制好以后保存成MP3格式(大小不要超过1M),将音频文件上传到掌控板文件中即可。
① 点击软件菜单栏“代码”按钮,切换到代码编程界面。
② 点击“掌控板文件”,在掌控板连接电脑的情况下,会自动加载资源。
如果自动加载资源时出现了问题,或者文件有更新想重新加载,可以在空白处点击鼠标右键,在弹出的菜单栏中选择“重新加载”。
③ 点击导入,选中要上传的文件,点击打开。
④ 点击“同步”按钮,将改动同步到掌控板文件系统中。
⑤ 同步后可在文件列表中看到刚刚上传的文件,这样就表示上传成功了。
⑥ 切换到图形化编程界面,添加音频指令。点击模块区左下角的“扩展”——“添加”按钮,点击“AI”模块,选择“讯飞语音”并进行加载。
⑦ 在这里就可以找到播放音频的指令,需要注意两点,一是音频在播放时需要初始化,二是音频播放的文件名要与录音的文件名相同。注意使用拓展板喇叭,拓展板要打开电源开关,并且电池要有电。
5. 将程序输入到掌控板中,效果如图所示。
在称重时,电子秤的金属构架受力形变,贴片上的金属丝也随着被拉长或缩短,金属丝电阻因此改变,通过测量金属丝的电阻变化,得到所称重物的数据。 而金属丝的形变得到的电参数,经过放大电路,调零电路,模数转换(A/D转换),译码电路后驱动数码管显示出数字。今天我们用力传感器结合掌中宝做一个简易电子秤吧!
力传感器,可以检测物体对传感器施加的力的大小, 单位为牛(符号为N),能检测拉力、压力、重量、 等力学量。
力传感器是一个I2C引脚的传感器,基于I2C传感器可以串联,为防止通信发生冲突,所以用拨码来调整通信地址。注意,指令中的拨码地址要与传感器上的拨动开关地址一致!
1. 力传感器需要连接到I2C引脚,连接图如图所示。
2. 编写程序——将力传感器的值实时显示在掌控板OLED屏幕上。
3. 优化程序。力传感器结合掌控板的显示功能,就可以制作一个简易的 电子秤。但是由于力传感器显示的单位是牛,不利于我们 观察数据, 结合公式G=mg,g为比例系数,重力大小约 为9.8N/kg。也就是1N≈100克,所以我们需要将力传感 器探测的数值*100,这样显示的数值就是克(g)。
4. 将程序刷入到掌控版中,查看效果,效果如下图所示。
风扇是生活中十分常见的电器,今天我们使用掌控板结合温度传感器和电机来制作一个智能温控风扇,实现温度高于设定值,自动打开风扇,否则关闭风扇。
热敏电阻为模拟型传感器,硬件接口标识AO,其测量范围为0~100。该传感器需配套温度探头来使用,温度探头测温部分为最顶端的部位,测温方式为接触式。
直流电机是一种可以提供动力输出的装置,该直流电机转速大、扭力小,故不适合用于带动重量过大的物体运动。
1. 软件扩展-添加区中,添加传感器——“热敏电阻”模块。如下图所示;
2. 通过热敏电阻的指令,查看热敏电阻可接入掌中宝的引脚。
3. 在上一步查看到的引脚中任选其一将热敏电阻接入掌中宝,这里以P0为例:具体接线如图所示。
1. OLED屏幕显示热敏电阻的测量值,注意先将测量值转为文本,并且打开拓展板电源开关,保证拓展板电量充足。
温控风扇装置就是当热敏电阻检测到的温度超过一定数值时,设置风扇开启,否则关闭风扇。
1. 使用条件判断语句,判断温度值范围,注意条件判断中不要使用等于号,尽量使用大于或小于号。
2. 软件扩展区中添加“风扇”的扩展模块,如下图所示,完成后编写温度超过设定值开启风扇,否则关闭风扇的程序,完成后刷入程序到掌控板中查看程序运行效果。
MP3模块可以输出SD卡内部存储的MP3音乐。使用时需要连接一个音响来播放声音,如下图所示。
MP3模块上有两个接口,其中右端接口用于连接掌中宝,正上方的tipc接口用于读取或存储sd卡中的音乐。方法是直接连接数据线在该接口,在电脑上即可查看到一个移动U盘。
MP3模块属于TX/RX通讯方式,在接线后,软件、硬件对应引脚时需要交叉互接,如下图所示。
1. 软件拓展区中添加“MP3音乐播放”的拓展模块。如下图所示:
2. 通过MP3初始化引脚指令模块,查看MP3模块可接入掌中宝的引脚。结合掌中宝硬件引脚分布,在不使用杜邦线单独接线的基础上, 我们可以使用配套的4PIN连接线将MP3模块直接连接到P2/P7引脚、P1/P6引脚、P15/P16号引脚。这里以P15/P16为例,接入MP3模块到掌中宝,如图所示:
自制MP3装置就是当触摸掌控板不同的触摸按键时,实现上/下切换音乐、停止/播放音乐、增加/减小音量等功能。
1. 编写MP3初始化程序包括引脚的确定和初始音量的设定。
2. 添加条件判断,设置不同触摸按键控制音乐的不同播放状态。
3. 程序编写完成后刷入掌控板中运行查看效果。
问题1:OSError: [Errno 110] ETIMEDOUT
解决方法:检查拓展板电源是否打开,拓展板可能没电或者电量过低。
问题2:OSError: [Errno 1] 不允许操作
问题3:OSError: [Errno 2] 文件或目录不存在
解决方法:如果是掌控板的资源文件,重新刷录固件;如果是自己上传的资源文件,重新上传。
问题4:OSError: [Errno 3] 没有此类进程
问题5:OSError: [Errno 4] 中断的系统调用
问题6:OSError: [Errno 5] I/O错误
问题7:OSError: [Errno 6] 没有此类设备或地址
问题8:OSError: [Errno 7] 参数列表太长
问题9:OSError: [Errno 8] 执行格式错误
问题10:OSError: [Errno 9] 错误的文件编号
问题11:OSError: [Errno 10] 没有子进程
问题12:OSError: [Errno 11] 再试一次
问题13:OSError: [Errno 12] 内存不足
问题14:OSError: [Errno 13] 权限被拒绝
问题15:OSError: [Errno 14] 错误的地址
问题16:OSError: [Errno 15] 需要阻止设备
问题17:OSError: [Errno 16] 设备或资源繁忙
问题18:OSError: [Errno 17] 文件已存在
问题19:OSError: [Errno 18] 跨设备链接
问题20:OSError: [Errno 19] 没有此类设备
解决方法:
① 检查扩展版电源开关是否打开,是否低电量;
② 检查I2C外设连接线,更换I2C外设;
③ 检查线路和是否接入对应器件,所使用图形化代码是否为器件对应图形化代码。
问题21:OSError: [Errno 20] 不是目录
问题22:OSError: [Errno 21] 是一个目录
问题23:OSError: [Errno 22] 参数无效
问题24:OSError: [Errno 23] 文件表溢出
问题25:OSError: [Errno 24] 打开太多文件
问题26:OSError: [Errno 25] 不是打字机
问题27:OSError: [Errno 26] 文本文件繁忙
问题28:OSError: [Errno 27] 文件太大
问题29:OSError: [Errno 28] 设备上没有剩余空间
解决方法:清理掌控板的存储空间,如不知道怎么清理存储空间可直接刷入固件。
问题30:OSError: [Errno 29] 非法搜寻
问题31:OSError: [Errno 30] 只读文件系统
问题32:OSError: [Errno 31] 链接太多
问题33:OSError: [Errno 32] Broken pipe
问题34:OSError: [Errno 33] 数学参数超出函数域
问题35:OSError: [Errno 34] 数学结果无法表示
问题36:OSError: [Errno 97] 协议不支持的地址族
问题37:OSError: [Errno 104] 连接超时
解决方法:
① 检查电源有没有打开、接线有没有接错;
② 检查所使用图形化代码是否为对应元器件代码;
③ 若使用到网络,检查网络是否畅通,填写的网络路径是否能够连接。
问题38:OSError: [Errno 110] 连接超时
解决方法:
① 检查电源有没有打开、接线有没有接错;
② 检查所使用图形化代码是否为对应元器件代码;
③ 若使用到网络,检查网络是否畅通,填写的网络路径是否能够连接。
问题39:OSError: [Errno 113] 路由不可达
解决方法:
① 检查ip地址、主题名称等是否填错;
② 尝试更换wifi或热点
问题40:OSError: [Errno 115] 正在进行中的操作
问题41:OSError: [Errno 118] 主机无法访问
问题42:OSError: [Errno 261] 定时器冲突
问题43:NameError: name 'XXX' isn't defined ,使用的变量‘XXX’未定义
解决方法:检查是否定义变量,如果是掌控板的变量,则检查代码是否完整或者重刷固件。
问题44:Python3.6无法安装
解决方法:可能是您已安装了python3.6或你的操作系统存在缺陷。
查看相关问题帖子 https://www.labplus.cn/posts/609894744d982b612f5dfd7f
问题45:OSError: SSID invalid / failed to scan this wifi,wifi名称或密码错误
问题46:AttributeError: 'Pin' object has no attribute 'is_pressed'
解决方法:固件版本过低,刷入最新固件。
问题47:TypeError: function takes 'X' positional arguments but 'XX' were given 函数所填写的参数数量与函数所需要的参数数量不一致
解决方法:很多图形化代码鼠标悬停会有函数以及参数的详解,可以通过这种方式查看参数数目,或者在文档中搜索。
问题48:SyntaxError: invalid syntax,python语法错误
解决方法:具体看抛出错误的地方,例如:① 缩进问题;② if语句内判断两者相等大多数情况应该是“==”而不是“=”。
问题49:RemoteException: could not enter raw repl未能连接上AI摄像头
解决方法:检查掌控板电量是否足够、线路是否接错、代码中引脚是否写错,若都没问题,重刷AI摄像头固件。
问题50:IndexError: list index out of range列表下标索引越界,选择列表某一项的时候不能大于列表长度
解决方法:查看自己的列表长度,选择列表下标索引时要小于列表长度。
问题51:ImportError: no module named 'smartcamera'使用AI摄像头时没有导入smartcamera库
解决方法:硬件模式下,删除左边扩展内的AI摄像头,并在重新加载选择刷入驱动库。
问题52:OSError: Timeout!,check your wifi password and keep your network unblocked连接超时
解决方法:检查wifi名称和密码有没有填错。
问题53:TypeError: can't convert float to int不能将float类型替换成int类型
解决方法:根据报错提示转成相应的类型。
问题54:MemoryError: memory allocation failed超出内存
解决方法:
① 按下掌控板单板背部B键下方的白色按键重启来释放内存。
② 如1不能解决请删减程序代码。
问题55:在使用图形化代码“播放音符列表”时会导致掌控板一直重启
解决方法:初始化列表内只允许放音符,不允许放音调,改用音符即可解决。
问题56:ndentationError: unindent doesn't match any outer indent level程序缩进问题
解决方法:找到在报错里的main.py那里提示的行数,把对应的图形化代码删除重新添加。
问题57:TypeError: extra keyword arguments given给出了额外的关键字参数
解决方法:
① 如果是自定义函数,检查是否填写传入了对应数量的参数。
② 如果是非自定义函数,检查报错里main.py出错行对应的函数,在mpython函数帮助文档内搜索对应函数,查看参数数量是否一致。
问题58:使用小方舟时,缺少nplus的某个库
解决方法:重刷固件,刷完固件后,查看掌控板文件的nplus文件夹内应有下面的四个文件。
问题59:win10安装驱动时,安装失败
解决方法:下载通用兼容版驱动并根据电脑系统选择安装32位或64位,点击下载通用驱动。
问题60:使用录音识别,掌控板显示{'state': False, 'err': 'error code 11201, reason licc failed'}公共接口使用上限
解决方法:在讯飞开放平台注册个人账号后找到自己的apiKey,使用如下代码来使用个人接口API。
问题61:61.OSError: Timeout,ntp server not response授时服务器超时
解决方法:在代码中切换授时服务器。
Copyright © 2018 Shenzhen Sheng Si Science & Education Culture Co., Ltd. 深圳盛思科教文化有限公司