1. 硬件描述语言(HDLs)
硬件描述语言一般是用来描述电气的编程方式。
这些语言对于一些机器人专家来说是相当熟悉的,因为他们习惯FPGAs编程。FPGAs能让你开发电子硬件而无需实际生产出一块硅芯片,对于一些开发来说,这是更快更简易的选择,如果你没有开发电子原型产品,你也许永远不会用HDLs。
即便如此,还是有必要了解一下这种编程语言,因为它们和其它编程语言差别很大,一个重点:HDLs所有的操作是并发的,而不是基于处理器的编程语言的顺序操作。
2. Assembly
Assembly让你能在0和1数位上进行编程。这基本上是最底层的编程语言,随着Arduino和其它如微控制器的崛起,现在你可以使用C/C++在底层方便地编程了,这意味着Assembly对于大多数机器人专家来说也许会变得更不必要了。
3. MATLAB
MATLAB以及和它相关的开源资源,比如Octave,一些机器人工程师特别喜欢,它被用来分析数据和开发控制系统。有一些专家仅仅使用MATLAB就能开发出整个机器人系统。如果你想要分析数据,产生高级图像或是开发控制系统,你也许会想学习 MATLAB。
4. C#/.NET
C#是微软提供的专用编程语言。把C#/.NET放在这里,主要是因为微软机器人开发员工作包(Microsoft RoboTIcs Developer Studio),这个包的主要开发语言是C#。如果你准备用这个系统,那么很可能必须要用C#。
5. Java
Java对程序员隐藏了底层存储功能,这让它比起一些语言(如C语言)来说,编写要容易些,但理解底层代码的运行逻辑也更不易,如果你有计算机科学背景并转到机器人学(很多人是这样的,特别是在研究领域),你也许已经学过Java。
像C#和MATLAB,Java是一种解释性语言,这意味着它不会被编译成机器代码。相反,Java虚拟机在运行时解释指令,使用Java,理论上让你可以在不同的机器上运行相同的代码,这得感谢Java虚拟机,在实践中,这并不总是可行的,有时会导致代码运行缓慢。但是Java在一部分机器人学中非常流行,因此你也许需要它。
6. Python
近年来,学习Python的人有一个巨大的回潮,特别是在机器人领域。其中一个原因可能是Python和C++是ROS中两种主要的编程语言。
与Java不同,Python的重点是易用性。Python不需要很多时间来做常规的事情,如定义和强制转换变量类型。这些在编程里面本是很平常的事。
另外,Python还有大量的免费库,这意味着当你需要实现一些基本的功能时不必“重新发明轮子”,而且因为Python允许与C/C++代码进行简单的绑定,这就意味着代码繁重部分的性能可以植入这些语言,从而避免性能损失。
随着越来越多的电子产品开始支持“开箱即用”Python(与 RaspberryPi一道),我们可能会在机器人中看到更多Python。(The Raspberry Pi FoundaTIon:英国一个小型的慈善组织,成立的宗旨在于推广科技,而非以销售技术来营利。)
7. C/C++
最后我们到了排名第一的机器人编程语言!许多人认为C和C++对新入行的机器人学家是一个很好的起点。为什么?因为很多硬件库都使用这两种语言。
这两种语言允许与低级别的硬件进行交互,允许实时性能,是非常成熟的编程语言。现如今,你可能会使用C++比C多,因为前者具有更多的功能。
C++基本上是C的一种延伸。首先学一点C会很有用,特别是当你发现一个硬件库是用C编写的。C/C++并不是像Python或MATLAB那样简单易用。用C来实现相同的功能会需要大量时间,也需要更多行代码。但是,由于机器人非常依赖实时性能,C和C++是最接近我们机器人专家“标准语言”的编程语言。
- SG3525A 推挽式脉宽调制器控制电路的典型应用
- MAXREFDES1088:效率为91.9%的小尺寸、12V / 250mA、同步、无光耦反激式DC-DC转换器
- 基于涂鸦ZTU zigbee模组设计的无线调光旋钮
- ADK-3717,基于 HI-3717A ARINC 717 协议 IC 的评估板
- 使用 STMicroelectronics 的 DAP005 的参考设计
- 基于ST1S09的2A/3.3V高效同步降压转换器评估板
- 使用 SparkFun Electronics 的 MAX30102EFD+ 的参考设计
- 使用 MagnaChip Semiconductor 的 MAP9010QNRH 的参考设计
- EVAL-ADF7020-1DBZ6,ADF7020-1 ISM 频段收发器评估板
- 用于 LCD 背光的通用 LED 驱动器