树莓派扩展RGB点阵屏的使用

news2024/9/21 16:38:09

本篇来介绍一个树莓派的RGB 8x8点阵屏扩展板的使用。

1 RGB点阵屏

这里使用SunFounder的一个RGB 8x8树莓派扩展板,将其插接到树莓派中即可使用。

2 树莓派IIC配置

树莓派系统的安装,可参考之前的文章:

这个RGB点阵屏与树莓派直接使用IIC通信,因此需要先使能树莓派的IIC,使用如下指令:

sudo raspi-config

会弹出如下下面,然后选择Interfacing options,回车确认

然后再选择P5 I2C,回车确认

然后确认开启IIC接口:

再次确认:

通过如下指令查看IIC模块是否已加载:

lsmod | grep i2c

还有安装IIC的软件工具包:

sudo apt-get install i2c-tools

安装完之后,检查IIC的地址:

i2cdetect -y 1

3 运行例程

3.1 下载rgb_matrix代码库

在树莓派中使用git来clone代码仓库:

git clone ![](https://github.com/sunfounder/rgb_matrix

3.2 运行报错解决

运行基础例程:

cd /home/pi/rgb_matrix/raspberrypi
sudo python3 hello_matrix.py

这里报错了,提示rgb_matrix.py的314行有一个非期望的参数joint

查看rgb_matrix.py的314行,是有一个joint参数,这个参数是传给self.draw.line函数中的,分析代码,这里的self.draw,调用的其实是python的PIL库中的Draw,因此这个line函数就是PIL库中Draw功能中的line函数。可能是不同版本的PIL库的函数有差别,我这个树莓派里的PIL库的line函数不需要joint这个参数,可以把代码中这个参数去掉试试。

去掉之后,314行就没有报错了,不过还有其它地方报错,也是同样的方法,把代码中提示多余的参数去掉

成功运行后的显示效果如下:

3.3 代码分析

hello_matrix.py

from rgb_matrix.rgb_matrix import RGB_Matrix
from rgb_matrix.color import Color
import time

rr = RGB_Matrix(0x74)                     # create an RGB_Matrix object 
col = Color()

point_coor = [3,1]
rr.draw_point(point_coor,fill=(10,10,10))   #draw a point
rr.display()
time.sleep(3)

line_coor = [0,2,7,2]
rr.draw_line(line_coor,fill=(10,0,0))  # draw a line
rr.display()
time.sleep(3)

rectangle_coor = [0,4,2,6]
rr.draw_rectangle(rectangle_coor,fill=(10,0,0))   #draw a rectangle
rr.display()
time.sleep(3)

ellipse_coor = [5,5]
radius = 2
rr.draw_ellipse(ellipse_coor,radius,fill=(0,5,0))   #draw a ellipse
rr.display()  #display the picture which you draw
time.sleep(3)

text = 'hello'
rr.show_text(text, delay=200,color=(0,15,0))   # show text 
rr.display()

分析代码:

  • 首先是引入一些模块
    • 从rgb_matrix.py中引入RGB_Matrix这个类
    • 从color.py中引入Color这个类
    • 引入time模块
  • 创建RGB_Matrix对象rr和Color对象col
  • 画一些对象
    • 调用draw_point画点,在(3,1)位置画一个RGB颜色为(10,10,10)的点,注意位置点在从(0,0)开始的
    • 调用draw_line画直线,从(0,2)到(7,2)画一条RGB颜色为(10,0,0)的直线
    • 调用draw_rectangle画矩形,对角线从(0,4)到(2,6)画一个RGB颜色为(10,0,0)的矩形
    • 调用draw_ellipse画椭圆,以(5,5)为圆心,2为半径,画一个RGB颜色为(0,5,0)的圆
    • 调用show_text显示文字,以200ms为显示,以RGB颜色为(0,15,0)显示滚动字符’hello’

4 总结

本篇介绍了树莓派扩展一个8x8的RGB点阵屏的使用方法,并对基础例程中的代码进行了功能分析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2103083.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Opencv中的直方图(2)计算图像的直方图函数calcHist()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算一组数组的直方图。 函数 cv::calcHist 计算一个或多个数组的直方图。用于递增直方图bin的元组的元素是从相同位置的相应输入数组中获取的。…

C++设计模式——Template Method模板方法模式

一,模板方法模式的定义 模板方法模式是一种行为型设计模式,它先定义了一个算法的大致框架,然后将算法的具体实现步骤分解到多个子类中。 模板方法模式为算法设计了一个抽象的模板,算法的具体代码细节由子类来实现,从…

Spring Boot中如何禁用Actuator端点安全性?

Spring Boot中如何禁用Actuator端点安全性? 1、为什么考虑禁用?2、如何禁用?方法一:自定义Security配置(推荐)方法二:绕过安全性(不推荐) 3、注意事项4、总结 &#x1f4…

Golang | Leetcode Golang题解之第393题UTF-8编码验证

题目&#xff1a; 题解&#xff1a; const mask1, mask2 1 << 7, 1<<7 | 1<<6func getBytes(num int) int {if num&mask1 0 {return 1}n : 0for mask : mask1; num&mask ! 0; mask >> 1 {nif n > 4 {return -1}}if n > 2 {return n}r…

AI机械键盘,罗技推出首款AI机械键盘K98M

在这个智能化日益普及的时代&#xff0c;我们的生活中充斥着各种智能设备。 从智能手机到智能家居&#xff0c;现在连键盘也加入了智能化的行列。罗技&#xff0c;作为知名的电脑配件制造商&#xff0c;最近推出了他们的首款AI机械键盘K98M。这款键盘集成了百度文心一言提供的…

C++设计模式——Observer观察者模式

一&#xff0c;观察者模式的定义 观察者模式是一种行为型设计模式&#xff0c;又被称为"发布-订阅"模式&#xff0c;它定义了对象之间的一对多的依赖关系&#xff0c;当一个对象的状态发生变化时&#xff0c;所有依赖于它的对象都会收到通知并自动更新。 观察者模式…

13、Django Admin创建两个独立的管理站点

admin文件 from .models import Epic, Event, EventHero, EventVillain from django.contrib.admin import AdminSiteclass EventAdminSite(AdminSite):site_header "Events管理"site_title "欢迎您&#xff01;"index_title "管理员"even…

AI自动生成PPT哪个软件好?如何自动生成专业级PPT?

新学期伊始&#xff0c;准备开学演讲稿的你是否还在为制作PPT而烦恼&#xff1f;别担心&#xff0c;现在有了AI的帮助&#xff0c;生成专业且吸引人的PPT变得轻而易举。 本文将为你揭秘4种高效的AI自动生成PPT的方法&#xff0c;让你在新学期的演讲中脱颖而出。无论是简洁明了…

畅游5G高速网络:联发科集成Wi-Fi6E与蓝牙5.2的系统级单芯片MT7922

这周末,除非外面下钞票,否则谁也拦不住我玩《黑神话悟空》(附:两款可以玩转悟空的显卡推荐) IPBrain平台君 集成电路大数据平台 2024年09月03日 17:28 北京 联发科一直以创新技术追赶市场需求…… “不努力向前游就会被海浪拍回岸边…” 芯片设计公司产品层出不穷,想要站…

Redis集群搭建以及用idea连接集群

一、redis的集群搭建&#xff1a; 判断一个是集群中的节点是否可用,是集群中的所用主节点选举过程,如果半数以上的节点认为当前节点挂掉,那么当前节点就是挂掉了,所以搭建redis集群时建议节点数最好为奇数&#xff0c;搭建集群至少需要三个主节点,三个从节点,至少需要6个节点。…

Datawhle X 李宏毅苹果书AI夏令营深度学习笔记之——卷积神经网络

卷积神经网络简介 卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09;是一种深度学习模型&#xff0c;尤其擅长处理图像和视频等高维度的数据。CNN 通过模仿人类视觉系统的工作方式&#xff0c;自动学习数据中的空间层次结构&#xff0c;使得它在计算机视…

我找到了一个让ChatGPT稳定通过草莓测试的方法,百试百灵!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…

windows C++ 并行编程-并发和UWP(三)

控制执行线程 Windows 运行时使用 COM 线程模型。 在此模型中&#xff0c;根据对象处理其同步的方式&#xff0c;对象被托管在不同的单元中。 线程安全对象托管在多线程单元 (MTA) 中。 必须通过单个线程访问的对象托管在单线程单元 (STA) 中。 在具有 UI 的应用程序中&#…

系统找不到指定的文件怎么解决?

把U盘插在电脑上&#xff0c;当我打开U盘中的文件时&#xff0c;弹窗提示系统找不到指定的文件&#xff0c;这是什么情况&#xff1f;有谁遇到过吗&#xff1f;大家有没有解决办法&#xff1f; 这个问题可能大家并不陌生&#xff0c;可能也曾遇到过&#xff0c;造成问题出现的原…

DriveLM的baseline复现

DriveLM是一篇很有意思的工作&#xff0c;把自动驾驶跟MLLM结合到一起了&#xff0c;实现端到端的感知or决策规划。 Repo&#xff1a;https://github.com/OpenDriveLab/DriveLM 该工作是基于nuScenes数据集做的&#xff0c;官方paper里给出了数据的具体构建方式&#xff0c;感…

云计算之ECS

目录 一、ECS云服务器 1.1 ECS的构成 1.2 ECS的实例规格 1.3 镜像 1.4 磁盘 1.5 安全组 1.6 网络 1.7 产品结构 二、块存储介绍 2.1 快存储定义 2.2 块存储性能指标 2.3 快存储常用操作-云盘扩容 2.4 块存储常见问题 三、快照介绍 3.1 快照定义 3.2 快照常见问题…

《python语言程序设计》第8章第12题生物信息:找出基因,生物学家使用字母A C T和G构成字符2串建模一个基因组(下)

一、上一个版本 抱歉各位兄弟我感觉这道题我现在的能力有限,不纠结了跳过去.等第3刷的时候解决吧. 可能彼岸就在眼前,但是我累了.等下次吧 这个版本中div_text函数已经可以很好的划分字符串了 但是我发现了一个问题.它间隔字符效果如下 genome_text TTATGTTTTAAGGATGGGGCGTTAG…

CSS - 搜索框小动效

点击搜索框动画变长&#xff0c;搜索框有内容不变&#xff0c;无内容失去焦点&#xff0c;变回原来模样。<div :class"type true ? s_r_z : s_r" click"onChange"><div class"input_s"><input blur"handleBlur" v-mo…

QTC++联合编程之解决代码语句块折叠并中文注释代码块

目录&#xff1a; 一&#xff0c;前言二&#xff0c;解决方法2.1直接折叠代码段落&#xff0c;不命名2.2折叠代码段落并注释&#xff08;中/英文&#xff09;命名2.3使用模板 三&#xff0c;参考文章 一&#xff0c;前言 如果从C#或者从其他语言学习过&#xff0c;一定会感叹ID…

Android实习面经整理第一篇

蔚来Android实习面经 一面(2024/3/11 35min) 自我介绍聊我的本专业说一说MVP架构,MVVM架构 MVP:V层持有P层,用户点击View,把数据发给P层,P层持有M层,然后P层把V层的数据发给M层获取其他数据,最后M层获取完数据后把数据还给P层,更新V层。P层也有V层的引用。MVVM:V层…