Difference between revisions of "BPI-Bit-S2 STEAM 教育开发板"

From Banana Pi Wiki
Jump to: navigation, search
(介绍)
(CircuitPython)
 
(27 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:Bit 的后继型号,继承了大部分核心硬件功能。
+
'''BPI-Bit-S2''' 开发板 是 [[BPI-Bit]] 的后继型号,继承了大部分硬件功能。
 +
 
 +
IO与micro:bit兼容,可以使用大部分micro:bit的周边配件。
  
 
支持 Webduino, Arduino, MicroPython & CircuitPython 编程环境 ,适合应用于STEAM教育领域。
 
支持 Webduino, Arduino, MicroPython & CircuitPython 编程环境 ,适合应用于STEAM教育领域。
Line 25: Line 27:
 
* Type-C USB接口
 
* Type-C USB接口
 
* 外形尺寸 5x5cm
 
* 外形尺寸 5x5cm
* 金手指定义与micro:bit完全兼容
+
* 金手指IO定义与micro:bit完全兼容
  
== 硬件升级及功能对比 ==
+
== 功能对比 ==
  
 
{| class="wikitable"  
 
{| class="wikitable"  
 
|-
 
|-
! colspan="3" style="text-align:center; background-color:#FFCB2F;" | BPI:Bit 与 BPI-Bit-S2 对比表
+
! colspan="3" style="text-align:center; background-color:#FFCB2F;" | micro:bit 与 BPI-Bit-S2
 
|-
 
|-
 
| 型号
 
| 型号
| BPI:Bit
+
| micro:bit V2.2X
 
| BPI-Bit-S2
 
| BPI-Bit-S2
 
|-
 
|-
 
| MCU主控芯片
 
| MCU主控芯片
| ESP32
+
| Nordic nRF52833
| ESP32-S2
+
| Espressif ESP32-S2
 
|-
 
|-
| ROM
+
| 核心频率
| 448 KB
+
| 64MHz
| 128 KB
+
| 240MHz
 
|-
 
|-
 
| RAM
 
| RAM
| 520 KB
+
| 128KB
 
| 320 KB
 
| 320 KB
 
|-
 
|-
 
| FlASH ROM
 
| FlASH ROM
| 4096 KB
+
| 512KB
 
| 4096 KB
 
| 4096 KB
 
|-
 
|-
Line 58: Line 60:
 
|-
 
|-
 
| 无线功能
 
| 无线功能
| WIFI,Bluetooth
+
| Bluetooth,microbit-radio
| WIFI
+
| WIFI, IEEE 802.11 b/g/n, 2.4Ghz
 
|-
 
|-
| 彩色LED
+
| LED
| 25颗 WS2812-5050 灯珠
+
| 25颗 红色灯珠
| 25颗 WS2812-3535 灯珠
+
| 25颗 WS2812-3535 彩色灯珠
 
|-
 
|-
 
| 按键
 
| 按键
 
| 2个可编程按键,1个RST按键
 
| 2个可编程按键,1个RST按键
| 2 个可编程按键,1个BOOT按键,1个RST按键
+
| 2个可编程按键,1个BOOT按键,1个RST按键
 
|-
 
|-
 
| 蜂鸣器
 
| 蜂鸣器
| 5.3x5.3mm尺寸蜂鸣器
+
|
| 8.5x8.5mm尺寸蜂鸣器
+
|
 +
|-
 +
| 麦克风
 +
| 有
 +
| 无
 
|-
 
|-
| USB接口
+
| USB插座
 
| Micro USB
 
| Micro USB
 
| Type-C USB
 
| Type-C USB
 
|-
 
|-
 
| USB转TTL
 
| USB转TTL
|
+
| nRF52833-QDAA or nRF52820-QDAA
|
+
| MCU芯片内置
 
|-
 
|-
| 电池接口
+
| 电池插座
 
| 有
 
| 有
 
| 无
 
| 无
 
|-
 
|-
 
| IO
 
| IO
| 19 pin 金手指IO(兼容micro:bit配件)
+
| 19 pins金手指IO,鳄鱼夹卡口,支持触摸感应
| 19 pin金手指IO(兼容micro:bit配件),鳄鱼夹卡口,背部 19 pin 触点
+
| 19 pins金手指IO(兼容micro:bit),鳄鱼夹卡口,支持触摸感应
 
|-
 
|-
| 九轴传感器
+
| 运动传感器
 
| 有
 
| 有
 
| 无
 
| 无
 
|-
 
|-
 
| 光敏传感器
 
| 光敏传感器
| 2个
+
|
 
| 2个
 
| 2个
 
|-
 
|-
 
| 温度传感器
 
| 温度传感器
| 1个
+
| 1个芯片温度传感器
| 1个
+
| 1个板载温度传感器
 
|}
 
|}
  
Line 135: Line 141:
 
|- style="vertical-align:middle;"
 
|- style="vertical-align:middle;"
 
| GPIO
 
| GPIO
| 已引出19个可用GPIO引脚,可用外设功能:ADC,TOUCH,PWM,SPI,I2C,I2S,Pulse counter, RMT,TWAI® Controller,SD/MMC,LCD_CAMERA
+
| 已引出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 是一个开源嵌入式软硬件开发平台,用来供用户制作可交互式的嵌入式项目。
  
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]
+
Arduino 集成开发环境(IDE)是此平台的软件核心,使用C/C++编程语言开发项目。
* [https://docs.espressif.com/projects/arduino-esp32/en/latest/libraries.html#apis Arduino-ESP32 APIs]
 
  
Preparing...
+
Arduino 最大的特性就是提供统一的API来开发所有它所支持的微控制器,具有非常良好的代码可移植性和可复用性。
  
== MicroPython ==
+
此外它简化了搭建开发环境的过程,所有它所支持的微控制器的开发环境都可一键安装配置。
  
[[File:Mircopython.png | 800px]]
+
它还提供简单的一键式机制来编译和上传程序到微控制器中运行。
  
MicroPython实现了大部分Python 3 特性和语法,易学易上手,验证程序效果无需编译直接下载进芯片运行。
+
Arduino IDE中还集成了很多例程,辅有大量的注释,能帮助用户快速上手。
  
无论是否有编程基础,MicroPython的上手难度绝对远低于其他编程语言,其代码易读性高,且开源社区有多年积累的丰富资源,就如同Python一样拥有极强的生命力与应用价值。
+
Arduino 社区中积累的大量的优秀开源项目可供参考与学习,还有相当多的芯片制造商提供的驱动库与API。
  
Preparing...
+
* [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


介绍

BPI-Bit with ESP32
BPI-Leaf-S3 with ESP32-S3
BPI-AI Kendryte K210 RISC-V
BPI-UNO32 with ESP32 design

BPI-Bit-S2 banner.jpg

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 v2 interface.jpg

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扩展板配件。

Bpi bit v2 goldfinger.jpg

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

Webduino logo 1200x350.jpg

webduino在线积木编程平台

webduino积木编程平台 Windows安装版

webduino在线教学手册

MicroPython

Mircopython.png

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 Repo header logo.jpg

CircuitPython是MicroPython的一个教育友好型的开源衍生产品,由Adafruit Industries支持与开发。

在易用性上,它在MicroPython的基础上更进一步。

使用CircuitPython固件的开发板连接PC时,PC将会立即得到一个USB存储磁盘,将python脚本文件复制进此磁盘即可让程序在此开发板上运行。

这就做到了让用户开箱即用,因为绝大多数现代个人操作系统和家用PC都是支持USB存储磁盘的。

当然为了能使用REPL,至少还是需要安装一个串口通信软件,或是支持这个功能的文本编辑器,例如Mu编辑器。

CircuitPython 社区提供极其丰富的外设驱动库,API文档,教程。即使没有编程基础,没有硬件基础,从零开始也可快速上手。

CircuitPython不支持定时器,硬件中断等一些特定用于微控制器的库,也不支持多线程的_thread 库,仅提供编写并发代码的 asyncio 库。

在CircuitPython所支持的微控制器和其Blinka所支持的单板计算机(SBCs)中,代码具有很好的可移植性,这得益于它在统一API上的努力。

BPI-Bit-S2 CircuitPython 下载页面

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 logo 1200x350.png

Arduino 是一个开源嵌入式软硬件开发平台,用来供用户制作可交互式的嵌入式项目。

Arduino 集成开发环境(IDE)是此平台的软件核心,使用C/C++编程语言开发项目。

Arduino 最大的特性就是提供统一的API来开发所有它所支持的微控制器,具有非常良好的代码可移植性和可复用性。

此外它简化了搭建开发环境的过程,所有它所支持的微控制器的开发环境都可一键安装配置。

它还提供简单的一键式机制来编译和上传程序到微控制器中运行。

Arduino IDE中还集成了很多例程,辅有大量的注释,能帮助用户快速上手。

Arduino 社区中积累的大量的优秀开源项目可供参考与学习,还有相当多的芯片制造商提供的驱动库与API。

资料与资源

BPI-Bit-S2原理图

样品购买