哈喽,大家好,从这节课开始,我们来学习使用 micropison 开发 esp 三二单片机。学习本套课程需要有 pison 基础,如果你还不会使用 pison 的话,可以看看我们之前的教程,帮助你快速入门。 pison 本套开发教程主要参考 michael python 官方手册,里面包含了使用 michael python 操纵 e s p 三二单片机内部资源的介绍与范例,非常详细。或者呢,你可以百度搜索 e s p 三二 michael python 文档查看中文文档。 不过呢,中文文档他都是积凡德,所以有很多翻译的问题,大家最好对比官方手册来看。这里我把链接放在评论区了。接着我们来了解一下 esp 三二的主要组成部分。首先是一个复位按键和 usb 接口, 这个 usb 接口呢用于下载程序,电源输入,还有稍路驱动等等。再就是部分按键,它的作用是启动模式选择,按下表示下载模式,放开表示运行模式。 四就是我们这个开发版的核心 esp 三二 room 三二模组里面集成了蓝牙、 wifi 等模块。最后就是这两排针脚,他们是 gpio 接口,控制输入输出用的。 我们来看看 esp 三二开发版的银角图。 esp 三二芯片有四十八个银角,具有多种功能,但并不是所有的 esp 三二开发版的银角都暴露在外面,有些银角不能使用,也就没有暴露出来的必要。 我们这个单片机就只有三十个银角, e s p 三二芯片有三十四个可编成的 g p l 银角,每个银角执行多个功能,也就是 io 口的复用。设置 io 口功能的时候,只有一个功能会被激活,可以在程序中将银角设置为 gpioadc、 uart 等等。 e s b 三二的开发方式有以下几种,有 micropison、 ardino 和乐星公司的物联网开发框架,还有几个比较小众的开发方式, lur, j s 等等,大家可以去自己了解一下。 我们的教程主要是 micropison 与 arbino, 掌握了这两个开发方式,大部分基本的 diy 项目都能手到擒来了。 那什么是 micropison 呢? micropison 是跑在单片机上的, pison 通过内置的解释器执行 py 文件或 py 命令,就可以让单片机运行你想要的功能。如果说 arduino 让 diy 爱好者拜托了 各种编程环境的配置,那么 micro python 直接让大家摆脱了底层。命令行和解释器执行都是 c 语言所不具备的优势。运行 micro python 就类似一台完整的电脑,我们用 python 文件和命令行就可以轻松控制这台电脑中的一切。 micro 拍成的语法和拍成三基本一致,所以他可以在所支持的硬件平台上使用拍成语言对硬件控制。目前他支持基于三十二位的二目处理器,比如 stm 三二、 esp 三二等。有兴趣的小伙伴可以去官方了解一下。
粉丝7050获赞1.4万
这节课我们来让我们的开发版连接 wifi, 连接路由器上网是我们每天都做的事情,在日常生活中,我们只需要知道路由器的账号和密码,就可以使用电脑或者手机连接到无线路由器了。 现在呢,物联网市场非常火爆, wifi 也是互联网中非常重要的角色,现在基本上家家户户都有 wifi 网络,通过 wifi 跌入到互联网就成为了智能家居产品普遍的选择。 e s p 三二内部已经集成了 wifi 功能,可以说呢,它就是为 wifi 无线连接而生的。我们这节课学习 e s p 三二的 wifi 模块,使用 micropison 开发 wifi 是非常简单的事情,让大家在学习物联网中变得非常有趣,而且呢, wifi 模块也是为什么 e s p 三二可以迅速崛起的主要原因。 micropize 呢已经集成了 network 模块,因此我们可以直接使用这个模块。首先咱们就需要看这个构造函数,就是 network 点 w l a n, 它呢只需要传递一个参数就能创建 wifi 连接对象。 这个参数呢,有两种模式,第一个呢是 network 点 a p 杠 f, 第二种呢是 network 点 sta 杠 f。 ap 是热点模式,就是指电脑或手机端直接连接 esp 三二发出的热点,实现连接。如果咱们用 esp 三二开启了 ap 模式啊,电脑连接了咱们这个 esp 三二,这样电脑就不能上网了, 所以呢,我们常用的也就是这个第二种 s t a 模式, s t a 呢是客户端模式,它可以让电脑和设备同时连接到相同网 垄断的路由器上。那 network 模块我们该如何使用呢?首先肯定是导入模块对不对?接着呢,我们就需要创建这个对象, 比如我们创建了一个这个客户端模式,就是连接 wifi, 然后我们需要激活一下,也就是 w l a n 点 x t 五方法,它的作用呢是激活 wifi 连接对象的接口处,是激活 fos, 是关闭 此干方法呢是扫描周围存在的一切 wifi 信号。然后是一只 connected 的方法,判断一下你这个设备是否已经连接成功。 connect 的方法呢,就是通过传入一个那个 wifi 名和 wifi 密码来进行 wifi 连接。 接着是一个 config 方法,这个 config 方法啊,他那可以获取或者设置一般网络接口参数,你设置参数时呢,应该使用 关键字传餐,可以一次设置多个参数,然后查询时呢,这个参数名就用字符串的形式来引用起来,一次只能查询一个参数。最后这个 efca 他就是获取接口了, ip 子网,眼码,网关还有 ds, 那现在我们就可以来写代码了。 首先我们想实现的就是热点模式,这热点模式呢,允许用户把自己的 e s p 三二配置为热点,让多个 e s p 三二芯片之间进行无线连接,而且不用借助外部的路由器。第一步我们就需要导入模块 import network, 接着就是创建 wifi 控制对象,因为我们热点嘛,就叫 apap, 就等于 network 点 w n network 点 ap 杠 e f, 我们想要 舒适放进热点对象。接着呢,我们需要激活热点,激活热点呢,就 a p 点 active 方法它的一个参数处。 最后呢,我们需要配置一下我们的热点热点名称吧,我们刚才说了配置用的是 config 方法, a p 点 config, 如果我们想要配置内容的话,就需要使用关键字传餐,我们这个参数呢就是 e s s i d。 然后传递的值呢就是我们的热点名,比如我们叫 e s p 三二,接着我们运行看一下, 然后你就可以打开自己的这个 wifi 列表,你的 wifi 列表中呢,就应该会出现和我这个图片一样的情况,这就说明你的 esp 三二热点创建成功了。刚才我们已经创建热点了,现在我们来连接 wifi。 第一步我们还是需要导入模块 import time 模, import network。 然后呢我们要创建 wifi 连接对象, 那就叫 w l a n 等于 network 点 w a n 模式我们写成是 network 点 s t a 杠 e f。 接着呢我们要激活 wifi 接口,那就是 w a n 点 active, 我们再扫描一下附近允许访问的 wifi, 那就 print 一下,扫描周围信号源 w i n 点 scan, 刚才我们说扫描信号是 scan 方法对不对?然后我们就可以连接 wifi 了,那我们先 print 一下正在连接 wifi, 加一个摁的这个我们以什么结尾呢?我们让这个字符串不要让他以换行结尾,以空,结尾不是空格,是空。然后我们连接 wifi 方法, 第一个值我们需要传一个 sid, 第二个值呢,我们需要传一个 password, 我们把这个账号和密码写前面吧。好吧, 定义 wifi 的账号,密码账号就是 ssid, 比如我的是 dixman, 接着我的密码插座的就等于一个一二三四五六 qq, 放心啊,我录完这节课就改密码和 wifi 名, 我们现在在连接 wifi 哈,但是我们需要判断一下,如果我们一直没有连接成功的话,那就每隔零点一秒打印一个小数点,如果连接成功了的话,他就跳出这个 循环,直接打印连接成功。所以该怎么写呢?咱们的代码可以这么写,那条件就是我要 note wifi 点 e 字 connect 的,这是个双重否定对不对?如果我的 wifi 没有连接上,它就是个 pose, notepose 就是触码, 那我就打印一个小数点,而且呢,我还不让这个小数点换行用空结尾,那这里是不是就和这个正在连接 wifi 他就对应上了?也就说每次循环我就在不断的便利,不断的便利只会在这个字符串后面加一个小数点, 我们不要让他循环的太频繁,给他加一个时间限制, am 点 sleep 零点一秒吧。如果我连接成功了,我就让他打印一句话,那就让他打印连接成功,加个男号高兴一下运行。我们 来看一下,哎,大家看我这个是不是他一开始先扫描一下信号源,然后扫描到周围我这有的信号,接着呢,就是正在连接 wifi, 然后还没走多远就突然连接成功了,但是我们想让这个连接成功,和这个我们打印的正在连接,来个换行吧, 我们就在这个连接成功前面加一个换行符,就是杠。恩,咱们重新运行一下,如果你出现这个问题啊,是因为你的 wifi 在这里已经连接成功了,但是你又让他进行了一次连接,所以你需要先断开连接, 断开连接就是 disconnect 的方法运行。我们看一下,咱们看我重新运行一下,他依然成功了,而且打印的信息也分行了,对不对?虽然这样写没什么毛病,但是我们还是比较喜欢把这 代码给封装成一个函数里面,对不对?所以我们第三个代码呢,就是把之前这些代码封装成一个函数,那我们就可以把这些内容先复制一下,除了这个 wifi 的账号密码之后的内容我们复制一下, 我们新建一个函数就叫底翻,他的名字是 wificnac 吧,需要传递两个参数, ssid 和密码 password。 接着我们把刚才的代码全都粘贴过来,然后呢记得缩进放到这里。 这个函数呢,他执行了什么内容?第一个就是先创建这个 wifi 连接对象,激活接口,断开之前的连接,扫描周围的信号源开始连接,如果一直没有连接的话,就让他一直在这循环, 如果连接成功的话,就让他打印这个连接成功这个字样。那我们如果想要调用这个函数的话,就需要把这个函数放到我们的 micropython 设备 里面,这是我们自己写的代码对不对?所以呢我们就要把它放在我们的 come 目录下,新建一个文件夹,名字叫 wifi 点 py。 我们再把刚才写的这个程序复制过来,保存上传一下。现在还有一个什么问题呢?我在这里还没有导入模块对不对?我没有导入 network 模块和这个泰模块,我不导入的话,他怎么调用呢? 所以在开始这里,我们需要先 import 一下 time 和 import night work, 再保存一下。 那我们在这里想要连接 wifi 的话,是不是就可以直接 from omen 点 wifi import wifi 杠 connect 方法,那我们想连接的话,是不是可以直接 wifi 杠 connect, 然后输入你的 s, s, i, d 和 password, 对不对?这两个我们之前写过,我把它俩再复制过来,放到我这个里面 运行,我们看一下, 哎,大家看我这个 wifi 又连接成功了,对不对?那就有小伙伴儿响了,你看我这 wifi 还需要手动连接,那我们能不能实现一个自动连接,让我们的开发版一上电它就连接 wifi。 如果我们想要实现它的开机自启动,你就需要什么呢?你需要在 micro python 设备的根幕录下创建一个闷点 py 文件,闷点 py, 然后把你这个调用的这个代码就连接 wifi 的这个代码放到这里就 ok 了。那我们现在先断开 esp 三二的连接,就拔掉插头,你看现在断掉信号了,对不对? 我再把它连接上右下角,重新连接一下, 咱们看他是不是上电之后开机自启动了。那可能会的小伙伴呢,把这段代码给复制到不同文件中,就把它放到了这里,然后呢也运行成功了, 那这意思是不是说我也可以把代码放到 bot 文件中?这么说理论上是可以的,但是呢, micropison 的官方他不推荐。虽然咱们这些代码你在 bot 点 py 中也可以执行,但是呢,这个 bot 文件它是开机最先执行的文件, 最后也会由他来加载这个慢点 py 文件,而这个慢点 py 文件呢,他拍机会被部头文件来引导,所以你可以把自己代码最好是放在慢点 py 文件中, 你可以在不推点 py 文件中声明自己想要用到的模块里面可以定制自己的开机程序,但是官方建议哈,这个文件中的程序越小越好。
这节课我们来搭建 e s p 三二的 micro python 开发环境。首先就是代码编辑器,也就是我们常说的 i d e。 如果你是初学者,或者喜欢简单而快速的应用,那么推荐你使用 sony。 sony 是一款开源软件,对 micropython 的兼容性非常的友善,而且支持 windows、 麦克 linux 三大平台。最重要的是,它可以直接在软件中给 esp 三二刷 micropython 的固件, 并且呢,你可以实时预览 esp 三二的文件系统。这两点在我们后续的开发中非常的重要。 当然了,桑尼也不是没有缺陷的哈,由于其过于轻量化的设计,这个 i d e 呢,不具备代码提示功能以及很多开发者常用的插件。但是对于初学者而言,桑尼已经是足够了的。 我们可以在桑尼的官网下载安装程序,在浏览器中搜索桑尼的 o r g。 这里我们看到桑语的下载链接啊,点击下载即可。如果你点击之后一直没有反应的话,也不用担心。在我们的资料包中选择已经下载好的程序。右击以管理员身份运行, 点击下一步下一步,然后更改一下我们的轮储路径,尽量不要放在 c 盘啊。 选择创建桌面图标 install, 等待安装完成即可。 安装完成后呢,我们打开 sony, 能够正常打开 sony 的话,就说明你已经安装成功了。 之所以下面这会出现红色的报错啊,在这个筛要环境中,是因为我没有连接这个 e s b 三二单片机啊。但是你连接了之后呢,它依然会存在报错,因为我们还没有收录这个 micropops 的固件。 总体安装好之后呢,咱们就需要给单片机烧录 micropicent 的部件了,不然我们写的程序单片机他看不懂。首先把我们的单片机与电脑相连, 在骚逆中点击视图选择文件,这样我们就可以看到左侧出现了本地实时文件预览的窗口,等我们收录好了固件之后,就可以看到单片机的文件系统啦。 接下来我们就需要配置解释器并烧落构建到单片机中,点击右下角,这里配置解释器。 第一个呢,我们选择 micropison esp 三二第二个端口的话,它会自动检测到,如果你这里没有检测到端口,那说明你的电脑里没有这个驱动哈,你可以直接在我们的资料包中找到这个驱动,并且下载就是这个。 在点击 ok 之前啊,我们还需要把 micro python 的固件捎入到 e s p 三二单片机中,固件需要在 micro python 的官网下载,当然我们的资料包中也有已经下载好的资源,就是这个 micro python 固件。 点击安装或更新 micropize 端口的话,就选刚才我们检测到的这个固件呢,我们就选中我们资料包中的这个固件,点击安装, 等待安装完毕即可。这里我们看到他已经正确安装了,如果安装失败,可能是 bot 模式不对,只需要在安装时按住 bot 键即可,也就是下面这个按键 弹就说明安装完成了,点击关闭点击好的。安装完成后,我们可以看到在单片机设备中出现了不退电 py 文件,并且呢设有环境也可以正常使用了。 但是呢,我们还需要测试一下 micropison 环境是否搭建成功?找到资料包中的开机测试代码, 这里有一个闷点 py 文件,双击打开,大家先没有理解代码的意思啊,后面的章节会有讲解,这里主要是为了让大家 了解一下。搜你的使用方法,点击左上角的运行当前脚本,或者按 f 五键这里我们看到在我们的这个单片机上有一个蓝色 led 灯亮起来了,这说明我们固件收录成功了。
这节课我们学习如何使用我们的 esp 三二开发板来控制步进电机。步进电机是一种以固定的角度移动的方式,是轴旋转的电机。 不仅电机呢,广泛应用于各种需要控制位置和速度的场景,比如 cnc 机床了,三 d 打印机了,还有就是控制机器人的运动, 和所有的电机都一样。步进电机呢,也包括固定的部分,被称为定子和中间旋转的部分,被称为转子。定子上呢,又缠绕了线圈的齿轮状凸起,而转子是永磁体或者是可变磁组铁芯。 接着我们来看一下步击电机的工作原理,按了是给一个或多个电子相位通电,线圈中通过的电流会产生磁场, 而转子会与该磁场对齐。接着依次给不同的向位施加电压,转子将旋转特定的角度,并最终达到需要的位置。 就比如咱们这张图,他就显示了这个工作原理,首先是这个线圈 a 通电,然后产生磁场,转子与这个磁场呢对齐。接着呢,线圈 b 通电,转子呢就会旋转一个六十度,与新的磁场对齐。 接着线圈 c 通电,线圈 c 通电后呢,也会出现相同的情况。我们今天实验用到的是二八 byj 杠四八步进电机, 他这个名字是乱起的啊。首先这个二八他指的是电机的最大外径是二十八毫米, b 呢表示不禁式电机, y 指的是 用磁式电机, j 表示是减速型电机,四八表示可以四向八拍。换句话说,二八 b y j 杠四八的含义是外径为二十八毫米的四向八拍式用磁减速型步进电机。 我们如果想要使用这个步进电机的话,首先就需要了解什么是四项永磁式,这个图片呢是二八 b i j 杠四八的内部结构。先看里圈,里圈,它上面呢有六个尺,分别标注了零、一、二、三、四、五,这个就是转子,顾名思义,它是要转动的对不对? 转子的每个尺呢都带有永久的磁性,是一块永磁体,这就是永磁式的概念。再看这个外圈,外圈这个就是定子,他是保持不动的,实际上 他跟电机的外壳是固定在一起的,它上面呢有八个齿,每个齿上面都缠绕了一个线圈绕组,正对着的两个齿上的绕组又是串联在一起的,也就是说正对着的两个绕组总是会同时导通或者关闭, 由此就形成了四项。在咱们这图中呢,分别标注了 a、 b、 c、 d, 这个就是四项的概念。 接着我们来看看这款步进电机的工作模式,它呢有三种工作模式,第一种是单四拍,这是最简单的步进电机的驱动方式, 这种方式呢,电机在每个瞬间就只有一个线圈,导通消耗的电力小,但是在切换的瞬间没有任何的电磁作用,在转子上容易造成震动,也容易因为惯性而失布。第二种呢 是双四拍模式,这种方式他输出的转距较大,并且这个震动较小,切换过程中呢,至少有一个线圈通电作用于转子,使得输出的转距比较大,震动较小,也比单四拍更平稳,不容易失步。 最后一种呢是八拍模式,综合前两种的驱动信号,使用单四拍和双四拍交替进行的方式,每传递一个立词信号,步进电机前进半个布局角,它的特点是分辨率高,运转更加平滑,也是最常用的一种工作模式。 接着我们就需要了解一下他的工作原理了,咱们先假定起始状态就是咱们图中这个状态,那我们起始的时候呢,先让 b 向绕足导通,那么导通的电流呢,就会在正上和正下 两个定子尺上产生磁性,这两个定子尺上的磁性呢,就会对转子上的零号尺和三号尺产生最强的吸引力,就会像咱们图片这样,零号尺在正上,三号尺呢在正下就处于了平衡状态。 这时候我们可以看到啊,这一号尺四号尺离 c 绕组最近,他们这个夹角呢最小。 接下来我们把 b 项绕组断开,就现在他断开了,断开他的同时,我们让 c 导通 c 项绕组,导通之后,这右上角的这个一号尺和四号尺离这个 c 项绕组呢最近,所以一和四向 c 靠拢,直到正对着这个 c 项绕组达到平衡状态。再接下来呢,我们把 c 断开,再给 d 对应起来,那 d, 这时候这两个就会 进二号尺和五号尺,那我们 b、 c、 d 就做完了,那我们再走 a, 你看二号尺和五号尺与 d 相绕组对应的时候,那零号尺和三号尺就与 a 最接近了,对不对? 所以当我们在给 a 向绕组通电的时候,三号尺就从原来的正上和正下方走到了右下和左上这个位置,也就是零号尺来到这里,三号尺呢,来到了这里,我们也就完成了一个从 bcda 这样的一个四节拍操作, 再以此类推,我们再执行一遍这个四节拍操作,那三号是哪?就从 b 到 a 再到 d, 就以此类推。再来一个四节拍,转子就会再转过一个池的角度。八个四节拍以后呢,这转子就会转过完整的一圈,而 其中单个节拍使转子转动的角度呢,也就很容易计算出来了。一圈三百六十度,然后八个尺转八次,每次四个节拍,所以就是三百六十度,除以八,再除以四,就等于个十一点二五度,这个值呢,也被叫做步进角度。 而咱们这种工作模式呢,就是步进电机的单四拍模式。那什么是八拍模式呢?八拍模式就是在单四拍的每两个节拍之间,就是在我们给 b 通电断电的时候,再给 c 通电 之间呢,给他加入一个 b 项和 c 项同时导通的一个节拍,这个时候由于 b 和 c 这两个绕组的定子尺对他们附近的转子尺同时产生相同的吸引力,就导致这个转子尺呢就会处于 b 和 c 中间 的位置。接着呢,我们再把 b 给断开,直到转到 c 位置,转到 c 了之后,再添加一个 c 和 d, 同时导通了一个节拍,让这个转子尺呢转到 c 和 d 中间的位置,然后断开 c, 让转子尺走到 d 的位置,以此类推。 这样一来,就使得这个转动精度呢增加了一倍,而转子呢,转动一个齿就需要八拍,转动一圈呢,就是八乘八六十四拍 装四排的工作模式呢,其实就是把这个八排的工作模式中呢,同时通电的这四拍给他单独拿出来,然后舍弃掉,就是单绕组通电的这四拍而已, 他的不仅角度码和单四拍是一样的,但是由于他是两个绕组同时倒通,所以扭距会比这个单四拍的模式大。这三种模式其中 中的八拍模式是这类四项布丁电机的最佳工作模式,能最大限度的发挥电机的各项性能,也是绝大多数实际工程中所选择的模式。 接着我们来看看他这个参数,这个参数里面其他的咱不需要管,这个步进角我们需要看一下,他说了一个这个五点六二五度除以一个六十四,这是输出轴的一个步进角,然后减速比是一比六十四 啊,这个是什么意思呢?意思就是这个转子他转六十四圈,才会让咱们这个输出轴就咱们能看到的外面这个轴他才会旋转一圈, 咱们这个转子需要六十四拍他才能转一圈,对不对?那咱们如果想让这个输出轴转一圈的话,就需要六十四乘六十四,也就是四千零九十六个节拍才能让输出轴转 转了一圈,这四千零九十六个节拍转动一圈,那么一个节拍转动的角度呢?也就是这个步进角度就是三百六十度除以一个四零九六, 咱们换算一下,就分子分母同时除以一个六十四,也就是三六零除以六十四,四零九六除以六十四,换算过来的话就是这个五点六二五度除以六十四,这样我们就把这个拨击面积的基本原理降完了。 我们在题目上还提过,我们要用到 u l n 二零零三芯片来驱动附近电机,为什么我们不用单片机直接驱动呢, 这是因为单片机的管角他输出电流较小,只有零点几个毫安,大多数单片机只有几个毫安,而且输出的最高电压也不会超过五伏。由于这个原因呐,很少用单片机直接驱动外设 uln 二零零三的作用就是把单片机的信号进行放大吸纳,电流呢可以达到五百毫安,耐压呢也提高很多,基本能满足微型不进电机的驱动电流和电压。 了解完原理之后,我们就可以来搭建我们的电路了,这次我们搭建电路呢,需要用到一个咱们这个步进电机二八 byj 杠四八的步进电机和 uln 二零零三驱动板。接着呢是这个杜邦线面包板, 咱们这个步击电机呢,它有一个防带插头,你也不需要管正反,就可以直接插在咱们这个驱动板上,然后给咱们这个驱动板接上 d 和接五伏电源 这四个引脚,这印一,印二,印三,印四呢,分别对应的是二七十四、十二十三。接好电路之后我们就可以来写代码了,那我们第一步还是导入 模块 import 泰模,然后 from 这个 machine import p。 接着呢就是定义我们用到的引脚对象,那就是 a 模式,是 ping alt 输出模式 十三,十二,十四二七。接着呢我们先运行一下单四 part 模式,那么你直接打印出来吧,好吧,就 print 一下单四 part 模式, 就是 for i in range, 给他一个我们要执行的这个循环的次数,比如我们循环五次把线, 那其实咱们就是按顺序给这个 a、 b、 c、 d 四项的这个绕组通电就行了,对不对?比如我先给 a 通电, 给 a 通电之后呢?那 b、 c、 d 他们三个呢?叫断开, 接着我们再给他一个延时,就 time 点 sleep 毫秒吧,如果你让他执行太快的话,他可能反应不过来,呃,二毫秒吧啊?因为我们后面经常用到,所以我们直接定义到前面吧,那就是 delete time 等于二, 这里我们就可以这些 d 类 app。 咱们想想啊,现在咱们走的是单四拍模式,我们知道代码呢,只是走了这单四拍模式中的其中一拍,就是我们这个转子都还没有转到一个尺,对不对? 我们要想撞一个齿的话,先给 a 通电,让他延时一会,接着呢,我们再给 b 通电,然后 a 断开,再给 c 通电, b 断开,再给 d 通电,然后 c 断开,再给 a 通电,再让 d 断开,这样我们才算是让转子转动了这八分之一圈,对不对?我们先把这几个代码给它复制一遍, 那第二个呢,就是给 b 通电,第三个呢就是给 c 通电,第四个就是给 d 通电,那再给 a 通电就不用写了,对不对?咱们直接这个循环就过去了,运行我们来看一下,现在应该看不了太大变化,哎,应该能看到啊,他那个撞了一下下啊, 如果不明显的话,咱们多运行几次,看到了吧?是不是在转,是不是在转?那我们该如何控制一下他的旋转角度呢?我们知道他的减速比是这个一比六十四了,而且我们也知道这一拍他转动的角度,因为这是个单次拍的,他是十一点二五度,那他们 四个呢,就是十一点二五乘四,这一次循环呢,也只是让这个转子他走了四十五度,注意啊,这里是转子,那他让这个输出轴呢, 咱们也刚才说了,这个输出轴的这个减速比是一比六十四,也就是说他让输出轴走的这个角度呢是四十五,还要再除以一个六十四,也就是转了零点七度。 而我们这里循环五次,这五次有什么用呢?这五次也就是在让他乘以一个五,也就是说我们这每运行一次呢,就可以让他转这个三点五度。 我们这个程序啊,也就只是让咱们这个电机转了三点五度。根据这一点我们其实也可以算一下,如果我们想让他就转一个我们想要的一个角度的话,我们就可以通过计算来获得 四千零九十六个节拍。他是转一圈,那我们想转半圈,也就是一百八十度,就是四零九六除以一个二,也就是二零四八。我们这个代码每次循环走这个四拍, 但是咱们是单四排模式下的四排啊,他不是八排模式,就等同于八排模式中走八排,两者转动的角度呢是相同的, 那我们需要循环的次数呢?比如我们现在想让他转动一百八十度,那我们就只需要循环一个二零四八,让他再除以一个八,也就是循环二百五十六次就可以了。我们来试一下二百五十六,注意我们现在这个指的这个角度啊, 运行我们看下结果,咱们看他是不是转了一百八十度,那根据这 一点我们是不是就可以计算出来,就是我们如果想转动一个角度,他对应的步数的一个公式,那就是四千零九十六,除以一个八,再乘以一个角度除以三百六。 比如我们想要转动的是五十度,那它的计算公式呢?就换成 step, 换成这个步数呢就是四零九六,那除以八,再乘以一个五十,除以一个三百六。 注意哈,你这个步数它得是个整数,对不对?所以你需要给它加一个 int, 把它给括起来,这样我们就得到了这个五十度这一个值。我复制一下,把它写过来 运行,我来看一下,咱们看是不是转动了一个大约五十度。
不管你学习什么单片机,最简单的外设莫过于 g p i o 口控制 l e d。 本节课向大家介绍如何使用 micro python 控制 e s p 三二的 g p i o。 输出。 首先我们讲讲引脚,引脚又叫管脚,英文名叫聘。这些引脚其实是从 e s p 三二芯片内部引出来的。我们可以看到啊,每个引脚都标了自己独特的名字,其中有一类引脚叫 g p i o。 引脚不责输出或输入电压。 开发板上 d 开头的引脚都是这类引脚,比如第二、第四、第十五等等。输入我们暂时不讲,这里我们先讲讲输出。简单来说啊,每个 gpio 都可以输出高低电瓶,那就有小伙伴问了,什么是电瓶?在逻辑电路中呢?高于某个数 值的电位称为高电位或高电瓶,低于某个数值的为低电位或低电瓶。比如 esp 三二中,高电瓶的数值大于二点五伏,低电瓶的数值小于零点五伏。具体的数值呢,最好通过测试来确定。 接着我们来了解一下 led。 led 就是发光二极管,它具有单向导电性,通过五毫安左右的电流即可发光,电流越大,亮度越大,但如果通过电流过大,就会烧毁二极管。所以我们一般把电流控制在三毫安到二十毫安之间。 为了限制通过 led 的电流不要太大,我们通常会串联一个电阻,因此这些电阻又可以称为限流电阻。当 led 发光时,测量其两端的电压约为一点七伏,这个电压呢,又叫做发光 二极管的导通压降。由于电流只能从阳极流入阴极,所以我们该如何区分正负极呢?这个很简单,我们看这个 led 图片啊,呃,长角的就是阳极,短角的就是阴极,阳极与电源相接,阴极呢就接地。 因此我们的电路可以这么接, led 的阳机接第十二银角,并串联一个一千欧的电阻,阴极呢就接 gnd。 需要注意的是,一定要接电阻,不然会由于电流过大烧毁。 led 电路搭建完成后,我们就可以开始写程序了。想要操控 e s p 三二引脚的输入输出,就要学会使用拼引脚类的构造函数来构建引脚对象。最重要的参数有两个, id 和 mod, id 呢就是必填项,用于 指定引脚。 mod 是指定引脚模式,可以是 in 输入模式或者 out 输出模式。 pro 呢,表示是否连接了上拉电阻,按表示没有,然后泼辣婆表示上拉,泼荡表示下拉。 如果在构造函数中给出了额外的参数,那么他们将用于初始化引脚,任何未指定的设置将保持其原先的状态。 再就是如何使用,我们可以先声明一个引脚对象,给定引脚零,再就是给定这个输出模式, 然后就是 p 零点, y 六零给 p 零复制低电频, y 六一呢,就是复制为高电频,红利啊! on, off, loh high 这四个方法也具有相同的效果,你想用哪个就用哪个。 接着我们再声明一个输入引脚,并给他设置一个上拉电阻。最后我们打印 pr 的逻辑,电瓶就 pr 点 y 六,括号里什么也不要填,不给参数的话就是获取值,给参数的话就是负值。 所以如果我们想要让一个银角输出高电瓶,只需要通过 on 或者是 y 六一操作即可。同理,如果想要输出低电瓶,只需要调用 off 或者是 y 六零,对不对?我们连接上我们的 sony 和 e s p 三二开发版。 首先我们先导入拼这个模块 from machine import 点,然后呢我们构建这个引脚对象,那就是声明一个引脚对象 pin 十二等于 pin 指定 id 十二引脚指定模式是 pin 点 alt 输出模式。 最后我们就是输出高电瓶,高电瓶的话就是 pin 十二点 y 六一或者是 pin 十二点 on, pin 十二点 high, 都一样,对不对? 接着我们点击运行或者是 f 五运行,我们看到开发板是不是灯就亮的了,这样我们就成功点亮一个 led 了。
大家好,给大家介绍扫你这个拍放语言 ide, 这个 ide 非常适合麦克拍放的开发,就是他的下载网址,支持 vivos max 三种操作系统的下载和安装,几分钟就可以安装好。那么这样一个桑尼安装好以后, 你就可以快速的开展自己的硬件开发工作了。很多人开始学习拍照的时候都卡在如何安装虚拟环境。 ving ppar 安装,打开爱豆 这样的一个拍摄 id id, 使用固件的烧路,几把开发 板,固件在单片机上,甚至包括一些小工具,比如说 douber, ybrry, pld 配置等等, 那么这样的一个 sony 软件就把这些东西全部都整体安装搞定, 这是萨尼的菜单。视图面板,包括这样的一个脚本的编辑,一个交互式的 repodexiel 程序,数电量的内存地址,对站等等,这些都是他的视图面板。选择一个解释器, 这个是一个 s 三十二的一个开发板,我用 us 和电脑连接,我们选 s 三十二,它可以通过 wifi 无线连接开发板和电脑,通过 wifri pro, 我现在用的是一个空口和他进行连接。这个地方 instorowerptatformer, 这个就是烧路,你下载好的固件,各种各样的固件可以往里的烧路,那我现在连接 就从我们的刚才一个 pc 机的解释器切换到麦克拍放的单片机上的解释器,这里就可以浏览 这个单片机存住的文件, 这里可以进行命令交互, 也可以往单片机里存文件, 包括下载一些包,这是他的一个调试运行,下载一些包包的管理插件, 整个艾迪的插件包的管理呢?比如说我要开发一个开发版的屏幕显示,想下载一些开源的库,比如说 下载再拍屏,下载一个他的 屏幕的驱动的原文键,这个就是一个 替方式的安装, 很快就可以完成这样的一个安装。 而且 id 软件常用的一些功能,比如说自动补全、自动提示、自动缩进 桑尼都应有尽有,我们就用这个进行我们的麦克拍放的开发,谢谢。
之前我们学习了 led 的原理,这节课我们来介绍一下如何使用数码管。现阶段,无论是 lcd 和 oled 显示技术有多好,都无法替代数码管这种显示方式,最主要的原因呢,就是它便宜稳定,而且操控简单。 直到现在呢,很多领域都离不开数码管,比如咱们在电影中经常看到的这个数码管,定时炸弹、交通信号灯,十几年前家里特别火的这个数码管电子挂钟。 数码管呢,是一种半导体发光器件,它的基本单元呢依然是 led, 按照能显示的位数可以分为一位、四位、七位等。数码管按照发光二极管单元连接的方式,可以分为供阳级数码管和供音级数码管。供阳级数码管呢,就是将所有的发光二 二极管的阳极接在一起,形成公共阳极。在应用时,将这公共阳极接到 vcc, 也就是电源。当某一次段发光二极管的阴极为低电瓶时呢,相对应的这个自断就点亮。当某一自断的阴极为高电瓶时,相对应的自断,他就不亮。 然后共音型数码管就是相反二,将所有的发光二极管的这个音级接在一起,形成公共音级。在应用时呢,将公共音级接在基因地上。 当某一字段的发光二极管的阳级为高电瓶时,相对应的字段就点亮。当某一字段的阳级为低电屏时,相对应的字段呢,就不亮。我们来看这个银角图,这个银角图中间有两个 come 端, come 就是公共端的意思。共 因数码管呢,要让他接地,供阳数码管呢,要让他接电源。剩下的这些 abcdefgdp 呢,被称为是断选线,分别对应不同位置的一个 led, 比如 a 对应 ab 对应 b, 然后 c 在这 c, 然后 dp, 这都有一一对应的。 如果你不清楚你的数码管到底是供阴还是供阳的话,可以用下面三种方式来测试一下。第一种方法,查询数码管的型号,一般在数码管的侧面都会标注出该数码管的一个型号,可以在浏览器中搜索该型号,获取对应的原理图。 我们看看我们手里的这个数码管哈,他就没有型号对不对?咱们看四面就是空空荡荡的,所以我们要采用下面两种方法, 我们的 e、 s、 b 三二开发版,它有电源引脚和这个 g、 n、 d 引脚,这样的话咱们是不是可以把这个电路给搭建出来?比如我们先假设它是一个供阳型数码管,那我们就可以给这公共暖接正, 为了不烧坏咱们这个数码管,并且为了少用几个电阻,我们直接用一个一千欧的电阻连接这个 vcc 和这个公共暖。然后我们用一根跳线把这个 gnd 和任意一个银角相连, 如果他亮了,是不是就说明这是一个供阳型数码管,如果他不亮,就说明他是一个供阴型,当然也有可能说明这个引脚是坏了的,对不对?所以呢,我们要把所有的引脚都测试一遍,咱们来试一下啊,咱们看我这个 a 是亮的, b 也是亮 样子, 我这个小数点位呢,就是坏的,因为之前我和同事打赌说这个三点三伏不会烧坏这个数码管,所以他就烧坏了,不过不影响咱们今天这个实验啊, 第三种方法呢,咱们就需要采用一下工具了,如果你的身边有万用表的话,你也可以用万用表的蜂鸣器档来测试数码管是供音还是供氧。 我们看啊,这里有一个这个二极管的一个标志,然后并且也告诉我们了这是蜂鸣器档,记得你下面不要接错了,这里也有一个二极管的一个标志,对应着这个蜂鸣器档要接这个表头,这次咱们先假设它是共音型数码管, 所以我们就用这个黑表笔来接这个公共端,用红表笔呢就随便接,然后我们看都不亮,对不对?这是不是说明这个银角可能是坏的,也有可能就是他是供阳型对不对?所以现在呢,我们用红表笔来接这个公共端, 黑表笔呢来任意接这些管角,我们看 a 是管用的, b 小数点损坏 c, d, e, 然后这 e 和 f, 这样咱们是不是就能够分辨出到底他是供阴还是供阳了呢?既然咱们已经了解了数码管的一个原理,接下来咱们就需要搭建一下电路了,搭建电路我们需要 用到一个一位数码管,一个一千欧的电阻面包版和跳线。按照这个图来搭建公共端呢,接正 a 和 d 十四引角相连, b 连 d 五,然后 c 连这个 d 十九, d 连二十一, e 连二十二, f 连二, g 连十五, dp 连十八,连出来就是这个样子。呃,大家可以看自己开发版就行了,只要把这个正确顺序连出来就行。 现在我们就可以来编写代码了,设计这个程序时,我们需要使用拍子中的字典和函数,最后我们会使用面相对象的方式来改写这个程序。 如果我们想让这个数码管某一银角亮起来的话,那么我们需要给对应的银角设置一个低电屏。如果我们想要显示一个数字时,就需要让 多个 l, e, d 同时亮起来,比如数字一需要 b 和 c 引角给低电屏,其余引角呢?给高电屏程序就可以这么写。我们先导入模块儿,就 import time prom machine import p, 然后定义不同的断选线对应的引脚对象, a 就等于 pin 四,输出模式把它复制, b, c, d, e, f, g, d, p, b, c, d, e, f, e, e, p, b 对应五, c 对应十九, b 对应二十一, e 对应 二十二, f 对应二, g 对应十五, dp 对应十八。接着我们给这个引角进行初始化 供阳数码管要流通,就得让阳极和阴极之间产生电视差。因此我们把所有的引脚都先复制一个高电屏,然后让所有的管脚熄灭。我们先把所有的引脚对象放在一个列表中,给它取名叫 led 立斯特吧, 那就 l, e, d 杠绿色 a, b, c, d, e, f, g, b, p 然后就是对所有银角都是哇,我们使用放循环把列表中的所有的银角复制为高电屏。 for led 印 led 杠 list led 点 value 一, 现在我们想让它显示数字一,我们先回过头来看看这个引角图啊,显示数字一,是不是只需要点亮 b 和 c 这个关角就够了?所以我们的代码可以这么写, 点是数字一,就是 b 点 value 零, c 点 value 零运行,我们看一下 数字一就正常显示了。这样写虽然没有问题,但是这样写的话,我们不仅需要在使用前先把所有的引脚逻辑变频给拉高,而且如果我们想要显示数字二,是不是就需要修改多行代码? 现在我们先把数字一的显示方法给注视掉,点是数字二,我们看一下他的一个引角图, 我们看啊,如果我们想显示数字一的话,就是把 b 和 c 电瓶给拉低,数字二的话就是 a, b, g, e, d, 对不对?所以我们代码可以这么写, a 点 y 六零,把它复制四遍, b, g, e, d, b, g, e, b 运行,我们看一下 r 确实是显示出来了,但是非常的麻烦,因此我们可以使用字典来存储数字,它对应的所有针脚的一个逻辑值,这样的话咱们在后期调用的话,就会具有一个通用性, 我们给大家取名叫 number decat 吧,数字的字典 等于一个大括号,呃,咱们按顺序写啊,先写上一个注视,比如零吧,零对应的这个就是 a、 b、 c、 d, e、 f、 g、 e、 p, 按这个格式来, 那我们可以来看一下啊,现在我们写零,它对应的逻辑电瓶,那就是零是什么呢? a、 b, c、 d, e、 f, 这是低电瓶, g 和 d、 p, 它们两个是高电瓶对不对?所以就是零中括号。 a 是零, b 是零, c 是零, b 也是零, e 是零, f 是零, g 和 d p 是一一一,这样看着比较对照啊。接下来就是一,一的话,就是 b 和 c, 它是低电瓶,其他的都是高电瓶,对不对? b 和 c, 那就是一零零一,一一一一 那二的话,是不是就是 a、 b, g、 e、 d 这五个引脚,它是低电瓶,其他的都是高于电瓶,对不对?大家只要知道它这个填写的一个原理就行了,我剩下的直接从咱们的网站上复制了。 我们在每次调用的时候呢,只需要给一个数字,也就是这个字典中的建名,根据建名呢,获取的对应的值,也就是这个逻辑 电瓶的这个列表。比如我们现在想要显示数字三,就是 number 等于三,我们用一个新的列表来存储,就想要显示的数字,他对应的这个逻辑电瓶的列表, 那就叫它 logic 的例子吧,就等于 number get, 点 get number logic list 这个列表中的元素,它和 led 杠 list 中的元素是对应的,就是一个是这个广角对象对应的逻辑电瓶,然后另一个呢,它这个是广角对象, 所以我们只需要按顺序把 logic list 中的值通过 y 六方法复制给 logic list 中的元素对不对,就可以这么写。 我们得先判断一下这个 logic list 啊,得存在对不对?就 if logic list 存在,如果不为空,那咱们就可以进行这个循环复直的操作了。 for i in rage 用这个长度 logic list logic l e d list 也一样,对不对?那就 l e d 杠 list i 点 value, 那指是什么呢?就是 logic list 的这个 d x 元素,哎,运行我们看一下, 大家看三是不是就显示出来了,我们呢还可以把这一段代码给他封装到一个函数中,这样的话,我们是不是可以直接给这个函数一个参数,那么他就可以在这个数码管上显示出 对应的数字了。比如我把它 define 名字,咱们就叫 display, 就是显示数字嘛, display number 参数就也叫 number, 这样咱们就不用改了,把这刚才内容粘贴过来, 这个我们就可以删掉了啊。接着咱们调用一下这个函数,那就是 display, 这 number 咱们三显示挂,这次显示四,运行 四就正常显示了。最后呢我们通过循环让这个数码管显示那个零到九所有的数字, 这个我们继续注视掉,注视你可以用这个快捷键 ctrl 加三或者 alt 加三加四啊,因为我这个什么我这快捷键被那个截屏给替换掉了,所以我就直接那个右击了,就是 four i in range 十, range 十的话就是零到九,对不对?呃, display 杠 number, 哎,运行,我们看下结果 好,大家看啊,这个为什么他只显示一个九呢?是因为我们没有给个延时,他瞬间就执行完了九遍,他执行到九之后就结束了,所以就一直停到这里了。我们可以这样给他加一个延时 tempt sleep 函数,那就给他零点五秒运行, 零一二三四五六七八九,哎,这就正常显示了,咱们这个代码的基础部分就卸完了。 这个写法虽然没什么问题,但是我们看啊,这中间又是一个函数,又是这种声明变量,最后还有调用,他们放在一起了,很凌乱对不对?而且这个代码只能 实行这一次的实验,那如果下一次我想这个在其他实验里面继续使用这个数码管的话,我是不是又得重新写代码?所以我们可以使用面相对象的方法,把这个代码给封装成一个库。
之前我们已经学习了如何使用 p w、 m 和 a、 d、 c 这节课,我们来学习如何使用 p s 二双轴摇杆来控制舵机, 这摇杆呢,一般在这个航母、无人机、遥控车、云台等设备上广泛应用,很多带有屏幕的设备也经常使用摇杆作为菜单选择的输入控制 双轴按键。摇杆主要由两个电位器和一个按键开关组成,两个电位器随着摇杆扭转角度,分别输出 x 轴和 y 轴上对应的电压值,而这种呢,他是向上的,按下摇杆呢,就可以触发这个按键。 在配套的机械结构的作用下,没有外力扭动的这个摇杆,初始状态下的他的两个电位计呢,都处在量程的中间位置。电位器我们之前说过, 就是可变电阻器,和咱们初中时候学的这个滑动变阻器呢,是类似的 ps 二摇杆模块呢,它有五个端口,分别是一个接电源的 vcc, 接地的接地和控制 x 轴输出、控制 y 轴输出、控制这个按键的三个输出引脚。 我们可以拨动这个 ps 二摇杆,然后随着这接触刷改变接触位置,这可变电阻器,也就是这个电位器,他的引脚处输出的这个电压就会发生改变。 x y 轴呢,是模拟输入信号,而 z 轴呢,它是数字信号,因此 x y 短口连接 a、 b、 c 引脚,而这个 z 短口呢,就要连接数字引脚。所以我们一共需要使用 e、 s、 p 三二的三个 g、 p l 引脚才能控制 p s 二摇杆模块。 其中两个模拟信号输入银角和一个数字信号输入银角,最后就是这个摇杆模块,他正常状态下,也就是不受力的时候,检测电压的常态在一点六五伏附近,最大值呢是三点三伏,最小值是零伏。 使用 esp 三二自带的 adc 触摸转换器的两个通道,分别检测 x、 y 轴的两个电压值的变化,就可以知道这个摇杆指向的位置了。 接着我们就可以来搭建电路了。首先我们先连接这个摇杆模块,我们让摇杆模块的这个正五福音角接 esp 三二的三点三伏, 一般情况下 e、 s, p 三二的 a, d, c 电压输入的范围是零到三点三伏,高于三点三伏可能会烧坏 a、 d、 c。 摇杆模块的接地呢就接接 d、 s、 w 呢,也就是咱们这个八成按键接的是第四引脚, s 轴呢接第十五, y 轴呢接。第二。接着就是咱们这个左边,它是一个舵机,这舵机呢接开发板另一侧的五伏引脚和接音地,而这个信号呢使用的是 gpl 十三, 那我们现在就可以来敲代码了。首先呢我们现在这个命令行中呢,让它实时显示这三个轴的一个值,那咱们第一步还是先导入模块 import 太模再 from 的模式 import p, 还有 a, d, c。 接着呢我们就定义摇杆的三个引角,一个是 ps 二 x, x 轴呢是 a、 d、 c, 这道引角呢是十五引角,我们还需要给他配置一下这个量程 量成了是零到三点三伏,所以就需要添加一个 a、 t、 n 杠十一 d, b。 接着我们定义这个 y 轴, y 定的引脚是二,后面一样。最后我们再定一下这个 z 轴, z 轴其实就是个按键,对不对?那就叫巴特,他就不是 adc 了,他是拼四引脚,然后模式呢?是入模式, 然后我们就可以写我们的循环,在我们的循环中呢,我们需要不断的打印这 x、 y、 z 三个轴的值,我还是喜欢用 f string 方法,比如我们第一个打印的 x 值,他就是 ps 二杠 x 也 read, 接着呢是 y, y 的值呢?是 ps 二,让 y 点 read, 最后是 z 轴,也就是咱们这个按键, z 轴呢,它是 ps 二,让八寸点 y 太溜了,我们不要让他显示太快,给他一个延时,每隔零点一秒显示一次吧。运行,我们看下结果, 我们来看一下啊,现在这个 x y 分别在这个范围来活动哈。然后我先控制 y 轴为零, y 轴最大四零九五, x 轴零, x 轴四零九五,我还可以旋转这个旋钮, 那两个都是零,两个都是四零九五,那按键再测试一下,按键按下之后 z 就变成了一。 既然咱们这个按键没什么问题,我们就可以使用这个摇杆模块来控制我们这个舵机。 那声明的这个摇杆引脚和导入模块这两个代码是一样的,我把它就复制过来。接着呢,我们还需要这定义舵机控制引脚,再添加程序啊。 舵机控制引脚,舵机占用的是十三引脚,然后舵机呢,他需要用到 p w m 模块,再添加一下 e w m, 那就是 my serval, 就等于一个 p w m p 十三,给他一个频率是五十,然后我就可以写这个循环了。 我们这个循环呢,因为我们只有一个舵机对不对?所以我们只需要读取这一个轴的模拟量的信号就行了,比如我们现在就只用 x 轴,那就读取 x 轴模拟信号,那就是叫 x y 六,就等于一个 ps 二 x 点瑞的。接着呢,我们还需要把模拟量这个信号转换成舵机的一个角度,再通过丢腿方法来控制舵机转动。我们之前在舵机那节课已经讲过了,舵机为零度的时候呢,这个脉冲信号宽度,也就脉宽是零点五毫秒,这是对应的零度, 零点五对应的就是零度在一个周期内哈,我们现在使用的这周期是五十,也就是二十毫秒,忘了的话,咱们小伙伴可以往前回去看看啊, 那最大值呢,就是一百八十度呢,对应的是二点四毫秒,二点四,二点五就差不多这个范围,毕竟 sg 九零呢,这个舵机他的精准度没有那么的高。二点四毫秒对应的就是这个一百八十度,而我们一会 会儿呢,要使用 p w m 模块儿的 duty 方法,这个 duty 它这个输出值的范围是在这个零到一零二三, 那所以我们这个角度该怎么计算呢?我们这个角度可以这么计算,那就是零点五,比如我要转动零度的话,就是零点五除以一个二十,再乘以一个一零二四,那就是零度对应的 youtube 要传入的这个参数。零度 那一百八十度,那一百八十度对应过来其实也就是二点四除以一个二十,再乘以一零二四, 所以我们这个舵机对那个角度参数就可以这么写,叫 several 杠 angle, 就等于一个角度 n 除以一个一百八十度,再乘以二点四毫秒,减去零点五毫秒除以一个二十, 最后呢再乘以一零二四或者一零二三,基本上没区别。但是我们这里啊,我们注意我们 x y 六它获得的值呢?它呢只是一个模拟量,对不对?它的范围呢,是零到四零九五, 其实没什么区别,摁是角度的时候,对应的是一百八十度,摁在这里已经不是角度了,摁在这里呢是一个模拟量,那直接比他一个良程,也就是四零九五,这样不就可以了吗?我们打印一下这个值, rent 一下 servo 杠 angle 运行。我们来看一下这个 n 没改过来啊, n 其实就可以是换成这 x y 六运行。我们来看一下,正常情况下呢, 他就是四十四,他这个转太快了啊,我们没有给他加一个延时 tam 点 sleep 二零点一秒运行,重新来,再看一下这个结果啊, 最小的时候是零,最大的时候是九十七,这一个值这么写啊,明显有个问题,咱们看啊,零度对应的是零点五,除以一个二十,再加上一个一零二四,也就说咱们最小的值呢,也就只可能是这个值,如果到零的话,就是出错了,对不对? 所以最后呢,我们其实可以加上一个零度这个范围,让他从零度开始转,我们重新运行一下, 嗯,最小的话就是零度, 最高呢就是这个一百二十二,这个一百二十二就很准确了,为什么我们拿计算器来算一下啊, 二点四除以二十,再乘以一零二四,得到结果就是一百二十二点八八,也就是说一百八十度对应的 duty 这个参数呢,就是一百二十二点八八。 而我们最小值呢,这二十五点六,那就是零点五除以一个二十,再乘以一零二四,你看这是不是就是二十五点六了? 那现在咱们就可以把这个值呢通过 my server 的 duty 方法给它传递过来了,那就 my server 让 angle 这就不需要打印了,我们重新运行一下。这里还有 这个问题啊,就是咱们这个 duty 这个值呢,它只能是整数,零到一零二三之间的整数,所以我们需要给它转换一下,就强制转换成整数运行,我们看一下现在, 哎,是不是零到一百八十度怎么就赚到了?我们现在呢只有一个舵机,所以只需要一个 x 轴就行了。如果我们有两个舵机的话,就可以给另一个舵机呢添加一个 y 轴,然后实现一个云台的一个效果。
这节课我们来学习使用 micro python 中的 r t c 模块来制作一个电子时钟。 那首先你就得了解一下什么是 rtc。 rtc 的全称呢,是时时时钟 real time clock, 它是一种与 cpu 互不干扰,独立于 cpu 运行的计时设备。 rtc 呢,主要用于在计算机系统关机时保存计算机系统时钟,以便在下次计算机系统开机时,能够从 rtc 中恢复出正确的时间。 rtc 的应用场景呢,非常广泛,比如实现一个时间戳的功能啦,自动唤醒计时器等等。 在一些需要记录时间的项目中, r t c 可以作为重要的时间标记。接着我们就来看看电路搭建,我们需要用到一块儿带有 iphone c 模块儿的 l c d 幺六零二液晶屏,这 这个呢我们在之前讲过,大家可以看看我们之前的课程。再就是杜邦线接法呢,就是让 iphone c 的 sda 引脚接开发版的第十三 sl 呢,接第十四 vcc 呢?接开发版的五伏电源引脚,如果你接三点三伏的话,可能就不够清晰。 接着呢,就是如何在 micro python 中使用 rtc 模块,这个 rtc 模块呢,那也是位于模式模块中,我们可以使用模式点 rtc 来构建 rtc 对象。 接着呢,使用这个 dti 模块来设置时间,或者呢来获取时间。如果我们传餐了的话就是设置日期,如果没传餐的话,就是获取当前的时间。我们传递的参数呢,是一个含有八个元素的一个元组或者列表。然后这个元组的格式呢,是年 月日星期十分秒微秒,其中这个星期也就是这个第四位啊,这个零啊,表示的是零到六,周一到周日,也就是零,就是表周一,六就表周日。 那咱们现在就可以来做这个实验了。首先第一步还是导模块 inpuls, 第一个小导入了泰摩 as from 这个模式 import, 我们导入的就是一个引脚,聘 r t c, 还有就是我们需要使用的这个 iphone z 模块,对不对?所以就是 soft iphone c。 接着呢,如果我们想要使用这个 iphone c 驱动 l c d 液晶屏的话,我们需要用到之前我们导入的这两个模块,也就是 from live 点 i 方 c 杠 l c d import, 我们看一下是导入的哪个类,要导入的是 i 方 c l c d, 我们把它复制过来。接着呢,我们先把这个 i 方 c 的对象定义出来,好吧, 定义软件 iphone c 对象,并且呢指定这个 sda 和 sl 的引角,也就是 gpl 口。这个对象呢,我们给它取名就叫 iphonec, soft iphonec 定的第一个引角 sda, 它呢等于 pin 十四, 再接着是 scl, 他对应的引角是 p 十三。然后我们还需要给一个这个频率,频率,我们这次先给一千,不合适了我们再加。 接着呢,我们需要获取一下咱们这个从机设备的一个地址,那就是 adress, 就等于一个 iphone c 点 scan, 因为咱们就连接了一个设备,对不对?所以就获取到第零个就行了。咱们打印一下,使用这 这个 f stree 啊,打印一下咱们这个 lcd 设备的列表,看看有没有找到这个地址,哎,放心点点,咱们把这句话写在前面吧,也是无所谓是不是, 咱们看啊,我们定义这个 iphone c l c d 对象的时候,需要传一个 iphone c 对象,传一个 iphone c 的地址,然后这个行数和列数。现在 iphone c 对象创建好了地址,获取到了行数,列数我们知道,所以呢,我们就可以创建定义 iphone c l c d 对象, 那就叫 l c d 吧, l c d 就等于一个 i 方 c l c d 第一个长行值, i 方 c, 第二个长行值呢是地址 eldrice, 第三个呢就是行数二,第四个列数十六。咱们再测试一下有没有创建成功啊?那就调用它一个方法呗,用 l c d 点 app to the screen, 而这个内容呢,我们就二楼运行,我们看一下 f 五, 哎,咱们看这个哈喽,就打印成功了对不对?但是他的更新速度有点慢,我们给这个频率增加两个零,好吧,之前是一千,现在变成十万。 文艺行看一下,那这句话咱们就不需要了,咱们这个 iphone c l c d 对象就创建好了,接着呢,我们需要定义一下这个 r t c 对象,那就 r t c 就等于一个 r t c, 我们打印一下,这个 r t c 对象,在我们的这个校环境里面运行,我们看一下哦,我们想获取时间的话,得 r t c 点 datam 对不对? datam 是获取时间运行,咱们看啊,它获取的时间是两千年一月一 日,这是五星期六,后面咱们这零时六分五秒,这什么什么的就不需要管了啊,你看咱们使用时日时钟,肯定是希望来获取一个时时的时间,对不对?你肯定不想获取一个这个两千年的时间来让他计算没有什么意义, 所以我们该如何给他设置一个时间呢?一种方法啊,那肯定是我们可以使用这个 r t c 点 datam, 然后传入一个列表,那比如咱们今天是二零二三五月五日,后面几个我不知道,那就写零三个零四个,零五个零,运行,我们看一下, 咱们看现在我这个 r t c 的时间就改成了二零二三年五月五日,然后现在是星期五零时零分零秒,但是现在这也不准确呀,对不对?那我总不能每次用它的 的时候都要重新设置一遍吗?所以呢,咱们用这个 sony, 他有一个好处是我们可以在配置解释器的时候呢,给他同步设备的一个实时使用,让他与电脑的设备进行同步,咱们点击, ok, 这里我们就不需要再使用这个了,我先断开连接,拔下来之后重新连接, 然后运行,我们看现在我这个设备它的时间就与我电脑时间同步了,就二零二三年五月五日,星期五十一点四十分二十八秒,这是第一种方法啊, 那我们现在已经获取到当前的时刻了。接着呢,我们就需要在我们的 l c、 d 屏幕上打印出来我们这个时刻,那我们就需要使用一个 well 处,对不对?让他每隔一秒就更新一下时间,或者呢, 你可以是每隔一分钟更新一下时间,就不显示秒数啊啊,一样无所谓的,咱们就给这个 day time 吧,好吧, day time 等于一个 rtc 的 day time, 咱们已经看到了啊,他返回给我们的是一个还会有八个元素的一个元组,对不对?所以我们想获取他使用内容的时候,就是年就等于一个他的一个第零个元素,然后月就是第一个、第二个、第三个、第四个、第五个、第六个, 那咱们就可以用 l c d 来获取一下了, l c d 点 put street, 比如我们让这个屏幕啊,它第一行显示的是年月、日还有星期,然后第二行呢就显示这个十分秒,好吧,年就是 datam 零,但是我们这个 put street 只能传递一个参数啊,所以呢,我们需要使用到格式化字母串,格式化字母串呢就是百分号 d, 百分号 d d 的意思呢?就是我们用后面的一个整数来代替这百分号 d 这个位置,杠百分号零二 d 就让他显示两位,不足两位的话就补零,再杠百分号零二 d, 因为年是四位的,对不对?咱们不用管,但是月和日他可能是一位,可能是两位,所以我们就让他保持显示两位的一个格式, 最后我们还要显示一个星期,这样就不合适了。在这个字母串外面呢,我们使用一个百分号,后面接着一个括号,里面填写我们要替换掉的这些内容。第一个就是 this time 零,年 is time, 后面大家看见叠复制, 那有 data time 二和 data time 三,咱们先运行一下看一眼,为什么会这样显示?因为我们在打印的时候 需要给他做一个清屏啊, lcd 点颗粒,就每次在使用的时候把这个屏幕给他清理一下,不然呢,他只会在原有基础上再打印新的内容。运行我们重新看一下啊, 现在咱们看啊,他是不是就是这个二零二三五月五日就显示出来了,为什么会一直在闪?是因为他更新的很快对不对?我们最好在后面给他加一个延时,让他一秒更新一次,他们点 sleep, 这下是不是就好多了?一行我们还没用完,对不对?我们接着显示第二行的话,我们需要在第一行后面加一个杠 n, 也就是换行,换行符之后呢,我们就可以在这里继续使用 l c、 d 点这个 string, 那传递的内容呢?就是十分秒呗,十分秒那呀也都是两位数,就是百分之零二 d, 冒号百分之零二 d, 冒号百分之零 r d。 后面跟着的这个 detam 中的元素呢,就是四五六,布置一下我就不手敲了,咱们记住啊,是四五六五六运行,我们来看一下啊, 哎,咱们看我这个屏幕显示的时间是不是也正常了?但是有一个问题啊,我这个四我如果不说的话,咱们谁都不知道这个代表什么含义,对不对?所以呢,我们最好是把这个四给他来替换一下, 比如我们在前面在这个循环外定义一个列表,这个列表呢就专门存储这每个星期的一个字符串,那就叫 wake, 那就等于呢,咱们也知道咱们这个 lcd 显示不了中文,对不对?那就英文呗,英文咱们就简写,就显示三个 monday, 然后 tuesday 就 t o e, 那就是 wednesday w e d, 接着是这个 thursday h u friday f r i saturday sat sunday sun。 咱们现在是字符串了,对不对?那 d 对应的是 decimal, 就是那个实定制的数字,我们需要把它换成是 s string, 那怎么对应过来呢?咱们知道星期五对应的是四,那零一二三四那四,他对应的这个位可列表中的元素的所引值他也是四,所以我们可以直接用位可中括号 d t m 三,这样咱们 wake 这个锁引值是不是就获取到了这个日期啦?文英运行,我们看一下 现在是不是看着就正常多了,咱们再给他做的美观一点,让他这个星期呢显示到最右边,那就再加一个空格 不运行。 还有就是我们让下面这些内容也跑到最右边,我们看几个空格啊,咱们可以数一下啊,这一二三四五六七八,咱们把空格一二三四五六七八运行,我们看一下啊, ok, 现在呢我们这个电子时钟就制作完成了,我们之前也说过啊,如果我们用 wifi 处不断循环,很浪费资源,所以呢第二种方法呢,我们使用定时器中断来显示这个时间, 那他和我们前面呢内容是一样的,也就是 yo 处之前的内容是一样的,我们直接把它复制过来就行,如果你觉得不熟练的话,咱们小伙伴可以自己在手敲一遍。内容呢就是第一部分就是导入模块,接着第二个步骤呢就是定义我们这个 iphone c l c d 的一控制对象。 第三部分呢就是定义我们这个 rtc 控制对象,接着就是第四步,第四步呢就是我们需要定义一下这个定时器中断的函数,最后呢我们就还需要初始化一下定时期对象,我们先定义定时器中断函数, 那给大家取个名字吧,就叫 aimer 杠 i r q 传递一个人气对象作为参数,那我们首先第一步就还是获取这 at time, 那就等于一个 r t c 点 at time, 接着呢我们就需要在这个屏幕上显示这些内容了,这部分代码呢,我们也可以从这里复制过来, 把它放到这里,那我们这个函数就写完了。最后就是初始化,初始化定时器对象,那首先就是 timer 就等于一个 timer 零,然后就是 timer 点 emit, 先填写这个第一个算数 mod, 我们是不是一开始没有添加这个 timer, 把这 timer 加进来, 我们之前说过这个模式有一个一次性的和一个周期性的,所以我们这次呢,肯定是周期性的,对不对? i'm 点 irodic, 第二个值呢,传入的就是一个周期,第二位的 周期呢,我们就是一秒改变一次一千。最后就是我们这个回调函数,也就是我们这个要执行的中段函数 all back, 就等于一个 timer 杠 i r q。 我们重新运行看一下, 咱们看我们现在就实现了和之前使用 y o 处实现电子时钟一样的效果, 我们呢除了可以使用这个 sony 来同步知识中之外,我们还可以从 n t p 服务器上获取时间,那咱们这里来试一下, 我们既然需要从服务器上获取时间,那我们肯定要连接 wifi, 对不对?所以呢,我们上节课讲了如何连接 wifi 了,我们直接把这个 wifi connect 的这个函数给导过来就行了,先导入的就是 n t p 模块, n t p 太模,接着呢就是模式模块装模性 inpport, 这个 r t c, 对吧? 最后就这个 from common 点 wifi import wifi 杠 connect。 我们先定义我们这个什么啊?先定义我们这个 rtc 对象,那就 rtc 就等于一个 rtc, 接着呢,我们就连接 wifi s i c d 就等于一个我自己家的 wifi 账号, wifi 密码,最后就是 wifi 杠。 net s i d 和阿斯沃尔的传入这里,我们先验证一下,看能不能连接上。 ok, 这连接是没有问题的,那我们就可以调用我们的 n t p 太模模块了, 我们需要使用到 n t p 碳模块的点 set time 方法,那么会把 n t p 服务器的时间直接同步到我们的 r t c 时钟。最后我们打印一下,有 r t c 点 daytime 运行。我们看一下, 咱们看啊,他现在是二零二三年五月五日,这个四是星期五,但是九点二分二十三秒,而我现在的时间是十七点,那是因为咱们这个时区不同啊,所以他 比咱们这个要慢上八个小时,处理起来也简单。那咱们就让这个显示小时的时候,让他加个八就行呗,是不是?那我们就在这里直接在笑中打印了显示北京时间, 我还是使用这个 f stream 北京时间。那第一个就是再重新定义一个 it time, 就等于啊, 那从这里就不需要打印了。第一个就是年 date, m 年的话是零,把这里复制一下,年月日日 分秒运行,我们看一下,结果连接 wifi now。 我们看啊,他显示的北京时间是二零二三五月五日九点四分五十四秒,这里我们在小时这里加个八运行,我们重新看一下,再改一下吧。后面这个我们不需要用这个横杠,应该用这个冒号,对不对? ok, 那咱们现在获取的时间就正确了,我现在正好是下午五点零五。
此地可 c 是一个可编程的小电脑,这个是可编程的 a 键,这个是可编程的 b 键,这个是开关键,长按两秒开机,长按六秒关机。 这个是扩展害他的接口,这是一个 led 的小灯, 这个是扩展单元的接口,这个是一个 type c 的一个接口。打开 m boni 烧鹿 ufo 这个固件, 一分钟以后,此处快进, 稍录完 ufl, 我们重启这个 c, 出 logo 的时候按 a 键就进入,再按 b 键就进入设置,进入设置, 进入这个 steam 的,把它切换成 usb 模式,然后重启一下, 这时就变成了 usb 模式,那么他插在电脑上就可以和我们的 ide 连接编程了,我们用 用退步 c 的线插上就可以了,用退步 c 的线连接我们的这个 c, 然后我们就可以用这个 ufl 这个 id e 打开进行麦克拍粉的编程。那么在进入的时候选择 come on 口提个 c 确定,那么呢他就会显示已连接,下方也是已连接的这样一个状态。
今天我们来搭建 esp 三二的 micro python 开发环境。首先我们需要一个代码编辑器,也就是 id, 如果你是初学者或者喜欢简单快速的话,推荐使用 sony。 这是一款对 micro python 非常友好的开源软件, 它支持 windows、 micos、 linux 三大平台。最重要的是可以在软件中直接给 e s p 三二刷 micro python 固件,而且可以实时预览 e s p 三二的文件系统。 当然了, sony 也有它的缺点,因为过于轻量化,所以它没有代码提示功能和很多常用的插件, 但是对于初学者来说, sony 已经足够了。我们去 sony 的 官网下载安装程序,网址是 sony, 点 oig 看到这个下载链接了吗?选择你对应的系统,点击下载就行了。 右键管理员身份运行,再点击下一步,下一步,再点击下一步,点击 install, 等待安装完成即可。 安装完成后打开 sony, 如果能正常打开,就说明你安装成功了。 安装好之后呢,我们需要给单片机商路 micro python 固件,不然写的 程序单片机看不懂。先把单片机和电脑连起来,然后在 sony 中点击视图选择文件,就可以看到本地实时文件预览的窗口了。 等我们输入好固件之后,就可以看到单片机的文件系统了。接下来就需要配置解释器,并输入固件到单片机上, 点击右下角的配置解释器。第一个我们选 micro python e s p 三二,第二个会自动检测到端口,选择默认的就行。 如果没有检测到端口,说明电脑里没有驱动,可以找到相应的驱动并下载,安装完成后可以点击确认。 好的,就这样可以正常使用了,我们来测试一下 micro python 环境是否搭建成功。输入一段测试代码,大家有没有理解这段代码的意思?后面的章节会有讲解, 这里主要是为了让大家了解一下 sony 的使用方法。点击左上角的运行当前脚本,或者按 f 五键, 看到没,这个绿色的 led 灯亮起来了,这说明我们的固件烧路成功了。
上节课我们已经学会了如何点亮一颗 led, 并且让它闪烁。这节课我们学习如何制作流水灯,原理依然是 led 的原理,所以我们直接看电路设计即可。 这个实验我们要用到的材料是五颗 led, 五个一千 o 的电阻跳线加面包板,每一个 led 的阳级与开发版的一个 gpl 银角相连,并串联一个电阻部级接金地。 这里我们用到的银角是十三,十二,十四二七二六啊,就是如果你不想用五颗电阻的话,也可以尝试一下下面这种接线方式。 咱们把所有的 led 的音级与电阻的一端相连,这样的话这五个孔位肯定不够,对不对?所以我们 需要把两侧的孔位用一个跳线连接起来,就能够实现和这张图相同的效果了。 最后就是程序设计,这里的代码有两个关键点,列表和循环嵌套。列表呢用于存储所有用到的输出引脚以及 led 拼对象。 循环嵌套的作用也很容易理解,外层的外凹处表示永真循环可以让这个程序一直执行下去,但是外层循环每循环一次,内层循环呢,需要依次点亮所有的 led, 然后再依次熄灭所有的 led。 所以连接好我们的电路之后,代码可以这么写,我们先导入模块 import time from 模式 import p 定义所有的 led 控制引角, led 杠一就等于并十三,然后输出模式拼点 alt, 把它再复制四遍, 一二三四,那接着对应的就是 led 二三四五,对应的这个引角呢,就是十三,十二,十四,二七二六。 接着我们把所有的 led 对象存放在一个列表中,方便后续循环使用。定义 led 对象列表,那就 led 杠 pin 杠。绿色等于 led 一 led 二。 咱们这么写肯定没毛病啊,可能有那么一点点的不简洁, 例如,如果我要增加一个 led, 那就是 led 六,对不对?在这里增加完之后,我还需要在列表中最后再添加一个 led 杠六,但凡我少写了一个,都会出现 bug 对不对? 这样代码之间的偶合度太高,我们希望的是改的地方越少越好。 我们把之前内容先注视掉,我先把所有的 gpl 引脚放在一个列表中, 给它取名字,就叫 pin 让 index index 就是所引序号的意思嘛, list 等于咱们用到的引脚 表示十三,按顺序写啊,十二,十四二七二六。然后声明一个存放 led 管角对象的空列表,给它取名为 led 杠 pin 杠 list 等于空就行。 最后我们通过循环把 pin index list 中的所有引脚序号转换成输出引脚对象,存放在 led 杠 pin 杠 list 中。 添加 led 引脚对象,那就是 for i 引聘 index, 绿色 循环,便利拼音 dex 绿色中的所有元素,那就 l, e, d 杠拼杠 list, 点 a pen 的把它 添加到 led 钢拼钢 list 中,添加的元素呢就是拼哎,然后模式呢,模式就是输出模式拼点 alt。 循环结束之后呢,我们打印一下这个结果。 print led 杠 pin 杠 list, 我们连接一下开发板哈,在运行,我们看一下,你看是不是十三,十二,十四,二七二六这几个引脚对象都已经存进来了。 接下来呢,咱们要先把所有用到的引脚初始化,让他们一开始拿都保持一个熄灭的状态,那就 for。 这回是 led 杠 pin 印 led 杠 pin 杠 list, led 杠 pin 点 y 六零,当然我们可以不写 y 六零,我们不使用 y 六方法,也可以使用 off, 对不对?效果都是一样的。最后呢,就是这个无限循环 y o 处, 每次循环我们都要先把所有灯泡逐个点亮,然后逐个熄灭,所以代码可以这么写,呃,我们先写逐个点亮,对吧? 薄 led 杠 pin 印 led 杠 pin 杠 list, led 杠聘点 value 一,这是逐个点亮了,既然我们要逐个点亮,所以每点亮一次,最好给他加一个延时,不然你根本观察不到他们之间变化的一个效果,咱们就给他加个 个这什么吗延时函数,延时多长时间呢啊?零点零五秒,那就 m 点 sleep, 零点零五, 咱们已经逐个点亮了,那逐个熄灭,是不是代码和逐个点亮 led 相同?只需要把这个 y 六一改成 y 六零就行了,对不对?所以我们可以把这代码复制过来,这次注视是逐个熄灭 led 复制过来,代码把 y 六一改成 y 六零运行,我们看一下结果,我们看这个 led 是不是就实现了一个流水灯的一个效果, 我们还可以对这个循环体进行优化。我们在学这个 y 六方法的时候是不是说过,如果这 led 让 拼点 y 六,这括号内我不填写任何参数的话就是获取值,填写参数的话就是复值,对不对?咱们这个外层循环每循环一次,内层循环呢,就要执行两次这个循环, 但是这两个循环其实只有一行代码不同,就是一个是 y 六一,一个是 y 六零, 其实说白了就是切换一下当前的状态对不对?切换状态的话,咱们可以这么写,既然这 led 杠拼点 y 六是获取当前值,那 note led 杠拼点 y 六是不是就是获取当前值的一个相反值? 说到这有的同学肯定就明白了,那我如果想切换状态,是不是可以写成 led 杠拼点 y 六, led d 杠拼点 y 六括号 note led 杠拼点 y 六 里面这个 value 方法呢是获取值,外面这个 value 方法呢是复值,所以呢,咱们这段代码可以改成这样, 里面删掉一个内部循环,把这个 y 六一改成 note led 杠拼点 y 六,咱们重新运行一下, 你看效果也是一样的,对不对?在我们第一次循环前,我们已经把所有的灯泡都熄灭了,所以第一次外层循环的时候,内层循环是不是把所有的引脚对象都变成了高电瓶,然后在第二次外层循环的时候,是不是 又把所有的引脚对象又改成了低点评?这样实现的效果是不是与咱们之前写的方法是一样的?当然代码的写法有很多种,大家可以自己去尝试一下。
好,今天这个视频用来记录一下麦克拍摄,加上 lv gl 的固件,刷入到我们的 esp 三十二杠二十三的开发版里面, 这是我之前已经写好的草稿的文章。首先我们要准备两个物品,一个是 eip 三十二杠 s 三,这里我用的是外存十六,内存八兆的,然后这个同时这个 usb 线是淘宝卖家 和这个开发板一起买过来的,保证可以传输数据和刷入构建。如果说你用自己的数据线的话,他有的只有充电的功能,没有传输数据的功能。然后我们打开相机, 这个是我们 e s 三, e s p 杠三三十二杠三的开发板,这个 是我们即将用到的数据线。准备这两个,然后这一个是 usb 的扩展屋,待会要插在这个上面,你也可以直接插到你的电脑上的 usb。 好,我们看一下文章,当我们从淘宝上买到这个开发版之后,我们要看一下我们电脑上有没有专安装我们的驱动。呃,我们先看一下能不能识别我们的开发版, 在这里我们把 esp 三十二的这一个 type c 的 usb 插上,然后我们插上我们的扩展物,可以看到这个灯已经 亮了。当我们执行这两个操作之后,我们再来看一下我们的电脑上有没有检测到这一个设备,我们打开显示设置, 在这里只要进入这个搜索页面,我们搜索设备管理器,然后我们点击 可以看到他弹出一个设备管理器的窗口,然后我们找到这一个端口并展开,可以看到这有两个设备。 之前我说了这一个是我已经运行的这个粉丝计数器的这一个已经有打印外壳,并且用我们的 vip 三十二 加上那个触摸屏,然后我也查到这一个扩展屋,所以他会识别到两个,但是我现在要演示的是这一个亮红灯的开发板, 那么我现在看到这个管理器,说明我已经识别了这个设备,但是我不确定是哪一个设备。这个时候我们把这个红灯的电源给关掉, 可以看到这个设备管理器,它自动刷新了我们刚刚的 com 十三的设备没有了,说明我现在这个开发版对应的就是 com 十三的窗口,然后我们再开启, 可以看到他正在自动刷 新,然后多了一个 com 十三,所以我这个稳定运行的就是 com 十二,待会就不用管。然后我们把这个显示屏给关掉,因为我这里在给你们演示之前, 已经在电脑上安装了 c h c 四零的驱动,然后也安装了 c p 二幺零二的驱动, 有可能是因为我已经安装的缘故,所以说这个设备管理器才会识别到我这个窗口, 那很有可能你插上去,这里是一个黄色的图标,并没有检测出来,那你就得安装这个驱动。对于 esp 三十二杠二十三的驱动的话,我这里有这个下载地址,你可能 需要装 c h 三四三这个驱动,如果说你能够直接识别,那你就不用安装驱动,具体的驱动的话,这里有提示,我就不做安装演示了, 包括我买的这一个开发板,商家好像已经也放了一个驱动的芯片,然后我们插上开发板的电源,并且识别到我们的创口号,这个时候要开始进行刷入固定的操作,注意刷入固定的操作, 演示一下,它是无法用这个编辑器来刷入的,它可以刷入 esp 三十二,但是无法刷入 esp 三十二杠 s 三,因为它的刷入的 方式不一样,那我们需要安装这一个 e s p too 的这一个开源的库,然后我们来演示一下, 首先我会新建一个文件夹, 就叫做 esp to, 然后我们打开我们的编辑器, 这个是 python 的开源的编辑器, 我们给他一个专属的环境, 创建一个新的环境,这里用多少无所谓,我选择三点十点击 ok, 正在下载新环境的依赖, 如果说你电脑上有拍摄,不需要执行我这个新环境一步,你直接安装在全局就可以了,我这里是为了保证环境的隔离, 后续如果有时间的话,我也可以把它打包成一个 ese 文件,然后直接点击可视化界面就可以了。现在先操作使用酷的演示, 点击 ok, 然后我们打开终端, 可以看到这里已经进入到这一个特定的环境,然后我们检查下拍摄的版本, 发现是没错,我们再看一下文档,这里要先执行一个安装命令, 我们先安装这个 esp 套, 可以看到经过这一段时间后,我们安装成功了,然后我们继续看下一步。 注意这里我们在进行插除缓存的时候也要进行物理操作,就是在你的 eip 三十二杠 s 三上面会有一个 bottle 键,然后有一个 reset 键, 执行这两个操作之后,我们再使用这行命令对他进行擦除的操作,然后我们打开我们的相机,这个红灯的前面 有两个,一个是 bot 键,一个是 reset 键,然后我现在长长按 bote 键,按住不动,在这边再按一下 reset, 按一下, 我们再看一下我们当前的设备管理器, 可以看到我按了之后, 他从刚刚的 come 十三变成了 come 十,因为十二是我的那个粉丝计数器,是不用动的,所以他进行插除的时候,你进行重置操作,端口也变了,这个要注意一下,变成了 come 十, 然后我们把这一行代码给复制过来,打开我们的编辑器,这里从 重新清一下屏,然后把我们的端口改成我要插手的是回车, 这里就进行插除成功了。我们继续看一下我们的文章,这里当然有动图演示。然后插除成功之后,我们进行刷入固定的操作,注意看这里的设备管理器,他还是屎没有变, 我们也不需要进行物理的按键,同样的这里也是直接复制我们的命令,但是这个固件我们不用复制,把固把其固件前面的全部复制 放到我们的这一个窗口,同样的一定要修改一下窗口,变成我们自己的 com 十,然后 我们需要找到我们的固件, 注意看这里,我们当前的这一个环境的根目录是这一个文件夹,我把这个支持 r v g l 加上麦克 pison, 然后它是 e i p 三十二, 支持 n 十六 r 八的 n 八的这一个固件,同时他是三十二位射身的,这个很重要, 因为十六位的话他是支持九四三幺的驱动,然后我这个三十二位是九四八八的驱动,驱动不一样,我们刷的固件不一样,总之这里的驱这个固件我们放在这里了,然后在这里我们的固件名称是 是 lv 开头的,这里按下 tab 键,他就能识别到我们跟目录下的这一个固件名称。然后我们回车,可以看到他正在执行刷入过程, 花了大概十五秒到二十秒左右,然后他这里提醒你要重置一下, 我把我的电源关掉,然后再重启一下, 我们再看一下设备管理器中, 他当前正在刷新,又从十变成了十三,注意十二是另外一个变成了十三,那这个时候我们已经刷入成功,之后我们要验证一下,我们打开我们的编辑器, 然后点击这里运行,点击配置解释器,注意我这里有两个码,这里粉丝计时器,你不用用,用我们新的这个 com 十三,我正在演示的这个纯开发版,然后我们点击好的, 可以看到他这个需要的界面,自动刷新显示的麦克拍摄,现在是一点一,九点一的版本,然后构建时间是三月四号,然后他是支持 一三十二杠二十三的。我们这里要现在查询一下当前的内存跟外存,然后我们打开我们的文章,首先我们检测一下内存, 前面都是我们演示过的,我们要找到这里,我们先输入一行代码 port 麦克拍摄, 然后我们再输入 mac python 获取它的 info, 这里可以看到它的获得 g c 是八兆,除以一千,除以一千等于八兆左右也内存八兆是对的,然后我们看一下外存,同样的这里速度 in hot esp, 回车,再继续输入这个 esp flash, 然后除以一零二四,一零二四,我们对它做计算。 回车可以看到这个外存是十六兆,也就是说它支持我们的 e s p 三十二 s 三的 mac 拍摄这个最新版。同时呢,它也支持我们 十六兆外存和八兆内存的这一个 s 三的型号。至于 lvg 的这一个演示,需要到我们下一个视频去接线,并且点亮屏幕 就知道我们的 lv gl 是否支持了。到目前为止,麦克拍摄的部件已经刷入成功。
好,今天这个视频我们来记录一下,把 e s p 三十二杠 s 三点亮我们的屏幕,并设置 l v g 触屏事件。然后我们需要准备以下物品, e s p 三十二的开发板, 这里我把相机开启,然后就这样吧, 我们需要准备一个 e s p 三十二杠 s 三的开发板, 然后需要准备一个三点五寸的屏幕,是四百八乘以三十二的像素,然后 它的驱动是要注意,驱动是九四八八的, 他的触控的话是 f t 六二三六,这个一定要注意,你买的时候这个驱动跟这个触控的驱动是跟这个 显示器绑定在一起的,你买的是什么驱动,他以后就只能用什么驱动,所以如果说你选择九十三幺或者别的驱动的话,那是不支持我现在这个文文件的。 然后我们接着把这个相机给打开,除了这两个以外,我们还需要一个对应的 usb 线,用来做系统的数据的输入,这个是我们的杜邦线。好,这第一个 小节我们看完了,我们再看第二个,这个接线方法很重要,就是这一个文章,我们按照我这个文章接线以及文章的代码是能够正常运行的,等到你以后熟悉了之后,你自己可以把这一个 增长的连线的顺序和数据都可以改变一下,目前按照我的来就好了。然后这个东西是可以放大的,可以看到这边有我显示屏,当前的 标识都是一一对应的,这边有 e s p 三十二杠 s 三的这个针脚也是一一对应的,但是由于放在这个文章上面,他把这个图片给压缩了,这里我单独打开一个我自己的原文件, 我把图片移过来放大,可以看到我这个是很清晰的,可以看到这个数字以及这个标识,然后再放大 可以看到这边的标识也很清晰,这边的十五、十六、十七四十, 到时候我会找个地方把这一个原文件的图给丢上去,免得被压缩。 可以不看这个图,更方便的是看这个表格,这里是开发板,这边是对应的屏幕,把屏幕的线跟开发板的线用杜邦线连在一起就好了, 然后上面这个图片只是为了更形象的生动的参考一下。好,这里我们要给他接上我们的多光线, 这个这个先数据线用不着,现在用这一些,然后我把中间的过程给省略掉。好,我的线已经接完了, 可以看到这是我接到这个 esp 三十二的线,然后这一个显示屏是这样接到这个线,它的这个倒数第五个是空的,最后两个是空的, 也就是这一个破折号,这个斜杠他是不用接的,然后也不用之前什么一分二的线, 大概就是长这个样子。然后我们现在要把这个线接好了,要检测一下 这个屏幕是否会被点亮,看我们的代码是否成功。这个时候我们要插入我们的 usb, 它有两个 type c 的接口,我随便插一个,只要给它供电就行了,然后把它插在我们的 usb 扩展物上面 插上去,这个时候我还没有给他供电,然后把开关开启,可以看到这个红色灯亮了,但是我现在并没有运行这个程序,所以这个屏幕是黑的。 然后我们现在来运行这个程序试一下, 我们来打开我们的 编辑器, 然后我们看一下我们的代码,首先我们引入我们的驱动好了,复制到这个里面来, 然后这里是 lv 机引入九四八八的屏幕驱动,引入 ft 六叉三六的触控驱动,这里是针脚提供我们的电源,然后我们再看一下代码, 这里我们使用十六的针脚来点亮屏幕,再看一下代码, 然后我们需要创建一个显示屏的对象,因为我们的线都是接好了,所以我们直接复制, 再创建一个横屏的触摸到这里,我们来试着点亮一下屏幕,然后我们这里 点击启动,可以看到这个屏幕被刷新了,变成白色的,然后这里提示的是九十八八已经初始化完成,这个 f t 六叉六也已经准备完毕,说明我们的显示驱动和触控都已经准备好了。 接下来我们要添加一个按钮,并使这个按钮可以触控至真仪。 我们看一下这里写的使用触控的按钮,我们画一个图形,然后给大家点增加点击 提示键,这样就意味着我们 l v g l 成功引入,并且可以触控。我们打开这一个官方文档, 这里有个细节要注意,之前说的是 lv gl 九点零的版本,但实际上它里面是八点三的版本,如果说你用最新的话,它可能官方的视力代码跟我们本地的是不一样的,所以这里一定要选八点三的。 然后我们点击视力,这里有一个事件,触控事件, 这里他官网一个按钮,然后我们找到麦克 pass 的这个在线模拟器,等待一段时间, 可以看到这里加载了一个我们即将展示的图片,然后点击它会至真一,当然这是在线模拟的, 然后我们直接复制这下半部分,因为上半部分是他在线模拟器的引入的库跟我们的实际是不一样的,我们已经在这里做了我们自己的处理方案,所以我们不需要,我们只需要 拷贝这个下面的就可以了,然后把它回车复制,然后我们 关掉电源重新启动, 然后我们删掉他的后台进程,然后点击这个,点击启动, 看到这一个页面多出来一个按钮,屏幕刷下去多一个按钮,然后我们近距离看一下这个图片,效果不太好,然后我们点击,点击,点击 我这里可以看到他实际上数字是有在加一的,并且我们的控制台也一直在显示格立格,并说明他接受的这个事件打印并且制真一, 那到这里就说明我们的显示屏的代码和触控的代码已经 ok 了,并且我们也演示了触控和实际点击的效果。到这里 我们的 mac passion 加 lv gl 加上显示屏加触控,整个的初初始的流程就已经 ok 了。 好,今天的视频就记录到这里,后面可能会讲连接 m q t t wifi 以及温湿度器之类的实际的使用功能。
单片机中最常用的通讯协议有 iphone c s p i 和 u a r t。 我们已经学习了 iphone c 和 spi。 这节课我们来学习 u a r t, 也就是串口通讯。 串口基本上是所有单片机中都具备的外设,使用它可以实现程序下载、串口通信等功能。由于这个串口通信他简单方便,现如今越来越多的设备和模块支持串口通信功能,这也让开发工作变得越来越简单而且高效。 这节课我们来学习如何使用 micropicent 控制 e s p 三二的创口实现数据收发。 要了解窗口通信,首先就要了解串形通信和并行通信。并行通信就是说我们的数据字节用多条数据线同时开始发送,这种传输方 是只适合短距离传输,而且呢,这种传输方式使用的比较少,长距离传输成本高,所以我们只需要简单了解即可。 接着是串行通信。串行通信呢,是将数据字节以一位一位的形式在一条数据线上逐个传输,只需要一条数据线就可以了。发送时呢,要把并行数据变成串行数据发送到线路上,接收时呢,再把串行数据变成并行数据。 而关于串行数据传输,他也分为两类,异步串行通信和同步串行通信。同步串行通信使用比较少,一般也不会用,不了解也没关系。 而一定要了解的呢,是翼步串行通信方式。翼步通信是指通信的发送与接收设备使用各自的时钟控制数据的 发送和接收过程。为使双方收发协调,要求发送和接收的设备始终尽可能一致,一不通信是以字符构成的真为单位进行传输的,字符与字符之间的间隙,也就是时间间隔,是任意的 异步通信的一针字符信息呢,由四部分组成,首先就是这个起始位,接着是数据位,即有教验位和停止位。一般啊,我们也不需要使用这个教验位,但是串形通信他偶尔也会使用一下 教验位,由名字我们就可以知道,就是说看你这针数据有没有错误。在我们的串行通信中,一般使用基偶教验,基教验时就是数据中的一的个数,与教验位的和是基数就是基教验,反过来呢,就是偶教验。 接收字符时,我们通过对一的个数的教验,如果发现一的个数不一致,那么就说明数据传输过程中出现了错误。 那所以什么是 uart 呢? uart 的全称是通用一部收发传输器,它的工作原理是约定好通讯的波特率,然后将数据一位一位的进行传输。 e s p 三二呢,它有三个硬件, u r t, 分别是 id 为零一二,而且呢,它们每个都分配有默认的 g p l 口,比如这个 u r t 零对应的就是发送端是 g p l 一,接收端是 g p l 三, u r t 二呢,就是十七十六。 这 u r t 零呢,主要用于下载和交互式解释器调试,也就是 riple。 而 u r t 一呢,用于模块内部连接, flash 工厂 也不使用,而因此可以使用的也就只有 u a r t 二,它可以和外部的串口设备进行通信。 了解完基本原理之后,我们就可以来设计电路了,咱们这个电路呢,设计的比较简单,只需要用到一个串口模块和杜邦线。 我们把这个 esp 三二的 rx 二引脚和创口模块的 tx 引脚相连,把这个 esp 三二的 txr 引脚连接创口模块的 rx。 因为我们单片机发送数据,这个创口模块要接收对不对?而我们这个创口模块发送数据,这个单片机要接收,所以要让 rx 连接 tx。 最后就是让这个创口模块的接音地接上电源地就 ok 了。 这个 u v r t 呢,它也是在某信模块中,我们只需要了解它的构造函数和使用方法即可。 它的构造函数呢,有这么几个参数,第一个是 id, id 呢,咱们刚才说了对不对? esp 三二有三个硬件 ult, 分别是零一二,但是我们也只说了这零和一不能用,我们也只能用二。 接着是波特律,波特律常用的值就是幺幺五二零零和九六零零。关于波特律哈,就单片机或者计算机在串口通讯时的速率,就用波特律来表示, 它定义为每秒传输二进制代码的个数,即一波特等于一位,每秒单位就是 b p s。 关于波特率的计算,在串行通信中,收发双方对发送或接收数据的速率要有约定,我们的电脑可以使用这个串口调试工具来设置我们电脑的参数,而我们的 esp 三二单片机呢,你就 只能通过代码的形式了。接着是 rx 和 tx, 他们分别是这个数据的接收引角和发送引角,我们定义了这个 id 之后,就相当于已经指定了这个收发引角了,所以他们两个不填也可以。 接着是这个 b 词, b 词就是数据位,他的默认值为八,就是在数据包的起始位之后,紧接着的就是要传输的主体数据内容,也称为有效数据,这有效数据的长度呢,通常为八或者是九,这个看你自己设置了 倒数。第二个就是 party, 也就是教验位,默认是耐,最后一个就 stop, 也就是停止位。默认是一,通常呢,我们只需要定一个波特率和 id 就行了,其他的都是默认参数,对不对? 然后是 uvrt 的常用方法,第一个我们就不多说了,就是如何构建 uvrt 的对象。第二个呢,就是我们使用 uvrt 如何发送数据呢?就是用 read 方法,它的参数就是我们要发送的内容。然后 read 方法呢,它是要接收数据参数,填写的是我们要接收的数据的最大长度。最后一个就是 any, 用于判断我们这个串口是否有数据输入,接下来我们就可以敲代码了。 接下来呢,我们让这个单片机末串口来发送数据,那就由 r t 点 ret 发送一个内容,我们比如写个哈喽 运行,我们看一下,咱们看啊,右边是不是就接收到了我们发的哈喽,那我如果想在这里发送信息给我们的 esp 三二开发版,那你想想我是不是得一直在接收他,对不对?所以我们这个获取创口助手发过来的信息的话,就需要写在一个循环里面,就一个 yo 处, 我们需要不断的扫描你有没有发送这个信息,条件是什么呢?条件就是如果有 u r t 点 any, 如果有数据输入,那么我就用 text 这个变量来接收发送过来的数据,我们试这个长度二十。 接着我在笑中打印这个 text, 我们看一下,这里我重新运行了,他重新发了一遍,哈喽,我给他发一个 i 发送,哎,咱们看 high, 我是不是就接收到了? 这样我们就实现了单片机与 pc 端的这个创口助手进行数据收发,是不是很简单?其实有一个问题啊,就是我们需要一直不断的循环去扫描到底有没有数据输入,这样很占用性能对不对?所以呢,单片机中对于这种问题的处理方式呢, 一般是通过中断来处理这样的问题的,减少这个功耗。针对串口就存在一个串口中断,我们的麦克 pase 中呢,他也有串口中断这个方法,但是在这里他收了一个现用只有 wipi 这种型号的 esp 三二单片机才能使用串口中断方法。 所以我们目前如果想对创口这个数据进行检测的话,你就只能使用 yo 处这个循环的方式,不断的便利了。
好,大家好,这节课呢我们来讲一下这个麦克拍摄的开发软件的软装和开发环境的搭建。 我们都知道拍摄人有众多的编辑器,如果你已经找熟悉掌握拍摄或者使用拍摄开关的,那么呢也可以直接使用,就是说之前使用的软件也变成, 如果是初学者的话,我们就推荐这款软件,这个 imu id 的好,这是一款呢开源软件以及简单的方式设计,对 wifi 拍摄时毛孔 来回拍摄的兼容性啊,非常友善,而且呢他还支持 win bos 迈克威拉斯,第六个是苏梅派, 所以因为他是开源的,所以软件的叠到速度呢非常快,功能呢在日趋成熟,这个呢在网上都可以下载。好,我们接下来我们看一下他是怎么安装的啊?好,首先我们先接上这个应用, 开始安装点,同意,好,这个滤镜呢,大家可以根据需要自己来选啊,我这里就安装在地板好,等待安装完成, 走完再睡的也挺快的。 好,这这个时候呢已经安装完成了。好,然后我们打开 这个软件,我们可以看到这个软件的界面呢,是比较简洁的一个软件啊, 然后我们点击这个模式啊,可以判断啊,这样可以支持这么多的一个模式,有这么多 模式可以选择,这个是拍摄三好,这个是 esp 的一个门口拍摄好,我们这里呢是基于 ysp 三二的,所以我们就选这个 esp 门口拍摄,然后点 ok, 这时候这个文件已经这个开拍文件 已经搭配好了。然后呢我们就需要安装一下我们这个板子上的一个驱动,他们就是说他有一个 usb 的一个驱动, 看你是买一个芯片的,然后一般情况下,如果是 wins 的系统呢,他就会自动的进行这个驱动的安装,如果是其他系统的,像 win 七三八的,你可能就需要手动安装。这个驱动呢,是根据你这个 usb 转创口的一个新店的型号啊,我来定的。好在这个在这个软件里呢,我们也可以就是说在我们渠道安装好之后呢,我们也可以与这个创口啊交互调试。 好,在这里呢我们可以直接进行这个窗口的调试,然后呢点击这个 按 ps 按钮,他就会出现这个调试界面,我们可以在这个输出窗口,在这个地方可以看到。 嗯,如果我们不进行这个调试的话呢,我我们呢可以进入这个应用,这个超级中端 ppt 二等都可以用其他的方式来调试这一个软件。嗯,同 时呢我们这个板子里到时候也会给他内置一个文件系统,可以看到我们在这地方有一个文件。好,我们需要先把这个断开, 然后我们打开这个文件系统。好,这个打开失败,因为他是共用一个窗口的,所以说我们需要把这个板子给他呼应一下,再来打 好,可以看到这里面有两个文件,然后这个呢就是在我们板子上烧的之前烧的一个文件,然后呢这个呢就是电脑上的一个文件。 好,这个呢就可以实现这个和电脑文件上的一个后桥。 好,这个容量呢,我们就可以直接把它拖动过来,拖动到这边啊,一拖他就过来了, 好用的呢也比较方便。好,在这个软件里呢,我们可以就是新建一个门板 文档,之后呢点击保存就可以拍摄我们这个拍摄软件的一个编写了, 我们这个编辑好的这个文件,他会在这个地方进行显示,就是说你编辑好的软件呢,你点击这个文件系统,他会在我们电脑上这个地方进行显, 到时候我们就可以直接把这个软件,把这个编辑好的这个操控程序呢直接拖到这个地方,然后就可以运行了,复制成功啊,就这样呢就实现了程序的一个下载啊,就这样呢就比较方便。 好,接下来呢我们来看一下这个椰子皮塞板子上的这个固件怎么烧,怎么烧进去?那个拍摄呢,他对微控制器的支持啊,因为他有不同的一个板子,有不同的一个微控制器, 所以说呢他这个我们在开发来回拍摄的时候,需要就是安装对不同的控制器,需要给他下载一个不同的配件。好,我们这里使用的这个稍微 软件呢,属于乐星官方的一个商业软件。好,就是这个,这个就是乐星官方给我们提供的。好,我们这里呢选择 vip 三这个下载工具, 这个呢我们可以看到,在这里我们这里也有一个柜件,这当然这个柜件啊在网上我们就可以找到了,因为他这个迈腾拍摄这应该是披萨 支持也比较好,直接一搜那个拍摄里面皮上的鼓键,我们就可以找到啊,我们这里呢也从网上下了一个,然后打开,打开了这个选择 原子幺零零零就行了,然后呢我们这个好选 我们这个 spl 当漏的,这个是 pl 当漏的,然后呢选择四十六赫兹第二欧三十二兆。好,然后呢我们下载点击这个 spa 的前提是这个窗口,我们这个是用窗口 写的啊,这个创口呢,要根据你自己板子上的这个创口来连好,我们这里选择三,然后点击时态的,然后程序下去就行了,把这个底下塞入的时候,这个地方会出现一个进度条,当进度条呢 跑完,然后就说明三个成功,我们就可以进行这个椰子披萨的一个开发了。 好,下节课呢,我们将来讲解一下拍摄的这个软件的一个编程,基于要视频三样的。好,这节课的拍摄环境呢,我们就讲到这里,谢谢大家。
我们在使用单片机的时候,电路搭建是必不可少的,而面包板和杜邦线可以让你更轻松的搭建电路。这节课我们就来讲讲面包板与杜邦线的简单使用。 首先就是面包板,面包板是实验室中用于搭建电路的常用工具,它可以大大提升你的实验效率。面包板由两部分组成,上面和下面部分是两行插孔构成的窄条,中间部分是两组上下各五行的插孔构成的宽条。 窄条的上下两行之间呢,电器不联通,同一行中的所有插孔相互联通的每五个插孔为一组。通常的面包版呢,一般有十组,那为了方便展示呢?咱们上一张图片展示的是一个小面包版,所以只有五组,但是呢,他们的原理都是相同的, 标注正极的窄条呢,咱们一般就是与电源相接,标注负极的呢,一般接地 宽条的中间有一个隔离,凹槽和上下两侧各有五行插孔。在同一列中的五个插孔,它是互相联通的,列和列之间以及凹槽上下部分则是不联通的。 所以我们知道了面包板的基本构造之后,如何在面包板上搭建电路呢?这时候我们就需要用到一个东西,叫做杜邦线。 杜邦线可用于面包板上的电子元器件之间的连接,无需焊接,便于快速进行电路实验。杜邦线的线头呢,有公母两种,公头指的是尖头的杜邦线,有针脚,母头是带孔的连接线。根据两端线头的不同,我们 可以把杜邦线分为三类,两侧都为母头的就是母母线,两侧都是公头的呢就是公公线,一公一母的呢就是公母线。 ok, 了解完这些之后,我们就可以正式开始我们的实验了。