文档章节

Beaglebone Black教程项目1闪烁板载LED

大学霸
 大学霸
发布于 2016/03/30 15:13
字数 1269
阅读 281
收藏 0

Beaglebone Black教程项目1闪烁板载LED

项目1闪烁板载LED

当设置完你的Beaglebone Black的时候,可能早就非常期待你的第一个项目了。下面就来满足大家的愿望,当然,这个项目可不是惊天动地的大项目,但万事总是有个开始的。这个项目不需要额外的电子器件,这可以让你的精力集中在编程这方面来。这也可以确保你的Beaglebone Black板子所有的设置都是正确的。

闲话少叙,我们的这个项目是编写代码控制Beaglebone Black的板载LED。如果你之前有过编程经验,那么可以把这个项目当做Beaglebone Black的“Hello World”程序。我们将会从零开始完成整个程序,这样可以使你在Cloud9 IDE中编写BoneScript代码有一个初步的感觉。

下面的就是闪烁板载LED的代码:

  • var b = require('bonescript');

  • var led = "USR3";

  •  

  • b.pinMode(led, b.OUTPUT);

  •  

  • var state = b.LOW;

  •  

  • b.digitalWrite(led, state);

  •  

  • setInterval(toggle, 1000);

  •  

  • function toggle() {

  •     if(state == b.LOW) state = b.HIGH;

  •     else state = b.LOW;

  •     b.digitalWrite(led, state)

  • }

当使用BoneScript编写代码的时候,我们需要将代码指向BoneScript库以访问GPIO端口和Beaglebone Black的其他功能。所以,我们的第一行代码就创建一个变量(b)来将两个括号之间的库引入我们的代码:

  • var b = require('bonescript');

代码的下一个逻辑上的代码段是创建引用板载LED USR3的一个变量:

  • var led = "USR3";

在上面的例子中我们将这个变量称为led,它对应于板载LEDUSR3

Beaglebone Black上面的GPIO数字端口可以被设置为输入或者输出端口。所以,在我们的代码中需要告诉Beaglebone Black我们想要板载LED作为输出。为了完成这个任务,我们需要使用名为pinMode的函数并将我们期望的端口作为他的参数;在这个示例中,我们使用变量led并使用变量b.OUTPUT将它设置为输出:

  • b.pinMode(led, b.OUTPUT);

在这个代码中,我们创建了一个集合了LED状态的循环。在这个循环中,将LED的状态在开和关之间切换。要完成它,我们还需要设置一个额外的变量state,它用来保存LED此时的状态;在最开始我们应该给它一个初始值,这里是b.LOW,即对应于“关”:

  • var state = b.LOW;

现在我们就可以设置LED的状态了,将他设置为state。做这个需要使用digitalWrite()函数并将期望操作的GPIO端口和状态(开和关)作为参数:

  • b.digitalWrite(led, state);

LED的初始状态设置完毕后,我们需要触发LED点亮和熄灭,即改变state变量的状态。我们使用setInterval()函数将这个改变的时间间隔设置为1000毫秒即1秒。在间隔时间到达的时候,我们调用toggle()函数:

  • setInterval(toggle, 1000);

现在我们需要创建一个名为toggle的函数供setInterval()函数调用,这个函数会每1000毫秒调用一次。这个函数实现的功能就是切换LED的状态,即在HIGHLOW之间切换。由于只有这两个状态,所以最简单的方式就是if…else判断,它接受一个条件语句,根据条件语句是TRUE或者FALSE执行不同的语句:

  • if (条件语句){

  •          当条件语句为TRUE的时候执行

  • }else{

  •          当条件语句不为TRUE时候执行

  • }

在我们的函数中,我们应该检查state变量的值是否等于LOW。如果是,我们将state设置为HIGH;如果不是,则执行else后的语句,将state设置为LOW。在设置完成后,使用digitalWrite()函数将这个状态应用于LED

  • function toggle() {

  •     if(state == b.LOW) state = b.HIGH;

  •     else state = b.LOW;

  •     b.digitalWrite(led, state)

  • }

执行上面的代码,我们就可以看到LED USR31000豪秒的间隔闪烁。如果你想要改变闪烁的频率,可以修改这条语句:

  • setInterval(toggle, 1000);

实际尝试一下是最好的。

小结

