自动化专业计算机网络课程实验的教学研究

2023-11-13 05:57丁芝侠
实验科学与技术 2023年4期
关键词:树莓笔记本电脑小车

杨 乐,丁芝侠,李 赛

(武汉工程大学 电气信息学院,武汉 430205)

信息化高速发展的今天,计算机网络在人们的生活中扮演了非常重要的角色。作为本科生的专业必修课程,计算机网络课程旨在培养学生对计算机网络的体系结构、数据交换、通信协议等内容的认知与领悟能力。自动化专业分配到计算机网络课程的学时有限,高效、合理地将实验学时应用起来,能够让学生系统地理解、掌握知识。设置一个综合的实际操作实验,能够让学生将理论知识与实际生活中的应用技术相结合,激发学生持续学习、不断探索的兴趣。

以文献[1]为例,书中包含9 章内容,课堂教学在删减与侧重的情况下,才能勉强完成前五章教学。与文献[1]配套的课程实验教材—《计算机网络实验指导书》,主要集中于网络配置,互联网中设备运行的模拟[2],不适合自动化专业这种学时少,内容受限的教学。通过单一的课程实验,只能对单个知识点进行强化,无法形成整体性的认识,也无法与生活中的应用产生联系[3]。

本文使用一个综合的课程实验,将计算机网络中的相关知识融合到一起。本实验对自动化专业培养目标和毕业要求中的相应指标点,以及计算机网络的课程目标具有一定的支撑与促进作用。此实验的创新点如下。

1)设计了一个综合课程实验,将计算机网络课堂已学习的相关知识融合到一起,使学生通过实验过程形成对这些知识的整体认知,强化对课堂讲授理论知识的掌握程度。让学生自学未讲解的相应知识,通过实验强化自学效果。

2)采用具有趣味性,学生乐于参与的树莓派智能小车作为实验载体,激发学生的学习兴趣。同时,树莓派小车的运行过程,融合了模拟电子技术、微机原理等课程的内容,使学生理解自动化专业课程的结合及应用。

3)树莓派智能小车可以使用Python 语言编程控制,相关的技术知识拓宽了学生的知识领域,启发学生进一步学习新知识,形成持续学习的能力。此实验由学生分小组协作完成,可以培养学生的沟通、合作能力。

1 实验目的与实验功能

1.1 实验目的和实验准备

通过本实验将计算机网络课堂教学中已经学习的物理层、数据链路层、网络层、运输层中相应的内容综合起来,使学生立体化地理解计算机网络的数据收发过程。其次,借助本实验,让学生自学未讲解的教材第六章应用层中的文本传送协议FTP、超文本传输协议HTTP、远程控制教材,教材第九章无线局域网络中的CSMA/CA 协议等内容,培养学生的自学能力。通过实验的操作过程和结果展示,将理论与实际结合起来,增强学生自学知识的掌握度。通过实验中使用的树莓派小车硬件、Python 编程语言等内容,拓展学生的知识领域,激发学生学习新知识的兴趣,形成持续学习的能力。

在实验开始之前,学生需要重点回顾物理层中导引型传输媒体与非导引型传输媒体、数据链路层中CSMA/CD 协议,网络层中IP 地址与ARP协议、传输层中端口复用的相关内容。自学应用层FTP、HTTP、远程控制、无线局域网络及CSMA/CA 协议的相关内容。

1.2 实验功能

本实验使用三个笔记本电脑和一个树莓派小车组成Wi-Fi 无线局域网,经过对应的实验步骤设置之后,每个笔记本电脑都可以单独控制树莓派小车的运动与停止,并且每个笔记本电脑都可以显示树莓派小车摄像头实时采集的视频信息,本实验的架构图如图1 所示。在无线局域网中,3 个笔记本电脑作为3 个站点,树莓派小车作为接入点。树莓派小车没有实体下载线。笔记本电脑中编写好的程序,无线传输到小车中,进行编译后,才能执行对应的功能。在实验中将笔记本电脑1 用于小车的程序传输与编译控制,笔记本电脑2、3 不用执行这些操作。因此,在图1 中将笔记本电脑1 标记为圆角矩形,笔记本电脑2、3 标记为正方形。笔记本电脑1、2、3 使用Windows操作系统,树莓派小车中运行的是Linux 操作系统。笔记本电脑1、2、3 与树莓派小车之间通过无线信号传输数据实现通信,它们以全双工的方式通信,每个设备既可以发送数据同时也可以接收数据,因此图1 将它们之间的通信表示成虚线双箭头。

