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

前言

又是一年毕业季,只有到了毕业季才会意识到自己又离青春远了一大步。毕业后,大家都各奔东西了,如果这个时候有喜欢的人还是

藏在心底的话,不免会给人生留下遗憾。为了不留遗憾,不老套,制作一款表白神器,是不是会更容易表白成功呢?

之前使用8*8LED点阵模块做过一款跳动的心,因为是直接用的点阵模块,所以控制就用了16个IO,未免有些繁琐,浪费资源。最近发

现了一个好东西——MAX7219多位LED 显示驱动器。使用该驱动器加上点阵屏或者数码管,驱动起来特别方便简单,而且加上电源脚

也不过就5根线而已。

MAX7219介绍

MAX7219 是美国MAXIM 公司推出的多位LED 显示驱动器,采用3 线串行接口传送数据,可直接与单片机接口连接,用户能方便修改其

内部参数,以实现多位LED 显示。它内含硬件动态扫描电路、BCD译码器、段驱动器和位驱动器。此外,其内部还含有8X8 位静态

RAM,用于存放8个数字的显示数据。显然,它可直接驱动64 段LED点阵显示器。当多片MAX7219 级联时,可控制更多的LED点阵显示器

。显示的数据通过单片机数据处理后,送给MAX7219 显示。

引脚图:

当然了,直接拿到这个驱动器一时也不知道该怎么用,于是就直接买了现成的MAX7219驱动器结合8*8LED点阵屏模块。

看反面图可以看出,该模块不仅有DIN输入端口还有DOUT输出端口,用于多个模块级联。使用的单个模块时,开发板只接入模块的输

入端口即可;当多个模块级联时,第一个模块的输出端口接第二个模块的输入端口,第二个输出端口接第三个输入端口,依次类推。

制作过程

话不多说了,马上动手实践起来。接线很简单,见下表:

TPYBoard v102 MAX7219点阵模块
VIN VCC
GND GND
X3 DIN
X2 CS
X1 CLK

TPYBoard v102开发板若没有使用过,附上链接看先了解下。http://docs.tpyboard.com/zh/latest/tpyboard/tutorial/v10x/sta
rt/

程序呈上:

主程序 main.py。

import MAX7219 #导入模块

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

while True:
    #显示
    led.display(msg)

字库文件 font_max7219.py。

FONT8_8= {
    ‘0‘:[0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C],#0
    ‘1‘:[0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x10],#1
    ‘2‘:[0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E],#2
    ‘3‘:[0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0],#3
    ‘4‘:[0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8],#4
    ‘5‘:[0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0],#5
    ‘6‘:[0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0],#6
    ‘7‘:[0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8],#7
    ‘8‘:[0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E],#8
    ‘9‘:[0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E],#9
    ‘A‘:[0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22],#A
    ‘B‘:[0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0],#B
    ‘C‘:[0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0],#C
    ‘D‘:[0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x0],#D
    ‘E‘:[0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C],#E
    ‘F‘:[0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40],#F
    ‘G‘:[0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C],#G
    ‘H‘:[0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44],#H
    ‘I‘:[0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C],#I
    ‘J‘:[0x3C,0x8,0x8,0x8,0x8,0x8,0x48,0x30],#J
    ‘K‘:[0x0,0x24,0x28,0x30,0x20,0x30,0x28,0x24],#K
    ‘L‘:[0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C],#L
    ‘M‘:[0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81],#M
    ‘N‘:[0x0,0x42,0x62,0x52,0x4A,0x46,0x42,0x0],#N
    ‘O‘:[0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C],#O
    ‘P‘:[0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20],#P
    ‘Q‘:[0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D],#Q
    ‘R‘:[0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21],#R
    ‘S‘:[0x0,0x1E,0x20,0x20,0x3E,0x2,0x2,0x3C],#S
    ‘T‘:[0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8],#T
    ‘U‘:[0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C],#U
    ‘V‘:[0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18],#V
    ‘W‘:[0x0,0x49,0x49,0x49,0x49,0x2A,0x1C,0x0],#W
    ‘X‘:[0x0,0x41,0x22,0x14,0x8,0x14,0x22,0x41],#X
    ‘Y‘:[0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8],#Y
    ‘Z‘:[0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F],#Z
    ‘大‘:[0x00,0x66,0xFF,0xFF,0x7E,0x3C,0x18,0x00],#大心
    ‘小‘:[0x00,0x00,0x66,0x7E,0x3C,0x18,0x00,0x00],#小心
    ‘中‘:[0x8,0x7F,0x49,0x49,0x7F,0x8,0x8,0x8],#中
    ‘国‘:[0xFE,0xBA,0x92,0xBA,0x92,0x9A,0xBA,0xFE],#国
}

模块驱动程序max7219.py就不在这里呈现了,文章末有链接,大家可以去下载。

演示效果

https://v.qq.com/x/page/n08814kmrfc.html

无线遥控升级版

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

整上。

蓝牙模块的连接线:

TPYBoard v102 HC-05蓝牙模块
VIN VCC
GND GND
Y1 RX
Y2 TX

其他文件不用动,改动下main.py,增加上串口读写操作即可。

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

#CLK -> X1,CS -> X2,DIN -> X3
#num级联的模块数量
led = MAX7219.Lattice(‘X1‘,‘X2‘,‘X3‘,num=1)
led.display(‘大‘)                   #默认显示大心图案
while True:
    if uart.any() > 0:              #any()返回串口缓存区的数据长度,返回值大于0即表示有数据
        DATA = uart.read().decode() #读取缓存区全部数据,返回值为bytes,decode()转为字符串
        led.display(DATA)           #进行显示

