KidsBlock (Scratch) 教程#

1. 关于 KidsBlock IDE#

进入下载链接:https://www.keyesrobot.cn/projects/KidsBlock/zh-cn/latest/,下载KidsBlock软件和驱动安装,网站页面如下图所示。

Img

1.1 选择设备#

(提醒:本教程是在 Windows 系统下操作, Mac 系统类似,可以参照。)

特别注意: 该套件中使用的设备是 Beetlebot ESP32,关于导入 Beetlebot ESP32设备 的方法,请参考以下内容.

1. 确保ESP32主控板与计算机连接成功,然后双击 “KidsBlock” 图标image1打开KidsBlock软件。

image2

  1. 单击image3,如下图所示:

image4

3. 由于本教程使用的是 Beetlebot ESP32 设备,所以选择 “Beetlebot ESP32” 设备,如下图所示:

image5

4. 连接串口端口(COMxx)((不同的计算机,串口端口(COMXX)不一样) ),点击 “连接”,如下图所示:

image6

  1. 然后单击 “返回编辑器” 返回代码编辑区,如下图所示:

image7

image8

1.2 界面介绍#

了解KidsBlock软件界面,有利于代码编程的学习,如下图所示:

image9

image10

1.3 编写代码并上传#

方法①: 从直接拖动代码块到代码编辑区进行代码编写,如下图所示:

image11

代码编写完成后保存到电脑,单击 “文件” --> “保存到电脑”,如下图所示:

image12

单击image13将代码上传到ESP32主控板,如下图所示:

image14

方法②: 从电脑打开已经编写好的代码。

我们提供本课程需要用到的所有代码文件,并保存到方便使用的位置。本课程以代码存放于D盘为例,路径为 D:重要资源\程序代码\KidsBlock(Scratch)_代码。(你也可以放入其他磁盘,只要方便代码导入就行

单击 “文件” --> “从电脑中上传”,然后选择保存代码的路径,选中代码文件打开即可,如下图所示:

image15

image16

代码文件打开后,需要手动连接串口端口,如下图所示:

image17

image18

然后单击 “返回编辑器” 返回代码编辑区,如下图所示:

image19

单击image20将代码上传到ESP32主控板,如下图所示:

image21

项目教程#

项目01: SK6812 RGB#

1. 实验简介:

小车扩展板上有4个RGB LED,RGB LED属于简单的发光模块,可以通过调节色彩调出不同颜色的灯效,可广泛应用于建筑物、桥梁、道路、花园、庭院、地板等领域的装饰照明与会场布置、圣诞节、万圣节、情人节、复活节、国庆节等节日期间烘托气氛等场景。在本实验中,使小车扩展板上的4个RGB实现各种灯光效果。

2.元件知识:

SK6812RGB: 小车扩展板上有4个RGB LED,从原理图中可以看出,这4个RGBLED都是串联起来的,在电压电流充足的情况下可以接几百个RGB LED,都可以用一根信号线控制任意一个RGB LED,并且让它显示任意一种颜色。每一颗RGBLED都是一个独立的像素点,每个像素点都是由R、G、B三基色颜色组成,可实现256级亮度显示,完成16777216种颜色的全真色彩显示,同时像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还内置信号整形电路,有效保证了像素点光的颜色高度一致。

image22

3. 实验代码:

小车PCB板上的SK6812RGB是由ESP32主板上的GPIO 14控制。

image23

4. 实验现象:

点击image24将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image25后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image26,如下图所示:),利用USB线上电后,小车PCB板上的4个RGB LED发出各种颜色灯光效果。

image27

image28

项目02: 演奏音乐#

1.实验简介:

小车扩展板上有个喇叭功放元件,它常用来播放音乐,作为一些音乐播放设备的外接扩音设备。

在本实验中,我们利用喇叭功放元件来播放一首音乐。

2.元件知识:

喇叭功放元件:喇叭功放元件(原理相当于无源蜂鸣器),其内部不带震荡电路,控制时需要在元件正极输入不同频率的方波,负极接地,从而控制喇叭功放元件响起不同频率的声音。

3.实验代码:

小车PCB板上的喇叭功放元件是由ESP32主板上的GPIO 2控制。

image29

4. 实验现象:

点击image30将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image31后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image32,如下图所示:),利用USB线上电后,小车PCB板上的喇叭功放元件就开始播放一首音乐。

image33

项目03: 点阵屏#

image34

1.实验简介:

8×8 点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,8×8 点阵显示屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报站器、广告屏、银行窗口屏、叫号屏以及停车系统等等。在本实验中,将使用8×8 点阵屏来显示图案。

2.元件知识:

8×8点阵屏: LED点阵屏按照LED发光颜色可分为单色、双色、三色灯等,可显示红、黄、绿甚至是真彩色。根据LED的数量又分为4×4、8×8、16×16等不同类型。这里我们通过单色8×8点阵屏来了解其原理。

不同点阵屏封装不同,8×8点阵屏由8行8列共64个LED灯组成,其内部结构如下图:

image35

每个LED放置在行线和列线的交叉点上,当对应的某一行电平拉高,某一列电拉低,则对应交叉点的LED就会点亮。8×8点阵屏有16个管脚,将有丝印的一边朝下,逆时针编号为1-8,9-16。

image36

其对应内部管脚定义如下如所示:

image37

比如我们要点亮第一行第一列LED灯,则对应将点阵屏的第9脚拉高,第13脚拉低,其他LED控制以此类推即可。

HT16K33 8X8点阵驱动模块: 上面介绍了88点阵的原理,想控制88点阵需要多达16个单片机的引脚。这样既浪费资源也浪费时间。这里用了一个驱动点阵屏的芯片:HT16K33。HT16K33是一款内存映射和多功能LED控制器驱动芯片。利用HT16K33芯片驱动1个8*8点阵,只需要利用单片机的I2C通信端口控制点阵,大大的节约了单片机资源。下图是HT16K33 芯片工作原理图。

image38

我们基于以上原理设计了一个8X8点阵驱动模块,从上图我们可以看出,我们只要通过I2C 通讯利用单片机的2个引脚就可以很好的控制点阵显示。

8X8点阵模块的参数:

  • 工作电压: 5V

  • 额定输入频率: 400KHZ

  • 输入功率: 2.5W

  • 输入电流: 500mA

取模工具的使用说明:

点阵和驱动的原理都已经介绍完了,那点阵上显示的内容是怎么来的呢,有没有比较简便的方法?这里给大家介绍一款点阵取模工具,这块工具使用的是在线版,链接:http://dotmatrixtool.com/#

现在就一起看看怎么使用吧。

①打开链接如下图:

image39

②我们的点阵是8X8的,所以调整高度为8,宽度为8,如下图:

image40

③在Endian 这里选择Big Endian(MSB)这个模式

image41

④将图案生成16进制的数据

如下图,按鼠标左键选中,右键取消,画好自己想要的图案,点击 Generate,就会生成我们所需要的十六进制的数据了,这里是以下面的图案为例的。

image42

这个生成的十六进制的代码(0x22, 0x14, 0x48, 0x40, 0x40, 0x48, 0x14, 0x22)就是点阵需要显示的内容,如果想要点阵显示这样的图案,则需要将这十六进制的代码编写到对应的指令方块中。

3.实验接线:

8X8点阵

小车PCB板

G

G

5V

5V

SDA

SDA

SCL

SCL

image43

4.实验代码:

8X8点阵是由ESP32主板的GPIO21(SDA),GPIO22(SCL)控制。

image44

4.实验现象:

点击image45将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image46后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image47,如下图所示:),利用USB线上电后,小车前的8*8点阵屏显示会呼吸的“❤”图案。

image48

项目04: 舵机转动#

1.实验简介:

小车上有两个舵机,这里以接在引脚GPIO4的舵机为例,舵机是一种可以非常精确地旋转的电机。目前已广泛应用于玩具车、遥控直升机、飞机、机器人等领域。在这个项目中,我们将使用ESP32主板控制舵机转动。