1.3 实验使用的硬件平台

树莓派可以看作一款微缩版的电脑,具有体积小、资源丰富等优点,拥有强大的控制功能[4]。树莓派智能小车使用TB6612FNG 芯片作为驱动芯片,使用脉冲宽度调制-PWM 技术控制电机运转[5]。树莓派作为主控单元,通过对应的时序,控制摄像头模组实时采集视频数据。同时,经过TB6612FNG 芯片驱动电动机运转,实现小车的运动控制。这些内容与模拟电子技术、微机原理等课程相关。实验使用的树莓派智能小车如图2所示。

图2 实验使用的树莓派智能小车

2 实验原理

笔记本电脑、树莓派智能小车组成的无线局域网,借助计算机网络的体系结构进行通信,它们遵守同样的网络协议。这里以笔记本电脑端的计算机网络体系结构为例,说明数据在各层间的传递方式。由于笔记本电脑1 用于树莓派小车的程序传输与编译控制,同时还要实现小车的运动控制与视频查看,而笔记本电脑2 和3 只用实现小车的运动控制与视频查看,所以笔记本电脑1使用的应用软件更多。笔记本电脑1 中计算机网络的体系结构图如图3 所示。

图3 笔记本电脑1 中计算机网络的体系结构

根据图3 可知,计算机网络的五层体系结构分别是应用层、运输层、网络层、数据链路层、物理层。应用层包含智能小车操作平台软件、FileZilla 软件、VNC Viewer 软件。智能小车操作平台软件使用超文本传输协议-HTTP,通过8080 端口访问树莓派小车采集到的视频信息。HTTP 是一种用于分布式、协作式和超媒体信息系统的应用层协议,它是目前互联网上应用最广泛的网络协议之一,是实现万维网数据通信的基础。另外,智能小车操作平台软件,通过2001 端口将前进、后退、左转、右转、停止的指令传送给树莓派小车。

要实现树莓派小车的运动控制及视频采集,小车中必须有对应的程序。借助FileZilla 软件可以将笔记本电脑1 中编写好的程序,无线传输到树莓派小车中。FileZilla 软件使用文件传送协议-FTP 实现文件传输,FileZilla 软件是一款免费开源的FTP 软件,具有方便、高效、可靠的优点。FTP 是应用最广泛的传输协议之一,用于传输文件信息。

传输到树莓派小车中的相应程序,必须经过编译,才能完成设定的功能。笔记本电脑1 使用VNC Viewer 软件远程控制小车,调用小车中的资源,完成相应程序的编译及摄像头开启等操作。

笔记本电脑2 和3 中只安装了智能小车操作平台软件,用于小车的运动控制和视频查看。如图3 所示,一款应用软件可以有多个端口,实现不同的功能。不同的应用层软件借助端口,将产生的报文都向下传送给运输层,这就是运输层的复用。相应地,运输层收到发给某一应用软件的数据,借助对应的端口向上传输给此软件,这是运输层的分用。

如图3 所示,运输层使用传输控制协议-TCP 实现可靠传输。面向连接是TCP 的基本特性,是实现可靠传输的基础。TCP 通过三报文握手建立连接,四报文握手释放连接。TCP 依靠滑动窗口机制,完成可靠传输与流量控制。TCP 将应用层软件传送到运输层的报文作为TCP 的数据部分,并添加上TCP 的首部,共同组成TCP 报文段。TCP 报文段向下传送给网络层。

网络层将TCP 报文段作为网络层的数据部分,根据网际协议-IP,添加IP 首部,组成IP 数据报。IP 数据报向下传送给数据链路层。在互联网中,每个主机以及路由器的每个接口,都具有唯一的IP 地址。实验中树莓派小车的IP 地址为192.168.1.1。网络层使用ARP 协议将IP 地址解析为MAC 地址。无线局域网内的设备,使用MAC 地址发送分组。

数据链路层的3 个基本问题是封装成帧、透明传输、差错检测。数据链路层把IP 数据报作为数据部分,然后根据数据链路层的协议添加帧首部,帧尾部组成帧。帧向下传输到物理层。数据链路层使用循环冗余校验-CRC 进行差错检测。

