对于经验丰富的程序员 Arduino 或其他什么?

电器工程 Arduino
2022-01-31 19:01:28

我的背景:

我从事软件工作已经有一段时间了,我或多或少精通 C、C++、Java、Ruby、Erlang、Haskell、Lua 和 Python。我还上了一门实验室电子学课程,但除了一个带泵的简短实验室外,它都是关于将信号输入和 A/D 并从那里输入带有 LabView 的 x86(不是我选择的编程环境)我想要重新开始修补硬件,着眼于家庭自动化。(我想我可以花不到 500 美元做的更好

题:

我本来打算在 Arduino 上大吃一惊,但我读的越多,感觉该系统的主要优点就是它易于编程。这是一个软件(仍然需要购买烙铁)人开始的好地方,还是有更适合我的东西?

(PS我有更多的时间而不是钱)

4个回答

我也是一个软件人。大约十年前,我开始使用 Parallax 的 BASIC stamps,经过很长一段时间后,我最近又回到了嵌入式项目。最初,我查看了 Arduino 和它的不同部件,并意识到我可以跳过 Arduino 板的价格标签,然后拿一些 ATMega168 重新开始。这在大多数情况下都有效,但是我经常遇到这样的问题,即拥有一个预制板会很好,因为我无法搞砸基本组件。

我最终订购了一个 Arduino,并且喜欢有关电路板和图书馆的一切。我不是“IDE”的粉丝,所以我点击“使用外部编辑器”并使用 IDE 纯粹用于编译软件并将其刷写到板上。通常我用 Arduino 板开始一个项目或想法,然后将其移植到一个巨型芯片中。这有助于通过仅使用项目的必要部件来降低成本,但它仍然允许我快速提出原型。

祝你好运!

Arduino 是对微控制器编程的一个很好的介绍。

为 PC 编写软件和为微控制器编写固件之间存在很大差异。

Arduino 将是一个很好的起点,可以让您了解与外围设备等的接口,而不必陷入处理特定的芯片怪癖等问题。

但是,正如我所说,这是一个介绍。

从 Arduino 开始,然后继续做更​​大更好的事情。

我经常使用 PIC 系列微控制器,但我仍然有我可信赖的 li'l Arduino,我用它来快速尝试想法和测试事物。

由于“Arduino”包含几样东西,我认为分开来看它们可能是有用的:

  • 在硬件方面,与 Arduino 兼容的设备基本上是带有特定引导加载程序的 ATMega 微控制器。通常,现成的 Arduino 兼容板还包括其他支持电子设备,如 USB 或串行端口接口、稳压器、便于访问引脚的引脚接头等。如果您想要 USB 功能和与预编程的引导加载程序一起,您无需购买单独的编程器来上传您的软件。所以,是的,Arduino(和兼容的克隆)在原型设计时可用作硬件设备;对于最终构建,您可能希望只使用您需要的部件来构建自己的构建,因此您不需要将一个完整的 Arduino 放入每个项目中。

  • 在软件方面,Arduino 库就像任何编程库一样,其用途取决于您的需求。就我个人而言,我发现它偶尔对快速原型设计很有用(例如,串行端口功能),但作为一个有经验的程序员,我不喜欢许多简化(尤其是管脚编号)。在任何情况下,即使您为 Arduino 设备编程和/或使用 Arduino IDE,您也可以轻松地使用原始 AVR 库来代替或补充 Arduino 库。因此,请使用您认为有用的任何 Arduino 库,尤其是在进行原型设计时,但要在进行过程中学习底层 AVR(请参阅 Arduino 源代码和 ATMega 数据表)。

  • 最后,Arduino IDE 是一个图形化编程环境,带有一个简单的编辑器、串行端口控制台、类似“make”的构建系统(对用户隐藏)和(用于)将您的软件上传到实际设备的工具(前端) . 我个人讨厌 IDE 并且从不使用它,更喜欢在命令行上工作,但显然这只是个人喜好问题。

至于准备在门外使用的微控制器评估板,当然还有 arduino 系列。但也可以考虑售价 4.30 美元的 msp430 启动板。良好的指令集,性能与 avr 相似,但倾向于低功耗/成本。只需 20 美元,您就可以获得 stm32f4 发现(不要与 stm32 价值线发现或 stm8 系列混淆),这通常比您为可用的 arduino(35-50 美元)支付的费用要少,但在 arduino 168Mhz 周围运行,浮点数单元、缓存等。在 arduino 价格范围的上端,还有另一个分支 mbed (mbed.org),它可能是最接近 arduino 沙盒体验的。

如果你想呆在一个standbox中并且只是让api调用arduino可能是你想要居住的地方,那么可以使用mega来获得更多性能,或者使用基于arm但试图提供arduino沙盒体验的leaflabs maple。

如果您承担更多的责任和对正在发生的事情的了解,您可以获得更多的性能,物有所值等。我推荐所有三个平台(avr、msp、arm/thumb)和多个供应商(avr 和 msp 被锁定,但 arm 由具有不同外围设备和 I/O 的每个人出售)。例如,您可能习惯于一个在 gpio 线上没有引体向上的平台,并且必须使用其他芯片或供应商以可比的价格/性能点在芯片上提供的外部组件。同样,您可能喜欢敲打串行端口或 spi 总线,但发现以相同的金钱、功率、尺寸等,其他供应商有硬件来协助该接口。

如果不出意外,作为程序员和想要进入爱好电子产品的人以了解更多关于沙盒外发生的事情,这符合您的最大利益。作为进入这个爱好电子世界的一种方式,arduino 是从操作系统上的应用程序编程非常舒适的过渡。sparkfun 现在有一些套件,包括串行接口和一些外围设备,还有一个 lilypad 套件(一个 arduino 平台),也许还有一个 pro 套件,如果重要的话,两者都不是 arduino 屏蔽外形。sparkfun 销售零售盒装和许多其他口味的 arduinos、uno 等(上面提到的 st 和 msp 板,您应该从 ti 或 st 的网站开始,或者访问 github.com/dwelch67,我在我的例子)。