2.元件知识:

image49

舵机: 舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms 的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。经由电路板上的IC 判断转动方向,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到达定位。适用于那些需要角度不断变化并可以保持的控制系统。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。

舵机有多种规格,但它们都有三根连接线,分别是棕色、红色、橙色(不同品牌可能有不同的颜色)。棕色为GND,红色为电源正极,橙色为信号线

image50

舵机的伺服系统由可变宽度的脉冲来进行控制,橙色的控制线是用来传送脉冲的。一般而言,PWM控制舵机的基准信号周期为20ms(50Hz),理论上脉宽应在1ms到2ms之间,对应控制舵机角度是0°~180°。但是,实际上更多控制舵机的脉宽范围是0.5ms 到2.5ms,具体需要自己实际调试下。

image51

经过实测,舵机的脉冲范围为0.65ms~2.5ms。180度舵机,对应的控制关系是这样的:

高电平时间

舵机角度

基准信号周期时间(20ms)

0.65ms

0度

0.65ms高电平+19.35ms低电平

1.5ms

90度

1.5ms高电平+18.5ms低电平

2.5ms

180度

2.5ms高电平+17.5ms低电平

舵机的规格参数:

工作电压:

DC 4.8V〜6V

可操作角度范围:

可操作角度范围:

脉波宽度范围:

500→2500 μsec

外观尺寸:

22.912.230mm

空载转速:

0.12±0.01 sec/60度(DC 4.8V) 0.1±0.01 sec/60度(DC 6V)

空载电流:

200±20mA(DC 4.8V) 220±20mA(DC 6V)

停止扭力:

1.3±0.01kg·cm(DC 4.8V) 1.5±0.1kg·cm(DC 6V)

停止电流:

≦850mA(DC 4.8V) ≦1000mA(DC 6V)

待机电流:

3±1mA(DC 4.8V) 4±1mA(DC 6V)

重量:

9±1g (不带舵机轴)

使用温度:

-30℃~60℃

3. 实验接线:

舵机

小车PCB板

棕线

G

红线

5V

橙黄线

S1(GPIO4)

image52

4.实验代码:

控制超声波传感器转动的舵机是由ESP32主板的GPIO4控制。

image53

5. 实验现象:

点击image54将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image55后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image56),利用USB线上电后,舵机塑料臂将以0°、45°、90°、135°、180°的角度转动。循环进行!!

项目05: 电机驱动和调速#

1. 实验简介:

驱动电机的方法有很多,我们这个小车用到的是最常用的DRV8833电机驱动芯片,该芯片为玩具、打印机及其它电机一体化应用提供了一款双通道桥式电动驱动器解决方案。

在本实验中,我们使用扩展板上的DRV8833电机驱动芯片驱动小车的两个直流电机,通过编写代码实现小车分别向前,向后,向左,向右行走的效果。

2.元件知识:

DRV8833电机驱动芯片: 具有电流控制功能的双H桥电机驱动器,可以驱动两个直流电机、一个双极步进电机、电磁阀或其他电感负载。每个H桥的输出驱动器块由N沟道功率MOSFET组成,配置为H桥以驱动电机绕组。每个H桥包括调节或限制绕组电流的电路。

带有故障输出引脚的内部停机功能是用于过大电流保护、短路保护、欠压锁定和超温。还提供了低功耗睡眠模式。我们来看一下DRV8833电机驱动芯片驱动两个直流电机的电路图和示意图:

image57

image58

3. 规格参数:

  • 逻辑部分输入电压:DC 5V

  • 驱动部分输入电压:DC 5V

  • 逻辑部分工作电流:<30mA

  • 驱动部分工作电流:<2A

  • 最大耗散功率:10W(T=80℃)

  • 电机转速:5V  200 rpm / min

  • 电机驱动形式:DRV8833双路H桥驱动

  • 控制信号输入电平:高电平2.3V<Vin<5V  ,低电平-0.3V<Vin<1.5V

  • 工作温度:-25~130℃

4.驱动小车运行原理:

