一[开箱+烧写系统]

今天拿到了BPI-M2 zero。linux小板是我的菜。
可以看到 zero非常的小巧(图上是我添加的wifi天线)

由于板卡尺寸小,所以没有多余的接口,如果外接usb设备需要接otg线,hdmi也是mini接口的。好在我以前有储备,翻腾着找出来了线接了起来。

然后去下载了系统。我选的是Armbian_5.36_Bananapim2zero_Ubuntu_xenial_next_4.14.3_desktop_preview_build_by_bpi.img
话说这个系统好难找啊,官网绕了好几圈,最后才费劲下载了下来。
开始烧录系统到sd卡
因为我用的是mac 所以这里我用到的是etcher

等待写完,插入板卡。上电,显示器会显示启动信息
使用默认用户名 root 密码 1234

登陆后会让你重新设置新密码,然后按照提示填好用户信息,就会启动桌面。

然后可以设置wifi信息,下次就可以直接ssh操作了。

二[搭建开发环境]

经过这几天的测试,我发现这小东西块头不大,火气不小。开机一会,主控芯片就烫手了。作为爱板人士的我,怎么能忍心小东西忍受这样的煎熬。赶紧买了散热片给贴上了,现在好了很多。
我开发习惯使用nodejs,所以在装完系统后,就开始搭建nodejs环境了 。


安装nvm
nvm是个啥?nvm是一个可以让你在同一台机器上安装和切换不同版本node的工具

切换淘宝源

安装最新版本 node

安装完毕 验证下是否成功

ok 现在nodejs 安装完毕了。

 

三[扬帆起航-安装Sails]

sails不得不说是一个神器。具体是什么呢?看下面。

Sails 作为一个非常稳固的 nodejs 框架,提供了建立任何规模的 web 应用所需要的所有功能功能。

Sails.js 在底层使用了 express框架来提供对 http 请求的处理,同时使用 Socket.IO 框架来处理WebSocket 请求。同时作为一个前端应用开发框架,它允许开发人员选择他/她熟悉的技术来开发应用。

同时 Sails.js 也通过 waterline 框架实现了 ORM 功能。通过这个功能,你的应用程序可以在不进行大的修改的前提下,就可以从一个后端数据库,切换到另外一个后端数据库(也可以是一个NoSQL数据库)。

Sails 特别适合用来开发对数据的实时更新有较高要求的应用,比如多人棋类游戏,单页web应用等等。如果你对 Ruby, Django 或者 Zend 有一定的了解,那么你将非常容易理解Sail中的概念。

简单来说,Sails.js 既给开发者提供了一个优秀的 MVC 框架,也提供了一定的灵活性,让开发者可以自主选择前端开发方式和后端的数据库。 Sails.js 是由 Mike McNeil 创建的,现在由 Treeline and balderdash 提供支持。Sails.js 在 MIT 协议下开源。

你可以在网站 sailsjs.org 上找到更多关于这个框架的内容。

开始安装

经过漫长的等待,如果没什么报错,那么恭喜你,安装成功了 。

创建测试项目

会询问你 创建webapp 还是空项目 这里我选择 1

同样经过漫长的等待
等你看到

info: Created a new Sails app test-project!

就代表创建完毕,如果中途你不愿意等待了,可以 <CTRL+C>取消掉。
然后 cd test-project
然后运行

然后继续漫长的等待
等待安装完了

启动项目

如果看到这样的输出,恭喜你,可以扬帆起航了。

在浏览器里输入 BPI-M2的ip:1337

 

 

 

四[使用nodejs控制gpio]

BPI-M2 zero将IO口的控制映射到了/sys/class/gpio里相关文件中了,通过读写相关文件,就可以实现对应IO口的控制。

比如这样就可以控制gpio21 输出高电平了。
我们可以通过nodejs的fs模块来进行文件操作。我发现有一个现成的库可以使用,所以就不自己写了。
https://github.com/enotionz/gpio

安装gpio库。

测试代码:

保存为 test.js

然后

gpio21 就是高电平了。

另外我测试BPI-M2 zero的gpio定义好像跟树莓派不同。gpio21 是38脚 gpio20是40脚。这里浪费了我不少时间。