孙靖凡 李威 刘宇婕 杨文珺
摘要:针对当前物联网所面对的共性需求,提出了要为世界物联网发展提供更加开放性服务。而当今社会也面临着种种问题,针对传统农作物数据监测局限性较大、架设线路困难和耗费人力物力等问题,设计了一种农作物远程化,智化的低空观测系统。该系统以树莓派为核心,通过无线网络实现农作物低空和地面联合观测。完成对传感器数据的接入、管理储存,处理及其应用,并以树莓派为网关设备进行图像的采集,通过Hppt 或socket.IO与云平台服务器进行连接。而这些都是基于树莓派的编辑来实现的,最终得出树莓派开发使得生活便利,美好,推动时代发展的结论。
关键词:树莓派;Linux;NANO;VIM;应用实例
中图分类号:TP399 文献标识码:A 文章编号:1009-3044(2018)09-0091-04
Abstract: In view of the common needs faced by the current Internet of things, it is proposed to provide more open services for the development of the worlds Internet of things.Todays society is facing a variety of problems,limitations of traditional crops data monitoring,difficult setting up lines,laborintensive material and other problems. A remote and intelligent crops low-altitude observation system was designed.Taking Raspberry Pi as the core, the system can achieve the observation on low-altitude and ground through wireness network.The access,management,storage,handing and application of the performed.The raspberry pi is used as a gateway device port for image date acquisition,connected thought Http or Socket.IO to the cloud platform server for image date transmission. And these are based on the editors of the raspberry pie and finally come to the conclusion that the raspberry pi is developing to make life convenient and beautiful and promote the development of the times.
Key words:Raspberry pi;Linux;NANO;VIM; application example
1 硬件设计
树莓派(Raspberry Pi) 是一款基于“Linux”嵌入式系统的卡片电脑,它提供了IIC( InterIntegrated Circuit) 、USB( Universal Serial Bus) 和 HDMI( High Definition Multimedia Interface) 等接口,可選用 Python、 C 语言通过装载 Linux 系统和相应的应用程序实现多种功能。
2 Vim编辑器的安装与配置
2.1 安装
首先我们得在树莓派上安装vim,我们可以运用apt-get的命令手动安装vim。在命令行界面输入sudo apt-get install vim根据命令分析和依赖关系它会自动获取安装,完成后会显示vim已经是最新的版本。
安装完成后,在命令行界面输入vim会进入欢迎界面,界面上会显示相关的欢迎词和提示。由于vim是支持命令行的工具,所以说它的所有操作都是可以用快捷键完成的,它其实是支持鼠标的,都是在平时的使用过程中效果并不是特别好,所以我还是建议大家使用vim的快捷键。
2.2 前期准备
Vim有一个配置文件,叫做vimrc。先启动vim 按Esc加:进入底行工作模式输入echo $VIM按回车键就可以看到配置文件所在的位置/usr/share/vim,然后底行工作模式:q退出。
可以进入命令行输入cat/usr/share/vimrc进行查看配置文件,然后我可以对这个文件进行编辑,我们可以使用NANO进行也可以通过VIM进行,但是NANO有个问题是如果修改该文件保存后要写入root权限,那么我们就需要用sudo命令进行sudo vim /usr/share/vim/vimrc。然后我们进入文件,蓝色字体是对vim的描述,它使用引号表示注释,如果去掉引号表示注释生效。我们可以按a进入编辑模式,按Delete键去掉注释,文件中有几个关键句。
例如:syntax on 表示标志打开,生效的话表示带有C语言的内容会高亮显现,vim5之后就可以支持这一点。接下来打开setshowmatch,这一行是显示括号匹配的,在C语言的编程中常常会出现括号不匹配的问题,生效这一行可以很好的避免这一问题,光标移动到正反括号上回高亮显示其对应括号。紧接着,在下面添加一行内容set nu,意义是显示行号,这个vim本身是没有的需要用户自行添加。还有背景色,支持鼠标,C语言的智能缩进这些设置可以参考手册,根据自己喜好自行调整。
目前的设置,已经足够进行LED小灯或是智能小车循迹的编程使用。
下面然我们具体来看一下vim编辑器如何来编写内容。
3 Vim的使用
3.1 环境搭建
首先在树莓派命令行中输入 mkdir+文件名 创建一个新的目录,这里以mkdir test1为例。然后输入cd test1切换进这个目录,新建一个vim文件,在命令行输入vim xiaoche.py回车进入文件夹。
接下来的使用就建立在对快捷键和工作模式的认识基础上,让我们来简单了解一下vim快捷键UI工作模式的使用。
3.2 vim的常用工作模式
3.2.1 四个Vim常用模式:
命令模式;插入模式;可视模式;正常模式。
3.2.2 怎么进入模式
1)正常模式
正常模式主要用来浏览和修改文本内容的
打开Vim一般都是正常模式。在任何模式下,只需要通过按下 Esc 键就能够返回正常模式了。
2)插入模式
插入模式是用来删改或添加内容的
i 在光标所在字符前开始输入文字,进入插入模式
a 在光标所在字符后开始输入文字,进入插入模式
o 在光标所在行的下面单独开一新行来输入文字,进入插入模式
s 删除光标所在的字符,进入插入模式
3)可视模式
可视模式等同于于高亮选取文本后的普通模式
可视模式拥有子模式,以行为单位进行选取的可视行模式,使用“V”键进入和以块为单位进行选取的可视块模式,按 “Ctrl+v”键进入
4)命令模式
命令模式则大多用于操作文本文件,例如保存文件;或者用来改变编辑器本身的状态,例如设定多栏窗口、标签或者退出编辑器等等
3.3 模式切换图
3.4 基本快捷键的使用
1)替换与删除
Vim的常规删除命令是 d、x,结合Vim的其他特性可以实现一些基础的删除功能。例如将光标定位于文件内指定位置,用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多个字符,一行或多行
Vim常规的替换命令有c、s ,结合Vim的其他特性也可以实现一些基础的替换功能,不过替换命令执行以后,通常会由编辑模式进入插入模式
s 用输入的正文替换光标所指定的字符;
S 删除当前行,并进入编辑模式;
ns 用输入的正文替换光标右侧 n 个字符
nS 删除当前行在内的 n 行,并进入编辑模式
cw 用输入的正文替换光标右侧的字
cW 用输入的正文替换从光标到行尾的所有字符
ncw 用输入的正文替换光标右侧的 n 个字
cb 用输入的正文替换光标左侧的字
ncb 用输入的正文替换光标左侧的 n 个字
cd 用输入的正文替换光标的所在行
ncd用输入的正文替换光标下面的 n 行
gg dG 删除全部内容
d0 删除到行首
dl 删除当前字符
dh 删除前一字符
dd 删除当前行
dj 删除上一行
dk 删除下一行
db 删除到前一个单词
dB 删除到前一个单词包括标点在内
2d 删除当前行开始的2行
d$ 删除当前字符之后的所有字符(本行)
D 删除当前字符至行尾。D=d$
kd gg 删除当前行之前所有行
jdG 删除当前行之后所有行
J 删除两行之间的空行,实际上是合并两行
2)复制粘贴
yy 拷贝当前行
*“+y 复制 1 行到操作系统的粘贴板
*“+nyy 复制 n 行到操作系统的粘贴板
nyy 拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行
x 剪切当前字符
2x 剪切当前光标开始向后两个字符
X 剪切當前字符的前一个字符
p粘贴到下一行或右侧,修改和删除的数据自动到粘贴板中
P粘贴到上一行或左侧
如果是要替换别的单词,则先按 v 进入 visual mode,选中要替换的单词,再按粘贴即可,粘贴板中就换成了被替换的单词
yiw在一个单词的任意字母使用,就复制该单词,而yw 只是复制从光标所在字母到词尾的部分
3)撤销和重复(底行模式)
u 撤销最近一次修改 undo
. 重复最后一条修改正文的命令
U 撤销所有修改
ctrl + r 取消最后一次的撤销 redo
4)打开、保存
:e path_to_file/filename 在已经启动的Vim中打开一个文件
:w 保存当前编辑的文件
:w file_temp 将当前文件另存为file_temp
5)退出
ZZ 保存并退出
:wq 保存并退出
:e! 放弃所有修改,并打开原来文件
Shift +Z,Q 无条件退出
:q! 无条件退出
ctrl + Z 退出vim,不推荐,会生成.swp的文件
6)注意事项
vim中含有多个寄存器,可以通过输入命令reg来查看:
1.数字寄存器:"0 ~"9,缓存最近操作内容,复制与删除有别, "1-"9缓存最近9次删除內容,"0寄存器缓存最近一次复制的内容
2.无名寄存器:"",缓存最后一次操作内容
3.行内删除寄存器:"-,缓存行内删除内容
4.只读寄存器:":,".,"%,"#,分别缓存的是最近命令、最近插入文本、当前文件名、当前交替文件名
5.表达式寄存器:"=,只读,并用于执行表达式命令
6.具名寄存器:"a ~ "z或"A - "0Z,指定时可用
7.黑洞寄存器:"_,不缓存操作内容
8.选择及拖拽寄存器:"*,"+,"~,存取GUI选择文本,可用于与外部应用交互,使用前提为系统剪切板可用
9.模式寄存器:"/,缓存最近的搜索模式
比较特殊的是这个+寄存器代表系统剪切板
复制:"+y
粘贴 :"+p
树莓派3B默认安装的vim是不支持系统剪切板的 需要执行以下安装:
sudo apt-get install vim-gnome
3 NANO编辑器
NANO编辑器是在Linux VPS中的另一种编辑器,虽然vim编辑器的功能强大,但是不易上手,而NANO
则相对容易一些。下面我来简单介绍一下他的使用方法。
3.1 安装
命令行界面输入sudo apt-get install -y nano
自动安装
3.2 环境搭建
1)nano可以支持语法高亮,从而更好地服务于编程。为了使用语法高亮,首先要安装语法高亮文件:
2)安装完成后,可以看到~/.nano/syntax下多了很多语法高亮文件:
3)将语法高亮文件添加到~/.nanorc中,就能让nano启动对相应语言的语法高亮支持,例如:
4)如果有需要,还可以把更多的语法高亮文件加入到.nanorc中。这时再打开获得支持的程序文本时,就可以看到语法高亮的效果。下图中用nano打开了一段Python程序:
3.3 NANo的使用方法
1)新建或打开文件
NANO的路径+文件名
若文件存在,上面的命令将会打开这个文件;若文件不存在,就会创建一个新文件并打开。
2)复制、剪贴、粘贴
复制整行:Alt+6 剪贴整行:Ctrl+K
粘贴: Ctrl+U
如果需要复制、剪贴多行或者一行中的某一部分,就将光标移动到需要复制或剪贴的文本的开头,按Ctrl+6做标记,然后把移动光标到待复制或剪贴的文本末尾。此时选定的文本会高亮,用Alt+6来复制,Ctrl+K来剪贴。如果在选择文本过程中要取消,只需要再按一次Ctrl+6
3)搜索
按Ctrl+W,然后输入关键词,按enter确定。将会定位到第一个匹配的文本,接下来可以用Alt+W来定位到下一个匹配的文本。
4)翻页
按Ctrl+Y翻到上一页,按Ctrl+V翻到到下一页
5)保存
通过Ctrl+O来保存修改的内容
6)退出
按Ctrl+X,若你修改了文件,则下面会询问你是否需要保存修改。输入Y确认保存,输入N不保存,按Ctrl+C取消返回。
如果输入了Y,下一步会让你输入想要保存的文件名。如果不需要修改文件名直接enter就行;若想要保存成别的名字,则输入新名称后确定。
4 应用实例
以驱动小车一侧电机为例:
1)命令行界面输入 vim xiaoche.py
新建一个vim文件
2)进入VIM编辑器,按a进入插入模式,输入以下代码
3)按Esc退出插入模式,按:进入底行模式,输入wq保存并且退出
4)回到命令行界面输入 sudo python xiaoche.py运行程序
5 结束语
随着物联网时代的到来,信息技术的飞速发展,对农业,生活,工作等领域更加高效的管理控制是必不可少的,树莓派的作用尤为突出。树莓派对于全球Linux嵌入式开发的贡献是大家有目共睹的,从长远来看注重编辑器的规范操作在未来是必不可少的。熟练掌握树莓派的NANO和VIM编辑器将为更进一步的研究与开发,打下坚实的基础,无形中推进了世界嵌入式Linux开发的发展。以此为基础,将会有更多,更加精彩神奇的创造,丰富并且使世界更加美好。
参考文献:
[1] EbenUpton, Gar.树莓派用户指南[M].3版.张敬轩,郭栋,王伟,译.人民邮电出版社,2016.
[2] 李文胜.基于树莓派的嵌入式 Linux 开发教学探索[J].电子技术与软件工程,2014,9(1):5660.
[3] 张怀柱.基于树莓派的农作物低空观测系统设计[J].吉林大学学报:信息科学版,2015(11).
[4] 苏祥林.基于树莓派的物联网开放平台[J].西安邮电大学出版社,2016(5).