本实验使用3 台笔记本电脑和树莓派小车组成Wi-Fi 无线局域网,在无线局域网络的数据链路层,使用载波监听多点接入/碰撞避免协议-CSMA/CA 协议实现通信。在课堂教学过程中,第三章讲解了有线局域网,它的数据链路层使用载波监听多点接入/碰撞检测协议-CSMA/CD 协议通信。CSMA/CD 协议与CSMA/CA 协议的工作过程与协议要点总结如图4 所示。

图4 CSMA/CD 协议与CSMA/CA 协议的工作过程与协议要点

由图4 可知,CSMA/CD 协议根据有线信道上的电压变化,检测信道的空闲、占用。如果有线信道上的电压超过一定阈值,则表示数据发生了碰撞。在无线局域网中,无线信号传输的动态变化范围非常大,发送端的信号强度可能比接收端高出百万倍。因此,无法完成碰撞检测。从而无线局域网使用载波监听多点接入/碰撞避免协议-CSMA/CA 协议。

在无线局域网中,多个位置可以变动的站点与中心接入点通信。CSMA/CA 协议使用软件和硬件两种方式共同检测信道的空闲、占用。由于无法进行碰撞检测,所以一个站点发送完数据之后,必须得到接收站的确认,才表示数据发送成功。为了避免无线信道被一个站点长期占用,CSMA/CA 协议在相应的情况下,站点之间需要执行统一的退避算法公平地争用信道。另外,CSMA/CA 协议能够让相应的站点使用信道预约机制减少隐蔽站造成的碰撞。可以看到,CSMA/CA 协议比CSMA/CD 协议复杂得多。学生可以根据图4,对两种协议工作过程中的要点建立整体的概念,加深对课本知识的理解。同时,学生可以结合图4,使用对比的学习方法,抓住两种协议间的异同点,增强两种协议的掌握程度。

如图3 所示,物理层解决如何在传输媒体上传输比特流。Wi-Fi 使用的频段为2.4 GHz 或5 GHz。无线局域网物理层的相关知识,计算机网络教材没有具体的介绍。可以指导学生通过搜索引擎、图书馆文献数据库、视频课程等自学对应的知识。

3 实验内容

3.1 实验步骤

实验开始之前,需要准备3 台笔记本电脑,将对应的系统软件镜像及对应的软件程序,烧写到树莓派智能小车的存储卡中[6-7]。

实验操作流程如下,首先树莓派小车与3 台笔记本电脑建立Wi-Fi 无线局域网。然后将笔记本电脑1 中编写好的程序传输到小车中,接着远程控制小车对程序进行编译。最后使用智能小车操作平台软件控制小车的运动,并显示小车摄像头实时采集的视频信息。具体的实验操作步骤如下。

1)打开树莓派智能小车的电源,等待小车的电压检测模块显示稳定。在笔记本电脑中搜索树莓派智能小车的 Wi-Fi 热点,并进行无线连接。

2)打开笔记本电脑1 中的 FileZilla 软件,输入小车的IP 地址:192.168.1.1,以及对应的用户名、密码,FileZilla 软件与运输层连接的端口号为22。然后,点击快速连接,在笔记本电脑1 和小车之间建立连接,操作界面如图5 所示。借助FileZilla 软件,将笔记本电脑1 中编写好的程序,传输到树莓派小车中。

图5 FileZilla 软件的操作界面

3)在笔记本电脑1 上,打开虚拟控制台应用程序VNC Viewer,进入主界面对VNC Viewer 进行配置。搜索树莓派智能小车的IP 地址:192.168.1.1,进行连接。连接完成之后,根据设定的账号、密码,登录到树莓派智能小车的 VNC Server 端,进入小车的VNC 主页[8],登录后的小车的VNC 主页如图6 所示。

图6 小车的VNC 主页

4)首先,通过树莓派智能小车的VNC 主页,打开一个LX 终端,在此终端中输入对应的操作命令,打开小车的摄像头模组。小车打开摄像头模组的操作界面如图7 所示,小车内运行的是Linux操作系统,LX 终端可以实现Linux 操作系统的所有操作。mjpg-streamer 是Linux 操作系统下的开源软件,它可以通过HTTP 协议访问与Linux 系统兼容的摄像头[9]。使用cd mjpg-streamer/mjpgstreamer-experimental/命令进入对应的目录,使用mjpg-streamer/mjpg-streamer-experimental/ $ sudo ./start.sh 命令打开摄像头。Linux 操作系统是一款开源免费的操作系统,具有高度的稳定性、安全性、可靠性,在许多领域得到了应用[10]。

