wenyangzeng 发表于 2017-6-10 21:24:02

PYB LR Nano开发板评测(3) OLED

本帖最后由 wenyangzeng 于 2017-6-11 08:32 编辑

PYB LR Nano开发板评测(1)编程环境
PYB LR Nano开发板评测(2)编程入门
PYB LR Nano开发板评测(3) OLED

从现在开始,我们要使用免费开源的Python来为PYB Nano写代码了。到http://www.python.org下载最新版本Python3.6.1。

在Windows 64位操作系统下安装它。


打开IDEL(Python3.6 64-bit),键入print('Hello ST Semiconductor')
它立即被显示在屏幕上。我们的Python已经安装成功。

接下来,本次评测准备为开发板配置一片SSD1306-OLED来显示各种运行结果和数据。


                     硬件连接


SSD1306驱动网上已经有现成可用,下载解压,文件夹内有2个文件:
font.py
ssd1306.py




用micro-USB线连接开发板到PC机,把以上2个文件复制到PYBFLASH中。
那个main.py我们要添加代码。

接下来是修改main.py。


在IDEL(Python3.6 64-bit)点击“Flie”->“Open”,
打开PYBFLASH驱动器中的main.py,

import pyb
from ssd1306 import SSD1306

# SPI
display = SSD1306(pinout={'dc': 'Y9',
                        'res': 'Y10'},
                  height=64,
                  external_vcc=False)

# I2C connected to Y9, Y10 (I2C bus 2)
# display = SSD1306(pinout={'sda': 'Y10',
#                           'scl': 'Y9'},
#                   height=64,
#                   external_vcc=False)

led_red = pyb.LED(1)
led_red.off()

try:
display.poweron()
display.init_display()

display.draw_text(25,10,'PYB Nano ',size=2,space=1)
display.draw_text(30,35,'OLED DEMO..',size=1,space=1)
display.draw_text(15,50,'ST Semiconductor',size=1,space=1)

# Write display buffer
display.display()
pyb.delay(10000)

x = 0
y = 0
direction_x = True
direction_y = True

while True:
    # Clear the previous lines
    prev_x = x
    prev_y = y

    # Move bars
    x += (1 if direction_x else -1)
    y += (1 if direction_y else -1)

    # Bounce back, if required
    if x == 128:
       direction_x = False
       x = 126
    elif x == -1:
       direction_x = True
       x = 1
    if y == 64:
       direction_y = False
       y = 63
    elif y == -1:
       direction_y = True
       y = 1

    # Draw new lines
    for i in range(64):
      display.set_pixel(prev_x, i, False)
      display.set_pixel(x, i, True)
    for i in range(128):
      display.set_pixel(i, prev_y, False)
      display.set_pixel(i, y, True)

    # Make sure the corners are active
    display.set_pixel(0,   0,True)
    display.set_pixel(127, 0,True)
    display.set_pixel(0,   63, True)
    display.set_pixel(127, 63, True)
   
    # Write display buffer
    display.display()

except Exception as ex:
led_red.on()
print('Unexpected error: {0}')
把以上代码复制到main.py。我也是代码搬运工,只是稍加修改而已。:L



代码中驱动OLED使用默认的SPI驱动方式,
点击:“Run”->"Run Module F5",



提示的那个错误可不理会它,菜鸟本人也不知其所以然,待高手解答。

在“我的电脑”中弹出PYBFLASH驱动器,拔下USB线,再插上,激动人心的时刻到来了。原来开发Python就这么简单。

http://player.youku.com/player.php/sid/XMjgxNjU1NTc3Ng==/v.swf


菜鸟的PYB LR Nano开发板评测以本贴添加OLED屏而结束,你的PYB LR Nano开发板编程工作则即将开始。你一定能做的更好!
感谢版主提供的快速指南:http://my.oschina.net/shaoziyang/blog/778419


wenyangzeng 发表于 2017-6-10 21:48:17

为了大家好 发表于 2017-6-10 21:43
找到个最新翻墙软件,无界,超好用!!!

有时360软建可能会误报,身在中国,原因你懂的


2楼你的帖子是不是贴错地方了?;P

weigr 发表于 2017-6-12 12:50:50

想直接用nucleo的IO给OLED供电及驱动:loveliness:

wenyangzeng 发表于 2017-6-12 15:08:33

weigr 发表于 2017-6-12 12:50
想直接用nucleo的IO给OLED供电及驱动

为何要从IO供电?板子上面从USB来的5V经过稳压的3.3V直接供更可靠。IO给OLED供电的驱时,你不可能下拉供电,驱动能力有限。

qingy 发表于 2017-6-15 11:28:01

厉害,能用python 编单片机代码,真牛 我第一次知道
页: [1]
查看完整版本: PYB LR Nano开发板评测(3) OLED