嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

Zerynth 为 PSoC 6 Wi-Fi BT Pioneer 添加便捷的 Python 功能

Main34_fdabe3c4d8dbeb928b66bc1c5c4d3d6861aa8a1e.jpg

首先看看最近宣布支持Zerynth的PSoC 6套件

Cypress PSoC 和 Zerynth 中间件的组合凭借高级硬件功能、Python 易用性和扩展生态系统以及带有多线程、云集成和 OTA 更新的实时 O/S,为 IoT 的快速开发提供了一个功能强大的平台。

PSoC 入门

MCU_Portfolio_8b2de17268f0a2d486dabcd36ec4a034405a9796.jpg

图片来源:Cypress 产品路线图:PSoC 和 MCU 产品系列

Cypress PSoC(可编程片上系统)将 MCU 与可配置的模拟和数字外围设备相结合,为高度集成的低功耗解决方案创建强大的平台。因此,它受到消费电子产品大众市场的广泛欢迎,例如 Apple AirPod

PSoC_6_MCU_Portfolio_2019222ea3eeafcb75c64d049a8d3ddc8ca08eb2.jpg

图片来源:Cypress 产品路线图:PSoC 和 MCU 产品系列

PSoC 6 是最新推出的产品系列,专门针对可穿戴设备和 IoT 应用而开发,搭载 Arm Cortex-M4 主应用处理器,同时搭配用于运行 BLE 堆栈和电容式触摸感应等功能的低功耗 Cortex-M0+。当然还有可配置的模拟模块和数字模块,以及可编程输入/输出路由和互连。

这种资源组合可降低材料成本并缩小产品的外形尺寸,此外无论是在主处理器还是辅助处理器上,无论是采用严苛的模拟模块还是数字模块方式,各种功能均采取最高效的运行方式,因此能够降低功耗。

PSoC 6 Wi-Fi BT Pioneer 套件

P6WBPK_09e83e9c28161865b3d2f922cece868fe685a0d3.jpg

除 PSoC 6 之外,这款 Wi-Fi BT Pioneer 套件 (175-4669) 的其它重要组件还有:

  • 兼容 Arduino Uno 3.3 V Shield1 和 Digilent® Pmod™ 模块的扩展管座。
  • 1DX 超小型 2.4 GHz WLAN 和蓝牙功能模块。
  • 12 Mbit 外部四路 SPI NOR 闪存,为数据和代码提供可扩展的快速存储器。
  • KitProg2 板载编程器/调试器,带大容量存储器编程、USB 到 UART/I2C/SPI 桥接功能,并支持自定义应用。
  • EZ-PD CCG3 USB Type-C 供电 (PD) 系统,支持可充电锂聚合物 (Li-Po) 电池。
  • CapSense 触摸感应滑块(五个元件)和两个按钮,均支持自电容 (CSD) 和互电容 (CSX) 操作,以及一个 CSD 接近传感器,可用于评估 Cypress 第四代 CapSense 技术。

ArduinoShield_b57429cde57528de7a51135ce12ca69d30e43e40.jpg

该套件还随附 Arduino 扩展板,内含 2.4 in. TFT 显示屏,以及三轴加速计/陀螺仪、PDM 麦克风输入、32 位立体声编解码器等。

标准开发选项为 PSoC Creator IDEWICED Studio,两者均使用 C 语言工具链。然而,我们感兴趣的是如何通过 Zerynth 为基于 Python 的开发提供全新的支持,接下来我们将介绍如何设置开发工具。

Zerynth Studio

ZP_ZS_PysicalDevices_d4b0643b721077c77bb929a93b05a923d7fc7cec.jpg

下面我们将介绍在 Ubuntu Linux 上安装 Zerynth Studio 的完整步骤,但是请注意,它也可以安装在 MS Windows 和 Mac OS 上。

首先创建一个新目录:

$ mkdir Zerynth

接着下载软件并保存到该位置。然后,提取存档文件并开始安装。

$ cd Zerynth

$ tar xvf zerynth.tar.xz

$ ./zerynth

然后,我们选择在线安装,选择最新版本,并在完成后启动应用程序。登录时要求使用 Zerynth 用户帐户,也可以方便地使用 DesignSpark 帐户登录!

如需为访问设备而配置 udev,则需要执行几个额外的步骤。首先创建一个新的规则文件。

$ sudo vi /etc/udev/rules.d/99-kitprog2.rules

内容如下:

# Match KP2 PID/VID

SUBSYSTEMS=="usb", ATTRS{idVendor}=="04b4", ATTRS{idProduct}=="f148", ENV{CY_KP2_PID_VID}="f148:04b4"

# Match KP2 CMSIS-DAP

SUBSYSTEMS=="usb", ATTRS{interface}=="KitProg2 CMSIS-DAP", ENV{CY_KP2_PID_VID}=="f148:04b4", MODE="0666"

接着重新加载 udev 规则。

$ sudo udevadm control --reload-rules && udevadm trigger

此时插入电路板,接着文件管理器窗口打开,因为板载闪存以 USB 存储器的形式安装。更重要的是,在 Zerynth Studio 顶部的“设备”字段中,我们可以选择下拉列表并在“物理设备”下找到 PSoC6 WiFi-Bt Pioneer 套件

简单的三步操作

加载应用程序时,必须执行三个初始步骤,而这些步骤均通过“设备”下拉菜单右侧带“Z”图标的工具栏按钮来执行。第一次按下此按钮时,将在目标位置上运行注册固件,获取微控制器的唯一识别码,然后在 Zerynth 后端进行注册。

第二次按下时,系统将提示创建虚拟机 (VM)。

ZP_ZS_CreateVM_757f05929402d22fc2b145f98477fc4b4eb56a93.jpg

最后按第三下时,可选择需要使用的虚拟机。

ZP_ZS_Virtualize_57f7e6ced9a34e1d18b310d5dea79cda22b6a8ce.jpg

现在,我们的第一个 Zerynth 应用程序已准备就绪!

 

第一步

ZP_ZS_Blink_4bb9e65e6a417cf687a436fc2bdf1b170d38bfe7.jpg

通过左侧工具栏中的灯泡图标可访问一系列示例,其中包括经典的“Hello World”(使用串行控制台输出)以及更典型的嵌入式平台 LED 灯闪烁。单击示例将显示项目说明和 main.py 的内容,随后可以选择在本地复制副本。

pinMode(LED0,OUTPUT)

# loop forever
while True:
    digitalWrite(LED0, HIGH)  # turn the LED ON by setting the voltage HIGH
    sleep(1000)               # wait for a second
    digitalWrite(LED0, LOW)   # turn the LED OFF by setting the voltage LOW
    sleep(1000)               # wait for a second

上面我们可以看到闪烁示例,任何曾经用过 Arduino 的人都应当对此感到熟悉,编程指南解释了该示例如何有助于了解引脚和功能的命名。

如需验证项目,单击顶部工具栏中的勾号图标,然后按下带向上箭头图标的“上行链路”按钮加载到目标上。

ZP_P6WBP_LED_407954b9699683199750b75da081756cef5cc433.jpg

不出所料,在短暂延迟之后,LED5 开始闪烁。

其他基本示例还包括数字读取和 ADC 读取,以及关于多线程和计时器应用演示的更高级示例等。

进一步拓展

ZP_ZS_CapSense_d28d82dabeec2bd991af09e8fa7266bb0e9c3a8d.jpg

写入时有一个专门针对 PSoC 的示例,用于演示如何读取 Pioneer 套件上的 CapSense 按钮和滑块。此外还有一系列更高级的通用示例,它们展示了 Zerynth 标准库的功能,例如 RTC 和文件系统支持、中断、加密、节能以及可在同一项目中混合使用 C 语言和 Python 语言的 C 语言界面

此外还提供官方库(为各种 IoT 平台、Ethereum BlockChain、各种传感器提供支持)以及十分便捷的 Modbus、MQTT 等标准。同时还支持在社区库 GitHub 发布创意和获得安装功能。

此外还有一项特别巧妙的功能,那就是 Zerynth 高级设备管理器 (ADM),它可提供无线 (OTA) 更新管理、远程程序调用及设备自身用户界面等高级功能,其中托管的 JSON RPC 接口可用于远程调用设备上的 Python 功能!我们将在以后的帖子中详细介绍这一功能。

当然,我们尚未探讨的其他方面还有 PSoC 平台闻名的可配置模拟模块和数字模块。至少就目前而言,这些模块似乎还需要使用官方 Cypress 工具进行配置。但是与固件配置相比,这类设备配置可能更为静态。

Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.
DesignSpark Electrical Logolinkedin