根据上面电机驱动板的电路图和示意图,我们知道左电机的方向引脚在GPIO33,调速引脚在GPIO26;右电机的方向引脚在GPIO32,调速引脚在GPIO25,按照以下表格的运动逻辑,就可以知道如何通过控制数字口,PWM口控制2个电机转动,从而实现智能小车的行走。其中PWM值范围为0-255,设置数字越大,电机转动越快。

功能

GPIO33

GPIO26(PWM)

左电机

GPIO32

GPIO25(PWM)

右电机

前进

LOW

200

正转

LOW

200

正转

后退

HIGH

50

反转

HIGH

50

反转

左转

HIGH

200

反转

LOW

200

正转

右转

LOW

200

正转

HIGH

200

反转

停止

LOW

0

停止

LOW

0

停止

5.实验代码:

image59

6. 实验现象:

点击image60将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image61后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image62),小车安上电池,并且将电源开关拨到ON端,上电后,小车前进2秒,后退2秒,左转2秒,右转2秒,停止2秒,循环。

项目06: 超声波传感器#

1. 实验简介:

小车上有个超声波传感器,超声波传感器是一种非常实惠的距离传感器,它可以检测前方是否存在障碍物,并且检测出传感器与障碍物的详细距离。它的原理和蝙蝠飞行的原理一样,就是超声波传感器发送出一种频率很高的超声波信号,通常正常人耳朵的听力的声波范围是20Hz~20kHz,人类无法听到。这些超声波的信号若是碰到障碍物,就会立刻反射回来,在接收到返回的信息之后,通过判断发射信号和接收信号的时间差,计算出传感器和障碍物的距离。超声波传感器主要用于各种机器人项目中的物体躲避和测距,也常被用于水位传感,甚至作为一个停车传感器。 在本实验中,我们使用超声波传感器来测量距离,并将数据打印在串口监视器上。

2. 元件知识:

HC-SR04超声波传感器: 像蝙蝠一样使用声纳来确定与物体的距离,它提供了精准的非接触范围检测,高精度和稳定的读数。它的操作不受阳光或黑色材料的影响,就像精密的照相机(在声学上像布料这样比较软的材料很难被探测到)。它带有超声波发射器和接收器。

参数:

  • 工作电压:+5V DC

  • 静态电流: <2mA

  • 工作电流: 15mA

  • 有效角度: <15°

  • 距离范围: 2cm – 400 cm

  • 精度: 0.3 cm

  • 测量角度: 30 degree

  • 触发输入脉宽: 10us

原理:

最常用的超声测距的方法是回声探测法,如图:

image63

超声波发射器向某一方向发射超声波,在发射时刻的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物面阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。超声波也是一种声波,其声速V与温度有关。一般情况下超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物面的距离s,即:s=340t/2:

(1)采用IO口TRIG触发测距,给至少10us的高电平信号;

(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;

(3)有信号返回,通过ECHO输出一个高电平,单片机读取到高电平持续的时间就是超声波从发射到返回的时间。

image64

超声波模块的电路图:

image65

3. 实验接线:

超声波传感器

小车PCB板

Vcc

5V

Trig

S2(GPIO5)

Echo

S1(GPIO18)

Gnd

G

image66

4. 实验代码:

超声波传感器的Trig引脚是由ESP32主板的GPIO5控制,Echo引脚是由ESP32主板的GPIO18控制。

image67

5. 实验现象:

点击image68将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image69后用手按住ESP32主板上的Boot按钮,出现上传进度百分比再松开Boot键,出现上传进度百分比再松开Boot键image70),利用USB线上电后,在串口监视器窗口中点击image71,设置波特率为115200,当把一个物体放在超声波传感器前面移动时(远近),它会检测到物体的距离,该值将显示在串口监视器上。

image72

项目07: 跟随我#

image73

1. 实验简介:

在上面实验中,我们已经了解了8*8点阵、电机驱动和调速、超声波传感器、舵机等硬件知识,那么在本实验中,我们将结合它们打造一款跟随小车! 在电路设计过程中,我们可以利用超声波传感器来检测小车与前方物体的距离。通过测量距离控制电机的旋转,从而控制小车的运动状态,使小车跟随物体运动。

