是 JavaScript 大神,

能写出漂亮的代码,

还会很多 JavaScript 奇技淫巧?

比如这种 Hello World

゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];(゚Д゚) [゚o゚]='\"';(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚Θ゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_');

除了这些

你是否尝试过

用 JavaScript 开发硬件应用?

点亮一盏灯,

又或是根据灯光的亮度,

在显示器上显示不同的表情。

你可能试过很多种的开发方法,

但是高效率的开发,

才是最重要的。

如何高效率?

手把手教你!

首先,一张图了解必备技能和工具

拥有技能和工具后,

我们以点亮一盏灯为起步,

开始高效开发硬件应用

炒鸡甜美的女程序猿解读~比林志玲还嗲,不信点击听呀!

一、下载和配置 Ruff SDK

1. 下载 Ruff SDK 并解压。2. 配置环境变量 RUFF_HOME 和 PATH(以下方法仅在当前命令行会话中有效,参考环境变量配置了解如何保留配置):

· Linux / OS X 打开终端,分别执行以下两条命令

(需将 /path/to/ruff-sdk 替换为解压后的文件夹路径):export RUFF_HOME=/path/to/ruff-sdk

export PATH="$PATH:$RUFF_HOME/bin"

· Windows

打开命令行,分别执行以下两条命令

(需将 X:\path\to\ruff-sdk 替换为解压后的文件夹路径):set RUFF_HOME=X:\path\to\ruff-sdk

setx PATH "%PATH%;%RUFF_HOME%\bin"3. 这时在命令行中尝试执行 rap version,如果 rap 版本正常打印,说明 PATH 配置成功。Ruff SDK 中包含了 rap 和 ruff 两个可执行文件。其中 rap 是包含了设备匹配,应用初始化,驱动及模块管理等功能的开发工具;而 ruff 则是 Ruff 的运行时,在电脑中主要用于测试及模拟。

二、创建项目

1. 新建项目文件夹(如 hello-ruff),进入文件夹后,使用 rap 初始化应用。(请尽量避免在 SDK 目录中新建项目。mkdir hello-ruff

cd hello-ruff

rap init

2. 根据提示,填写相应内容(可全部使用默认值),rap 会初始化项目并下载开发板的配置信息,生成默认的硬件配置文件(ruff_box.json)。

三、连接设备

1. 首先我们需要将 Ruff 开发板上的 micro USB 接口与 USB 电源线连接,Ruff 开发板将随即启动。如果是一块全新的开发板,启动完成后会看到红色 LED 闪烁,表示正在等待网络配置。

2. 现在使用 rap wifi 命令为开发板配置 WiFi:rap wifi填写好 SSID 和密码后,rap 将会广播 SSID 及密码(如果当前电脑连接了多个网络, rap 会询问使用哪一个 IP 地址进行广播)。此时开发板会通过 LED 指示网络连接情况:

· 蓝色 LED 闪烁:开发板已经收到配置,正在尝试连接。· 蓝色 LED 常亮:连接成功!· 蓝色 LED 闪烁变为红色 LED 闪烁:开发板连接网络失败或超时,需要重新配置。

除通过路由器广播外,Ruff 开发板还可以通过 AP 模式或串口模式进行 WiFi 配置。请参考网络配置了解更多。开发板与电脑需要在同一网段内。开发板目前仅支持 2.4G 频段,所以请配置支持 2.4G 的热点。部分双频路由 2.4G 与 5G 频段互通,电脑仍然可以连接 5G 热点。

3. 完成网络连接后,在应用目录中执行 rap scan 命令扫描 Ruff 开发板:rap scan一切顺利的话,将在列表中看到自己的 Ruff 设备,如:Scanning (this will take 10 seconds)...

* [unnamed] - 192.168.31.123 (SN: R0100000)

Scan completed.

? select a device to interact: (Use arrow keys)

> [unnamed] - 192.168.31.114 (SN: R0100000)4. 回车选中自己的设备,rap 会记住这个地址,便于以后的操作(仅当在应用目录时有效)。根据 rap 的提示,可以给开发板设置一个名称,并配置密码,一定程度上避免未授权的操作。

四、部署应用

1. 打开 src 目录下的 index.js,可以看到初始化过程中生成的示例代码:'use strict';

$.ready(function (error) {

if (error) {

console.log(error);

return;

}

$('#led-r').turnOn();

});

$.end(function () {

$('#led-r').turnOff();

});这段代码将在应用启动后点亮红色板载 LED(设备 ID 为 led-r,# 表示通过 ID 匹配设备),并在退出时关闭。

2. 在应用目录下执行命令 rap deploy -s(-s 表示部署完成后自动启动应用):rap deploy -s如果一切顺利,在应用启动成功后应该可以看到红色板载 LED 已经点亮了。

3. 这个时候再执行 rap stop,即可结束运行中的应用并看到红色板载 LED 熄灭:rap stop

五、添加外设

1. 从套件中找出大按键模块(Push Button Module,型号 CK002),我们将尝试通过它来控制板载 LED 的点亮和熄灭。根据包装上的标签,可以在 rap 网站上查看到它的信息,包括支持这个外设的驱动。

2. 在应用目录执行命令 rap device add button(其中 button 是我们为即将添加的外设指定的 ID,将在程序中用到。)rap device add button

3. 填入外设型号 CK002 并确认,rap 将搜索 Ruff 软件包仓库并列出可用的驱动:? model: CK002

Searching supported drivers from Rap registry...

? select a driver for device "button"(CK002): (Use arrow keys)

> button-gpio@1.0.0

4. 选择 button-gpio 的最新版本并确认。rap 会根据选择自动下载驱动并配置设备信息到 app.json 文件。

六、硬件布局

1. 添加完外设后,我们需要重新对硬件进行布局(layout)和连接。在应用目录中执行命令 rap layout:

rap layoutrap 会对外设需要的资源进行自动分配,计算出设备间的连接方式,并生成新的 ruff_box.json 文件。除此之外,rap 还提供了图形化的布局编辑器,可以用于查看设备连线并进行简单的调整。在应用目录执行 rap layout --visual,rap 会下载设备的图片及针脚信息,以可视化的方式展示出来。

2. 根据 rap 计算出(或者编辑后)的方式对硬件进行连接。(建议在连接硬件的过程中断开电源。)

7绑定按键事件

1. 修改 src 目录下的 index.js,绑定 button 按键的 push(按下)和 release(释放)事件:$.ready(function (error) {

if (error) {

console.log(error);

return;

}

// 在 `#button` 按下时点亮 `#led-r`.

$('#button').on('push', function() {

console.log('Button pushed.');

$('#led-r').turnOn();

});

// 在 `#button` 释放时熄灭 `#led-r`.

$('#button').on('release', function() {

console.log('Button released.');

$('#led-r').turnOff();

});

});

$.end(function () {

$('#led-r').turnOff();

});对于其他驱动提供的 API,可以到在 Ruff 软件包仓库 搜索相应驱动及其使用说明。

2. 再次执行 rap deploy -s 命令部署并启动应用:

rap deploy -s试试看,按下和释放按键是不是能够点亮和熄灭红色板载 LED 了?

八、查看应用日志

为了更好地了解应用的运行状态,我们可以在应用中打印日志并通过 rap log 命令查看。

新建一个命令行窗口,进入应用目录,执行命令 rap log。当控制台显示 “Connected to device.” 时表示已经与开发板建立连接。

按下大按键,如果已经部署并启动了上一步修改后的应用,日志控制台应该会随即打印 “Button pushed.”,红色板载 LED 点亮。此时再释放大按键,控制台则会打印出 “Button released.”,红色板载 LED 熄灭。

简单的8个步骤即可高效率点亮一盏灯!

js 嵌入式开发板_张江镇林志玲教你用JavaScript做嵌入式开发相关推荐

  1. linux 开发板模拟u盘,S5P4418开发板Linux下实现模拟U盘教程飞凌嵌入式

    飞凌嵌入式ARMCortex-A9 S5P4418开发板上能否满足U盘的功能?其实可通过修改内核配置和文件系统相关内容,在OK4418开发板上实现模拟U盘功能,模拟U盘可以帮助我们实现开发板与Wind ...

  2. 小E开发板wifi音箱一实现PC通过wifi传数据到开发板进行播放

              外话:各位手头上没有esp8266的开发板注意了,目前开发快正在进行"免费开发板活动",本人就是在他们那里申请到的开发板,开发快提供的不单单是开发板,还有他们强 ...

  3. bme280 环境传感器开发板_盘一盘那些年我们常用的物联网开发板!

    来源:华为云社区,作者:星辰27,直接来源:华为开发者社区 众所周知开发板是物联网架构中的感知层智能设备,这类设备通常有芯片.通信模组.以及操作系统组成.当然不同的开发版在功能以及使用上可能存在着一定 ...

  4. python 物联网开发板_物联网学什么开发板好?

    可以试试我们的三明治开发板呀!比较容易上手,你可以使用它轻松创建一款通过智能音箱语音或者手机App控制的智能硬件产品,喜欢玩DIY的知友可以体验下. 配合我们的IoT开发平台,即可快速完成智能产品de ...

  5. 物联网入门学什么开发板_物联网入门:如何构建DIY Blynk板

    物联网入门学什么开发板 本教程适用于具有一定DIY硬件经验的人,尽管高级初学者可能会发现这是一个有趣的挑战. 此外,有经验的用户可能会发现设置此方法有趣,以便初学者学习. 要使该板不 带有带有Blyn ...

  6. 物联网开发常用的开发板_物联网开发人员简介:物联网开发人员调查的结果

    物联网开发常用的开发板 今天,我们发布了第二次年度IoT开发人员调查的结果 . 与去年一样,它为开发人员如何构建物联网解决方案提供了有趣的见解. 今年, Eclipse IoT工作组与IEEE IoT ...

  7. 全志v40 开发板_全志

    A64是全志科技于2015年初发布的4核64位处理器,主要应用于入门级的平板电脑.全志A64采用64位四核Cortex-A53 CPU架构,Mali400MP2 GPU图形处理器,支持H.265 4K ...

  8. TMS320C6678开发板( DSP+Zynq )RTOS综合功能案例,嵌入式必看!

    前 言 减少在产品开发过程中对DSP外设接口程序进行整合的难度,我们提供对DSP主要外设接口实现底层初始化的RTOS综合功能测试IFD(Integrated Function Demo)案例程序,助力 ...

  9. JAVA硬件开发板_用Java开发的【智能语音开发板MEGA ESP32AI】

    有点激动 ~ ~ ~ 新鲜出炉,用视频看看效果哦 我们新研发出世的语音开发板MEGA ESP32AI,来看看吧,有点腻害哦!!!先演示下功能语音控制开关等.播报天气 戳下面链接看视频哦? 这些都是怎么 ...

最新文章

  1. 德鲁克《管理的实践》笔记
  2. git错误“无法推送一些引用到xxx“的解决方法
  3. library not found for -lAPOpenSdk解决方案
  4. tcpdump 识别成dns_为什么总能看到广告弹窗?没错,就是DNS的问题
  5. C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组
  6. 阿里帝国到底有多庞大
  7. 【面向对象】继承与封装
  8. 多任务实现-协程(python 版)
  9. Linux 网络编程 —— 套接字的介绍
  10. 开发板与虚拟机tftp服务器安装与使用
  11. 《redis设计与实现:第一部分》
  12. xml转json(dom4j + fastjson)
  13. 企业信息安全保护模式
  14. 前端学习之路---node.js(二)
  15. 如何选择合适的无线网桥
  16. OLAP实践 —— OLAP基本概念理解总计小记
  17. 【炼丹】炼丹之如何打标(未完成。。。)
  18. 极简权限认证必须掌握【代码+原理+建议收藏】
  19. 国密算法SM2实现 vue+C#
  20. Home School Books美国家庭学校教育小学初中高中全套美语教材

热门文章

  1. Linux traceroute 原理及使用
  2. 从0开始挑战AR开发100天!这就是苹果这么宠开发者的原因?
  3. php mysql prepare_PHP mysqli的prepare准备语句使用说明
  4. word2vec模型评估_「译」 用 Word2vec 表示音乐?
  5. html中marquee改变颜色,html中marquee标签的用法
  6. maven java项目 配置双数据库(多数据库配置)
  7. Python 环境搭建(Win 安装以及Mac OS 安装)
  8. Matlab画三维图的一些技巧
  9. [bzoj4566][SAM]找相同字符
  10. 做室内定位的看过来,Wi-Fi和LTE谁比较好?