Difference between revisions of "BPI-Bit-S2 STEAM 教育开发板"
(→硬件升级及功能对比) |
(→CircuitPython) |
||
(29 intermediate revisions by 2 users not shown) | |||
Line 11: | Line 11: | ||
[[File:BPI-Bit-S2_banner.jpg|800px]] | [[File:BPI-Bit-S2_banner.jpg|800px]] | ||
− | '''BPI-Bit-S2''' 开发板 是 BPI | + | '''BPI-Bit-S2''' 开发板 是 [[BPI-Bit]] 的后继型号,继承了大部分硬件功能。 |
− | 支持 Webduino, Arduino, MicroPython 编程环境 ,适合应用于STEAM教育领域。 | + | IO与micro:bit兼容,可以使用大部分micro:bit的周边配件。 |
+ | |||
+ | 支持 Webduino, Arduino, MicroPython & CircuitPython 编程环境 ,适合应用于STEAM教育领域。 | ||
== 关键特性 == | == 关键特性 == | ||
Line 25: | Line 27: | ||
* Type-C USB接口 | * Type-C USB接口 | ||
* 外形尺寸 5x5cm | * 外形尺寸 5x5cm | ||
− | * | + | * 金手指IO定义与micro:bit完全兼容 |
− | == | + | == 功能对比 == |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! colspan="3" style="text-align:center; background-color:#FFCB2F;" | | + | ! colspan="3" style="text-align:center; background-color:#FFCB2F;" | micro:bit 与 BPI-Bit-S2 |
|- | |- | ||
| 型号 | | 型号 | ||
− | | | + | | micro:bit V2.2X |
| BPI-Bit-S2 | | BPI-Bit-S2 | ||
|- | |- | ||
| MCU主控芯片 | | MCU主控芯片 | ||
− | | | + | | Nordic nRF52833 |
− | | ESP32-S2 | + | | Espressif ESP32-S2 |
|- | |- | ||
− | | | + | | 核心频率 |
− | | | + | | 64MHz |
− | | | + | | 240MHz |
|- | |- | ||
| RAM | | RAM | ||
− | | | + | | 128KB |
| 320 KB | | 320 KB | ||
|- | |- | ||
| FlASH ROM | | FlASH ROM | ||
− | | | + | | 512KB |
| 4096 KB | | 4096 KB | ||
|- | |- | ||
Line 58: | Line 60: | ||
|- | |- | ||
| 无线功能 | | 无线功能 | ||
− | | | + | | Bluetooth,microbit-radio |
− | | WIFI | + | | WIFI, IEEE 802.11 b/g/n, 2.4Ghz |
|- | |- | ||
− | | | + | | LED |
− | | 25颗 | + | | 25颗 红色灯珠 |
− | | 25颗 WS2812-3535 | + | | 25颗 WS2812-3535 彩色灯珠 |
|- | |- | ||
| 按键 | | 按键 | ||
| 2个可编程按键,1个RST按键 | | 2个可编程按键,1个RST按键 | ||
− | | | + | | 2个可编程按键,1个BOOT按键,1个RST按键 |
|- | |- | ||
| 蜂鸣器 | | 蜂鸣器 | ||
− | | | + | | 有 |
− | | | + | | 有 |
|- | |- | ||
− | | | + | | 麦克风 |
+ | | 有 | ||
+ | | 无 | ||
+ | |- | ||
+ | | USB插座 | ||
| Micro USB | | Micro USB | ||
| Type-C USB | | Type-C USB | ||
|- | |- | ||
| USB转TTL | | USB转TTL | ||
− | | | + | | nRF52833-QDAA or nRF52820-QDAA |
− | | | + | | MCU芯片内置 |
|- | |- | ||
− | | | + | | 电池插座 |
| 有 | | 有 | ||
| 无 | | 无 | ||
|- | |- | ||
| IO | | IO | ||
− | | 19 | + | | 19 pins金手指IO,鳄鱼夹卡口,支持触摸感应 |
− | | 19 | + | | 19 pins金手指IO(兼容micro:bit),鳄鱼夹卡口,支持触摸感应 |
|- | |- | ||
− | | | + | | 运动传感器 |
| 有 | | 有 | ||
| 无 | | 无 | ||
|- | |- | ||
| 光敏传感器 | | 光敏传感器 | ||
− | | | + | | 无 |
| 2个 | | 2个 | ||
|- | |- | ||
| 温度传感器 | | 温度传感器 | ||
− | | | + | | 1个芯片温度传感器 |
− | | | + | | 1个板载温度传感器 |
|} | |} | ||
Line 110: | Line 116: | ||
! colspan="2" style="text-align:center; background-color:#FFCB2F;" | BPI-Bit-S2 规格表 | ! colspan="2" style="text-align:center; background-color:#FFCB2F;" | BPI-Bit-S2 规格表 | ||
|- | |- | ||
− | | | + | | MCU主控芯片 |
| ESP32-S2FN4R2,Xtensa® 32 位 LX7 单核处理器 | | ESP32-S2FN4R2,Xtensa® 32 位 LX7 单核处理器 | ||
|- style="vertical-align:middle;" | |- style="vertical-align:middle;" | ||
Line 135: | Line 141: | ||
|- style="vertical-align:middle;" | |- style="vertical-align:middle;" | ||
| GPIO | | GPIO | ||
− | | | + | | 已引出19个可用GPIO引脚 |
+ | |- style="vertical-align:middle;" | ||
+ | | 可用外设功能 | ||
+ | | ADC,TOUCH,PWM,SPI,I2C,I2S,Pulse counter, RMT,TWAI® Controller,SD/MMC,LCD_CAMERA | ||
|- style="vertical-align:middle;" | |- style="vertical-align:middle;" | ||
| 外部晶振 | | 外部晶振 | ||
Line 305: | Line 314: | ||
[https://webbit.webduino.io/tutorials/doc/zh-cn/education/index.html webduino在线教学手册] | [https://webbit.webduino.io/tutorials/doc/zh-cn/education/index.html webduino在线教学手册] | ||
+ | |||
+ | == MicroPython == | ||
+ | |||
+ | [[File:Mircopython.png | 800px]] | ||
+ | |||
+ | MicroPython是Python 3编程语言的精益高效实现,包括 Python 标准库的一小部分,并且经过优化,可在微控制器和有限的硬件资源中运行。 | ||
+ | |||
+ | 由 Damien P. George 于 2013年 众筹开源。 | ||
+ | |||
+ | 它与使用C程序开发微控制器最明显的差异性,就是验证代码时无需漫长的编译。 | ||
+ | |||
+ | 使用串口通信软件,通过REPL(read-eval-print-loop)输入命令来控制微控制器,和Python的REPL一样。 | ||
+ | |||
+ | 也可使用一些工具将 python 脚本文件上传到微控制器内运行。 | ||
+ | |||
+ | 它对Python 3 的实现,包括了支持多线程的 _thread 库,编写并发代码的 asyncio 库。 | ||
+ | |||
+ | 它尽可能与普通Python兼容,允许您轻松地将代码从桌面端移植到微控制器。 | ||
+ | |||
+ | 同时它还具备一些特定用于微控制器的库,以便充分利用微控制器芯片内的硬件功能,例如定时器,硬件中断,WiFi等,这取决于具体的硬件。 | ||
+ | |||
+ | 在具备上述特性的同时,它的硬件开销很少,最低只需 256k 的代码空间和 16k 的 RAM 即可运行。 | ||
+ | |||
+ | 如果你了解Python,很大程度上你就已经了解MicroPython了。 | ||
+ | |||
+ | 在另一方面,你深入地学习MicroPython,也能提升你对Python的理解。 | ||
+ | |||
+ | == CircuitPython == | ||
+ | |||
+ | [[File:CircuitPython_Repo_header_logo.jpg | 800px]] | ||
+ | |||
+ | CircuitPython是MicroPython的一个教育友好型的开源衍生产品,由Adafruit Industries支持与开发。 | ||
+ | |||
+ | 在易用性上,它在MicroPython的基础上更进一步。 | ||
+ | |||
+ | 使用CircuitPython固件的开发板连接PC时,PC将会立即得到一个USB存储磁盘,将python脚本文件复制进此磁盘即可让程序在此开发板上运行。 | ||
+ | |||
+ | 这就做到了让用户开箱即用,因为绝大多数现代个人操作系统和家用PC都是支持USB存储磁盘的。 | ||
+ | |||
+ | 当然为了能使用REPL,至少还是需要安装一个串口通信软件,或是支持这个功能的文本编辑器,例如Mu编辑器。 | ||
+ | |||
+ | CircuitPython 社区提供极其丰富的外设驱动库,API文档,教程。即使没有编程基础,没有硬件基础,从零开始也可快速上手。 | ||
+ | |||
+ | CircuitPython不支持定时器,硬件中断等一些特定用于微控制器的库,也不支持多线程的_thread 库,仅提供编写并发代码的 asyncio 库。 | ||
+ | |||
+ | 在CircuitPython所支持的微控制器和其Blinka所支持的单板计算机(SBCs)中,代码具有很好的可移植性,这得益于它在统一API上的努力。 | ||
+ | |||
+ | [https://circuitpython.org/board/bpi_bit_s2/ BPI-Bit-S2 CircuitPython 下载页面] | ||
+ | |||
+ | [https://codewith.mu/ Mu编辑器 下载页面] | ||
+ | |||
+ | '''安装tinyUF2固件:''' | ||
+ | |||
+ | 为了使你的BPI-Bit-S2开发板可以通过USB-CDC刷写FLASH,需要设置开发板为固件下载模式。 | ||
+ | |||
+ | 通过USB连接到电脑,按住BOOT键,再按一下RST键并松开,最后松开BOOT键。 | ||
+ | |||
+ | 在BPI-Bit-S2 CircuitPython 下载页面底部的 Install, Repair, or Update UF2 Bootloader 栏目中,参考其说明下载安装tinyUF2固件。 | ||
+ | |||
+ | '''安装CircuitPython固件:''' | ||
+ | |||
+ | 在BPI-Bit-S2 CircuitPython 下载页面右侧点击 DOWNLOAD .UF2 NOW 按钮下载固件到本地,随后拷贝至BPI-Bit-S2 UF2 Bootloader模式下的磁盘中,自动复位后即可使用。 | ||
== Arduino == | == Arduino == | ||
Line 312: | Line 383: | ||
Arduino 是一个开源嵌入式软硬件开发平台,用来供用户制作可交互式的嵌入式项目。 | Arduino 是一个开源嵌入式软硬件开发平台,用来供用户制作可交互式的嵌入式项目。 | ||
− | + | Arduino 集成开发环境(IDE)是此平台的软件核心,使用C/C++编程语言开发项目。 | |
− | |||
− | + | Arduino 最大的特性就是提供统一的API来开发所有它所支持的微控制器,具有非常良好的代码可移植性和可复用性。 | |
− | + | 此外它简化了搭建开发环境的过程,所有它所支持的微控制器的开发环境都可一键安装配置。 | |
− | + | 它还提供简单的一键式机制来编译和上传程序到微控制器中运行。 | |
− | + | Arduino IDE中还集成了很多例程,辅有大量的注释,能帮助用户快速上手。 | |
− | + | Arduino 社区中积累的大量的优秀开源项目可供参考与学习,还有相当多的芯片制造商提供的驱动库与API。 | |
− | + | * [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境] | |
+ | * [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs] | ||
= 资料与资源 = | = 资料与资源 = | ||
[https://github.com/BPI-STEAM/BPI-BIT-Lite-Doc/blob/main/sch/BPI-BIT-Lite-V0.2.pdf BPI-Bit-S2原理图] | [https://github.com/BPI-STEAM/BPI-BIT-Lite-Doc/blob/main/sch/BPI-BIT-Lite-V0.2.pdf BPI-Bit-S2原理图] | ||
+ | |||
+ | =样品购买= | ||
+ | *官方速卖通 : https://www.aliexpress.com/item/1005004996218484.html?spm | ||
+ | *官方淘宝店:https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-5702805387.15.65f0159arKKQI9&id=693462857865 |
Latest revision as of 01:27, 19 December 2022
Contents
介绍
BPI-Bit-S2 开发板 是 BPI-Bit 的后继型号,继承了大部分硬件功能。
IO与micro:bit兼容,可以使用大部分micro:bit的周边配件。
支持 Webduino, Arduino, MicroPython & CircuitPython 编程环境 ,适合应用于STEAM教育领域。
关键特性
- ESP32-S2
- 25颗全彩LED灯
- 1个温度传感器
- 1个蜂鸣器
- 2个光敏传感器
- 正面两个背面一个可编程按键
- Type-C USB接口
- 外形尺寸 5x5cm
- 金手指IO定义与micro:bit完全兼容
功能对比
micro:bit 与 BPI-Bit-S2 | ||
---|---|---|
型号 | micro:bit V2.2X | BPI-Bit-S2 |
MCU主控芯片 | Nordic nRF52833 | Espressif ESP32-S2 |
核心频率 | 64MHz | 240MHz |
RAM | 128KB | 320 KB |
FlASH ROM | 512KB | 4096 KB |
PSRAM | 无 | 2048 KB |
无线功能 | Bluetooth,microbit-radio | WIFI, IEEE 802.11 b/g/n, 2.4Ghz |
LED | 25颗 红色灯珠 | 25颗 WS2812-3535 彩色灯珠 |
按键 | 2个可编程按键,1个RST按键 | 2个可编程按键,1个BOOT按键,1个RST按键 |
蜂鸣器 | 有 | 有 |
麦克风 | 有 | 无 |
USB插座 | Micro USB | Type-C USB |
USB转TTL | nRF52833-QDAA or nRF52820-QDAA | MCU芯片内置 |
电池插座 | 有 | 无 |
IO | 19 pins金手指IO,鳄鱼夹卡口,支持触摸感应 | 19 pins金手指IO(兼容micro:bit),鳄鱼夹卡口,支持触摸感应 |
运动传感器 | 有 | 无 |
光敏传感器 | 无 | 2个 |
温度传感器 | 1个芯片温度传感器 | 1个板载温度传感器 |
硬件
BPI-Bit-S2 规格表 | |
---|---|
MCU主控芯片 | ESP32-S2FN4R2,Xtensa® 32 位 LX7 单核处理器 |
主频 | 240MHz MAX |
工作温度 | -40℃~+85℃ |
ROM | 128 KB |
SRAM | 320 KB |
FLASH ROM | 4 MB |
PSRAM | 2 MB |
WIFI | IEEE 802.11 b/g/n ,2.4Ghz 频段 |
GPIO | 已引出19个可用GPIO引脚 |
可用外设功能 | ADC,TOUCH,PWM,SPI,I2C,I2S,Pulse counter, RMT,TWAI® Controller,SD/MMC,LCD_CAMERA |
外部晶振 | 40Mhz |
蜂鸣器 | 1个板载蜂鸣器 |
LED 灯 | 25颗串联全彩led灯,单线GPIO控制;1颗单色LED灯,GPIO0控制 |
光敏传感器 | 2个独立光敏传感器 |
温度传感器 | 1个独立温度传感器 |
IO | 19pins 金手指IO(兼容micro:bit配件),背部 19 pin 触点 |
按键 | 2个可编程按键,1个BOOT按键,1个RST按键 |
USB | USB Type-C接口,全速 USB OTG,USB-ACM |
工作电压 | 3.3V |
电源 | USB Type-C输入5V供电,或金手指IO输入3.3V供电 |
尺寸 | 5 * 5 cm |
板载外设
外设GPIO分配及信号类型 | ||
---|---|---|
光敏传感器(L) | GPIO 12 | Analog Input |
光敏传感器(R) | GPIO 13 | Analog Input |
按键 A | GPIO 38 | Digital Input |
按键 B | GPIO 33 | Digital Input |
按键 BOOT | GPIO 0 | Digital Input |
温度传感器 | GPIO 14 | Analog Input |
蜂鸣器 | GPIO 17 | PWM(Digital Output) |
RGB_LED | GPIO 18 | Digital Output |
5*5 全彩LED灯
BPI-Bit-S2 有25颗全彩LED灯, 单GPIO控制. 每颗LED的三原色像素都可以实现 8bit 256级亮度显示,及实现16777216色全彩显示,扫描频率不低于400Hz/s。
5*5 LEDs list of BPI-Bit-S2 | ||||
---|---|---|---|---|
20 | 15 | 10 | 5 | 0 |
21 | 16 | 11 | 6 | 1 |
22 | 17 | 12 | 7 | 2 |
23 | 18 | 13 | 8 | 3 |
24 | 19 | 14 | 9 | 4 |
金手指引脚定义
BPI-Bit-S2 金手指 GPIO 定义与 micro:bit 兼容. 可以使用 micro:bit 的GPIO扩展板配件。
SPI,I2C | ||
---|---|---|
Function | Pin Name | GPIO Num |
SPI_SCK | P13 | GPIO36 |
SPI_MISO | P14 | GPIO37 |
SPI_MOSI | P15 | GPIO35 |
SPI_CS | P16 | GPIO34 |
I2C_SCL | P19 | GPIO16 |
I2C_SDA | P20 | GPIO15 |
供电
BPI-Bit-S2支持两种供电方式:
1. Type-C USB:使用USB线供电,连接电脑USB接口或其他5V USB充电器即可为开发板供电。
2. 金手指:开发板底部金手指包含电源接口,同时具有输入和输出功能,使用3.3V供电,正极接3V3,负极接GND。
软件
Webduino
MicroPython
MicroPython是Python 3编程语言的精益高效实现,包括 Python 标准库的一小部分,并且经过优化,可在微控制器和有限的硬件资源中运行。
由 Damien P. George 于 2013年 众筹开源。
它与使用C程序开发微控制器最明显的差异性,就是验证代码时无需漫长的编译。
使用串口通信软件,通过REPL(read-eval-print-loop)输入命令来控制微控制器,和Python的REPL一样。
也可使用一些工具将 python 脚本文件上传到微控制器内运行。
它对Python 3 的实现,包括了支持多线程的 _thread 库,编写并发代码的 asyncio 库。
它尽可能与普通Python兼容,允许您轻松地将代码从桌面端移植到微控制器。
同时它还具备一些特定用于微控制器的库,以便充分利用微控制器芯片内的硬件功能,例如定时器,硬件中断,WiFi等,这取决于具体的硬件。
在具备上述特性的同时,它的硬件开销很少,最低只需 256k 的代码空间和 16k 的 RAM 即可运行。
如果你了解Python,很大程度上你就已经了解MicroPython了。
在另一方面,你深入地学习MicroPython,也能提升你对Python的理解。
CircuitPython
CircuitPython是MicroPython的一个教育友好型的开源衍生产品,由Adafruit Industries支持与开发。
在易用性上,它在MicroPython的基础上更进一步。
使用CircuitPython固件的开发板连接PC时,PC将会立即得到一个USB存储磁盘,将python脚本文件复制进此磁盘即可让程序在此开发板上运行。
这就做到了让用户开箱即用,因为绝大多数现代个人操作系统和家用PC都是支持USB存储磁盘的。
当然为了能使用REPL,至少还是需要安装一个串口通信软件,或是支持这个功能的文本编辑器,例如Mu编辑器。
CircuitPython 社区提供极其丰富的外设驱动库,API文档,教程。即使没有编程基础,没有硬件基础,从零开始也可快速上手。
CircuitPython不支持定时器,硬件中断等一些特定用于微控制器的库,也不支持多线程的_thread 库,仅提供编写并发代码的 asyncio 库。
在CircuitPython所支持的微控制器和其Blinka所支持的单板计算机(SBCs)中,代码具有很好的可移植性,这得益于它在统一API上的努力。
安装tinyUF2固件:
为了使你的BPI-Bit-S2开发板可以通过USB-CDC刷写FLASH,需要设置开发板为固件下载模式。
通过USB连接到电脑,按住BOOT键,再按一下RST键并松开,最后松开BOOT键。
在BPI-Bit-S2 CircuitPython 下载页面底部的 Install, Repair, or Update UF2 Bootloader 栏目中,参考其说明下载安装tinyUF2固件。
安装CircuitPython固件:
在BPI-Bit-S2 CircuitPython 下载页面右侧点击 DOWNLOAD .UF2 NOW 按钮下载固件到本地,随后拷贝至BPI-Bit-S2 UF2 Bootloader模式下的磁盘中,自动复位后即可使用。
Arduino
Arduino 是一个开源嵌入式软硬件开发平台,用来供用户制作可交互式的嵌入式项目。
Arduino 集成开发环境(IDE)是此平台的软件核心,使用C/C++编程语言开发项目。
Arduino 最大的特性就是提供统一的API来开发所有它所支持的微控制器,具有非常良好的代码可移植性和可复用性。
此外它简化了搭建开发环境的过程,所有它所支持的微控制器的开发环境都可一键安装配置。
它还提供简单的一键式机制来编译和上传程序到微控制器中运行。
Arduino IDE中还集成了很多例程,辅有大量的注释,能帮助用户快速上手。
Arduino 社区中积累的大量的优秀开源项目可供参考与学习,还有相当多的芯片制造商提供的驱动库与API。