天涯论坛

 找回密码
 立即注册
搜索
查看: 31|回复: 3

microbit驱动16x16屏暗示彩色小图案

[复制链接]

2998

主题

182

回帖

9920万

积分

论坛元老

Rank: 8Rank: 8

积分
99209270
发表于 2024-10-10 08:09:28 | 显示全部楼层 |阅读模式

运用microbit驱动16x16 WS2812屏,表示彩色小图案,支持动画和移动功能。

完整项目在github上,有专门的软件产生图像数据和程序,只需要点几下鼠标就能够产生绚丽的效果。

https://github.com/shaoziyang/microbit-lib/tree/master/neopixel/neo_16x16_img

运行效果

注:需要运用功率足够的外边电源供电,不可经过microbit的3V直接供电。

参考程序:

from microbit import *

from neopixel import NeoPixel

class neo16x16_img:

def __init__(self,pin):

        self.np=NeoPixel(pin,256)

    def clear(self):

        self.np.clear()

    def show(self,dat,pos=0):

        for x in range(16):

            for y in range(8):

if ((x+pos)*8)>=len(dat):

                    self.np[x*16+y*2]=(0,0,0)

                    self.np[x*16+y*2+1]=(0,0,0)

                else:

                    t=dat[(x+pos)*8+y]

                    r=t%16

                    g=(t>>4)%16

                    b=(t>>8)%16

                    if pos%2:

                        self.np[x*16+y*2]=(r,g,b) 

                    else:

self.np[x*16+15-y*2]=(r,g,b)

                    r=(t>>12)%16

                    g=(t>>16)%16

                    b=(t>>20)%16

                    if pos%2:

                        self.np[x*16+y*2+1]=(r,g,b) 

                    else:

                        self.np[x*16+14-y*2]=(r,g,b)

        self.np.show()

def _delay(t):

    while t>0:

        t=t-1

npdat=[

0x000000, 0x000000, 0x000000, 0x000000, 

0x121145, 0x000000, 0x000000, 0x000000, 

0x000000, 0x000000, 0x000000, 0x169156, 

0x000000, 0x000000, 0x000000, 0x000000,

0x000000, 0x000000, 0x000000, 0x234000, 

0x15818B, 0x000217, 0x000000, 0x000000, 

0x000000, 0x000000, 0x129000, 0x0AE17B,

0x000169, 0x000000, 0x000000, 0x000000, 

0x000000, 0x000000, 0x000000, 0x19C301, 

0x24709C, 0x00013A, 0x000000, 0x000000, 

0x000000, 0x000000, 0x116000, 0x169237,

0x24718B, 0x245169, 0x000000, 0x000000, 

0x000000, 0x235000, 0x0CF09D, 0x1590AE, 

0x159159, 0x000000, 0x000000, 0x000000, 

0x000000, 0x000000, 0x000000, 0x17C149,

0x09D18C, 0x0BF0BE, 0x23519C, 0x000234, 

0x000000, 0x17B000, 0x16B15C, 0x14817C, 

0x000024, 0x000000, 0x000000, 0x000000, 

0x000000, 0x000000, 0x000000, 0x002013,

0x012000, 0x11A126, 0x000116, 0x000000, 

0x000000, 0x000000, 0x000000, 0x048012, 

0x16B149, 0x12716A, 0x000000, 0x000000, 

0x000000, 0x12811B, 0x147247, 0x09E16A,

0x15B09D, 0x00010A, 0x000000, 0x000000, 

0x000000, 0x000000, 0x16C127, 0x0BE08D, 

0x17A0BF, 0x18B09C, 0x13A17A, 0x000227, 

0x214000, 0x0AE17A, 0x1680AE, 0x0AD235,

0x0BE0BF, 0x00009C, 0x000000, 0x000000, 

0x000000, 0x000000, 0x236235, 0x158246, 

0x000245, 0x246312, 0x18B168, 0x200145, 

0x122000, 0x000123, 0x000000, 0x000000,

0x000000, 0x235000, 0x000000, 0x000000, 

0x000000, 0x000000, 0x000000, 0x000000, 

0x000000, 0x000000, 0x000000, 0x000000,

0x000000, 0x000000, 0xEEE000, 0xFC9FC9, 

0xFC9FC9, 0x000000, 0x000000, 0x000000, 

0x000000, 0x000000, 0xFC9000, 0xFC9FC9, 

0xFC9FC9, 0xEEEFC9, 0x000000, 0x000000,

0x000000, 0xAAA000, 0x555FC9, 0x000000, 

0x333000, 0xEEEFC9, 0x000000, 0x000000, 

0x000000, 0x000000, 0xFC9FC9, 0x000000, 

0x000F90, 0xFC9000, 0x000FC9, 0x000000,

0x000000, 0xFC9000, 0x000FC9, 0xF99000, 

0x000000, 0xFC9FC9, 0x000000, 0x000000, 

0x000000, 0x000000, 0xFC9FC9, 0x000000, 

0x000000, 0xFC9000, 0x000FC9, 0x000000,

0x000000, 0xFC9000, 0x000FC9, 0x000000, 

0x000000, 0xFC9FC9, 0x000000, 0x000000, 

0x000000, 0x000000, 0xFC9FC9, 0x000000, 

0x000000, 0xFC9000, 0x000FC9, 0x000000,

0x000000, 0xFC9000, 0x000FC9, 0x000000, 

0x000000, 0xFC9FC9, 0x000000, 0x000000, 

0x000000, 0x000000, 0xFC9FC9, 0x000000, 

0x000000, 0xFC9000, 0x000FC9, 0x000000,

0x000000, 0xFC9000, 0x000FC9, 0xF99000, 

0x000000, 0xFC9FC9, 0x000000, 0x000000, 

0x000000, 0x000000, 0xFC9FC9, 0x000000,

0x000F90, 0xFC9000, 0x000FC9, 0x000000, 

0x000000, 0xBBB000, 0x333FC9, 0x000000, 

0x111000, 0xEEEFC9, 0x000000, 0x000000, 

0x000000, 0x000000, 0xFC9000, 0xFC9FC9,

0xFC9FC9, 0xFC9FC9, 0x000000, 0x000000, 

0x000000, 0x000000, 0xFC9000, 0xFC9FC9, 

0xFC9FC9, 0x000000, 0x000000, 0x000000, 

]

ne = neo16x16_img(pin1)

n = 0

while True:

    ne.show(npdat, n)

    n = (n+16)%32

    _delay(15000)





上一篇:在microbit上测试最新的WebUSB功能
下一篇:MicroBit三层电梯1
回复

使用道具 举报

3047

主题

3万

回帖

9606万

积分

论坛元老

Rank: 8Rank: 8

积分
96065852
发表于 2024-10-17 18:51:08 | 显示全部楼层
谷歌网站排名优化 http://www.fok120.com/
回复

使用道具 举报

3070

主题

3万

回帖

9913万

积分

论坛元老

Rank: 8Rank: 8

积分
99138950
发表于 2024-10-26 20:18:33 | 显示全部楼层
楼主果然英明!不得不赞美你一下!
回复

使用道具 举报

3047

主题

3万

回帖

9606万

积分

论坛元老

Rank: 8Rank: 8

积分
96065852
发表于 2024-11-5 04:29:38 | 显示全部楼层
真情实感,其含义为认真了、走心了的意思,是如今的饭圈常用语。
回复

使用道具 举报

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

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-23 09:10 , Processed in 0.121996 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.