这个例子向您展示了如何读取传感器值,读取操纵杆的位置,并使用MATLAB™支持包的树莓派硬件树莓派感知HAT上的LED矩阵。金宝app
Raspberry Pi Sense HAT是一个附加板,包括一个8X8 RGB LED矩阵,一个五位置操纵杆和以下传感器:
湿度传感器
压力传感器
IMU传感器(加速度计,陀螺仪,磁力计)。
在本例中,您将学习如何创建sensehat
对象连接树莓Pi Sense HAT,读取传感器值,读取操纵杆位置,并控制LED矩阵。
我们建议完成入门MATLAB支持包树莓派硬件金宝app例子
要运行此示例,您将需要以下硬件:
覆盆子π硬件
树莓派感应帽
将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)
.
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。
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