蓝牙串口调试助手(Android)下载地址:http://old.tpyboard.com/download/tool/164.html

表白神器最终版

表白神器×××地址:https://github.com/TPYBoard/TPYBoard-v102

原文地址:https://blog.51cto.com/13798209/2407001

时间: 2024-08-24 16:38:58

MicroPython:基于TPYBoard集合MAX7219点阵模块制作表白女神神器的相关文章

点阵大屏语音感应时计——MAX7219点阵

MAX7219点阵模块可以用三根数据线实现8*8的LED点阵控制,而且不需要单片机参与扫描,使用非常方便.更为重要的是,它支持模块级联使用,在不增加IO数量的条件下,实现多模块的控制.因此在大屏时计中采用了3个MAX7219点阵模块组合成8*24的点阵屏. 点阵的使用遇到一点小麻烦,是关于级联使用的,网络上查询到的代码每一块点阵的写入需要采用单独的函数,如: //向第二片MAX7219写数据    void MAX7219_Write_1(uchar add2,uchar dat2) {    

基于MicroPython的TPYBoard超声波倒车雷达系统

前言 倒车雷达是汽车驻车或者倒车时的安全辅助装置,能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员驻车.倒车和起动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷.倒车雷达主要由超声波传感器.控制器和显示器或蜂鸣器等组成,如下: 关注公众号"MicroPython玩家汇"可获取完整源代码 超声波传感器:主要功能是发出和接收超声波信号,然后将信号输入到主机里面,通过显示设备显示出来. 控制器:对信号进行处理,计算出车体与障碍物之间的距离及方位.

模塑封装接触式模块制作方法

一种模塑封装接触式模块制作方法属于智能卡制造技术领域.包括如下步骤:芯片减薄切割:把圆盘芯片按一定的规格和标准进行减薄,然后再进行切割:芯片焊接:用芯片焊接机器将切割后的芯片与条带结合:金丝球焊:把芯片的焊点和条带连接起来,形成通路:模块封装:用模塑料把芯片和金丝部份完全包封起来,达到推力标准模块外型平整无空洞:模块测试:剔除失效模块,留下好模块.利用此项技术做成的产品比现有接触智能卡模块可靠性更高,提高了生产产品的合格率,而且制造工艺上比前者更简捷,达到了低成本高效率,产品的外型一致性更高,更

Unity3D游戏开发之基于Terrain Toolkit实现地形的制作

 今天继续由我为大家带来Unity3D游戏开发系列文章.今天我们来通过Terrain Toolkit来实现地形的制作.尽管Unity3D已经为我们提供了地形绘制工具,但是在实际的运用中我们发现,这个地形绘制工具并不能满足我们的要求,因为通过手动绘制这种方法来画地形的起伏缺少了自然的侵蚀感,人力雕琢的感觉过于强烈,毕竟通过人去感觉自然界地形的起伏变化是力不从心的,所以我们建议通过程序来生成地形,因此就有了我们今天的这篇文章.下面,请大家跟随我一起来学习这个插件的使用吧. 首先我们创建一个空的项

基于FPGA的VGA可移植模块终极设计【转】

本文转载自:http://www.cnblogs.com/lueguo/p/3373643.html 略过天涯 基于FPGA的VGA可移植模块终极设计 一.VGA的诱惑 首先,VGA的驱动,这事,一般的单片机是办不到的:由于FPGA的速度,以及并行的优势,加上可现场配置的优势,VGA的配置,只有俺们FPGA可以胜任,也只有FPGA可以随心所欲地配置(当然ARM也可以,应用比较高吧). 初学者就是喜欢看炫的效果,往往会忍不住想玩.尤其玩FPGA的,没玩VGA就感到跟单片机没啥提升,因此VGA的驱动

X86平台下基于grub2+busybo+linux-2.6.36制作linux系统

X86平台下基于grub2+busybo+linux-2.6.36制作linux系统 一.下载内核源码,grub2源码,以及busybox源码: 下载grub2源码 ftp://ftp.gnu.org/gnu/grub/ 找到需要的版本就好了,这里选择grub-1.99.tar.gz 下载busybox源码 http://www.busybox.net/downloads/ 找到需要的版本就好了,这里选择busybox-1.22.1.tar.bz2 下载linux-2.6.36内核源码 http

基于Windows字库的点阵数据提取方法

源:基于Windows字库的点阵数据提取方法

玩转u8g2 OLED库 MAX7219_32X8点阵模块

u8g2 OLED库 + MAX7219_32X8点阵模块 理论基础 玩转u8g2 OLED库,一篇就够 玩转u8g2 OLED库,一篇就够(字数太多 要分篇) 实验内容 Full screen buffer mode 显示"I??U" 实验器材 Mega2560 + MAX7219-32X8点阵模块 引脚连接 4线软件模拟SPI总线 模块引脚 Mega2560引脚 VCC VCC GND GND DIN 5 CS 6 CLK 7 实验代码 /* HelloWorld.ino */ #

【COCOS CREATOR 系列教程之四】基于0.7.1先简单制作一个PAGEVIEW

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/cocos-creator/1999.html 由于当前版本还没有发布1.0,因此还有不少组件没有发布,那么Himi也看到Cocos Creator群里有几个童鞋问起过PageView的问题,那么Himi正好借此练手,基于当前版本制作一个PageView. 本文分为两部分进行讲解: 1. 制作PageView     2. 如何使用 一. 制作