对于经验丰富的程序员Arduino或其他产品?


11

我的背景:

我已经完成了一段时间的软件开发,并且我或多或少地精通C,C ++,Java,Ruby,Erlang,Haskell,Lua和Python。我还参加了一个实验室电子学课程,但是除了一个简短的带有泵的实验室之外,所有与通过LabView将信号输入A / D和从那里进入x86 无关不是我选择的编程环境)。重新着手修补硬件,着眼于家庭自动化。(我想我可以做的更好那么对于不到$ 500)

题:

我本来打算在Arduino上动手,但阅读的越多,感觉该系统的主要优势在于它易于编程。这是一个适合软件(仍需要购买烙铁的人)启动的好地方吗,或者是否有更适合我的东西?

(附言:我有更多的时间然后有钱)

Answers:


4

至于可以立即使用的微控制器评估板,当然还有arduino系列。但也可以考虑以4.30美元的价格购买msp430启动板。良好的指令集,并且在性能上与AVR相似,并且倾向于低功耗/低成本。只需20美元,您就可以得到stm32f4发现(不要与stm32价值线发现或stm8系列混淆),它通常比您为可用的arduino($ 35- $ 50)所支付的价格要少,但是围绕着arduino 168Mhz(浮点)运行在arduino价格范围的高端,还有另一个分支mbed(mbed.org),它可能是最接近arduino沙盒体验的地方。

如果您想呆在一个立式储物箱中,并且仅通过api调用arduino,则可能是您想要居住的地方,这里有大型机器可以提供更高的性能,或者您可以选择基于arm的Leaflabs Maple,但尝试提供arduino沙箱体验。

如果您承担更多的责任和对正在发生的事情的了解,则可以得到更多的性能,物有所值。我推荐所有三个平台(avr,msp,arm / thumb)和多个供应商(avr和msp已锁定,但arm由具有不同外围设备和I / O的每个人出售)。例如,您可能习惯于在gpio线上没有上拉电阻的平台,而不得不使用外部组件,而其他芯片或供应商则以可比的性价比在芯片上提供外部组件。同样地,您可能喜欢使串行端口或spi总线发生故障,但发现在金钱,功率,大小等相同的情况下,其他一些供应商也提供硬件来协助该接口。

如果没有别的,那么对于程序员和想要进入业余电子产品以进一步了解沙箱外部状况的用户,这对您最大的利益。作为进入这个爱好电子世界的一种方式,arduino是从操作系统上的应用程序编程的非常非常舒适的过渡。sparkfun现在有一些套件,包括串行接口和一些periperhals,还有一个lilypad套件(一个arduino平台)和一个专业套件,如果这很重要的话,它们都不是arduino防护罩的外形。sparkfun出售盒装零售产品和许多其他口味的arduinos,uno等。(上述的st和msp板应该从ti或st的网站开始,或者转到github.com/dwelch67,我可以链接到我的各种板例子)。


8

我也是一名软件专家。大约十年前,我开始使用Parallax的BASIC邮票,不久之后,我又回到了嵌入式项目中。最初,我看了一下Arduino及其不同的部分,意识到我可以跳过Arduino板的价格标签,抢一些ATMega168,然后重新开始。这在大多数情况下都是有效的,但是我经常遇到这样的问题,因为我无法拧紧基本装配,所以预装板会很好。

我最终订购了Arduino,并热爱有关电路板和库的所有内容。我不是“ IDE”的粉丝,所以我单击“使用外部编辑器”,然后仅使用IDE来编译软件并将其刷新到板上。通常,我使用Arduino开发板开始一个项目或想法,然后将其移植到大型芯片中。通过仅使用项目所需的零件,这有助于降低成本,但仍然允许我快速提出原型。

祝好运!


6

Arduino是对微控制器进行编程的绝佳介绍。

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

Arduino将是您开始与外围设备等接口的一个不错的起点,而不必为处理特定的芯片怪癖等而陷入困境。

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

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

我经常使用PIC系列微控制器,但是我仍然拥有值得信赖的li'l Arduino,用于快速尝试想法和测试事情。


6

由于“ Arduino”包含几件事,所以我认为分别研究一下它们可能会很有用:

  • 在硬件方面,与Arduino兼容的设备基本上是具有特定引导程序的ATMega微控制器。通常,现成的Arduino兼容板还包括其他支持电子设备,例如USB或串行端口接口,电压调节器,可轻松访问引脚的引脚接头等。如果您想要USB功能和连同预编程的引导程序,它使您无需再购买单独的编程器来上传软件。因此,是的,在进行原型设计时,Arduino(和兼容的克隆)可用作硬件设备。对于最终版本,您可能只想用所需的部分来构建自己的部分,因此您不需要在每个项目中都使用一个完整的Arduino。

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

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


