第11课:探索火星车视觉系统——摄像头与实时控制

欢迎回来,年轻的探索者们!在上一课中,我们使用倾斜机构为火星车配备了”点头”的能力。现在,是时候给我们的火星车装上”眼睛”了——摄像头!

在这个激动人心的旅程中,我们将深入设置火星车的摄像头系统。你将学习如何将火星车摄像头捕获的视觉画面传输到网页上,这样你就可以实时看到火星车所看到的一切。想象一下,从火星车的视角体验火星地貌,那是多么令人兴奋!

更令人兴奋的是,我们还引入了SunFounder Controller应用程序。这个应用程序让我们可以在火星车导航时获取其视野的实时画面,我们可以直接从智能手机或平板电脑控制倾斜机构。这就像拥有一个带内置屏幕的遥控器!

学习目标

  • 理解如何建立ESP32 CAM的WiFi连接。

  • 学习如何实时看到火星车所看到的一切。

  • 学习如何使用SunFounder Controller应用程序创建虚拟遥控器并控制火星车。

所需材料

  • 火星车模型(配备所有组件)

  • Arduino IDE

  • 计算机

  • 已安装SunFounder Controller应用程序的平板电脑或智能手机

课程步骤

步骤1:ESP32 CAM简介

在上一段冒险中,我们通过集成ESP32 CAM为火星车配备了一双”眼睛”。今天,我们将进一步了解它,并真正让它”看到”。

../_images/esp32_cam.png

ESP32 CAM就像我们火星车的眼睛,是一个小巧但功能强大的模块。它不仅集成了Wi-Fi和蓝牙功能,还配备了一个紧凑型摄像头。这个摄像头帮助我们的火星车捕捉周围环境的图像。

就像我们用眼睛观察环境一样,ESP32 CAM可以”看到”火星车前方的景象,然后将这些视觉数据发送到我们的智能手机或计算机。这使我们能够实时看到火星车所看到的一切!

这就像我们直接驾驶火星车一样,不仅观察火星车本身,还观察它所探索的世界!难以置信,对吧?那么,让我们更深入地了解它…

步骤2:编程火星车摄像头并查看画面

将ESP32-CAM安装到我们的火星车上之后,我们现在需要为它注入活力。 为此,我们将使用Arduino IDE编写一个程序来控制摄像头,使其能够连接到WiFi, 并流式传输其捕获的视觉画面。

以下是做法:

  1. 安装 SunFounder AI Camera 库。

    • 打开Arduino IDE的 库管理器 ,搜索”SunFounder Camera”,然后点击 安装

      ../_images/camera_install_lib.png
    • 将出现一个弹出窗口,用于安装库依赖项。点击 全部安装 ,等待过程完成。

      ../_images/camera_install_lib1.png
  2. 在Arduino IDE中输入以下代码。

    关于代码中的变量 NAMETYPEPORT,我们暂时不做深入探讨。它们将在我们的下一步中发挥作用。只需记住,这些变量将在我们即将建立的从火星车获取实时视频流的旅程中变得重要。

    注意代码中有两种连接模式—— AP 模式和 STA 模式。你可以根据具体需求决定使用哪一种。

    • AP模式 :在此模式下,火星车创建一个热点(在我们的代码中命名为 GalaxyRVR)。这允许任何设备(如手机、平板电脑或笔记本电脑)连接到这个网络。当你希望在任何情况下远程控制火星车时,这特别有用。但请注意,这会使你的设备暂时无法连接到互联网。

      // AP Mode
      #define WIFI_MODE WIFI_MODE_AP
      #define SSID "GalaxyRVR"
      #define PASSWORD "12345678"
      
    • STA模式 :在此模式下,火星车连接到你的家庭WiFi网络。请记住,你的控制设备(如手机或平板电脑)也应连接到同一个WiFi网络。这种模式允许你的设备在控制火星车的同时保持正常的互联网访问,但将火星车的操作范围限制在你的WiFi覆盖区域内。

      // STA Mode
      #define WIFI_MODE WIFI_MODE_STA
      #define SSID "YOUR SSID"
      #define PASSWORD "YOUR PASSWORD"
      
  3. 将代码上传到我们的火星车,让ESP32 CAM活起来!

    • ESP32-CAM和Arduino板共享相同的RX(接收)和TX(发送)引脚。因此,在上传代码之前,你需要先将此开关拨到右侧以释放ESP32-CAM,避免任何冲突或潜在问题。

    • 代码成功上传后,将其拨回左侧以启动ESP32 CAM。

      备注

      此步骤和上一步骤在每次重新上传代码时都需要执行。

      ../_images/camera_run.png
    • 打开 串口监视器 并将波特率设置为115200。如果没有显示信息,按下GalaxyRVR扩展板上的 重置按钮 重新运行代码。你应该会在串口监视器输出中看到一个IP地址。这是你的火星车摄像头广播的地址。

      ../_images/camera_serial.png
    • 现在,是时候真正看看我们的火星车看到了什么!打开一个网页浏览器——我们推荐Google Chrome——然后输入你在串口监视器中看到的URL,格式为 http://ip:9000/mjpg

      ../_images/camera_view.png

瞧!你现在应该能够看到火星车摄像头的实时画面了。想象一下,你正在从火星车的视角观察火星(或者可能只是你的客厅),是不是很神奇?就像真正的火星车科学家一样!

请记住,这只是开始。还有更多的东西等待探索和学习。在我们的下一步中,我们将探索如何在查看实时摄像头画面的同时控制我们的火星车。令人兴奋,不是吗?继续前进,探索者们!