NanoPi初体验——点亮LED灯
NanoPi是友善之臂公司推出的类似于树莓派的嵌入式开发板(应该算是开发板吧)。Nanopi有很多的种类,性能和使用的CPU也不同。我手上的是Nanopi-M1
板载资源在图上都有说明,这块板子的CPU是全志H3,Cortex-A7的内核。更多板子的说明和使用参考wiki
-
要准备的工具
开发板,这自然是不能少的,我用的是Nanopi M1,其他板子的话 Nanopi NEO也可以,因为这两块板子的CPU都是一样的;
microSD卡和读卡器,大于8GB速度高于class10;
电源适配器(2A),普通的安卓机的充电器就可以;
LED和杜邦线;
网线或者类似小米WiFi的随身WiFi(关于NanoPi可支持的USB WiFi在wiki中有列出)。Nanopi支持的USB WiFi(下图)
-
准备工作
下载相关工具和镜像文件下载地址 ,链接中有全部的关于NanopiM1的资料有需要可以下载,现在主要下载tools文件夹(全部)和official-ROMs(镜像文件)文件夹(部分)。这两个文件夹的文件说明
这里有5个官方提供的镜像文件,基于Ubuntu core和基于Debian的,还有一个Android的。Linux3.4和Linux4.x.y的内核的区别在wiki中也有说明
我选择的是基于UbuntuCore Linux4.x.y的系统烧录,这个系统是没有图形界面的,如果说你要通过HDMI接口连接显示器的话可以用Linux3.4.y内核的系统,至于是Debian还是Ubuntu没有多大的区别。
- 系统烧录
由于板子没有上没有flash,所以我们要用SD卡作为整个系统的存储介质。首先格式SD卡,如果是新的SD卡安装系统的话(Android除外)可以不用格式,毕竟格式的时间有点长。格式SD软件用下载的tools下的HDDLLF.4.40.exe
双击打开(打开之前带SD的读卡器插到带脑上),之后会列出电脑的硬盘和SD以及其他插在电脑上的存储设备,选择SD,千万不要选错了,选成了电脑硬盘。
格式化的时间有点长(可能我的是16GB的SD卡吧)
格式化完成后,开始烧录系统,烧录之前要把你要烧录的镜像文件解压,解压之后是一个img后缀的文件。
解压烧录工具
选择要烧录的系统,盘符选择SD所在的盘符。接下来又是等待
- 系统配置
将烧录号系统的SD卡插到Nanopi上,上电,系统启动了。可是我们看到的只有电源指示灯亮和状态指示灯闪烁。如果说安装的是有图形界面的系统,而且你恰好有可以通过HDMI连接的显示器的话就可以连接显示器,键盘,鼠标,等设备,接下来的操作就和品尝使用电脑一样。
然而,Linux系统的正确打开方式是命令行,接下来我就在没有屏幕的情况下配置Nanopi。首先要下载一个远程终端控制的软件,一般有securCRT,Xshell等,我这里用Xshell,毕竟这个软件是免费的。软件的下载可以到xshell官网下载。下载安装打开,在打开软件之前要把板子同过网线连接到路由器上,同时你的电脑也要连接到同一台路由器。登录到路由器的后台查看nanopi的IP地址,不同的路由器后台登录的方式(后台的登录地址)不同,具体根据路由器的型号可以百度的到。
这是我的板子连接路由器后在后台查到的IP地址,记下IP地址
打开xshell会弹出这样的对话框,点击“新建”
填写相关的连接信息,要填写的有名称和主机,名称随便填一个自己喜欢的就可以,主机填写IP地址,协议和端口保持默认的SSH和22
设置完后,点确定就可以连接上了,第一次连接可能还要再次输入密码,密码还是pi
连接成功的画面
- 安装 WiringNP库
接下来就要在这个黑窗口中通过敲写命令完成对Nanopi的一切操作,写入下面的命令,每写一行要回车执行完才可以接着往下写
git clone https://github.com/friendlyarm/WiringNPcd WiringNP/chmod 755 build./build
敲完第一行回车会出现下面这些信息,接着继续后面的命令
敲完上面的命令,GPIO的驱动库就安装完成了,再用下面命令检测安装是否成功
gpio readall
回车,在终端会列出nanopi的所有GPIO
安装成功后,就可以开始写程序,在终端(黑窗口)中输入
vi tesr.c
回车,会出现这个
这是一个文本编辑器(vi),和Windows下的记事本差不多,只是vi中所有的草操作都是通过键盘的命令实现的,一打开进入的命令模式,这时键盘上的字母全是命令,按小写字母 i
切换到编辑模式,编辑模式下和写TXT文本文件一样。接着就写入以下的代码
#include int main(void){ wiringPiSetup() ; pinMode (7, OUTPUT) ; for(;;) { digitalWrite(7, HIGH) ; delay (500) ; digitalWrite(7, LOW) ; delay (500) ; }}
写完之后,按 Esc
键回到命令模式,接着输入:wq
回车,又会到原来的界面,再输入,
同样输入一行就要回车
gcc -Wall -o test test.c -lwiringPi -lpthreadsudo ./test
完成上面所有操作后,把LED的负极接到板子的GND,正极接到Pin7,GPIO的顺序如下
LED灯会以一定的频率闪烁表示成功完成了。
开发者涨薪指南
48位大咖的思考法则、工作方式、逻辑体系植物大战僵尸