找回密码
 马上注册

QQ登录

只需一步,快速开始

搜索
查看: 514|回复: 0

MicroPython:基于TPYBoard集合MAX7219点阵模块制作表白女神神器

[复制链接]
发表于 2019-6-10 18:35:30 | 显示全部楼层 |阅读模式
前言
又是一年毕业季,只有到了毕业季才会意识到自己又离青春远了一大步。毕业后,大家都各奔东西了,如果这个时候有喜欢的人还是藏在心底的话,不免会给人生留下遗憾。为了不留遗憾,不老套,制作一款表白神器,是不是会更容易表白成功呢?之前使用8*8LED点阵模块做过一款跳动的心,因为是直接用的点阵模块,所以控制就用了16个IO,未免有些繁琐,浪费资源。最近发现了一个好东西——MAX7219多位LED 显示驱动器。使用该驱动器加上点阵屏或者数码管,驱动起来特别方便简单,而且加上电源脚也不过就5根线而已。

MAX7219介绍
MAX7219 是美国MAXIM 公司推出的多位LED 显示驱动器,采用3 线串行接口传送数据,可直接与单片机接口连接,用户能方便修改其内部参数,以实现多位LED 显示。它内含硬件动态扫描电路、BCD译码器、段驱动器和位驱动器。此外,其内部还含有8X8 位静态RAM,用于存放8个数字的显示数据。显然,它可直接驱动64 段LED点阵显示器。当多片MAX7219 级联时,可控制更多的LED点阵显示器。显示的数据通过单片机数据处理后,送给MAX7219 显示。
引脚图.jpg
当然了,直接拿到这个驱动器一时也不知道该怎么用,于是就直接买了现成的MAX7219驱动器结合8*8LED点阵屏模块。
实物图.jpg
反面.jpg

看反面图可以看出,该模块不仅有DIN输入端口还有DOUT输出端口,用于多个模块级联。使用的单个模块时,开发板只接入模块的输入端口即可;当多个模块级联时,第一个模块的输出端口接第二个模块的输入端口,第二个输出端口接第三个输入端口,依次类推。
制作过程
话不多说了,马上动手实践起来。接线很简单,见下表:   
TPYBoard v102HC-05/06蓝牙模块
VINVCC
GNDGND
Y1RX
Y2TX





TPYBoard v102开发板若没有使用过,附上链接看先了解下。http://docs.tpyboard.com/zh/latest/tpyboard/tutorial/v10x/sta
rt/
程序呈上:
主程序 main.py。
  1. import MAX7219 #导入模块

  2. #CLK -> X1,CS -> X2,DIN -> X3
  3. #num级联的模块数量
  4. led = MAX7219.Lattice('X1','X2','X3',num=1)
  5. #要显示的内容,显示的内容根据字库文件而定,见font_max7219.py。
  6. #大家也可以自定义图案添加上。
  7. msg = 'LOVE大小'

  8. while True:
  9.     #显示
  10.     led.display(msg)
复制代码

字库文件 font_max7219.py。
  1. import MAX7219 #导入模块
  2. from pyb import UART
  3. #初始化串口参数,使用串口6 波特率9600 超时时间50毫秒
  4. #串口6 TX->Y1 RX->Y2
  5. #其他串口对应的引脚编号详见针脚图:http://old.tpyboard.com/document/documents/10x/TPYBoardv10xPCBpng.pdf
  6. uart = UART(6,9600,timeout=50)

  7. #CLK -> X1,CS -> X2,DIN -> X3
  8. #num级联的模块数量
  9. led = MAX7219.Lattice('X1','X2','X3',num=1)
  10. led.display('大')                   #默认显示大心图案
  11. while True:
  12.     if uart.any() > 0:              #any()返回串口缓存区的数据长度,返回值大于0即表示有数据
  13.         DATA = uart.read().decode() #读取缓存区全部数据,返回值为bytes,decode()转为字符串
  14.         led.display(DATA)           #进行显示
复制代码
模块驱动程序max7219.py就不在这里呈现了,文章末有链接,大家可以去下载。
演示效果
效果图.jpg
https://v.qq.com/x/page/n08814kmrfc.html

无线遥控升级版

这样虽然已经很炫了,不过加上无线遥控的效果是不是就更棒了。于是,找来了以前买的HC-05(HC-06也一样)蓝牙模块,结合一下整上。
蓝牙模块的连接线:
TPYBoard v102HC-05/06蓝牙模块
VINVCC
GNDGND
Y1RX
Y2TX





其他文件不用动,改动下main.py,增加上串口读写操作即可。
蓝牙串口调试助手(Android)下载地址:http://old.tpyboard.com/download/tool/164.html
表白神器源码下载地址:https://github.com/TPYBoard/TPYBoard-v102



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

本版积分规则

QQ|极客迷网 ( ICP09011854

44030602000010

© 2009-2016 All Rights Reserved

GMT+8, 2019-7-22 01:39 , Processed in 0.257268 second(s), 17 queries , Gzip On, Memcache On.