虚拟单板计算机


文档摘要

虚拟单板计算机 与其购买物联网设备,连同传感器和执行器,你可以使用你的电脑来模拟物联网硬件。CounterFit项目允许你运行一个本地应用程序,该程序可以模拟诸如传感器和执行器之类的物联网硬件,并可以从本地Python代码访问这些传感器和执行器,这些代码的编写方式与你在使用物理硬件的Raspberry Pi上编写的代码相同。 设置 要使用CounterFit,你需要在你的计算机上安装一些免费软件。 任务 安装所需的软件。 安装Python。参考Python下载页面以获取安装最新版本Python的说明。 安装Visual Studio Code(VS Code)。这是你将用于编写虚拟设备Python代码的编辑器。参考VS Code文档以获取安装VS Code的说明。

虚拟单板计算机

与其购买物联网设备,连同传感器和执行器,你可以使用你的电脑来模拟物联网硬件。CounterFit项目允许你运行一个本地应用程序,该程序可以模拟诸如传感器和执行器之类的物联网硬件,并可以从本地Python代码访问这些传感器和执行器,这些代码的编写方式与你在使用物理硬件的Raspberry Pi上编写的代码相同。

设置

要使用CounterFit,你需要在你的计算机上安装一些免费软件。

任务

安装所需的软件。

  1. 安装Python。参考Python下载页面以获取安装最新版本Python的说明。

  2. 安装Visual Studio Code(VS Code)。这是你将用于编写虚拟设备Python代码的编辑器。参考VS Code文档以获取安装VS Code的说明。

    如果你有喜欢的工具,你可以自由地使用任何Python IDE或编辑器,但课程将基于使用VS Code提供说明。

  3. 安装VS Code的Pylance扩展。这是一个为VS Code提供的Python语言支持扩展。参考Pylance扩展文档以获取在VS Code中安装此扩展的说明。

在作业说明的相关部分会给出安装和配置CounterFit应用的说明,因为它需要针对每个项目进行安装。

Hello World

当开始学习新的编程语言或技术时,传统做法是创建一个“Hello World”应用程序——一个输出类似文本"Hello World"的小程序,以显示所有工具都正确配置了。

虚拟物联网硬件的Hello World应用程序将确保你已正确安装Python和Visual Studio代码。它还将连接到CounterFit以访问虚拟物联网传感器和执行器。它不会使用任何硬件,只是连接以证明一切正常。

这个应用程序将在名为nightlight的文件夹中,稍后在本作业的不同部分中,你可以用不同的代码重用它来构建夜灯应用程序。

配置Python虚拟环境

Python的一个强大功能是可以安装Pip包——这些是由其他人编写并发布到互联网上的代码包。你可以通过一个命令将Pip包安装到你的计算机上,然后在你的代码中使用它。你将使用Pip来安装一个与CounterFit通信的包。

默认情况下,当你安装一个包时,它会在你的计算机上的所有位置可用,这可能会导致包版本的问题——例如,一个应用程序依赖于某个版本的包,而当你为另一个应用程序安装新版本时会破坏它。为了解决这个问题,你可以使用Python虚拟环境,基本上是一个专用文件夹中的Python副本,在这里安装的Pip包只会安装到这个文件夹中。

如果你正在使用Raspberry Pi,则没有为该设备设置虚拟环境来管理Pip包,而是使用全局包,因为Grove包是由安装脚本全局安装的。

任务 - 配置Python虚拟环境

配置Python虚拟环境并安装CounterFit的Pip包。

  1. 在终端或命令行中,选择一个位置并运行以下命令以创建并导航到一个新的目录:

    mkdir nightlight cd nightlight
  2. 现在运行以下命令以在.venv文件夹中创建虚拟环境

    python3 -m venv .venv

    你需要明确调用python3 to create the virtual environment just in case you have Python 2 installed in addition to Python 3 (the latest version). If you have Python2 installed then calling python将使用Python 2而不是Python 3

  3. 激活虚拟环境:

    • 在Windows上:

      • 如果你使用的是命令提示符或Windows终端中的命令提示符,请运行:

        .venv\Scripts\activate.bat
      • 如果你使用的是PowerShell,请运行:

        .\.venv\Scripts\Activate.ps1

        如果收到关于系统上禁用脚本执行的错误信息,你需要通过设置适当的执行策略来启用脚本执行。你可以通过以管理员身份启动PowerShell,然后运行以下命令来完成此操作:

        Set-ExecutionPolicy -ExecutionPolicy Unrestricted

        当被要求确认时输入Y。然后重新启动PowerShell并再次尝试。

        你可以在需要时稍后重置此执行策略。你可以在Microsoft文档中的执行策略页面中阅读更多内容。

    • 在macOS或Linux上,运行:

      source ./.venv/bin/activate

    这些命令应在创建虚拟环境的位置运行。你永远不需要导航到.venv folder, you should always run the activate command and any commands to install packages or run code from the folder you were in when you created the virtual environment.

  4. Once the virtual environment has been activated, the default python命令将运行用于创建虚拟环境的Python版本。运行以下命令以获取版本:

    python --version

    输出应包含以下内容:

    (.venv) ➜ nightlight python --version Python 3.9.1

    你的Python版本可能不同——只要它是3.6或更高版本即可。如果不是,请删除该文件夹,安装较新版本的Python并重试。

  5. 运行以下命令以安装CounterFit的Pip包。这些包包括主CounterFit应用程序以及Grove硬件的shims。这些shims允许你像使用来自Grove生态系统的物理传感器和执行器一样编写代码,但它们连接到虚拟物联网设备。

    pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove

    这些Pip包仅安装在虚拟环境中,并且不会在外部可用。