2. 工作原理:

检测

检测前方物体的距离(单位:cm)

条件1

距离<8

状态

小车后退

条件2

8≤距离<13

状态

小车停止

条件3

13≤距离<35

状态

小车前进

条件3

距离≥35

状态

小车停止

3. 流程图: image74

4. 实验代码:

image75

5. 实验现象:

点击image76将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image77后用手按住ESP32主板上的Boot按钮,出现上传进度百分比再松开Boot键,出现上传进度百分比再松开Boot键image78),小车安上电池,并且将电源开关拨到ON端,上电后,小车可以随着前方障碍物的移动而移动(只能在一条线直上,不能转弯)。

项目08: 躲避障碍物#

image79

1. 实验简介:

在上一实验中,我们制作了一个超声波跟随小车。实际上,利用同样硬件,我只需要更改一个测试代码就可以将跟随小车变为避障小车。那超声波避障小车,是怎么实现的呢?当然也是通过超声波传感器的测距来实现的。通过超声波传感器检测机器人前方障碍物,然后根据这一个数据获得机器人运动方向。

2. 工作原理:

image80

3. 流程图:

image81

4. 实验代码:

image82

5.实验现象:

点击image83将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image84后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image85),小车安上电池,并且将电源开关拨到ON端,上电后,小车可以自动避障。

项目09: 红外循迹读值#

1. 实验简介:

小车上有2个红外循迹,实际上就是2对ST188L3红外对管,常应用于循迹小车循线。红外循迹可以用来检测黑白线,在本实验中,我们使用ST188L3红外对管来检测黑白线,并将数据打印在串口监视器上。

2. 元件知识:

红外循迹传感器: 红外循迹传感器的红外对管分为两部分,一部分是红外发射端,另一部分是红外接收端。

image86

黑线或黑色物体对红外线有很好的吸收效果。当红外循迹发射端向黑线发射时,发射的红外线被吸收而未形成反射信号,红外循迹接收端未接收到信号,这样红外循迹输出高电平(1);白线或白色物体对红外线没有吸收作用,红外循迹发射端的红外信号会反射回接收端,这样红外循迹输出低电平(0)。

下表给出了小车底板上的红外循迹传感器检测不同颜色物体的所有情况下的数值。其中检测到黑线、黑色物体或无物体代表1,检测到白线或白色物体代表0。

image87

左边红外循迹传感器

右边红外循迹传感器

值(二进制)

0

0

00

0

1

01

1

0

10

1

1

11

警告:反射式光学传感器(包括红外循迹)应避免在阳光等有红外干扰的环境中使用。阳光中含有许多不可见光,如红外线和紫外线。在强光环境下,反射式光学传感器不能正常工作。

3. 实验代码:

小车PCB板上的左边红外循迹是由ESP32主板的GPIO17控制,右边红外循迹是由ESP32主板的GPIO16控制。

image88

4. 实验现象:

点击image89将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image90后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image91),利用USB线上电后,在串口监视器窗口点击image92,设置波特率为115200,在小车的红外循迹下面放个黑色的东西,移动它,你会看到不同的指示灯亮起来,同时在串口监视器上看到红外循迹读取的值。

image93

旋转电位器可调节灵敏度,将指示灯调节至亮与不亮的临界点时,灵敏度最高。

项目10: 循线行走#

image94

1.实验简介:

在前面的项目中,我们详细的介绍了在上面实验中,我们已经了解了电机驱动和调速、红外循迹等硬件知识。在本实验中,小车会根据红外循迹传送的数值做出不同的动作。

2. 工作原理:

左边红外循迹传感器

右边红外循迹传感器

值(二进制)

动作

0

0

00

停止

0

1

01

向右转

1

0

10

向左转

1

1

11

向前走

image95

3. 流程图:

image96

4. 实验代码:

image97

5. 实验现象:

