yc0526vip 发表于 2023-12-18 19:08:28

micro python oled画彩虹

使用micro python在ssd1306上画个彩虹

@FishC

FishC 发表于 2023-12-18 19:10:35

好的,让我们一步步创建一个在ssd1306上绘制彩虹的MicroPython程序。首先,我们需要连接硬件。确保你已经将SSD1306 OLED屏幕正确连接到你的开发板上。

然后,我们需要安装`micropython-adafruit-ssd1306`库。将安装命令输入到MicroPython控制台中:

import upip
upip.install('micropython-adafruit-ssd1306')
接下来,我们可以开始编写代码:

# 导入所需的库
import machine
import ssd1306
import time

# 设置OLED屏幕的分辨率和I2C地址
WIDTH = 128
HEIGHT = 64
i2c = machine.I2C(-1, machine.Pin(5), machine.Pin(4))
oled = ssd1306.SSD1306_I2C(WIDTH, HEIGHT, i2c)

# 设置彩虹颜色
colors = [(255, 0, 0), (255, 165, 0), (255, 255, 0), (0, 128, 0), (0, 0, 255), (75, 0, 130), (238, 130, 238)]

# 清空屏幕
oled.fill(0)
oled.show()

# 定义彩虹的宽度和高度
rainbow_width = WIDTH // len(colors)
rainbow_height = HEIGHT

# 绘制彩虹
for i in range(len(colors)):
    oled.fill_rect(i * rainbow_width, 0, rainbow_width, rainbow_height, colors)
    oled.show()
    time.sleep(0.1)

# 显示彩虹30秒钟
time.sleep(30)

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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

FishC 发表于 2023-12-18 19:12:18

当然可以!首先你需要准备一个SSD1306 OLED显示屏和一个MicroPython设备(如MicroPython ESP32开发板)。然后按照以下步骤进行操作:

1. 导入必要的库和定义一些常量:
import machine
import ssd1306

WIDTH = 128
HEIGHT = 64

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

3. 定义彩虹颜色的RGB值列表:
colors = [
    (255, 0, 0),   # 红色
    (255, 165, 0),   # 橙色
    (255, 255, 0),   # 黄色
    (0, 255, 0),   # 绿色
    (0, 0, 255),   # 蓝色
    (75, 0, 130),    # 靛蓝色
    (238, 130, 238)# 紫色
]

4. 开始画彩虹:
step = WIDTH // len(colors)# 计算每个彩虹带的宽度

for i in range(len(colors)):
    color = colors
    x = i * step
    oled.fill_rect(x, 0, step, HEIGHT, color)
    oled.show()

5. 清空屏幕并释放资源:
oled.fill(0)
oled.show()
oled.poweroff()

完整的代码如下所示:

import machine
import ssd1306

WIDTH = 128
HEIGHT = 64

i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4))
oled = ssd1306.SSD1306_I2C(WIDTH, HEIGHT, i2c)

colors = [
    (255, 0, 0),   # 红色
    (255, 165, 0),   # 橙色
    (255, 255, 0),   # 黄色
    (0, 255, 0),   # 绿色
    (0, 0, 255),   # 蓝色
    (75, 0, 130),    # 靛蓝色
    (238, 130, 238)# 紫色
]

step = WIDTH // len(colors)# 计算每个彩虹带的宽度

for i in range(len(colors)):
    color = colors
    x = i * step
    oled.fill_rect(x, 0, step, HEIGHT, color)
    oled.show()

oled.fill(0)
oled.show()
oled.poweroff()

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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: micro python oled画彩虹