编写代码

一旦Python虚拟环境准备就绪,你就可以编写“Hello World”应用程序的代码了。

任务 - 编写代码

创建一个Python应用程序以将"Hello World"打印到控制台。

  1. 在终端或命令行中,运行以下命令以在虚拟环境中创建一个名为app.py的Python文件:

    • 在Windows上运行:

      type nul > app.py
    • 在macOS或Linux上,运行:

      touch app.py
  2. 在VS Code中打开当前文件夹:

    code .

    如果你的终端返回command not found,则意味着VS Code未添加到你的PATH中。你可以按照VS Code文档中的从命令行启动部分中的说明将VS Code添加到PATH中,并在之后运行该命令。VS Code默认在Windows和Linux上安装到PATH中。

  3. 当VS Code启动时,它将激活Python虚拟环境。所选的虚拟环境将出现在底部状态栏中:

    VS Code显示选定的虚拟环境

  4. 如果VS Code启动时VS Code终端已经在运行,则它不会在其中激活虚拟环境。最简单的方法是使用终止活动终端实例按钮终止终端:

    VS Code终止活动终端实例按钮

    如果终端激活了虚拟环境,你可以通过虚拟环境的名称作为前缀来识别终端提示符。例如,它可能是:

    (.venv) ➜ nightlight

    如果你没有.venv as a prefix on the prompt, the virtual environment is not active in the terminal.

  5. Launch a new VS Code Terminal by selecting *Terminal -> New Terminal, or pressing @INLINE_CODE_38@@ ``. The new terminal will load the virtual environment, and the call to activate this will appear in the terminal. The prompt will also have the name of the virtual environment (.venv`):

    ➜ nightlight source .venv/bin/activate (.venv) ➜ nightlight
  6. 打开VS Code资源管理器中的app.py文件并添加以下代码:

    print('Hello World!')

    print函数将传递给它的内容打印到控制台。

  7. 从VS Code终端中,运行以下命令以运行你的Python应用程序:

    python app.py

    输出将包含以下内容:

    (.venv) ➜ nightlight python app.py Hello World!

你的“Hello World”程序成功了!

连接“硬件”

作为第二个“Hello World”步骤,你将运行CounterFit应用程序并将代码连接到它。这是将某些物联网硬件插入开发套件的虚拟等价物。

任务 - 连接“硬件”

  1. 从VS Code终端中,使用以下命令启动CounterFit应用程序:

    counterfit

    应用程序将启动并在你的浏览器中打开:

    CounterFit应用程序在浏览器中运行

    它将标记为未连接,右上角的LED灯熄灭。

  2. app.py顶部添加以下代码:

    from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)

    此代码导入CounterFitConnection class from the counterfit_connection module, which comes from the counterfit-connection pip package you installed earlier. It then initializes a connection to the CounterFit app running on 127.0.0.1, which is an IP address you can always use to access your local computer (often referred to as localhost), on port 5000.

    If you have other apps running on port 5000, you can change this by updating the port in the code, and running CounterFit using CounterFit --port <port_number>, replacing <port_number> with the port you want to use.

  3. You will need to launch a new VS Code terminal by selecting the Create a new integrated terminal button. This is because the CounterFit app is running in the current terminal.

    VS Code Create a new integrated terminal button

  4. In this new terminal, run the app.py文件。CounterFit的状态将变为已连接,LED灯将点亮。

    CounterFit显示为已连接

你可以在code/virtual-device文件夹中找到此代码。

你对硬件的连接成功了!

声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。


作者与出处
原作者: microsoft
来源:microsoft
许可证:MIT
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: microsoft 转发
评论区 (0)
U