BBB系统的内部,已经在192.168.7.2这个网址上做了一个server,我们一般用ssh连接的时候对它也很熟悉了,这里的端口是22。查阅相关资料,发现在192.168.7.2:3000这个端口是利用Node.js来控制BBB的,它是类似于JavaScript的语言,提供的node解释器。对于熟悉Python的同学而言,解释器应该很好理解了。通常我们的js文件是给浏览器用的,有了这个解释器就不需要啦。在命令行直接输入node就可以调用这个了,跟Python很类似
我们在浏览器输入192.168.7.2:3000就自动跳转到了Cloud9云端编程环境,左边侧边栏所有的文件在root:/var/lib/cloud9#这个目录下
在额外分出来的,挂载的BeagleBone Getting Started这个移动盘下面,点击那个START.html在这个位置我们也可以看到关于BoneScript 的一些信息和编程实例,也就是上文的那个编程环境中的文件
1. 获取平台信息(学命令行打印信息)——getPlatform和console.log
var b = require('bonescript');
b.getPlatform(printData);
function printData(x)
{
console.log('name = ' + x.name);
console.log('version = ' + x.version);
console.log('serialNumber = ' + x.serialNumber);
console.log('bonescript = ' + x.bonescript);
}
每当我们进入一个交互页面,最上方就是平台信息了,就是通过这个函数来实现的
2. 关闭四个led(pinMode和digitalWrite)
var b=require('bonescript');
b.pinMode('USR0', 'out');
b.pinMode('USR1', 'out');
b.pinMode('USR2', 'out');
b.pinMode('USR3', 'out');
b.digitalWrite('USR0', 0);
b.digitalWrite('USR1', 0);
b.digitalWrite('USR2', 0);
b.digitalWrite('USR3', 0);
3. 常亮然后恢复初始状态——setTimeout和writeTextFile
var b = require('bonescript');
var p = '/sys/class/leds/beaglebone:green:usr';
b.pinMode('USR0', b.OUTPUT);
b.pinMode('USR1', b.OUTPUT);
b.pinMode('USR2', b.OUTPUT);
b.pinMode('USR3', b.OUTPUT);
b.digitalWrite('USR0', b.HIGH);
b.digitalWrite('USR1', b.HIGH);
b.digitalWrite('USR2', b.HIGH);
b.digitalWrite('USR3', b.HIGH);
setTimeout(restore, 2000);
// var timer = setTimeout(callback, milliseconds);
// clearTimeout(timer);
function restore()
{
resetUSR0();
function resetUSR0() {
b.writeTextFile(p+'0/trigger', 'heartbeat', resetUSR1);
}
function resetUSR1() {
b.writeTextFile(p+'1/trigger', 'mmc0', resetUSR2);
}
function resetUSR2() {
b.writeTextFile(p+'2/trigger', 'cpu0', resetUSR3);
}
function resetUSR3() {
b.writeTextFile(p+'3/trigger', 'mmc1', complete);
}
function complete() {
}
}
4. User3灯间隔1秒闪烁——setInterval
var b = require('bonescript');
var state = b.LOW;
b.pinMode("USR0", b.OUTPUT);
b.pinMode("USR1", b.OUTPUT);
b.pinMode("USR2", b.OUTPUT);
b.pinMode("USR3", b.OUTPUT);
setInterval(toggle, 1000);
// var timer = setInterval(callback, milliseconds)
// clearInterval(timer)
function toggle()
{
if(state == b.LOW) state = b.HIGH;
else state = b.LOW;
b.digitalWrite("USR3", state);
}
5. 获取pin的模式——getPinMode
var b = require('bonescript');
b.getPinMode("P8_13", printPinMux);
function printPinMux(x)
{
console.log('pin = ' + x.pin);
console.log('name = ' + x.name);
console.log('mux = ' + x.mux);
console.log('pullup = ' + x.pullup);
console.log('slew = ' + x.slew);
if(x.options)console.log('options = ' +x.options.join(','));
console.log('err = ' + x.err);
}