忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 1083 | 回复: 0

MicroPython拼插编程实例:点亮心形8x8点阵 [复制链接]

论坛徽章:
0
发表于 2018-09-04 16:07 |显示全部楼层
一、什么是TPYBoard开发板
        TPYBoard是以遵照MIT许可的MicroPython为基础的一款MicroPython开发板,它基于STM32F405单片机,通过USB接口进行数据传输。该开发板内置4个LED灯、一个加速传感器,可在3V-10V之间的电压正常工作。TPYBoard开发板让用户可以通过Python代码轻松控制微控制器的各种外设,比如LED等,读取管脚电压,播放歌曲,和其他设备联网等等。TPYBoard开发板支持Python3.0及以上版本的直接运行,支持重力加速度传感器,支持上百周边外设配件,支持SWD烧写固件。零基础也能灵活掌握单片机技术!

二、利用TPYBoard完成心形点阵
1、具体要求
        通过TPYBoardv10x开发板连接红色8x8LED点阵屏,实现心形图案的显示。
2、所需器件
        TYBoard开发板 一块
        USB数据线 一根
        红色8x8LED点阵屏  一个
        杜邦线 若干
3、8x8点阵屏介绍

8x8点阵屏针脚图.png

         
        点阵后面有两排针脚,一排以1开头,即1-8针脚,一排以9开头(8针脚的正对面的针脚),即9-16针脚,上图中圆圈内的数字即为针脚的对应序号。ROW 1对应的针脚就是9。当某ROW 的针脚为高电平,某COL的针脚为低电平时候,它们交叉点的LED就会被点亮。 为了方便操作行和列,我们可以将ROW的8个引脚接到我们TPYBoard v102的X1-X8,COL的8个引脚接到我们TPYBoard v102的Y1-Y8。这样我们通过控制X引脚和Y引脚的高低电平就可以控制每一个LED的亮与不亮,这样就可以设计想显示的任何字符和图形,快来试试吧。
三、制作主要过程
       

效果图.jpg

4、制作流程
图形代码:

拼插截图1.png
拼插截图2.png
拼插截图3.png
  1. import pyb
  2. from pyb import *


  3. image = ['11111111', '11011101', '10001000', '10000000', '10000000', '11000001', '11100011', '11110111']
  4. x_p = [Pin('X1',Pin.OUT_PP,Pin.PULL_NONE), Pin('X2',Pin.OUT_PP,Pin.PULL_NONE), Pin('X3',Pin.OUT_PP,Pin.PULL_NONE), Pin('X4',Pin.OUT_PP,Pin.PULL_NONE), Pin('X5',Pin.OUT_PP,Pin.PULL_NONE), Pin('X6',Pin.OUT_PP,Pin.PULL_NONE), Pin('X7',Pin.OUT_PP,Pin.PULL_NONE), Pin('X8',Pin.OUT_PP,Pin.PULL_NONE)]
  5. y_p = [Pin('Y1',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y2',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y3',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y4',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y5',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y6',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y7',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y8',Pin.OUT_PP,Pin.PULL_NONE)]
  6. def displayLED():
  7.   flag = 1
  8.   for x in range(1, 9):
  9.     for b in range(1, 9):
  10.       if b != flag:
  11.         temp = x_p[int(b - 1)]
  12.         temp.low()
  13.     li_l = image[int(x - 1)]
  14.     for k in range(1, 9):
  15.       temp = y_p[int(k - 1)]
  16.       if li_l[int(k - 1)] == '1':
  17.         temp.high()
  18.       else:
  19.         temp.low()
  20.     temp = x_p[int(flag - 1)]
  21.     temp.high()
  22.     flag = flag + 1
  23.     delay(2)
  24.   return
  25. while True:
  26.   displayLED()
复制代码





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

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP