本文的目的是作为一个记录,不引战,同时为有同样瞎搞爱好者提供一个学习思路……尽量全部推荐和使用免费开源工具,减少版权纠纷,降低学习成本,大概算有用吧
我的技术栈:
实际上有很多并不是很熟,请酌情参考
硬件开发(EDA设计、FPGA、STM32、AVR、Arduino、Holtek、CAD、TI)
软件编程(C/C++、Java、C#、Python、前端三件套(事实上JS还没上日程)、Golang)
不务正业(修图、矢量图设计、视频)
工具:
硬件:
毕竟我还是一个电信学子,本行还是要抓好
电路设计
-
KiCad:一个超级好用的开源EDA软件,功能主要就是普通的PCB设计,支持多层板设计以及一些高级特性,如果从全能性上比AD肯定有差距,但是作为日常普通使用其实已经够了。最重要的是它支持插件功能,这好像都是开源软件的标配了,用丰富的插件可以实现很多高级功能,甚至如果你编程开发能力不错,可以试试自己写插件。
-
立创EDA:同样是个免费的EDA软件,部分功能性上存在一定缺失而且没有离线版本是硬伤,但是学习成本是目前我觉得最低的一个,而且里面有特别多的现成封装和原理图封装,如果不是保密产品或者高精尖产品,用这个就足够了。
-
Altium Designer:国内很火的收费EDA软件,比较适合用于工作,还是很有学习的价值,但是为了支持正版化我还是没咋用。不考虑插件的基础上功能性上优于KiCad。
-
Cadence:实际上是Cadence公司推出的一系列EDA工具,从专业性上优于以上所有,但是太难学而且一套下来国内很多公司不一定会去买。
综上,我按照一下几个角度进行比较:
学习便利:立创EDA>KiCad>Altium Designer>Cadence
就业便利:Altium Designer>Cadence>KiCad>立创EDA
薪资:Cadence>Altium Designer>KiCad>立创EDA
个人推荐:如果是比较专业一点的编程肯定选KiCad,毕竟是免费开源软件,所有代码都是可以自己看得到的,而且扩展性也比较高。立创虽然方便但是有时候太图方便容易丢失计数,不过如果是偶尔做点玩具电路,那立创还是首选。
CAD
- FreeCAD:同样是一个开源软件,主要面向3D建模,但是同样也有面向2D的功能,总体上性能很强,支持自制插件和添加插件,而且和上面的KiCad有合作内容,有个专属插件就是给KiCad做3D模型的。缺点还是很明显,国内的社区没做起来,资料严重缺失,而且曲面支持比较差。
- OpenCAD:也是一个开源软件,学习曲线我愿称之最高,属于编程建模,通过输入描述性语句来对建模内容进行修改用了一下感觉还挺带感的,其实有图形编程基础的适应一下就可以了,但是难也是真的难。其在FreeCAD中也有插件,比FreeCAD感觉更小众,但是感兴趣的可以试试。
- OnShape:我目前正在用的一个在线建模软件,针对学生免费(有没有其他的免费版我不太确定,但是当时注册的时候看到好像是有的),老板好像是原来PTC的老板,履历真的强,在PTC搞出了Creo,然后跳出去做了Solidworks,现在又弄了个新的OnShape。优点是作为一个云平台,OnShape可以在很辣鸡的机子上运行,甚至土豪一点可以花1500美元买个高级版,支持手机上建模,而且提供免费版,免费版的缺点好像就只是仓库只支持5个私人模型,其他建模必须开源放在社区,总之就是特别香。缺点也是在于其是一个云平台,没网就不能用,而且作为国外服务器比较慢……而且你懂的,如果商业的东西放在上面可能哪天就没了。(这个平台前半年不知道为啥不能注册,但是后半年也可能是最近突然好了,怀疑是川宝导致的)
- Creo:我之前在一个比赛里学的,用的教育版,阉割了一些功能,不过整体还是很好用,如果不是商业用途的东西我个人其实很推荐,而且它的曲面真的强,扩展性还有工作性能也是目前我用过最好的。不过国内好像不咋流行,似乎因为它的建模逻辑有点反常识(虽然我不咋觉得,但是我认识的一些吐槽Creo的帖子都是这么说的),应该说喜欢的特别喜欢,讨厌的也特别讨厌比较两极化的产品,而且正版一套下来价格比较高。
- Solidworks:感觉是目前国内最火的建模软件,价格低而且不吃太多配置(如果是小型建模),国内资料也多,但是可能是我习惯了Creo的建模逻辑,用着SW的建模逻辑就觉得很不舒服,而且因为其为了降低建模难度,进行了很多偏常识的修改,仅限于我来说有时候会感觉这也不行那也不行的烦恼,如果是就业的话学学挺好,但是个人体验上我是真的不喜欢。
- Fusion360:AutoDesk的旗下产品,自动桌作为老牌公司做的东西那确实不错,提供教育免费版,正版国内暂时只能找代理购买,用了一下感觉还是可以的,属于半离线半在线的产品,功能插件这些也很多,个人觉得和OnShape不相上下,但是它的免费时常比OnShape短,所以我还是倾向于OnShape。如果是国内的小公司感觉用这个产品应该挺不错的,他好像还有个升级版,不过没怎么了解了。另外AutoDesk家另一个AutoCAD用着来画2D图比其他几个都要舒服点。
另外像是UG、犀牛之类的软件,因为没咋用过就不发表意见了。这几个产品说实话都各有千秋,我从一下几个角度进行比较一下:
(这块我不是啥专业人士,虽然尽量客观但是仅供参考)
就业:SolidWorks>Creo>Fusion360>FreeCAD>OnShape>OpenCAD
专业度:Creo>Fusion360≈Solidworks≈OnShape>FreeCAD≈OpenCAD
学习便利:Fusion360≈OnShape≈Solidworks>Creo>FreeCAD>OpenCAD
个人推荐:如果是普通使用的话用OnShape,如果网不好而且不介意麻烦点就用OpenCAD或FreeCAD,如果是学生可以试试Creo的教育版,就业的话其实建议SW和Creo都学,两个建模思路有一定互补性,Fusion360适合有教育版而且网不太好上OnShape的。
硬件编程
AVR
AVR Studio:虽然大家都说ICC AVR什么比较好,但是说实话我觉得AVR Studio已经不差了,而且最重要的是免费开源。
STM32
CubeIDE:开源大法好,而且遇到问题时这种基于eclipse的IDE可以很容易在网上找到解决方案
Holtek
gcc-arm:相比于直接使用IDE这种方法很麻烦而且不实用,我选gcc的最主要目的其实只是因为我们的一个项目需要而已,如果不是必须的话还是建议用合泰自家的HT-IDE编程
Arduino
vscode+PlatformIO:vscode里的Arduino插件对于很多使用过Arduino的用户应该都比较熟悉了,至于PlatformIO则是一个更加集成化的平台,很方便,但是如果不认真去学习了解也会很麻烦。详情可以直接浏览器搜PlatformIO或者在vscode里面找PlatformIO的插件。
ArduinoIDE pro:社区正在搞得高级版ArduinoIDE,基于eclipse的,但是目前好像还有很多bug,如果愿意折腾可以去尝试一下,如果有能力而且感兴趣也可以试试去参与开发。
TI系列
CCS:TI官方IDE,免费的,基于eclipse,功能支持做的还是挺好,支持energia的调试
Energia:TI官方Arduino版本,对于普通MSP430可能一般般,就和普通Arduino差不多,但是对于MSP432有特别方便的多线程支持,可以参考我之前的博文。
FPGA
vivado:Xilinx家的软件,因为当时学的时候就是学的Xilinx的FPGA,所以就用这个了,免费的,直接到Xilinx官网下载即可。
我知道肯定很多人用Keil或者IAR来开发单片机的,但是个人建议还是尽量支持正版或者开源吧,防止哪天被搞了。
电路仿真
其实之前的几个EDA都有电路仿真功能,这里单独再介绍几个(其实都没用过,一般我用KiCad的仿真差不多就够了,下面很多都是在社区看到的):
Multisim:老牌软件了,很多学校都是学的这个,不过缺点就是不免费,但是很常见,就业什么的可以学学。
开源工具:NGspice、Open Circuit Design 、gplEDA Homepage 、gEDA Project’s Homepage
以上开源工具皆来自于开源社区的讨论总结。
软件开发
C/C++
Code::Blocks:在Windows平台上我比较喜欢的IDE,开源免费,支持很多功能,里面我看到的就有Arduino、Arm、AVR等单片机的开发,不过因为爱好原因没有接触太多其它功能,总之特别强大就对了。
vim:老牌编辑器了,从其功能上来看,目前觉得除了vscode可以在便利程度对其造成威胁,这基本上是个无敌的编辑器。不过要用vim就需要搭配gcc、makefile这些功能一起用,学习曲线挺陡峭的,但是说实话非常利于学习底层的东西。
vscode:大热的宇宙第一编辑器,但是我对vscode的学习还不是很好,关于其开发方式等都不是很懂,还有待学习。
Visual Studio:宇宙第一IDE,不过一般这都是用来开发GUI之类的,只是会用到C/C++,但是平时普通小工具的开发没必要用。
C#
Visual Studio:毕竟是亲儿子,微软在VS中对C#的支持真的特别好,而且中文支持也很爽,有社区版免费,总之爽就行了。
Java
eclipse:开源免费,当前开源界的当红IDE,搭配各种插件可以有特别多的便利用途。
IDEA:有教育版,说实话用着比eclipse舒服,但是毕竟有时限,而且考虑到很多公司为了节省成本更多会使用eclipse,尽量少用吧。
MyEclipse:包括了eclipse的企业级JavaIDE,普通用没有必要,但是为了就业可以去学学。
前端三件套
vscode:前端就用vscode,毕竟不需要太花里胡哨的功能,所有花里胡哨都是要靠自己来实现的。
Golang
vim:因为需求原因需要在Linux下开发, 感觉vim比其它如vscode更加合适。
Goland:jetbrains开发的软件,有教育版,但是有时限,方便是方便但是不想用。
Python
Anaconda:这并不是一个IDE,而是一个工具包,包含了很多python的开发环境、工具包啥的,主要是我平常用Python主要还是做点科学计算的东西,所以就用这个包里附带的那些开发环境就好了,像是Pycharm啥的虽然好用但是平常用不到。
办公
Typora:超好用的markdown编辑器,本质上也可以当成一个浏览器来开发,平常不想用word写东西的时候就用这个了。
CopyTranslator:一个方便的翻译软件,有类似于划词翻译的功能,不过本身不具有词典,需要搭配百度、谷歌的翻译来运行。
MATLAB:工科学生必备
Virtual BOX:虚拟机,开源免费,代替VMWare
geek:一个卸载软件,因为不想用那些软件助手来给我发广告,geek为一个开源软件
Listary:双击Ctrl搜索文件真的很方便,有免费版,而且附带很多高级功能
Dropit:一个收纳归类软件,开源免费,快速整理文件,不过学习成本有点高
Snipaste:开源截屏软件,f1快速截屏,不需要单独开qq了
Captura:开源录屏软件,而且附带其它像是直播等功能
OBS Studio:开源录屏软件,主打直播用,不过我没咋用过,当时只是单纯下载下来和Captura进行比较的,功能更多但更难学。
ScreeToGIF:开源GIF录制软件,不过界面我不喜欢有点丑
不务正业
Blender:开源艺术3D建模软件,做点动画渲染啥的比较好,我喜欢用来渲染我的PCB效果图
ShotCut:开源剪辑软件,其它类似产品可以有达芬奇,但是我用不到达芬奇那么复杂的功能,就用这个够了
GIMP:开源修图软件,PS替代品,在Linux环境下更好用
Inkscape:总是会念成inkspace的矢量图编辑软件,AI替代品,在Linux环境下更好用
Cura:3D打印切片软件,开源免费