BPI-Bit-S2 STEAM 教育开发板
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上的努力。
Arduino
Arduino 是一个开源嵌入式软硬件开发平台,用来供用户制作可交互式的嵌入式项目。
Arduino 集成开发环境(IDE)是此平台的软件核心,使用C/C++编程语言开发项目。
Arduino 最大的特性就是提供统一的API来开发所有它所支持的微控制器,具有非常良好的代码可移植性和可复用性。
此外它简化了搭建开发环境的过程,所有它所支持的微控制器的开发环境都可一键安装配置。
它还提供简单的一键式机制来编译和上传程序到微控制器中运行。
Arduino IDE中还集成了很多例程,辅有大量的注释,能帮助用户快速上手。
Arduino 社区中积累的大量的优秀开源项目可供参考与学习,还有相当多的芯片制造商提供的驱动库与API。