构建远程实验室:大学生如何利用树莓派进行机器人开发

树莓派RemoteLab的实现

远程机器人开发在大学校园中已不再是梦想,在弗罗茨瓦夫科技大学,这一愿景已成为现实。在《The MagPi》的最新一期中,Rob Zwetsloot与RemoteLab进行了深入交流,并在#MagPiMonday的特别节目中进行了分享。几期前,我们采访了Wojciech Domski,他讲述了自己的遥控飞机OSD项目,该项目不仅展示了遥控飞机的飞行位置,还提供了一些HUD信息。这项成果令人印象深刻,而Wojciech还与弗罗茨瓦夫大学合作,热衷于分享更多的项目经验。有关遥控飞机OSD的详细信息,请访问:遥控飞机OSD

RemoteLab平台使学生能够远程访问多种开发板,包括ST的Nucleo板和Discovery板。图片Wojciech解释道:“RemoteLab被称为硬件即服务(Hardware-as-a-Service),它为开发板等资源提供远程访问服务。该项目设立在弗罗茨瓦夫科技大学[WRUST],主要用于机器人控制器和高级机器人控制课程。”

项目的起源与发展

RemoteLab的创建背景源于2020年新冠疫情的影响,弗罗茨瓦夫科技大学的面授课程被迫暂停,学生无法接触到实际的开发板和实验室设备。为了应对这一挑战,Wojciech开始构建一种通过树莓派远程访问开发板的解决方案。他表示:“2020年底,我在家中开发并运行了第一个版本。2021年,我建立了环境并正式推出了服务。如果没有我所在大学的支持,以及来自私营公司ST提供开发板的团队的帮助,一切都不可能实现。”

这个网络界面还包括一个摄像头,可以实时监控电路板的状态。图片项目的初始版本使用了Raspberry Pi 3,因其兼顾低功耗与高性能,且支持多种Linux发行版,使其成为理想选择。Wojciech提到:“它的性能足以同时为十几名学生提供服务。不过,在提供开发板视图的视频流方面效果不佳。我因此决定采用基于静态图像的视频预览。之后,升级版转向使用Raspberry Pi 4。现在,甚至可以直接在Raspberry Pi上编写和开发代码,因为它提供了足够的计算能力。到了2024年,我们再次升级,三台服务器换成了Raspberry Pi 5,并更新了网络界面。根据我的实验,Raspberry Pi 5甚至可以为全班学生提供实时视频反馈。”

制作过程的挑战

在谈到制作过程时,Wojciech以幽默的口吻回应:“实在太可怕了 :D”,而这正是每个制造者所经历的真实感受。图片他承认:“我不愿去计算晚上花在硬件安装上的时间。软件的准备相对简单,可以逐步添加新功能并在必要时进行调整。但我印象最深的是将额外的硬件(如传感器)连接到开发板上,这让我花费了大约三天的时间进行设置和测试。”尽管组装过程中遇到失败的挫折,最终他还是成功完成了所有工作。用户只需通过SSH连接到RemoteLab服务器,即可通过网络界面查看和控制实验室中的开发板。值得一提的是,得益于升级到Raspberry Pi 5,用户现在还可以获得视频反馈。

远程学习体验

对于任何项目而言,来自最终用户的反馈至关重要,而RemoteLab系统似乎得到了学生们的广泛欢迎。Wojciech表示:“一些学生非常喜欢RemoteLab,称其对他们的学习帮助巨大。该系统的突破性在于它可以全天候使用。我收到了很多反馈,学生们表示能够更好地为课程做准备,并且不受时间限制。”图片

Wojciech持续对该系统进行开发与改进,最近刚刚增加了通过网络界面的串行控制台功能。接下来,他将探索如何实现实时绘图,并考虑扩展到第四台Raspberry Pi服务器,增加对Raspberry Pi Pico及Pico 2的支持。他总结道:“我认为RemoteLab完全体现了Raspberry Pi基金会的宗旨,旨在支持教育并鼓励创新。”

工作原理简介

  1. 用户与服务器之间通过SSH连接,传输两个端口,其中一个端口用于网络用户界面。在此界面上,用户可以查看开发板的状态、调试器是否运行及其他功能。图片

  2. 第二个端口专门用于调试器(如openocd或st-link),通过SWD接口连接,类似于Raspberry Pi Pico。远程调试允许用户上传新固件或调试开发板上的源代码。图片

  3. 管理端的复杂性稍高,需要网络服务器来管理上述功能。团队创建了一套Python脚本,用于在任何特定RemoteLab设置的一台或所有服务器上自动执行重复任务,例如更新代码。图片