主要内容

与树莓派SenseHAT合作

这个例子向您展示了如何读取传感器值,读取操纵杆的位置,并使用MATLAB™支持包的树莓派硬件树莓派感知HAT上的LED矩阵。金宝app

介绍

Raspberry Pi Sense HAT是一个附加板,包括一个8X8 RGB LED矩阵,一个五位置操纵杆和以下传感器:

  • 湿度传感器

  • 压力传感器

  • IMU传感器(加速度计,陀螺仪,磁力计)。

在本例中,您将学习如何创建sensehat对象连接树莓Pi Sense HAT,读取传感器值,读取操纵杆位置,并控制LED矩阵。

先决条件

所需的硬件

要运行此示例,您将需要以下硬件:

  • 覆盆子π硬件

  • 树莓派感应帽

连接上的帽子

将Sense HAT附加到树莓派扩展包头部。在尝试连接Sense HAT之前,请确保关闭了树莓派的电源。

创建一个Sense HAT对象

在MATLAB提示符下执行以下命令,创建Sense HAT对象。

清晰的零售物价指数清晰的mysensehat零售物价指数= raspi;mysensehat = sensehat (rpi);

mysensehat是sensehat对象的句柄。

让我们从Sense HAT中读出温度。

readTemperature (mysensehat)

阅读环境传感器

Sense HAT包括湿度和压力传感器,可以测量温度、压力和湿度。让我们读出这些传感器测量的湿度和压力值。

readHumidity (mysensehat) readPressure (mysensehat)

温度可以从湿度传感器或压力传感器读取。要从湿度传感器读取温度,在MATLAB提示符下执行以下命令:

readTemperature (mysensehat“usehumiditysensor”

要从压力传感器读取温度,在MATLAB提示下执行以下操作:

readTemperature (mysensehat“usepressuresensor”

默认情况下,从湿度传感器读取温度。因此,readTemperature (mysensehat)是一样的readTemperature (mysensehat HumiditySensor)

读取IMU传感器。

Sense HAT有一个IMU传感器,由加速度计、陀螺仪和磁力计组成。IMU传感器沿X、Y、Z轴测量加速度、角速度和磁场。要读取加速度,在MATLAB提示符下执行以下命令:

readAcceleration (mysensehat)

readAcceleration返回沿X, Y和Z轴测量的加速度值的1 × 3矢量。

要读取角速度,在MATLAB提示下执行以下命令:

readAngularVelocity (mysensehat)

readAngularVelocity返回沿X、Y和Z轴测量的角速度值的1 × 3矢量。

要读取磁场,在MATLAB提示下执行以下操作:

readMagneticField (mysensehat)

readMagneticField返回沿X、Y和Z轴测量的磁场值的1 × 3矢量。

阅读操纵杆的状态

Sense HAT有一个5位置的迷你操纵杆。让我们读出操纵杆的位置。

readJoystick (mysensehat)

readJoystick根据操纵杆的位置返回0到5之间的值。

  • 0 -未按下

  • 1 -中心

  • 2 -左

  • 3,

  • 4,对吧

  • 5 -下

代表操纵杆位置的数值是根据Sense HAT的参考位置排序的。树莓Pi板的HDMI接口朝下为参考位置。

您可以通过在MATLAB提示符上执行以下命令来监视特定的操纵杆位置:

readJoystick (mysensehat“了”)

readJoystick (sensehatObj、位置)如果操纵杆在指定位置,则返回逻辑1,否则返回0。

使用LED矩阵

Sense HAT有一个8x8 RGB led矩阵。您可以设置特定像素的颜色,显示图像或显示在LED矩阵滚动消息。让我们将第3行第6列中的像素的颜色设置为青色。

writePixel (mysensehat 3 [6],“青色”

观察指定位置的像素现在是青色的。

行和列编号为1到8。位置[1 1]的像素位于LED矩阵的左上角。该位置是相对于Sense HAT的参考位置。树莓Pi板的HDMI接口朝下为参考位置。

像素的颜色可以通过名称指定。支持的颜金宝app色有:

  • 红色的

  • 蓝色的

  • 绿色

  • 青色

  • 品红色的

  • 黄色的

  • 白色

你也可以通过使用R, G, B值的1x3数组来指定任何其他颜色。例如,将像素设置为[255 192 203],就会将其设置为粉色。现在,让我们在LED矩阵上显示一个图像。

形象= imread (“senseHAT_demo.png”);displayImage (mysensehat、图片)

该镜像必须是一个由uint8值组成的NxMx3数组。你可以通过在MATLAB提示符上执行以下命令来改变显示图像的方向:

形象= imread (“sensehat_demo.png”);displayImage (mysensehat形象,90)

图像的方向可以设置为0、90、180或270度。这些是根据Sense HAT的参考位置定义的。树莓Pi板的HDMI接口朝下为参考位置。

LED Matrix可用于以滚动文本的形式显示信息。文字从左向右滚动。你可以通过设置LEDMatrix的“orientation”属性来改变滚动的方向。让我们在LED矩阵上显示“Hello World”。

displayMessage (mysensehat,“Hello World”);

默认情况下,文本滚动速度为0.1秒,文本的颜色为红色。要将滚动速度提高到0.05秒,请在MATLAB提示符下执行以下命令:

displayMessage (mysensehat,“Hello World”“ScrollingSpeed”, 0.05);

为了将文本颜色设置为黄色,在MATLAB提示符下执行以下命令:

displayMessage (mysensehat,“Hello World”“输入textcolor”“y”);

同样,为了将背景颜色设置为白色,在MATLAB提示符下执行以下命令:

displayMessage (mysensehat,“Hello World”“输入textColor”“y”“写成backgroundColor”' w ');

您可以通过指定显示方向来旋转文本。让我们指定方向为90并显示文本消息。

displayMessage (mysensehat,“Hello World”“定位”, 90);

现在,让我们试着在LED矩阵上显示一个数值。读取温度值并显示在LED矩阵上。

displayMessage (mysensehat readTemperature (mysensehat));

要清除LED矩阵,在MATLAB提示符下执行以下命令。

clearLEDMatrix (mysensehat);

总结

这个例子介绍了使用MATLAB支持包的树莓派感知HAT的工作流程。金宝app