比派科技banana pi专区
直播中

ALSET

3年用户 269经验值
擅长:可编程逻辑,电源/新能源,嵌入式技术,处理器/DSP
私信 关注
[经验]

【Banana PI Leaf S3开发板试用体验】开发板快速上手

使用MicroPython控制炫彩灯

BananaPI Leaf S3开发板快速上手
大信(QQ:8125036)
      今天拿到电子发烧网上申请到的Banana PI Leaf S3开发板,在中午休息时候,上手试了一下。开发板非常简洁,一个小的板子,两边开了排针孔。它还有一个艺名:香蕉派。
微信图片_20221014160727.jpg
       其它各种派多是以ARM Linux 为基础。但此香蕉派BPI-Leaf-S3则不同,它采用的是乐鑫ESP32-S3 双核 WiFi 和 BLE AI 处理器,可以兼容 ESP32-S3-DevKitC-1、设有内置的 USB 转 TTL 芯片,还增加了对电池和 I2C 连接器的支持。
       看了介绍,香蕉派 BPI-Leaf系列是为物联网设计的低功耗微控制器,支持创客教育和STEAM教育的一款开发板。BPI-Leaf-S3采用乐鑫ESP32-S3芯片设计,采用Xtensa®32位LX7双核处理器,主频最高可达240 MHz。支持2.4 GHz Wi-Fi和蓝牙®LE双模无线通信,外设兼容低功耗硬件设计,深度睡眠模式下功耗仅为10uA。主控制器支持USB和外接3.7V锂电池两种供电方式,可实现自动电源开关功能。
微信图片_20221014160732.jpg
一、开发板技术规格
硬件关键特性:
1. MCU: ESP32-S3,Xtensa® 32 bit LX7
2. 拓展 PSRAM , FLASH
3. 超低功耗 10uA
4. 2.4G WIFI无线 ,蓝牙Bluetooth 5 ,Bluetooth mesh网络
5. GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART ,LCD,CAMERA ,USB , JTAG
6. 1* 4pin I2C 连接
7. 1 * USB Type-C接口
8. 1 * 2pin 电池接口
9. 1 * Neopixel LED
开发板硬件接口:
4.png
开发板硬件规格:
  
SoC
  
  
ESP32-S3,Xtensa® dual-core 32-bit LX7 microprocessor
  
  
Clock  Frequency
  
  
240MHz  MAX
  
  
Ambient  Temperature
  
  
-40℃~+85℃
  
  
Internal  ROM
  
  
384 KB
  
  
Internal  SRAM
  
  
320 KB
  
  
External  FLASH ROM
  
  
8MB
  
  
External  PSRAM
  
  
8MB
  
  
WIFI
  
  
IEEE  802.11 b/g/n ,2.4Ghz,150Mbps
  
  
Bluetooth
  
  
Bluetooth  5 ,Bluetooth mesh
  
  
GPIO
  
  
BPI-Leaf-S3  has led out 36 available gpios
  
  
ADC
  
  
2 ×  12-bit SAR ADCs, up to 20 channels
  
  
Touch  Sensor
  
  
14
  
  
SPI
  
  
4
  
  
I2C
  
  
2
  
  
I2S
  
  
2
  
  
LCD
  
  
1 × LCD  interface (8-bit ~16-bit parallel RGB, I8080 and MOTO6800)
  
  
CAMERA
  
  
1 × DVP  8-bit ~16-bit camera interface
  
  
UART
  
  
3
  
  
PWM
  
  
8  channels 14 bits
  
  
MCPWM
  
  
2
  
  
USB
  
  
1 ×  full-speed USB OTG,female Type-C socket
  
  
USB  Serial/JTAG controller
  
  
1,CDC-ACM ,JTAG
  
  
Temperature  sensor
  
  
1,range of –20 °C to 110 °C
  
  
SD/MMC
  
  
1 × SDIO  host controller with 2 slots,SD 3.0,SD 3.01,SDIO 3.0,CE-ATA 1.1,MMC 4.41,eMMC  4.5,eMMC 4.51
  
  
TWAI®  controller
  
  
1 ,compatible with ISO 11898-1 (CAN Specification 2.0)
  
  
General  DMA controller (GDMA)
  
  
5  transmit channels and 5 receive channels
  
  
RMT
  
  
4 TX  channels,4RX channels.Eight channels share a 384 x 32-bit RAM
  
  
Pulse  Count Controller
  
  
4  independent pulse counters (units).Each unit consists of two independent  channels
  
  
Timers
  
  
4 ×  54-bit general-purpose timers.1 × 52-bit system timer.3 × watchdog timers
  
  
External  crystal oscillator
  
  
40Mhz
  
  
RTC and  Low­Power Management
  
  
Power  Management Unit (PMU) + Ultra-­Low-­Power Coprocessor(ULP)
  
  
Deep-sleep  consumption current
  
  
10uA
  
  
Operating  Voltage
  
  
3.3V
  
  
Input  Voltage
  
  
3.3V~5.5V
  
  
Maximum  discharge current
  
  
2A@3.3V LDO
  
  
USB  charge
  
  
Support
  
  
Maximum  charging current
  
  
500mA
  
  
Neopixel  LED
  
  
1
  
二、连接电脑建立开发环境
     BananaPI Leaf S3开发板使用的是Type-C 的接口与PC连接,找一个标准的Type-C USB线插入开发板和电脑,即完成连接。
      连接线后,开发板上的一个LED亮起,表示已经上电。其它有个LED微微亮起,看来是板子有默认的系统在运行中。
此时在PC上点开我的电脑,设备管理器,查看这个设备的接口,可以看到是USB转串,但是没有提示安装任何驱动程序,直接就支持的。这个可真是方便。
       1.png
       在得到开发板的串行通讯口后,就可以打开串行工具软件来通讯。这里使用的是SureCRT多功能超级终端软件,如下图创建并设置好串行通讯连接,点击连接即进入到了板子里了。
      2.png
在串行里输入
help()
即出现一些提示,包括怎么控制 LED,怎么连接网络灯,连帮助都是在线的,真是太方便了,但这样是不是占用板上资源呢。
3.png
       从串行输出信息看,该板子串行口处于一个命令交互模式,从提示信息可以看到它是MicroPython ,这很有意思。笔者对Python是非常的熟悉了,对这样一个单片机上运行MicroPython更觉得有意思,同时也疑惑,它能跑的起来吗?跑的流畅吗,速度怎么样,会很费系统资源吗,怎么完成硬件的IO操作,怎么完成硬件通讯以及逻辑处理,能做些什么呢等等。
      既然是开发python脚本,那么任何一个文件编辑器就应该可以了,我电脑上刚好安装Python自带的IDE,这个pythonIDE 虽然比较简陋,但编写和脚本还是绰绰有余了,赖的去装其它的IDE开发工具,就用它了。
5.png
三、了解学习MicroPython
       带着以上这些疑,先去了解了一下MicroPython,简单的介绍如下:
MicroPython是Python的一个精简版本,它是为了运行在单片机这样的性能有限的微控制器上,最小体积仅256K,运行时仅需16K内存。
     MicroPython是基于Python 3.4的语法标准。因为要适应嵌入式微控制器,所以裁剪了大部分标准库,仅保留部分模块如math、sys的部分函数和类。此外,很多标准模块如json、re等在MicroPython中变成了以u开头的ujson、ure,表示针对MicroPython开发的标准库。
      现在MicroPython除了可以运行在最初开发的pyboard微控制器上外,还可以运行在大量基于ARM的嵌入式系统,如Arduino,这样就可以通过Python来非常方便地开发自动控制、机器人等复杂的应用。
      MicroPython还有很多高级功能,例如交互式提示、任意精度整数、闭包、列表理解、生成器、异常处理等。 然而,它足够紧凑, MicroPython 设计时是尽可能与普通 Python 兼容,这样可以将代码从桌面传输到微控制器或嵌入式系统。
MicroPython是在裸机上运行的完整 Python 编译器和运行时。 您将获得一个交互式提示 (REPL) 以立即执行命令,以及从内置文件系统运行和导入脚本的能力。
      MicroPython尽量与 Python(称为CPython)尽可能兼容,包括用于访问低级硬件的“机器”等模块也实现了一些核心Python库。
一个简单的MicroPython是操作硬件的例子, 直接在串行的终端上输入命令即可:
  1. import machine

  2. # 点亮 LED1 ,假设LED1接在GPIO1上,并且共阴极
6.png
   这样就可以这样简单的操作一个LED的点亮和关闭,也可以打印log到串口窗口
四、操作GPIO点亮开发板的炫彩灯
        了解了Banana PI Leaf S3开发板上的MicroPython,那么就可以来做点测试了,首先找到有段控制LED灯的代码,在串口交互行里输入以下python脚本,可以看到炫彩灯的变化:
         脚本如下:复制后直接copy到串口终端里。
     
  1. from machine import Pin
  2. from neopixel import NeoPixel
  3. import time

  4. pin_48 = Pin(48, Pin.OUT)
  5. np = NeoPixel(pin_48, 1,bpp=3, timing=1)

  6. RED = (255, 0, 0)
  7. ORANGE = (255, 100, 0)
  8. YELLOW = (255, 255, 0)
  9. GREEN = (0, 255, 0)
  10. CYAN = (0, 255, 255)
  11. BLUE = (0, 0, 255)
  12. PURPLE = (180, 0, 255)
  13. WHITE = (255, 255, 255)
  14. OFF = (0, 0, 0)

  15. color_list = [RED,ORANGE,YELLOW,GREEN,CYAN,BLUE,PURPLE,WHITE,OFF]
  16. brightness = 0.1

  17. while True:
  18. for i in color_list:
  19. color = (round(i[0]*brightness),round(i[1]*brightness),round(i[2]*brightness))
  20. np[0] = color
  21. np.write()
  22. time.sleep(0.2)
    在串口终端输入带逻辑控制的的脚本后,回三次车,脚本即开始自动执行,执行中按Ctrl-C中止执行,退回到交互命令方式。
9.jpg
五、上手试用总结
       通过不到半小时的试用,很快上手Banana PI Leaf S3开发板的micropython开发了,也没有安装其它专用的工具,直接使用notepad或python IDE工具,即可上手开发,简单快捷,方便轻便,可谓老少皆宜。再对照micropython文档与硬件的接口资料,就可以专注的开发设计应用了。
体验下来,这版子的开发体验正如其名里的一个字:真香。



  • 7.png

回帖(1)

华仔stm32

2022-10-14 17:44:14
文章真的很精彩,感谢分享!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分