Sublime Text 2的Arduino插件 ---- 替代Arduino IDE
本帖最后由 peanut 于 2012-11-28 15:28 编辑Stino -- A Sublime Text 2 Plugin for Arduino
最新版本请到Github下载: github.com/Robot-Will/Stino
最新版本编译没有使用Makefile,直接使用脚本编译,可能会产生问题。解决方案还在考虑中。
-------------------------------------------------------------------------------------------------------------------------------------------------------
在Sublime Text2的Preference菜单中添加了Show Arduino Menu项,可以开关Arduino菜单。
默认Arduino菜单时是不显示的,需要使用时显示出来,不用时可以关掉。
-------------------------------------------------------------------------------------------------------------------------------------------------------
能想到的问题基本上都解决了,支持中文文件名和路径。但是由于make不支持文件名和路径中带空格,所以Arduino程序目录不要放在带空格的目录中,否则编译报错。
------------------------------------------------------------------------------------------------------------------------------------------------------
软件特点 :
已完成的核心部分:
1. 参照Arduino IDE的菜单功能,将Arduino的基本功能在ST2中实现;
2. ST2是一个用了就离不开的编辑器,用ST2写Arduino程序,直接编译和下载;
3. 所有编译、下载和编程器的参数由Arduino软件读取,和Arduino的编译过程一致;
4. Arduino核心文件只编译一遍,自己写的程序每次都编译。比Arduino IDE编译省时间。
5. 编译sketch目录下所有的*.ino, *.pde, *.c, *.cpp文件,程序可以使用多层目录结构;
6. Make基于一个makefile模板文件,可以按照你的需求自己定制make过程;
7. 多语言支持,只需在lang目录中添加utf8编码的文本文件就可以加入新的语言;
8. 纯Python写成,全平台支持(Win/Linux/OSX);
9. 兼容Arduino 1.0/1.0.1/1.0.2/1.5/1.5.1/1.5.1r2
未完成的ST2的特色功能:
1. Snippets
2. Syntax Definitions
3. Key Bindings
4. Completions
使用注意事项:
1. Arduino程序本质上是C++程序,但是为了与一般的C++程序区别开来,使用了ino的扩展名。此插件查找ino来判断是否为arduino的sketch,并且以ino为arduino的标志,一个Arduino的Sketch只能包含一个ino文件,否则编译报错。
2. 当前正在编辑的文件为ino文件时,认为正在编辑sketch,可以新建和添加文件到sketch的目录中,可以查看sketch目录,并可以编译。
3. 文件名或路径中不能有空格,否则编译时报错。
------------------------------------------------------------------------------------------------------------------------------------------------------
代码重新修改了一遍,加入了语言选择和编译信息选项。
http://www.kaixin.netii.net/wp-content/uploads/2012/11/1.0b301.png
------------------------------------------------------- 这是分割线 --------------------------------------------------------------------------------
一直对Arduino的IDE不太满意,尤其是在Linux中Java的菜单很难看。最近下载了Arduino 1.5.1r2,IDE启动报错,更让我对Arduino的IDE不满了。于是就想用Sublime Text2代替Arduino的IDE。
http://www.kaixin.netii.net/wp-content/uploads/2012/11/12.png
花了几个星期,写了Stino这个Sublime Text2的插件,来实现Arduino IDE的功能。现在还处于完善阶段,但是基本功能已经实现,可以试用了。这个插件支持Windows/Linux/OSX,兼容arduino1.0, 1.0.1, 1.0.2, 1.5, 1.5.1。
使用说明:
1. 下载stino.rar,解压后将stino目录放到Sublime Text2的Packages目录中。
http://www.kaixin.netii.net/wp-content/uploads/2012/11/01.png
2. ST2菜单中出现Arduino,点Set Arduino Path设定Arduino所在路径。
http://www.kaixin.netii.net/wp-content/uploads/2012/11/02.png
3. 这是弹出的快捷面板,选Arduino的目录。
http://www.kaixin.netii.net/wp-content/uploads/2012/11/03.png
4. 一旦点击Arduino的目录,设定Arduino路径就完成了。
http://www.kaixin.netii.net/wp-content/uploads/2012/11/04.png
5.出现完整菜单,列出板子。
http://www.kaixin.netii.net/wp-content/uploads/2012/11/05.png
6.选中板子,就可以编译了。
http://www.kaixin.netii.net/wp-content/uploads/2012/11/06.png
7.这是编译完成的显示。
http://www.kaixin.netii.net/wp-content/uploads/2012/11/07.png
8.当插上板子之后,在Serial Port菜单里点Refresh。
http://www.kaixin.netii.net/wp-content/uploads/2012/11/08.png
9.串口列表就出现了。
http://www.kaixin.netii.net/wp-content/uploads/2012/11/09.png
10. 选中串口,就可以下载程序了。
http://www.kaixin.netii.net/wp-content/uploads/2012/11/10.png
11. 在Programmer菜单里有programmer列表,选中后可以适用programmer来下载和烧bootloader。
12. 当然,程序还在完善中,不免有bug。所以如果你点菜单时没有反应或者报错的话,你可以看看是不是程序出错了。方法是按Ctrl+`打开ST2的命令面板,就可以看到命令的输出了。如下图所示,就是出错提示。如果你懂python的话,自己修改一下;如果你不懂的话,可以把出错信息告诉我,我来完善。
http://www.kaixin.netii.net/wp-content/uploads/2012/11/11.png
13. 使用后有什么意见和建议请跟帖。由于是本人个人时间里写的插件,而个人时间不多,所以改进会较缓慢。
顶下,有什么优势呢?说明下吧 本帖最后由 peanut 于 2012-11-13 12:40 编辑
优势当然就是编辑器了,关于Sublime Text2,可以查看这个页面
Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux
用了Sublime Text2,就能体会到它的好用了。
另外,Sublime Text2提供了插件接口,可以自己写插件扩展其功能,来满足不同的需要。
Arduino的IDE对于初学者很不错,可是一旦成为熟手,程序写大了之后,这个编辑器就让人抓狂了。所以网上有很多人在提出一些方案,使用其它的编辑器,然后使用Makefile来编译和上传,而不使用Arduino IDE。一篇很不错的教程Advanced Arduino Hacking,还有很多的人给出了Arduino的Makefile,如edam's Arduino makefile。这些方案很好,在OSX和Linux等类*nix系统下,工具链路径比较容易统一,实现比较方便。但是Windows下用用程序存放分散,Makefile需要手动修改,执行make命令要加很长的路径很麻烦。或者如MyArduino 一个命令行下编译/下载Arduino源码的小工具一样,将Arduino核心库和工具链精简后打包和Makefile放在一起,命令行下使用也还方便。
其实无论用Arduino IDE或者直接使用Makefile,都有点不很满意。尤其是新下载的Arduino 1.5.1r2,运行报错:An error occurred while starting the application. ST2用了一段时间,感觉很流畅,所以就想在ST2上实现Arduino IDE的大部分功能,写完程序就能编译和下载,一切自动化。不懂Makefile一样可以用,并且无需将Arduino和ST2打包在一起。只要设定一下Arduino所在的路径,就可以用了,支持AVR和ARM。基本上可以替代Arduino IDE了。并且在windows/linux/OSX上都能用,和Arduino一样跨平台。 很给力的样子,楼主快放出来吧!! 能烧boot,能换板子么?懂动态切换com口么?有监视端口功能没
最近最小版芯片,经常需要在多块板子上烧写程序,调试等 强烈关注,如果可以的话希望试用一下。 初试了一下安装之后打开发现菜单里New File和Add File是灰色的。。。 编译也出错。。。XP系统+Arduino1.01 。。。 只有当前文件为.ino文件,New File、Add File、Import Library和show Sketch Folder才激活。按我的理解,Arduino把.ino文件作为主文件,即一个sketch只有一个.ino文件,编译时检查当前sketch目录下的.ino文件,多余一个的话就报错。
因为ST2可以编辑任何文件,所以只有当当前文件为.ino文件时,才认为正在编辑Arduino源码,New File、Add File、Import Library和show Sketch Folder才激活。New File和Add File都往当前Sketch目录下写入文件。如果你要新建一个任意文件的话,直接用ST2的New File(Ctrl+N)就行了。
代码写完,还需要整理一遍,找出里面的错误,来改一改。所以现在还会有一些隐含的问题。
另外,我只有Win7和linuxMint系统,其它系统没有测试过,windows隐含路径问题。
(Arduino配置文件里的路径都用的是/分割,但是windows下/表示跟参数。win7好像兼容\和/,但是XP和2000不知道怎么样)
你把编译出错信息贴出来,我看看是什么问题。 代码重新修改了一遍,加入了语言选项。 无语了,b2、b3版本插件放进去居然不认了,Arduino菜单都没出现。b1还认的说。 本帖最后由 peanut 于 2012-11-16 00:28 编辑
{:soso_e143:}糗大了
原来你一直在关注啊,谢谢了。
你说的问题很正确,我也发现了,所以一直在改。改了就换。
毕竟本人不是做IT的,写程序只是兴趣而已,错误难免。
写的很累,基本上没太多测试,所以在新的电脑上很容易出现一个变量没初始化,整个程序就报错的问题,结果就是程序运行中断,什么也没出来。
你打开ST2的命令终端就看见了错误了。
刚才把程序完成了,拿到linux机子上测试,结果菜单没出来。
现在修改了,都正常了,传附件了。
我的mega2560正常编译和下载,还不错。
你可以再下载试试,有问题了跟帖,我来改。总之是要运行正常来用的。 哦,对了,我没有winxp,你再下载试试。反馈我点信息,winxp下正常不?
呵呵,先感谢楼主的无私贡献~
不过这次论坛附件又抽了,楼主放一下博客里吧。
是呀,附件不能下载,怪异。下载链接给出了,试试吧,给点反馈。谢谢。 麻烦楼主了,最近在头痛一些硬件问题,看到代码更那个,直接贴出来先。。。
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:144: warning: overriding commands for target `C:\Documents'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:141: warning: ignoring old commands for target `C:\Documents'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:144: warning: overriding commands for target `and'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:141: warning: ignoring old commands for target `and'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:144: warning: overriding commands for target `Settings\Administrator\Application'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:141: warning: ignoring old commands for target `Settings\Administrator\Application'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:148: warning: overriding commands for target `C:\Documents'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:144: warning: ignoring old commands for target `C:\Documents'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:148: warning: overriding commands for target `and'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:144: warning: ignoring old commands for target `and'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:148: warning: overriding commands for target `Settings\Administrator\Application'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:144: warning: ignoring old commands for target `Settings\Administrator\Application'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:152: warning: overriding commands for target `C:\Documents'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:148: warning: ignoring old commands for target `C:\Documents'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:152: warning: overriding commands for target `and'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:148: warning: ignoring old commands for target `and'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:152: warning: overriding commands for target `Settings\Administrator\Application'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:148: warning: ignoring old commands for target `Settings\Administrator\Application'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:156: warning: overriding commands for target `C:\Documents'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:152: warning: ignoring old commands for target `C:\Documents'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:156: warning: overriding commands for target `and'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:152: warning: ignoring old commands for target `and'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:156: warning: overriding commands for target `Settings\Administrator\Application'
C:\Documents and Settings\Administrator\Application Data\Sublime Text 2\Packages\Stino\Makefile:152: warning: ignoring old commands for target `Settings\Administrator\Application'
cleaning Project Objects...
cleaning Arduino Core Objects...
Bulding build/Blink.hex...
make: *** No rule to make target `D:\Arduino\arduino-1.0.2\hardware\arduino\cores\arduino/%.cpp', needed by `C:\Documents'.Stop.