现在你已经将你的Beaglebone Black设置好并完成了了第一个项目。虽然这个项目非常简单,并且看起来不怎么霸气,但是这么简单的程序可以让你知道你的Beaglebone Black已经准备好投入更霸气的项目了。同时,也让你了解到了Beaglebone Black的一些基本操作。在本书接下来的内容中,会有逐步复杂的项目等你来完成。随着经手的项目逐渐增多你应该会了解到完成一个项目可能有多种不同的方式,你的思维将被完全打开。最终你将可以完成自己心目中蕴藏已久的宏伟目标。

本文选出自:BeagleBone Black项目实训手册转载请注明出处,尊重技术尊重IT人!


© 著作权归作者所有

大学霸
粉丝 270
博文 908
码字总数 557321
作品 0
东城
程序员
私信 提问
BeagleBone硬件概览Ethernet端口板载LEDc重置按钮等介绍

BeagleBone硬件概览Ethernet端口板载LEDc重置按钮等介绍 你进入BeagleBone世界的第一步就是将它连接以得到命令提示,然后你就可以处理文件以及执行命令了。在这里,你就可以定制你的整个系统...

大学霸
2015/04/09
455
0
Beaglebone Black的启动

Beaglebone Black的启动 第1章 准备开始 Beaglebone Black上最显眼的恐怕就是板子两侧的扩展端口,一侧有46个端口,共92个端口Beaglebone Black的启动。并且,每个数字端口有8种不同的模式供...

大学霸
2015/03/26
1K
1
BeagleBone Black教程之BeagleBone Black设备的连接

BeagleBone Black教程之BeagleBone Black设备的连接 BeagleBone Black开发前需要准备的材料 经过上面的介绍,相信你已经对BeagleBone有了大致的了解,你需要注意到完成一件事情可能有多种不同...

大学霸
2015/07/06
3.5K
0
BeagleBone Black项目实训手册(大学霸内部资料)

BeagleBone Black项目实训手册(大学霸内部资料) 介绍:本教程是《BeagleBone Black快速入门教程》的后续教程。本教程以项目操作为主,讲解LED项目、声音项目、传感器项目以及显示项目,并对...

大学霸
2015/03/03
0
0
为什么使用BeagleBone BeagleBone的优点

为什么使用BeagleBone BeagleBone的优点 当前,一个典型的基于微控制器板的售价在120元左右,而BeagleBone Black的售价在330元左右。除了更强大的处理器之外,你额外的钱还买到了什么? 1.2....

大学霸
2015/01/08
730
0

没有更多内容

加载失败,请刷新页面

加载更多

为构建社交关系链手淘都做了啥?

作者|王卫(泓冰) 出品|阿里巴巴新零售淘系技术部 01、淘宝社交关系推荐的背景 1、互联网下半场到来:互联网的下半场,人口红利消失,各大平台需要对用户做精细化运营,用户的增长和留存是每一...

阿里云官方博客
23分钟前
3
0
Iaas/Paas/Saas有何区别,一个故事告诉你

云计算有三种服务模式,IaaS,PaaS和SaaS。单从英文全称去理解,他们分别是“基础设施即服务”“平台即服务”和“软件即服务”。 这样翻译过来可不好理解,但是我们可以举个例子。现在我们就以...

JEPaaS云平台
30分钟前
4
0
温度传感器怎么测好坏

  温度传感器也就是负温度系数热敏电阻,温度越高,电阻越小,测量时先看其阻值能不能根据温度的变化而变,再看其变化的阻值是不是在标定的范围之内。   有以下四种方法;   1、若是有...

仙溪
31分钟前
3
0
zk中ZooKeeperServer解析

内部类 ChangeRecord 处理PrepRP和FinalRP之间的信息 static class ChangeRecord { ChangeRecord(long zxid, String path, StatPersisted stat, int childCount, List<ACL> acl) {......

writeademo
41分钟前
3
0
LNMP---安装worrdpress、discuz,域名重定向,用户认证,nginx访问日志

4.34 安装wordpress 4.35 安装discuz 4.36 域名重定向 4.37 用户认证 4.38 nginx访问日志 一、安装wordpress 创建博客: 添加一个博客的虚拟主机 blog.tobe.com.conf 做如下更改 安装博客wor...

tobej
43分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部