点击image98将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image99后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image100),小车安上电池,并且将电源开关拨到ON端,上电后,然后把小车放在循迹轨道(我们提供有)上,小车就开始根据红外循迹传送的数值做出不同的动作。

项目11: 读取光敏传感器的值#

1. 实验简介:

我们都知道人类可以通过自己的眼睛在黑暗中寻找光源,那么机器人是怎样完成这项任务呢?让机器人完成这项任务首先需要给机器人安装上能看见光亮的眼睛,即光敏传感器,这样就能让机器人通过光源的强弱来寻找光源。我们的小车上左右各装有1个光敏传感器,当外界环境光线的强、弱发生变化的时候,光敏传感器的电阻也跟随发生相应的改变,并把这种变化传输给小车上的ESP32主板,ESP32主板就像人的大脑一样可以判断和思考,指挥着小车寻找光线。两个光敏传感器不停的检测是否有光线,检测到光线后就判断左、右两边哪个方向的光线较强,最后就指挥小车向着光线强的方向前进。

在本实验中,我们将了解光敏传感器的工作原理。

2. 元件知识:

光敏传感器: 它主要采用光敏电阻元件,该电阻元件电阻大小随着光照强度的变化而变化。传感器信号端连接单片机模拟口,当光线越强时,模拟口电压越大,即单片机的模拟值也大;反之,光照强度越弱时,模拟口电压越小,即单片机的模拟值也小。这样,就可以利用光敏传感器读取对应的模拟值来反映环境光线强度。

3.实验接线:

通过前面的安装接线知道,两个光敏传感器的信号脚位已经接到了ESP32主板的GPIO34和GPIO35,下面我们就利用接到GPIO34的光敏传感器来完成下面的实验,首先我们来读取模拟值。

左边光敏传感器

小车PCB板

G

G

V

V

S

S(GPIO34)

image101

4.实验代码:

左边光敏传感器是由ESP32主板的GPIO34控制。

image102

5.实验现象:

点击image103将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image104后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image105),利用USB线上电后,在串口监视器窗口中点击image106,设置波特率为115200,当光线增强时,串口监视器显示的模拟值增大;反之,串口监视器显示的模拟值减小。 image107

项目12: 寻光车#

image108

1. 实验简介:

前面实验已经了解过光敏传感器的工作原理、电机驱动与调速,在本实验中,我们利用光敏传感器检测光线强弱来实现小车寻光效果,哪边光敏传感器接收到的光线较强,小车就往那边走。

2. 工作原理:

左光敏传感器的模拟值

右光敏传感器的模拟值

功能

大于3000

大于3000

向前移动

大于3000

小于等于3000

向左移动

小于等于3000

大于3000

向右移动

小于3000

小于3000

停止

3.实验接线:

左边光敏传感器

小车PCB板

右边光敏传感器

小车PCB板

G

G

G

G

V

V

V

V

S

S(GPIO34)

S

S(GPIO35)

image109

image110

4. 流程图:

image111

5. 实验代码:

左边光敏传感器是由ESP32主板的GPIO34控制,右边光敏传感器是由ESP32主板的GPIO35控制。

image112

6.实验现象:

点击image113将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image114后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image115),小车安上电池,并且将电源开关拨到ON端,上电后,用手电筒光对着小车上光敏传感器,寻光车能够跟随着光移动。

项目13: 红外遥控和接收#

1.实验简介:

红外遥控在日常生活中随处可见,它被用来控制各种家电,如电视、音响、录影机和卫星信号接收器。红外遥控是由红外发射和红外接收系统组成的,也就是一个红外遥控器、红外接收器和一个能解码的单片机组成的,小车上有个红外接收器。

在本实验中,使用红外接收器和红外遥控器相结合,读取红外遥控器上的按键值并将按键值打印在串口监视器上。

2.元件知识:

红外(IR)遥控器: 是一种具有一定数量按钮的设备。按下不同的按钮会使位于遥控器前端的红外发射管以不同的编码发送红外信号。红外遥控技术应用广泛,如电视、空调等。因此,在当今科技发达社会,红外遥控技术使你切换电视节目和调节空调温度都很方便。 我们使用的遥控器如下所示:

该红外遥控器采用NEC编码,信号周期为110ms。

image116

红外(IR)接收器: 它是一种元件,可以接收红外光,所以可以用它来检测红外遥控器发出的红外光信号。红外接收器解调接收到的红外光信号,并将其转换回二进制,然后将信息传递给微控制器。

红外信号调制过程图:

image117

3. 实验代码:

小车PCB板上的红外接收器是由ESP32主板的GPIO19控制。

image118

5. 实验现象:

点击image119将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image120后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image121),利用USB线上电后,在串口监视器窗口中点击image122,设置波特率为115200.

按下红外遥控器上的一个按钮,你会在串口显示器上看到一个代码。多次按下相同的按钮以确保你拥有该按钮的正确代码。如果看到FFFFFFFF,请忽略它。

image123

写下红外遥控器与每个按钮相关联的代码,因为你稍后将需要这些信息。

image124

项目14: 红外遥控车#

image125

1. 实验简介:

在上面实验中,我们已经了解了8*8点阵、电机驱动和调速、红外接收器和红外遥控器等硬件知识,在本实验中,我们将使用红外遥控器和红外接收器来控制小车做一些动作。

2. 工作原理:

按键

按键代码

功能

image126

FF629D

前进,点阵屏显示“前进”图案

image127

FFA857

后退,点阵屏显示“后退”图案

image128

FF22DD

向左转,点阵屏显示“左转”图案

image129

FFC23D

向右转,点阵屏显示“右转”图案

image130

FF02FD

停止,点阵屏显示“停止”图案

3. 流程图:

image131

4. 实验代码:

image132

5. 实验现象:

点击image133将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image134后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image135),小车安上电池,并且将电源开关拨到ON端,上电后,按下红外遥控器对应按键,小车跟着遥控器按下的按键做出相应的动作。

项目15 读取APP按钮字符串#

1. 实验简介:

在如今科技高速发展的时代,人们的生活质量越来越好,生活节奏越来越快,开始有人觉得复杂多样的智能化设备控制起来十分麻烦,通过手机统一控制智能化设备这种方法逐渐得到了人们的青睐。这种方法是利用单片机通过wifi模块和Internet网络建立手机和智能化设备之间的连接以此来实现对智能化设备的远程控制。在本章中,我们将重点关注ESP32的WiFi基础设施,通过Beetlebot APP向ESP32的WiFi发送指令,ESP32的WiFi接到指令后再将其发送给单片机,单片机再控制小车进行动作调整。

在本实验中,我们通过APP连接WIFI来读取APP上各功能按钮发送的字符。

2. 安装APP

安卓系统设备(手机/平板)APP:

  1. 下载Beetlebot.apk文件

  1. 我们提供了Android APP 的安装包:

image136

现将文件夹中的Beetlebot.apk文件转移到安卓系统手机或平板上。

  1. 或者使用手机浏览器中的扫描功能去扫二维码下载APP。

image137

2. 点击Beetlebot.apk文件进入安装页面,点击“允许”按钮,然后再点击“继续安装”按钮,安装完成后点击“打开”按钮就可以进入APP界面。

image138

image139

image140

image141

IOS系统设备(手机/iPad)APP

a.打开App Store。

image142

b.在搜索框输入“Beetlebot”,点击搜索,出现下载界面,点击“image143”,就可以下载安装Beetlebot的APP。接下来的操作和安卓系统类似的,可以参考上面安卓系统的步骤进行操作。

3. 实验代码:

特别注意: 需要先将实验代码 image144 中的用户Wifi名称和用户Wifi密码改成你们自己的Wifi名称和Wifi密码。

注意:手机或平板一定要与ESP32开发板连接的是同一个wifi,否则将无法进入控制页面,还有就是ESP32开发板在使用WiFi功能时功耗很大需要外接DC电源才能满足他的工作电力需求,如果达不到他的工作电力需求ESP32板将会一直复位导致代码无法正常运行。

