立即注册

扫一扫,访问微社区

micropython-microbit 中文社区

查看: 1528|回复: 5

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

  [复制链接]
  • TA的每日心情
    开心
    2019-5-12 11:06
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2018-2-15 01:13:24 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

    x
    使用microbit驱动16x16 WS2812屏,显示彩色小图案。为了节约内存,使用4bit代表一种颜色。

    完整项目在github上。
    https://github.com/shaoziyang/mi ... pixel/neo_16x16_img

    microbit.gif
    1. from microbit import *
    2. from neopixel import NeoPixel

    3. class neo16x16_img:
    4.     def __init__(self,pin):
    5.         self.np=NeoPixel(pin,256)

    6.     def clear(self):
    7.         self.np.clear()

    8.     def show(self,dat,pos=0):
    9.         for x in range(16):
    10.             for y in range(8):
    11.                 if ((x+pos)*8)>=len(dat):
    12.                     self.np[x*16+y*2]=(0,0,0)
    13.                     self.np[x*16+y*2+1]=(0,0,0)
    14.                 else:
    15.                     t=dat[(x+pos)*8+y]
    16.                     r=t%16
    17.                     g=(t>>4)%16
    18.                     b=(t>>8)%16
    19.                     if pos%2:
    20.                         self.np[x*16+y*2]=(r,g,b)
    21.                     else:
    22.                         self.np[x*16+15-y*2]=(r,g,b)
    23.                     r=(t>>12)%16
    24.                     g=(t>>16)%16
    25.                     b=(t>>20)%16
    26.                     if pos%2:
    27.                         self.np[x*16+y*2+1]=(r,g,b)
    28.                     else:
    29.                         self.np[x*16+14-y*2]=(r,g,b)
    30.         self.np.show()

    31. def _delay(t):
    32.     while t>0:
    33.         t=t-1

    34. npdat=[
    35. 0x000000, 0x000000, 0x000000, 0x000000,
    36. 0x121145, 0x000000, 0x000000, 0x000000,
    37. 0x000000, 0x000000, 0x000000, 0x169156,
    38. 0x000000, 0x000000, 0x000000, 0x000000,
    39. 0x000000, 0x000000, 0x000000, 0x234000,
    40. 0x15818B, 0x000217, 0x000000, 0x000000,
    41. 0x000000, 0x000000, 0x129000, 0x0AE17B,
    42. 0x000169, 0x000000, 0x000000, 0x000000,
    43. 0x000000, 0x000000, 0x000000, 0x19C301,
    44. 0x24709C, 0x00013A, 0x000000, 0x000000,
    45. 0x000000, 0x000000, 0x116000, 0x169237,
    46. 0x24718B, 0x245169, 0x000000, 0x000000,
    47. 0x000000, 0x235000, 0x0CF09D, 0x1590AE,
    48. 0x159159, 0x000000, 0x000000, 0x000000,
    49. 0x000000, 0x000000, 0x000000, 0x17C149,
    50. 0x09D18C, 0x0BF0BE, 0x23519C, 0x000234,
    51. 0x000000, 0x17B000, 0x16B15C, 0x14817C,
    52. 0x000024, 0x000000, 0x000000, 0x000000,
    53. 0x000000, 0x000000, 0x000000, 0x002013,
    54. 0x012000, 0x11A126, 0x000116, 0x000000,
    55. 0x000000, 0x000000, 0x000000, 0x048012,
    56. 0x16B149, 0x12716A, 0x000000, 0x000000,
    57. 0x000000, 0x12811B, 0x147247, 0x09E16A,
    58. 0x15B09D, 0x00010A, 0x000000, 0x000000,
    59. 0x000000, 0x000000, 0x16C127, 0x0BE08D,
    60. 0x17A0BF, 0x18B09C, 0x13A17A, 0x000227,
    61. 0x214000, 0x0AE17A, 0x1680AE, 0x0AD235,
    62. 0x0BE0BF, 0x00009C, 0x000000, 0x000000,
    63. 0x000000, 0x000000, 0x236235, 0x158246,
    64. 0x000245, 0x246312, 0x18B168, 0x200145,
    65. 0x122000, 0x000123, 0x000000, 0x000000,
    66. 0x000000, 0x235000, 0x000000, 0x000000,
    67. 0x000000, 0x000000, 0x000000, 0x000000,
    68. 0x000000, 0x000000, 0x000000, 0x000000,
    69. 0x000000, 0x000000, 0xEEE000, 0xFC9FC9,
    70. 0xFC9FC9, 0x000000, 0x000000, 0x000000,
    71. 0x000000, 0x000000, 0xFC9000, 0xFC9FC9,
    72. 0xFC9FC9, 0xEEEFC9, 0x000000, 0x000000,
    73. 0x000000, 0xAAA000, 0x555FC9, 0x000000,
    74. 0x333000, 0xEEEFC9, 0x000000, 0x000000,
    75. 0x000000, 0x000000, 0xFC9FC9, 0x000000,
    76. 0x000F90, 0xFC9000, 0x000FC9, 0x000000,
    77. 0x000000, 0xFC9000, 0x000FC9, 0xF99000,
    78. 0x000000, 0xFC9FC9, 0x000000, 0x000000,
    79. 0x000000, 0x000000, 0xFC9FC9, 0x000000,
    80. 0x000000, 0xFC9000, 0x000FC9, 0x000000,
    81. 0x000000, 0xFC9000, 0x000FC9, 0x000000,
    82. 0x000000, 0xFC9FC9, 0x000000, 0x000000,
    83. 0x000000, 0x000000, 0xFC9FC9, 0x000000,
    84. 0x000000, 0xFC9000, 0x000FC9, 0x000000,
    85. 0x000000, 0xFC9000, 0x000FC9, 0x000000,
    86. 0x000000, 0xFC9FC9, 0x000000, 0x000000,
    87. 0x000000, 0x000000, 0xFC9FC9, 0x000000,
    88. 0x000000, 0xFC9000, 0x000FC9, 0x000000,
    89. 0x000000, 0xFC9000, 0x000FC9, 0xF99000,
    90. 0x000000, 0xFC9FC9, 0x000000, 0x000000,
    91. 0x000000, 0x000000, 0xFC9FC9, 0x000000,
    92. 0x000F90, 0xFC9000, 0x000FC9, 0x000000,
    93. 0x000000, 0xBBB000, 0x333FC9, 0x000000,
    94. 0x111000, 0xEEEFC9, 0x000000, 0x000000,
    95. 0x000000, 0x000000, 0xFC9000, 0xFC9FC9,
    96. 0xFC9FC9, 0xFC9FC9, 0x000000, 0x000000,
    97. 0x000000, 0x000000, 0xFC9000, 0xFC9FC9,
    98. 0xFC9FC9, 0x000000, 0x000000, 0x000000,
    99. ]

    100. ne = neo16x16_img(pin1)
    101. n = 0
    102. while True:
    103.     ne.show(npdat, n)
    104.     n = (n+16)%32
    105.     _delay(15000)
    复制代码




    手机扫码浏览

    本帖被以下淘专辑推荐:

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-5-12 11:06
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2018-2-15 01:15:27 | 显示全部楼层
    由专门的软件(软件还在改进中,稍晚会分享)产生图像数据,可以将转换任意图像,受到microbit内存限制,图案大小不要超过32x16。

    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-1-2 22:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2018-2-16 16:04:27 | 显示全部楼层
    请问一下,你的外部python库是怎么导入到microbit的,还有其他的文件是怎么弄进去的,我考进去,下载完就没了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-5-12 22:53:55 来自手机 | 显示全部楼层
    取图软件出来了吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-5-12 11:06
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2018-5-13 00:34:32 | 显示全部楼层
    chess 发表于 2018-5-12 22:53
    取图软件出来了吗?

    已经在microbit的驱动库里了。

    https://github.com/shaoziyang/microbit-lib
    回复 支持 反对

    使用道具 举报

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

    Archiver|手机版|小黑屋|micropython-microbit 中文社区

    GMT+8, 2019-7-18 11:10 , Processed in 0.177827 second(s), 25 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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