1
我不知道他们怎么称呼那个怪兽为IDE。这是可想像的[删除删除内容]中最可怕的部分。我已经让Anjuta 几乎可以为我做所有事情了,因为Arduino的IDE可以做到(不是非常)。
Majenko 2011年

4

您的问题太开放了,无法直接回答,因此我们所能做的就是向您显示取舍。

adruino是为大众愚弄的糖衣微控制器。它经过优化,可以快速完成基本的工作,而无需学习任何东西。

arduino的核心是普通的微控制器,您也可以直接使用它。好处是您可以完全根据自己的意愿选择微型计算机,而不必别人对您和微型计算机之间应该做的事情有任何想法,并且您可以做任何裸微型计算机可以做的事情,这就是不仅仅是通过arduino抽象浮出水面。缺点是您实际上必须学习一些知识,阅读几百页的数据表只是一个开始,而您不会立即得到满足。

只有您可以说什么对您更好。您是否想拥抱自己的内心白痴,并永远幸福地被带到花园,被贬低为说“呵呵”,“什么?”和“哦,太可爱了!”。电子化的东西?还是您愿意经过漫长的辛苦和麻烦之后,沿着一条长长的黑暗道路苦苦跋涉,以一个闪烁的LED发光?您是否只想开车或学习发动机的工作原理,以便获得最佳性能并自己进行调整?


1
奥林,你是老学校!我绝对是表示赞赏……但是,在这个问题上,我谨与您不同意。在一个构思不佳的操作系统上处理平庸设计的软件,使我对电子学的理解加了零。实际上,我已经吸收了宝贵的时间,而我本可以从像您这样的知识渊博的人那里学习有用的东西。我说:“ Arduino万岁!”
Kaelin Colclasure 2011年

2
@KaelinColclasure您的评论让我有些困惑。您会遇到软件和操作系统不佳的问题,但是Olin根本没有解决。如果可以的话,您可以考虑arduino为您做的抽象层,例如OS如何成为抽象层。学习使用arduino并不能帮助您成为更好的工程师,因为间接费用会导致不必要的额外费用。话虽如此,我认为Arduino是一个很棒的平台,但不应视为真正了解嵌入式电子世界的替代品。
Kellenjb 2011年

耶汽车类比!奥林,对于很多人来说,这并不是要摆脱和学习电子学的精髓,而是要成为一名工程师。许多人只想选择一种工具,可以实现目标并解决问题。在许多情况下,学习电子技术是达到目的的一种手段,而不是目的本身。由于您的相同原因,并不是每个人都在这个游戏中。
nemik 2011年

2
是啊 那关于“拥抱内心的白痴”的话题又是什么呢?拜托 您是否在拥抱运行Windows或Linux或OS X的内在笨蛋,而不是像Real Man™那样编写自己的OS?那些被糖衣着的操作系统愚弄了大众。
nemik 2011年

1
@nemik:拥抱内心的白痴就像是在开玩笑,就像在漫长的黑暗小径上步履蹒跚...当然,这两者中也都有一些道理。
奥林·拉斯罗普

4

作为一名程序员,我非常喜欢使用其他许多人使用的语言进行编程,这样,有很多书籍,文章,同peer等可以帮助我学习。

在单板计算机世界中,Arduino是最受欢迎的产品,并且提供了最大的支持。这是您第一台微型计算机的绝佳选择。

考虑到这些东西有多便宜(大多数低于50美元),您可能要考虑购买一种以上。

对于熟悉Microsoft Visual Studio和C#的人来说,Netduino是一个绝佳的选择,因为它具有您已经知道的工具链。

如果您的首选环境是Unix,则可能需要像Raspberry Pi这样的板,该板将于2012年1月推出:

什么是Raspberry Pi?Raspberry Pi是一台信用卡大小的计算机,可插入电视和键盘。它是一台功能强大的小型PC,可用于台式机执行的许多操作,例如电子表格,文字处理和游戏。它还播放高清视频。我们希望看到它被全世界的孩子用来学习编程。

该设备什么时候可以购买?我们希望能够在2011年底之前订购Raspberry Pi。我们仍然希望在今年年底之前拍卖一些第一批Beta版主板(圣诞节后留意该网站);我们将在1月移至主要生产。

它要花多少钱?模型A的价格为25美元,模型B的价格为35美元。

真正的好消息是,有许多低成本的微控制器可用,并且所有的时间都在不断涌现。

最后是德州仪器(TI)MSP-430 Launchpad,现价$ 4.30并且免运费。以那么便宜的价格,你怎么不买一个呢?


4

从Arduino开始,充实您的想法并制作一个最小的工作原型,然后学习与产品所需的基础知识(电机,传感器,用于通讯的串行接口)。

