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,它对应于板载LED的USR3。

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的状态,即在HIGH和LOW之间切换。由于只有这两个状态,所以最简单的方式就是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 USR3以1000豪秒的间隔闪烁。如果你想要改变闪烁的频率,可以修改这条语句:

  • setInterval(toggle, 1000);

实际尝试一下是最好的。

小结

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

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

Beaglebone Black教程项目1闪烁板载LED的更多相关文章

  1. 使用Arduino点亮ESP-01S,ESP8266-01S上的板载LED

    因为在开发ESP-01s远程控制中觉得接线麻烦,又因为ESP-01s板子上带有LED灯,那就先点亮板载LED,  如图所示: 打开Arduino 把代码copy进去,再编译烧录,就可以看见LED灯每隔 ...

  2. Cubieboard2裸机开发之(二)板载LED交替闪烁

    前言 电路原理在文章http://www.cnblogs.com/lknlfy/p/3583806.html中已经说明,两个LED的原理图是一样的.要使两个LED交替闪烁,只需要在点亮蓝色LED,熄灭 ...

  3. Cubieboard2裸机开发之(一)点亮板载LED

    前言 CUbieboard2板载两个LED,一个绿色的,一个蓝色的,其中绿色LED通过三极管与PH20管脚连接,蓝色LED通过三极管与PH21管脚连接,这里只以蓝色LED为例,电路原理图如图1和图2所 ...

  4. Cubieboard 关闭板载led

    修改script.bin  找到最后节点[led_para] 修改leds_used = 0 script.bin 一般在系统盘的第一个分区 例如nand就在/dev/nanda sdcard就在/d ...

  5. BeagleBone硬件概览Ethernet端口板载LEDc重置按钮等介绍

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

  6. 超简单易用的 “在 pcduino 开发板上写 Linux 驱动控制板载 LED 的闪烁”

    版权声明:本文为博主原创文章,未经博主同意不得转载.转载联系 QQ 30952589,加好友请注明来意. https://blog.csdn.net/sleks/article/details/251 ...

  7. BeagleBone Black Industrial 进阶设置(性能优化以及延长板载eMMC存储寿命)

    前言 原创文章,转载引用务必注明链接.水平有限,欢迎指正. 本文使用markdown写成,为获得更好的阅读体验,推荐访问我的博客原文: http://www.omoikane.cn/2016/09/1 ...

  8. Beaglebone Black教程BeagleBone Black安装最新系统映像

    Beaglebone Black教程BeagleBone Black安装最新系统映像 BeagleBone Black安装最新系统映像 Beaglebone Black虽然已经预装了Debian操作系 ...

  9. stm32填坑之旅 - stm32f103c8t6点亮板载贴片蓝色LED

    转载请注明:https://www.cnblogs.com/rockyf/p/11691622.html 开篇 开篇一定要精彩,不然路人不理睬!下述是笔者作为arm小白的填坑之旅 没错,这个之前一直从 ...

随机推荐

  1. HDU 2717 Catch That Cow (深搜)

    题目链接 Problem Description Farmer John has been informed of the location of a fugitive cow and wants t ...

  2. bzoj 2440 容斥原理

    首先根据样例或者自己打表大概可以知道,对于询问k,答案不会超过k<<1,那么我们就可以二分答案,求当前二分的值内有多少个数不是完全平方数的倍数,这样就可以了,对于每个二分到的值x,其中完全 ...

  3. 主成分分析(PCA)及其在R里的实现

    主成分分析(principal component analysis,PCA)是一种降维技术,把多个变量化为能够反映原始变量大部分信息的少数几个主成分.设X有p个变量,为n*p阶矩阵,即n个样本的p维 ...

  4. Python3安装Celery模块后执行Celery命令报错

    1 Python3安装Celery模块后执行Celery命令报错 pip3 install celery # 安装正常,但是执行celery 命令的时候提示没有_ssl模块什么的 手动在Python解 ...

  5. ES6 新增的一些东西

    一.常量 不允许重复定义 const a='HELLO' const a='world'//报错Uncaught SyntaxError: Identifier 'a' has already bee ...

  6. Revison

  7. Linux汇编教程04:寻址方式

    这一节,我们主要来讨论寻址方式,这一点十分重要. 我们上一节有稍微提了一下,内存地址引用的通用格式: 地址或偏移(%基址寄存器, %索引寄存器, 比例因子 ) 结果地址 = 地址或偏移 + %基址寄存 ...

  8. python基础===8道基础知识题

    本文转自微信公众号: 2018-03-12 leoxin 菜鸟学Python 原文地址:http://mp.weixin.qq.com/s/JJSDv5YJOZ9e3hn28zWIsQ NO.1 Py ...

  9. centos_7.1.1503_src_6

    http://vault.centos.org/7.1.1503/os/Source/SPackages/ perl-Test-MockObject-1.20120301-3.el7.src.rpm ...

  10. IIS配置PHP环境(快速最新版)(转载+自创)

    (参考转载的) 我们知道php配置有几种: 1.CGI方式加载PHP环境,通常就是IIS里面配置解释器为php.exe,早期比较常见,目前使用较少. 特点是:稳定,但效率太低. 2.ISAPI方式加载 ...