image145

4. 实验现象:

点击image146将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image147后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image148),利用USB线上电后,在串口监视器窗口单击image149,设置波特率为115200,这样,串口监视器打印检测到的WiFi IP地址,然后打开WiFi APP。在WIFI按钮前面的文本框中输入检测到的WIFI IP地址(例如,下面串口监视器检测到的IP地址:192.168.1.137),再切换WiFi按钮来连接WiFi(白色WIFI按钮变成绿色WIFI按钮),同时WiFi IP地址前的文本框中会显示对应的WiFi IP地址“192.168.1.137”。这样,就说明APP已经连接上了WiFi。

image150

用手分别点击APP上的各个功能按钮,然后串口监视器会打印接收到的对应字符。(如果打开串口监视器且设置波特率为115200之后,串口监视器窗口没有显示如下信息,可以按下ESP32主板上的复位键image151

image152

项目16 WIFI控制点阵屏#

1. 实验简介

在前面的实验中,我们已经读取了APP按钮字符串。那么在本实验中,我们将使用ESP32的WIFI Station模式通过APP连接WIFI来控制小车上8×8点阵屏。

2. 实验代码:

WiFi控制点阵屏显示图案

特别注意: 需要先将实验代码 image153 中的用户Wifi名称和用户Wifi密码改成你们自己的Wifi名称和Wifi密码。

注意:手机或平板一定要与ESP32开发板连接的是同一个wifi,否则将无法进入控制页面,还有就是ESP32开发板在使用WiFi功能时功耗很大需要外接DC电源才能满足他的工作电力需求,如果达不到他的工作电力需求ESP32板将会一直复位导致代码无法正常运行。

image154

3. 实验APP操作及现象:

点击image155将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image156后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image157),小车安上电池,并且将电源开关拨到ON端,上电后,并且还需要利用USB线上电后,在串口监视器窗口单击image158,设置波特率为115200,这样,串口监视器打印检测到的WiFi IP地址,然后打开WiFi APP。在WIFI按钮前面的文本框中输入检测到的WIFI IP地址,再切换WiFi按钮来连接WiFi(白色WIFI按钮变成绿色WIFI按钮),连接上WiFi之后,点击image159按钮,小车前面的8×8点阵显示“向前”图案;点击image160按钮,小车前面的8×8点阵显示“停止”图案;点击image161按钮,小车前面的8×8点阵显示“向后”图案。

项目17 WiFi控制多功能小车#

image162

1.实验简介:

在项目15和项目16中,我们学会了通过WiFi使小车与APP通讯,能打印出APP发送的信号并且控制了点阵显示不同图案。同样的方法,我们在本项目中将学习APP控制小车运动,点阵表情切换和RGB灯颜色切换等。

2. 实验代码:

注意:手机或平板一定要与ESP32开发板连接的是同一个wifi,否则将无法进入控制页面,还有就是ESP32开发板在使用WiFi功能时功耗很大需要外接DC电源才能满足他的工作电力需求,如果达不到他的工作电力需求ESP32板将会一直复位导致代码无法正常运行。

注意: 代码中的WiFi名称和密码要填上你自己的WiFi名称和密码。

image163

由于代码比较长,请打开我们提供的示例代码“Project_17_WIFI_Control_Car”查看,如下图位置:

image164

3. 实验APP操作及现象:

点击image165将代码上传到ESP32主板上(如果上传代码不成功,可以再次点击image166后用手按住ESP32主板上的Boot键,出现上传进度百分比再松开Boot键image167),小车安上电池,并且将电源开关拨到ON端,上电后,并且还需要利用USB线上电后,在串口监视器窗口单击image168,设置波特率为115200,这样,串口监视器打印检测到的WiFi IP地址,然后打开WiFi APP。在WIFI按钮前面的文本框中输入检测到的WIFI IP地址,再切换WiFi按钮来连接WiFi(白色WIFI按钮变成绿色WIFI按钮),连接上WiFi之后,点击APP上的按钮来控制小车。

APP操作,如下图:

image169