之后,当您需要更多功能(USB设备,以太网)时,将其转移到ARM Cortex M系列芯片上。32位ARM意味着它们非常强大,现在比AVR和PIC等高端8或16位芯片更便宜,并且具有更多的外围设备。如果您来自Arduino,则NXP的mbed(http://mbed.org)是对该平台的非常温和的介绍。


2

当人们说Arduino“易于编程”时,他们真正的意思是该工具链基本上可以正常工作。它可以在Mac上运行,可以在Windows上运行,也可以在Linux上运行。您插入电路板,编写代码,然后将其上传即可。

为了提供一点趣闻,我本人只是“升级”到Atmel的STK600及其AVR Studio 5开发环境。它只能在Windows上运行,因此我必须在Mac上安装并运行VMware。然后,我必须安装挑剔的Jengo USB驱动程序,这花了整整一天时间阅读繁琐的论坛帖子。然后,我不得不弄清楚为什么我可以通过IDE与开发板进行通信,而不能与STK600随附的ATmega2560子卡进行通信...(JTAG电缆插入错误,因为我在原来是一张图片,显示电缆向后连接。

到目前为止,我还没有使用AVR Studio 5编写过一行代码,但是我花在摆弄它上的时间可能比花在使用Arduino IDE上的时间还要多。而且我已经写了几十个Arduino草图。

您使用的编程语言基本上是带有少量预处理的C ++。在您的背景下,您将毫无疑问地确定以后如何在需要时将想要的任何草图移植到“专业”环境中。对我来说,只有在我不再使用Arduino硬件并开始设计自己的电路板时,需求才会出现。YMMV,当然...

希望这可以帮助。:-)


3
不要挑剔你...但是我再次不同意你。人们说Arduino易于编程的原因是因为他们实质上已经添加了抽象层,否则您将无法获得。您还提出了C ++,这在嵌入式世界中很少见。有时特定项目需要它,但它也会增加一些开销,而这些开销是您试图削减每一分钱时无法承受的。
Kellenjb 2011年

@Kellenjb,我几乎可以没有开销地编写C ++,有时部分可以有多达10%的开销,但是许多部分却有0开销。但是,是的,这很罕见,因为您必须更加注意使用语言所做的工作,但是,等等,在C语言中也是如此。我已经看到用户在嵌入之前尝试在c语言中使用malloc()效果不佳。
Kortuk

1

Arduino提供了一个灵活的过渡平台,可提供A / D,D / A(至少是PWM)大量的数字I / O,板上的可编程LED,串行到USB以及现成的模块,可用于许多其他种类的硬件。如果您想自己动手获得学习经验,则不需要它。如果您想要一个平台只是出于娱乐目的而启动或运行某个平台,或者在设计该平台的低成本硬件版本时,则可以随时使用。这些是设计,战略和经济决策,完全可以以适合您目标的方式做出。进行权衡没有什么“傻子”,这就是工程师每天要做的事情,应该做的事情。


1

John的经验几乎与15年前的我的经验完全吻合,当时我从大学教授计算机科学(基本上是汇编语言编程和C)退休。那时我意识到跟上计算机的发展是非常昂贵的,所以我的妻子建议回到电子行业作为一种爱好,因为我在1950年代很喜欢当一名电气工程师。我做到了,尽管我只是短暂接触过晶体管,却从未看过运算放大器,所以我学到了很多有趣的东西。我保留了对汇编语言的热爱,当Microchip Pics在90年代中期出现时,我迷上了它们。

我无法将它们与Arduino进行比较,但我对此一无所知,但是使用Pics的优点是设置便宜,因为Microchip具有出色的IDE免费提供所有信息,您可以学习使用它们。 ,就像我从他们的出版物中所做的那样。您可以从一个Internet上有很多设计的自制Programmer开始,因此,开始使用一些Pic芯片只需花费几磅。但是我建议使用PicKit 2,它具有很多内置功能,可以使程序开发变得容易。不过,也许不是PicKit 3,请参阅:

http://www.eevblog.com/2009/10/21/eevblog-39-pickit-3-programmerdebugger-review/尽管已更新,请参阅此参考资料上的注释。

Pics上有很多书籍,但请当心垃圾。为了轻松起步,对Pic的精彩介绍是:

蒂姆·威尔姆斯赫斯特(Tim Wilmshurst)撰写的“用PIC微控制器设计嵌入式系统:原理和应用”,亚马逊上的价格为22-66英镑,其中包括汇编程序和C语言。我暂时避免使用C语言,因为它似乎消除了与硬件的亲密关系汇编程序提供的功能,但是使用Microchip提供的C编译器,您还可以看到生成的汇编程序代码。

对于总体的,良好的,技术性的(不惧怕数学)技术,我建议:Paul Scherz撰写的“发明家的实用电子产品” 2 / E [平装本],亚马逊售价19-95英镑。

我在商店分别为这些书支付了26-99英镑和22-99英镑,一点也不后悔。

我在这里不能提供足够的信息,我很乐意通过电子邮件发送有关此主题的电子邮件:417weston@gmail.com(以防万一,我对阅读,下载或回答的内容非常谨慎。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.