鱼C论坛

 找回密码
 立即注册
查看: 533|回复: 2

[新人报道] micro python oled画彩虹

[复制链接]
发表于 2023-12-18 19:08:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
使用micro python在ssd1306上画个彩虹

@FishC

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-18 19:10:35 | 显示全部楼层
好的,让我们一步步创建一个在ssd1306上绘制彩虹的MicroPython程序。首先,我们需要连接硬件。确保你已经将SSD1306 OLED屏幕正确连接到你的开发板上。

然后,我们需要安装`micropython-adafruit-ssd1306`库。将安装命令输入到MicroPython控制台中:
  1. import upip
  2. upip.install('micropython-adafruit-ssd1306')
复制代码
接下来,我们可以开始编写代码:
  1. # 导入所需的库
  2. import machine
  3. import ssd1306
  4. import time
  5. # 设置OLED屏幕的分辨率和I2C地址
  6. WIDTH = 128
  7. HEIGHT = 64
  8. i2c = machine.I2C(-1, machine.Pin(5), machine.Pin(4))
  9. oled = ssd1306.SSD1306_I2C(WIDTH, HEIGHT, i2c)
  10. # 设置彩虹颜色
  11. colors = [(255, 0, 0), (255, 165, 0), (255, 255, 0), (0, 128, 0), (0, 0, 255), (75, 0, 130), (238, 130, 238)]
  12. # 清空屏幕
  13. oled.fill(0)
  14. oled.show()
  15. # 定义彩虹的宽度和高度
  16. rainbow_width = WIDTH // len(colors)
  17. rainbow_height = HEIGHT
  18. # 绘制彩虹
  19. for i in range(len(colors)):
  20.     oled.fill_rect(i * rainbow_width, 0, rainbow_width, rainbow_height, colors[i])
  21.     oled.show()
  22.     time.sleep(0.1)
  23. # 显示彩虹30秒钟
  24. time.sleep(30)
复制代码

运行上述代码,将在OLED屏幕上绘制一个彩虹。每秒钟显示一个颜色,持续30秒钟。

希望这个例子对你有所帮助!如果你还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-18 19:12:18 | 显示全部楼层
当然可以!首先你需要准备一个SSD1306 OLED显示屏和一个MicroPython设备(如MicroPython ESP32开发板)。然后按照以下步骤进行操作:

1. 导入必要的库和定义一些常量:
  1. import machine
  2. import ssd1306
  3. WIDTH = 128
  4. HEIGHT = 64
复制代码

2. 初始化OLED屏幕:
  1. i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4))
  2. oled = ssd1306.SSD1306_I2C(WIDTH, HEIGHT, i2c)
复制代码

3. 定义彩虹颜色的RGB值列表:
  1. colors = [
  2.     (255, 0, 0),     # 红色
  3.     (255, 165, 0),   # 橙色
  4.     (255, 255, 0),   # 黄色
  5.     (0, 255, 0),     # 绿色
  6.     (0, 0, 255),     # 蓝色
  7.     (75, 0, 130),    # 靛蓝色
  8.     (238, 130, 238)  # 紫色
  9. ]
复制代码

4. 开始画彩虹:
  1. step = WIDTH // len(colors)  # 计算每个彩虹带的宽度
  2. for i in range(len(colors)):
  3.     color = colors[i]
  4.     x = i * step
  5.     oled.fill_rect(x, 0, step, HEIGHT, color)
  6.     oled.show()
复制代码

5. 清空屏幕并释放资源:
  1. oled.fill(0)
  2. oled.show()
  3. oled.poweroff()
复制代码

完整的代码如下所示:
  1. import machine
  2. import ssd1306
  3. WIDTH = 128
  4. HEIGHT = 64
  5. i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4))
  6. oled = ssd1306.SSD1306_I2C(WIDTH, HEIGHT, i2c)
  7. colors = [
  8.     (255, 0, 0),     # 红色
  9.     (255, 165, 0),   # 橙色
  10.     (255, 255, 0),   # 黄色
  11.     (0, 255, 0),     # 绿色
  12.     (0, 0, 255),     # 蓝色
  13.     (75, 0, 130),    # 靛蓝色
  14.     (238, 130, 238)  # 紫色
  15. ]
  16. step = WIDTH // len(colors)  # 计算每个彩虹带的宽度
  17. for i in range(len(colors)):
  18.     color = colors[i]
  19.     x = i * step
  20.     oled.fill_rect(x, 0, step, HEIGHT, color)
  21.     oled.show()
  22. oled.fill(0)
  23. oled.show()
  24. oled.poweroff()
复制代码

运行上述代码后,你将在OLED屏幕上看到一个彩虹。每个彩虹带的颜色从左到右依次为红色、橙色、黄色、绿色、蓝色、靛蓝色和紫色。最后,屏幕会被清空并关闭。

注意:这只是一个简单的彩虹示例,如果你想要更复杂的效果,可以在代码中进行相应的修改。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 10:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表