我了解Arduino:现在呢?


18

好了,我已经在Arduino上玩了很多,我对此感到非常满意。现在所做的任何事情都比在Arduino方面更多地学习电子技术。

我的下一步学习是什么?Arduino是编程器/控制器的组合,所以大概我需要断开该链接并开始使用与控制器分离的控制器芯片。有人可以指出我正确的方向吗?


您是否有特定的目标或项目?

我同意。对我来说,这就是完成特定工作的全部。Arduino就像其他工具一样。
德克2010年

我现在正在研究的是一个多路复用LED阵列。在Arduino中并不是那么困难,但是我想摆脱训练轮子。我的意思是,最终,Arduino板上有一个ATmega168芯片。如果我能弄清楚如何直接使用它,那么我认为这将满足我想要实现的目标。
克里斯·贝伦斯

实际上,您可以直接使用Arduino接触芯片。它没有那么多驱动程序或任何附加到引脚上的东西。标题直接进入那里。也许是面包板?
AngryEE 2010年

@angryee-我认为Chris的意思是直接编程ATmega芯片,而没有Arduino IDE +库,这可以看作是训练轮。
J. Polfer

Answers:



12

我同意Joby的观点-Arduino很棒,但是我总是被周围的框架所扼杀。我将继续在您的Arduino上使用直接C语言,并从头开始构建它们提供的许多库功能。我通常更喜欢深度而不是广度-不要仅仅通过使用提供的更多框架来开始使用另一个微控制器系列。了解更多有关如何自己实现其中一些功能的信息。

从一个有效的程序开始,并用您自己的版本一次替换一个函数的Arduino库调用。如果您还没有的话,您将学到很多有关控制寄存器,时序,位操作等方面的知识。深入阅读ATMega328数据表-您所需的一切都在那里。

尝试使用其他IDE,例如AVR Studio或Code :: Blocks。了解GCC工具链。尝试更高级的编码技术-单元测试,覆盖率,性能分析,棉绒/毛刺检查。将RTOS放在Arduino上。

程序员/控制器的组合并不是软弱的标志,而只是设计选择。唯一的“弱点”可能是缺乏在线调试。购买AVR Dragon,价格为$ 50美元。


9

我认为接下来要学习的内容取决于Arduino无法完成的操作。就是说,我对类似的芯片进行编程以完成相同的工作并没有多大意义,但是手段却比较困难。

这是Arduino的一些弱点:

  • 线程化,意味着运行交错的两段代码,以便看起来好像它们在同一时间被执行
  • 中或高带宽互联网内容,例如流音频
  • 认真的计算或需要快速计算才能快速响应的任务
  • 通过使用文件系统使一切变得容易,例如数据记录或处理图像

我可以想象两个方向:

  1. 具有小操作系统的功能更强大的嵌入式板,例如Beagleboard或Gumstix
  2. 使用硬件中断从小型Atmega芯片中获得更多性能。

如果您评论哪个方向更有吸引力,我可以添加更多详细信息。(第二个绝对便宜。)


有趣的是...对相似的芯片进行编程以完成相同的事情,但是我想到的只是更多困难的方法:)。背景知识-我是一位具有多年经验的软件架构师。软件,计算,文件系统...对我而言,一切都是简单的事情。我真正需要打击的是电子产品。我之所以希望超越Arduino,是因为我希望能够生产单用途设备,而这些设备没有Arduino板的物理(和价格)开销。我想根据您的意见,我正在寻找#2。
克里斯·贝伦斯

哇...这句话听起来很自负。我不是那个意思...无论如何,我只是想摆脱Arduino给我的硬件培训。特别是,我正在研究类似于LOLShield的LED阵列,尽管我认为我将对其进行多路复用。我可以用Arduino来做,但是没有它,我需要一些指导。TIA。
克里斯·贝伦斯

嗯,更多的是电子类的东西,而不是软件类的东西。也许您会在传感器接口/数据记录方面获得一些不错的经验。这并不是很吸引人,但是要将传感器连接到您的电路板上,您需要了解有关硬件的更多信息。Arduino实际上并没有那么多硬件培训平台-当然不如软件那么多。也许是结合了几种不同类型传感器的机器人-超声波,红外距离,轴编码器等。当然,只有使用Arduino和更多硬件,才有可能。
AngryEE 2010年

7

学习I2C,SPI,1wire并尝试将传感器与此类接口连接。阅读大量此类传感器的数据表,并尝试了解其中的所有内容。卡住时问问题。了解MODBUS(RTU / ASCII / TCP)或类似协议,一旦将其嵌入设备,便可以向世界开放。学习通用电子产品,并尝试连接继电器,三端双向可控硅开关元件,上拉和下拉开关,源极和漏极,如何绘制原理图以及如何将基本驱动器连接到MCU。


6

首先,您可能希望从以Arduino为平台转变为以AVR为平台。即,了解如何为您的项目而不是Arduino编程/使用原始的AVR微控制器。这样,您将不必为您所做的每个项目或与朋友一起进行的项目购买另一个Arduino板。这是一个相当简单的步骤(Arduino只是传统的Atmel AVR微控制器,但带有特殊的板和引导加载程序),但是对于向朋友出售/提供项目来说,这是一个很大的步骤。工具链也类似:将avr-gcc或avr-g ++与make结合使用,并结合编程实用程序来安装程序。


如果您要放弃一个项目,将引导程序加载到芯片上并焊接自己的电路板非常简单。或者订购RBBB套件,价格为$ 12.50(goo.gl/0yqr),而无需为每个Arduino项目购买$ 30 +的开发板。
达沃拉克
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.