图7 打开小车摄像头模组

接着,打开另一个LX 终端,输入对应的操作命令,编译传输到树莓派智能小车中的相应程序,完成摄像头视频采集、小车运动控制等功能。

5)在3 台笔记本电脑上分别打开智能小车操作平台软件,单击视频连接,3 台笔记本电脑可以同时显示树莓派智能小车摄像头实时采集到的视频画面。在设置中可以查看视频采集地址,树莓派小车的IP 地址,以及对应的控制端口号。此实验通过HTTP 访问小车采集到的视频信息,HTTP使用8080 端口与运输层交互。借助笔记本电脑中的智能小车操作平台软件,每一台笔记本电脑都可以单独发送控制指令,控制树莓派小车前进、后退、左转、右转与停止。智能小车操作平台软件,使用端口2001 传送控制指令,与运输层交互。树莓派智能小车的视频查看地址与控制端口设置如图8 所示。完成以上实验步骤后,实验结果如图9 所示。

图8 树莓派智能小车的视频查看地址与控制端口设置

图9 实验结果展示

对于本实验,3 台笔记本电脑使用Windows操作系统,树莓派小车使用Linux 操作系统,正是由于计算机网络分层的体系结构,屏蔽了不同操作系统及不同硬件间的差异,使树莓派小车与笔记本电脑可以通信。学生可以通过自学,了解更多Linux 操作系统的内容,培养学生持续学习的能力。

3.2 附加实验

树莓派小车中包含Python 开发的集成环境,为使用树莓派小车完成深度学习方面的应用提供了支撑。Python 语言是一种应用非常广泛的面向对象程序设计语言[11]。

附加实验的操作流程如下:笔记本电脑1 使用FileZilla 软件,将编写好的Python 程序传输到树莓派小车中。笔记本电脑1 使用VNC Viewer 软件,远程控制Python 程序在集成开发环境中完成编译。完成以上操作流程后,小车根据程序的设定,间隔相应时间,循环依次执行前进、后退、左转、右转、停止操作。

学生可以选做附加实验,使对相关技术知识感兴趣的学生,拓展知识领域。引导学生了解人工智能、深度学习等方面的知识,培养学生持续学习的能力。

4 实验考核

通过以下4 种方式,考查学生对实验原理的理解程度,以及对实验所用到的计算机网络知识的掌握程度。

1)在学生以小组为单位,完成此实验的过程中,根据对应的界面或操作命令,提问小组成员,此步骤的作用和目的。

2)在小组成员通过相互协作完成实验各步骤之后,让小组成员通过相互补充的方式,简述本实验的实验原理。

3)在小组成员完成实验之后,向每个小组成员提问与本实验相关的计算机网络知识点。

4)根据实验报告,检验学生对实验相关知识的掌握程度。

5 结束语

针对自动化专业计算机网络课程学时有限的特点,本文设计了一个综合性的课程实验。通过此综合实验,将课堂理论教学中已经学习的相关知识,与未学习的部分知识,有机地融合在一起,使学生形成一个整体性的概念,理解计算机网络在生活的实用案例,更加牢固地掌握计算机网络的相关知识。本文的实验原理部分,将计算机网络体系结构传送数据的过程,立体化地展示出来,使学生形成整体性的概念。并且,着重介绍了无线局域网数据链路层的CSMA/CA 协议,列举了此协议的工作原理与协议要点,并通过对比的方式提升学生的知识掌握度。实验内容中介绍了完成此实验的各个步骤,以及每个步骤涉及的技术知识。同时,通过一个附加实验,拓展学生的知识领域,培养学生持续学习的能力。最后,给出了考查学生知识掌握程度的4 种方式。在后续的综合课程设计或毕业设计中,可以对此实验进行扩展,让学生完成一些更复杂的任务。

猜你喜欢
树莓笔记本电脑小车
大车拉小车
自制小车来比赛
笔记本电脑“僵尸”
基于树莓派的骑行智能头盔设计
刘老师想开小车
两轮自平衡小车的设计与实现
基于树莓派的远程家居控制系统的设计
专业级笔记本电脑
响应面法优化红树莓酒发酵工艺
欧盟:速冻树莓比鲜食树莓市场更好