主要内容

保持图像的方向BBC微:使用MATLAB功能

MATLAB®BBC微功能:一点一点使您与BBC微:沟通从一个主机MATLAB运行。使用MATLAB函数,您可以从传感器连接到BBC微:收集数据。

在这个例子中,您将学习如何使用MATLAB函数在LED显示笑脸图像矩阵在BBC微:董事会,并使用加速度计数据继续显示图像的方向常数当董事会是沿着一个轴旋转。

如果您是MATLAB,有助于阅读开始使用MATLAB

所需的硬件

要运行这个示例,您需要以下硬件:

  • BBC微:位

  • USB输入Micro-B电缆

步骤1 -连接一个BBC微:主机电脑

BBC微连接:为主机,请参考任务1(连接一个BBC微:位主机)解释说

步骤2 -创建一个微钻头对象与BBC微:沟通

在这个步骤中,您将创建一个微钻头在MATLAB对象,建立主机之间的通信和BBC微:。创建一个微钻头对象,m,从MATLAB命令窗口。

m =微钻头
微钻头与属性:端口:“COM16”AvailableDigitalPins: [" P0-P16] AvailablePWMPins: [“P0-P10”、“P12-P16”] AvailableAnalogPins: [“P0-P4”、“P10”] AvailableI2CBusIDs: 1 AvailableSPIBusIDs: 1显示所有属性,函数,最新值

步骤3——显示图像和使用加速度计数据翻转或旋转图像

在这个步骤中,您将学习如何使用微钻头对象(在步骤2)中创建和MATLAB函数来显示图像在BBC微:领导的笑脸,也使用加速度计数据意义的旋转板,然后翻转或旋转图像。

您可以使用writeLEDreadAccelerationBBC微功能:显示图象和阅读加速度。此外,使用rot90,fliplr,flipud在MATLAB函数来控制显示的图像。

writeLED (m, MicrobitImages.HappyFace);暂停(0.5);x = MicrobitImages.HappyFace;i = 1:1000 accel = readAcceleration (m);暂停(0.5);如果accel (1) > 4.5% = 270值= rot90 (x.Value);值= fliplr(价值);elseifaccel (1) < -4.5% = 90值= rot90 (x.Value);elseifaccel (2) > 4.5% = 180值= flipud (x.Value);其他的% accel状态= 0 (2)< -4.5%值= x.Value;结束writeLED (m值);暂停(0.5);结束

MATLAB代码比较加速度数据以一个恒定的各种状态(4.5)方向和执行以下动作:

  • 最初的引用(状态= 0)董事会的位置保持垂直向上面临的USB端口和LED矩阵面对你。领导的笑脸图像显示没有任何翻转或旋转。

  • 在下一个状态(状态= 90),你把董事会顺时针旋转90度,LED矩阵仍然面对你。在这种情况下,图像旋转了90度保持相同的取向状态0。

  • 同样,在接下来的两个州(国家= 180或270),图像翻转或旋转相应保持方向不变状态0时,当你旋转LED矩阵仍然面临你的董事会。

另请参阅

|