21浏览
查看: 21|回复: 0

[ESP8266/ESP32] FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动

[复制链接]
本帖最后由 HonestQiao 于 2026-4-9 09:50 编辑

一、背景

4月7日,白鹰盟盟主特没谱在社交媒体上发文威胁波斯猫称,“今晚,整个文明将game over”。全球所有人都绷紧了神经,我们即将成为见证历史的人。

当天,ESP32试用活动交流群,大家都意识到有重大事件即将发生,默不作声。

上午10点33分,木子姐姐在群里问:"有老师会用P4么。"
仔爸还没用过,我说用过几次。

上午10点43分,木子姐姐说:"做个轻量的试用,手上有3套P4套装,给本群做个试用,需要的亲,找我申请,截止今天下午2点哈。数量只有3个。"
仔爸说申请,我悄摸摸的跟木子姐姐申请了一块。

上午10点49分,木子姐姐宣布:“已申请完了!”
速度可真快啊!

特没谱所说的今晚,实际上是北京时间4月8日早上,所以,7日晚上,我美美的睡了一觉。
本来想着睡一觉醒来,见证历史(特没谱威胁让波斯猫文明game over)。
结果早上醒来,历史没见证到,收到P4套装了。
这速度,杠杠滴!!!


我以为木子姐姐发快递选的东风5C,使命必达。
结果米菲爸爸说:“其实是木子晚上骑着电动车放你家门口去的。”


好了,背景讲完了,说正事了。

二、开箱
打开DFRobot经典的橙色盒子,再打开经典的黑色小包装,就能看到P4套装的小袋子:

FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图1





来仔细看看合体的P4板子和扩展板:
FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图2

拆开看看:
FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图3
可以看到接口丰富的很,很方便连接外部设备。

再看看背面:
FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图4
P4板子的背面,有SD卡插口,还有C6芯片用于联网。
而扩展板的背面,则标注了所有的引脚编号和用途,非常贴心。


三、烧录micropython
首先,直接从 https://micropython.org/download/ESP32_GENERIC_P4/ 下载  Firmware (Support for external C6 WiFi/BLE) 版本的bin文件:
v1.28.0 (2026-04-06) .bin 下载附件ESP32_GENERIC_P4-C6_WIFI-20260406-v1.28.0.zip

然后,用Flash Download Tool或者其他工具,烧录到 0x2000 地址即可。

我用的是esptool工具,直接用命令:
  1. esptool write_flash 0x2000 /Users/HonestQiao/Downloads/ESP32_GENERIC_P4-C6_WIFI-20260406-v1.28.0.bin
复制代码


当然,你也可以用Thonny进行烧录:
FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图7


最后,在Thonny中,打开对应的设备:
FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图8

出现如下的信息,表示成功:
FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图9


四、双OLED屏驱动

我有好几块OLED屏:
FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图5
1.1寸,SSH1107,96x96,白光
0.96寸,SSD1306,128x64,白光
0.96寸,SSD1306,128x64,蓝光
0.78寸,SSD1107,128x80,白光
0.91寸,SSD1306,128x32,白光

我之前在ESP32板子上,驱动过单个OLED,不过ESP32P4性能强劲,那就一次驱动两个吧。


先看看扩展板上的接口:
FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图10
FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图11

虽然I2C区域有多组I2C接口,但是都连到了同一组SCL(8)、SDA(7),而这些OLED的地址都是0x3c,所以不能在I2C接口连接多块。
因此,我把原有的SPI接口上,又接了一组I2C,这样子就可以分别用作I2C0、I2C1,同时接两块OLED了。
FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图12

我用的实际代码如下:下载附件P4_两块OLED.zip
  1. from math import cos,sin,pi
  2. from machine import SoftI2C,Pin
  3. from ssd1306 import SSD1306_I2C
  4. from sh1107 import SH1107_I2C
  5. import time
  6. cube = [[-15,-15,-15],[-15,15,-15],[15,15,-15],[15,-15,-15],[-15,-15,15],[-15,15,15],[15,15,15],[15,-15,15]]
  7. lineid = [1,2,2,3,3,4,4,1,5,6,6,7,7,8,8,5,8,4,7,3,6,2,5,1]
  8. i2c0 = SoftI2C(scl=Pin(8),sda=Pin(7))
  9. i2c1 = SoftI2C(scl=Pin(28),sda=Pin(29))
  10. oled1 = SSD1306_I2C(128, 32, i2c0, addr=0x3c)
  11. oled2 = SH1107_I2C( 128, 80, i2c1, address=0x3c)
  12. oled1.fill(0)
  13. oled1.text('SSD1306', 0, 0, 1)
  14. oled1.show()
  15. oled2.fill(0)
  16. oled2.text('SSH1107', 0, 0, 1)
  17. oled2.show()
  18. time.sleep(3)
  19. def matconv(a,matrix):
  20.     res=[0,0,0]
  21.     for i in range(0,3):
  22.         res[i]=matrix[i][0]*a[0]+matrix[i][1]*a[1]+matrix[i][2]*a[2]
复制代码


上面的代码,同时驱动两个I2C,在两块OLED屏幕上,显示1个旋转的立方体。
使用前,需要根据连接的具体屏幕,修改:
  1. oled1 = SSD1306_I2C(128, 32, i2c0, addr=0x3c)
  2. oled2 = SH1107_I2C( 128, 80, i2c1, address=0x3c)
复制代码


最终,具体效果如下:
FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图14

FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图15

FireBeetle 2 ESP32 P4套装开箱和双OLED屏驱动图16

跑起来,效果非常流畅。


怎么样,如果你有P4,有多快OLED,赶紧试试吧!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail