上一贴 《单片机,FPGA都能跑! Python正向硬件圈杀来!再不学Python就晚了》,介绍了目前Python目前在硬件方面的发展。这篇接着为大家介绍Python能给我们硬件工程师提供哪些帮助。
1` 用Python画PCB
SKiDL非常酷,它可以让你用Python来描述电子电路,画PCB!是不是和硬件描述语言非常类似?
SKiDL是Python的一个库。利用它所提供的函数所形成的代码在执行后可以直接生成KiCAD所能识别的网表文件。你所需要做的事情就是使用自己的大脑,想清楚自己要做的事情是什么、引脚和引脚间的连接方式是什么,然后通过特别编写的函数就可以实现直接书写代码来形成逻辑上的电路了。
只是利用源代码的形式来形容系统的组成有着各种各样的好处,比如支持复用:你不再需要复制粘贴部分原理图,只需要将这部分电路封装成一段子程序,然后规定好模块的出入口。 即可多次复用。从某种意义上来说,使用语言描述电路的方法也能够实现更加方便的电路分享。能够通过复制粘贴的方式简单的共享一个复杂的电路,这也是原理图难以做到的。
例如,你可以编写一个滤波器电路生成器,将滤波器的阶数,截止值和类型作为输入,并将指定的网络表作为输出。 Bam!在你的下一个设计中,当你需要一个不同的过滤器,你只需要改变几个变量。将电路转换成代码可以模块化和灵活的组织子电路,就像代码中的函数。
是不是很有趣?不妨一试。
SKiDL 项目的GitHub地址: https://github.com/xesscorp/skidl
Documentation: http://xesscorp.github.io/skidl
2` Python 替代 MATLAB?
以绘图和线性代数为例:
Python VS. MATLAB(3)----线性代数基础
http://blog.sina.com.cn/s/blog_5f234d4701012p64.html
Python VS. MATLAB(4)----图形系统简介
http://blog.sina.com.cn/s/blog_5f234d4701012rlz.html
Python有numpy包,用二维数组来表示矩阵,相关的计算直接调用numpy包即可。大部分工程师认同,Python的NumPy和MATLAB有重叠。而NumPy只是Py众多科学计算数值处理的库之一。
一部分观点认为matlab面向的群体以及功能定位与Python完全不同。Python可以做科学计算没错,但是做不到像matlab那样有足够权威的已集成的工具箱。诚然MATLAB 在 signal processing, sparse matrix, Simulink 等 Python 社区不太关注/成熟的领域是有优势的(bug 少,功能丰富)。其他方面,你会发现替代MATLAB也不是不可以的。另外一点是MATLAB收费啊!
Python VS Matlab
来源:https://sites.google.com/site/pythonforscientists/python-vs-matlab
Python+numpy的优点:
免费,软件体积小;
代码更简洁;
有set、dict之类的高级数据结构;
文本处理更方便。
Matlab的优点:
绘图比较方便(Python需要另外装包,而且感觉像是山寨Matlab);
自带很多专业函数;
默认数据类型为实型(即使是整数常量也会被转换成实型),在做除法的时候不会被坑爹;
有profiler,可以方便地找到程序的效率瓶颈。
还有一些二者的不同,你习惯哪个,哪个就是优点:
Python+numpy里面有一维数组,Matlab里至少是二维的;
Python里数组下标从0开始,Matlab从1开始;
Python里面指定范围的时候不包括终点,Matlab包括终点;
Python+numpy里面乘号表示数组逐元素相乘,如果要做矩阵乘法,则要用dot函数或者把数组转成矩阵类型;Matlab里面没有数组和矩阵类型之分,用乘号表示矩阵乘法,点乘(.*)表示数组逐元素相乘。
3` Python中的机器学习
scikit-learn,scikit-learn,TensorFlow,Theano,关于Python的最好的事情之一是有这么多的库可用。 由于任何人都可以创建一个Python包并将其提交给PyPI(Python包索引),所以有一些包用于你能想到的一切。 机器与深度学习也不例外。
3行Python代码完成人脸识别:
这个Face Recognition软件包可能是世界上最简单的人脸识别库了。你甚至可以用这个软件包做人脸的实时识别。
这里有一个实时识别的例子,GitHub地址: https://github.com/ageitgey/face_recognition/blob/master/examples/facerec_from_webcam_faster.py
果然是,“人生苦短,我用Python。”
综合:hackaday,无线电杂志,Python程序员,知乎,guokr