2024年4月7日 星期日

micro:bit OLED1306 製作螢幕畫面

 電子元件有micro:bit主板、iot:bit底板、以及SSD OLED1306

OLED驅動程式:fizban99/microbit_ssd1306

程式編輯工具:micro:bit Python Editor

程式檔案管理:除了main.py外,其餘檔案來自OLED驅動程式

1.利用小畫家以128*64來設計畫面


2.改寫OLED驅動程式microbit_ssd1306/sample_images/bitmapconverter.py的程式實現轉換:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import struct
from PIL import Image
filename = 'treeart'

pic = [0x00 for _ in range(128*64)]

bmp_image = Image.open( filename+'.bmp' )

index=0
for i_horizon  in range(bmp_image.width):
    for i_vertical in range(bmp_image.height//8):
        b=0x0
        for i in range(0, 8):
            b>>=1
            if bmp_image.getpixel((i_horizon, i_vertical*8+i)) == 255:
                b |= 0x80
        pic[i_horizon+i_vertical*bmp_image.width]=b
        index+=1

newFileByteArray = bytearray(pic)
with open(filename, 'wb') as newFile:
    newFile.write(newFileByteArray)

print("Done")

3.把相關檔案載入


4.利用步驟2的程式進行轉碼,再撰寫micro:bit Python程式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
from ssd1306 import initialize, clear_oled
from ssd1306_bitmap import show_bitmap
from microbit import *

initialize()
clear_oled()
while True:
    show_bitmap('microbit_logo')
    display.scroll('Welcome to ')
    show_bitmap('craft_center')
    display.scroll('National Taiwan Craft Research and Development')
    show_bitmap('nfu')
    display.scroll('National Formosa University')   
    show_bitmap('treeart')
    display.scroll('Workshop of Tree Art')  
    show_bitmap('steam')
    display.scroll('OUTSTEAM International')  
    show_bitmap('smartcreating')
    display.scroll('SmartCreating Co., Ltd.')  
    show_bitmap('goods')
    display.scroll('Taiwan Rural Goods Promotion Alliance') 

5.下載到micro:bit後,執行。


沒有留言:

張貼留言