创客经常要干的事情都是从无到有,都将经历一个从创意、草图到模型、实体,然后电子电路开发、软件设计、作品集成这样一个完整的过程,才能将最初的创意实现出来,这里收集的软件包括:1、二维设计,2、三维设计与数字建模,3、3D打印控制软件,4、GIS地图与空间数据处理,5、机器人操作系统,6、开源硬件平台与软件工具集。这些工具基本能够满足准专业级别的软硬件融合的智能产品开发的需要,而且是完全免费、开源的。
最近做的一些东西,用到很多工具,有时候虚拟机出问题需要重装,消耗大量的时间。以前还有一些版本不太兼容,就放到了多个虚拟机里,但使用起来还是不方便,就产生了一个想法,把各种常用的工具放到一个操作系统的版本之中,做一个专用的操作系统版本。使用UbuntuKylin15.04,马上开干。
涉及到的软件全部为开源软件,包括二维设计、三维设计、3D打印、GIS、机器人操作系统等等。安装过程如下(工程浩大,一步步验证,遇到问题会把攻略记录下来,供大家参考):
这个主要做前期创意的记录和草图绘制。
# sudo add-apt-repository ppa:inkscape.dev/stable sudo apt-get install inkscape
媲美PhotoShop的开源影像处理软件。需要拍一些照片,经过处理,激发灵感。就是这个了。
#www.gimp.org sudo apt-get install gimp
专业级的摄影后处理工具。在http://www.darktable.org/
#DarkTable wget https://github.com/darktable-org/darktable/releases/download/release-1.6.7/darktable-1.6.7.tar.xz tar -vxf darktable-1.6.7.tar.xz cd darktable-1.6.7 ./build.sh
编译中发现缺少XSLT和LENFUN的支持,使用sudo synaptic进去,搜索安装xlst-java和liblenfun-dev等库,再次运行build.sh即可。如下:
需要安装: openjdk-8-jre,xslt,lenfun,librsvg2-dev,libgphoto2-dev,libexiv2-dev lcms2,库里没找到,要到 ./configure make sudo make install 其它需要源码的,可以照猫画虎。
可以通过脚本进行模型的构建,非常方便构建三维原型。可以快速转为STL,通过3D打印机呈现出来。
#OpenSCAD,http://www.openscad.org/
sudo add-apt-repository ppa:openscad/releases sudo apt-get install openscad
完成设计模型的精细修改,制作动画,演示作品的特征等。
可以用Python脚本来自动化和编写插件,开源多平台支持,强悍无比。
#Blender, #下载 wget http://ftp.nluug.nl/pub/graphics/blender/release/Blender2.75/blender-2.75a-linux-glibc211-x86_64.tar.bz2 tar -vxf blender-2.75a-linux-glibc211-x86_64.tar.bz2 cd blender-2.75a-linux-glibc211-x86_64 #运行,这个是绿色软件,下载完可以直接运行,不需安装。 blender
控制3D打印机的输出过程,以及实现打印前的一些处理,如放缩、旋转等等。
#Cura,https://ultimaker.com/en/products/cura-software # #下完了,直接安装即可。
将地图、影像、DEM等数据抓取下来,与作品融合在一起,或者从中获取创意灵感。
#QGIS, #安装需要的依赖软件,这个是大块头。GIS就这么复杂,没办法!要想简单用SuperMap。 sudo apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal-dev libgeos-dev libgsl0-dev libopenscenegraph-dev libosgearth-dev libpq-dev libproj-dev libqscintilla2-dev libqt4-dev libqt4-opengl-dev libqt4-sql-sqlite libqtwebkit-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev lighttpd locales pkg-config poppler-utils pyqt4-dev-tools python-all python-all-dev python-pyspatialite python-qscintilla2 python-qt4 python-qt4-dev python-sip python-sip-dev qt4-doc-html spawn-fcgi txt2tags xauth xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable xvfb cmake-curses-gui
进行安装:
#sudo gedit /etc/apt/sources.list #编辑软件源列表,然后加入下面两行: #系统版本 #sudo add-apt-repository 'deb http://qgis.org/debian vivid main' #sudo add-apt-repository 'deb-src http://qgis.org/debian vivid main' #安装最新版本 sudo add-apt-repository 'deb http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu vivid main' #注意:vivid是Ubuntu15.04的版本号代码,如果是其它的,需相应修改。 #然后,加入源的认证码: gpg --keyserver keyserver.ubuntu.com --recv DD45F6C3 gpg --export --armor DD45F6C3 | sudo apt-key add - #最后,执行安装操作。 sudo apt-get updatesudo apt-get install qgis python-qgis qgis-plugin-grass #大功告成,进控制台,运行之。 #qgis
这里主要考虑ROS,是源于斯坦福的一个项目,现在由OSRF(http://www.osrf.org,开源机器人基金会)管理,相关项目的有Gazebo(http://gazebosim.org/download)机器人仿真平台和原型机器人硬件(由项目贡献者创建的)。现在有很多专业的机器人企业已经加入该基金会和这个项目了,这也是目前唯一的一个做类似事情的项目。
ROS是嵌入到Robot的运行硬件中的支持软件。
#ROS, http://www.ros.org #加入软件源到系统软件仓库列表 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' #加入软件仓库的认证码 sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 0xB01FA116 #执行软件仓库列表更新 sudo apt-get update #安装全部桌面应用软件 sudo apt-get install ros-jade-desktop-full #安装依赖的软件部件 sudo rosdep initrosdep update echo "source /opt/ros/jade/setup.bash" >> ~/.bashrc source ~/.bashrc sudo apt-get install python-rosinstall
Gazebo是用于Robot的设计和仿真的。与ROS之间是开发平台和运行时的关系。
wget http://osrf-distributions.s3.amazonaws.com/gazebo/gazebo5_install.sh sudo ./gazebo5_install.sh
运行:
gazebo
重量级一点的支持Android,如CubieBoard\香蕉派\Radxa\MTiles等等,足以构建一个低功耗的小型服务器。
稍轻一点的主要是支持Lubuntu及其衍生的操作系统如Raspberry等,最佳非树莓派莫属。
这两个都是可以运行原生的Linux应用的,当然Android要封装一下,Lubuntu就可以直接运行。QT可以作为一个很好的界面开发工具,再混搭HTML5,功能足够强悍。
移动端的混合编程框架使用Cordova,可以支持本地调用和HTML5的混合使用。可以编写一次,到多个移动OS上运行。
这两年智能路由器已经满天飞了,但你可能不知道,无论是小米还是极路由,这里头基本上全部来自于一个叫OpenWRT(http://www.openwrt.org)的开源操作系统软件。国内有个WRTNode,是专门基于OpenWRT做智能路由器的开发板,现在还可以拿来控制机器人、无人机、小车模型等等,演示也是蛮炫的。WRTNode自带一个300M的WiFi数据链路,这个就秒杀了那些个小小的MCU了。
更小的传感器、机电控制类的最佳自然是Arduino,没有之一。从这里获得IDE:http://www.arduino.cc,这是各种现在流行的智能硬件的祖师爷了,即便不用,也需要去拜一拜,领会一下这些牛人的设计思想。
这两年做智能家居、传感器应用还有一个ESP8266的芯片,也非常火,是中国人搞的的,值得一试。这个芯片直接集成了WiFi功能,是今年MCU设计的最新趋势。ESP8266来自于xTensa这个知名的芯片设计团队的方案,在国内外大虾的努力下,已经搞定开源的固件开发环境了,而且一帮哥们还在上面搞了开发板和运行LUA的动态固件-NodeMCU。这里收集了很多基于ESP8266的固件项目:https://git.oschina.net/supergis/ESP8266App,也欢迎加入改进。
传奇的创客Anders和3DRobotic搞的,参考https://github.com/3drobotics。不要跟DJI去比,搭建开放平台、构建生态体系的和追求卖东西的数量最多的不是一路人,对不?可以直接git clone代码下来参考。