×

英特尔Edison教程:UPM、MRAA

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-14

郭中

分享资料个

描述

背景

本文提供了一些有关用于对 Edison 和类似平台进行编程的英特尔库的重要详细信息。原始内容可在Github 上找到。

MRAA

Libmraa 是一个 C/C++ 库,绑定了 Java、Python 和 JavaScript 以与 Galileo、Edison 和其他平台上的 IO 接口,具有结构化和健全的 API,其中端口名称/编号与您所在的电路板相匹配。使用 libmraa 不会将您绑定到特定硬件,板检测在运行时完成,您可以创建可跨受支持平台运行的可移植代码。

目的是让开发人员和传感器制造商更容易将他们的传感器和执行器映射到支持的硬件之上,并允许通过高级语言和结构控制低级通信协议。

节点示例
var m = require('mraa'); //require mraa
console.log('MRAA Version: ' + m.getVersion()); //write the mraa version to the console
var myLed = new m.Gpio(13); //LED hooked up to digital pin 13 (or built in pin on Galileo Gen1 & Gen2)
myLed.dir(m.DIR_OUT); //set the gpio direction to output
var ledState = true; //Boolean to hold the state of Led
function periodicActivity()
{
myLed.write(ledState?1:0); //if ledState is true then write a '1' (high) otherwise write a '0' (low)
ledState = !ledState; //invert the ledState
setTimeout(periodicActivity,1000); //call the indicated function after 1 second (1000 milliseconds)
}
periodicActivity(); //call the periodicActivity function
Python 示例
import mraa
import time
x = mraa.Gpio(8)
x.dir(mraa.DIR_OUT)
while True:
x.write(1)
time.sleep(0.2)
x.write(0)
time.sleep(0.2)

芬欧汇川

UPM 存储库为各种常用的传感器和执行器提供软件驱动程序。这些软件驱动程序通过调用MRAA API与底层硬件平台(或微控制器)以及连接的传感器进行交互。

程序员可以通过包含传感器的相应头文件并实例化关联的传感器类来访问每个传感器的接口。在典型的用例中,构造函数根据识别传感器的参数、使用的 I/O 协议和传感器的引脚位置来初始化传感器。

已为以下传感器/执行器类型定义了 C++ 接口,但它们可能会发生变化:

  • 光控器
  • 光传感器
  • 温度感应器
  • 湿度传感器
  • 压力传感器
  • 气体传感器
  • 模数转换器
节点示例
// Load Grove module
var groveSensor = require('jsupm_grove');
// Create the Grove LED object using GPIO pin 2
var led = new groveSensor.GroveLed(2);
// Print the name
console.log(led.name());
// Turn the LED on and off 10 times, pausing one second
// between transitions
var i = 0;
var waiting = setInterval(function() {
   if ( i % 2 == 0 ) {
       led.on();
   } else {
       led.off();
   }
   i++;
   if ( i == 20 ) clearInterval(waiting);
   }, 1000);
Python 示例
import time
import pyupm_grove as grove
# Create the Grove LED object using GPIO pin 2
led = grove.GroveLed(2)
# Print the name
print led.name()
# Turn the LED on and off 10 times, pausing one second
# between transitions
for i in range (0,10):
  led.on()
  time.sleep(1)
  led.off()
  time.sleep(1)
# Delete the Grove LED object
del led

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !