首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算机控制多用机的研制

计算机控制多用机的研制
EN

Stack Overflow用户
提问于 2011-05-03 21:01:31
回答 5查看 1.1K关注 0票数 0

也许我的标题措辞可能会产生误导,但这就是我试图实现的目标。

我有一个计划,开发一个多功能的一体机(有点像全自动洗衣机…但不仅仅是这样)..。它将有许多移动和不移动的部件,需要由面板上的芯片/处理器控制……

我了解C#,可以编写模块来处理用户输入,并通过向机器发出命令来控制机器。但是在机器端应该做什么.

比方说,假设我想让机器旋转鼓B 30秒。我的C#代码将是

代码语言:javascript
复制
Machine.Rotate(drumB, Direction.Clockwise, 30);

但是我怎么才能接触到机器的马达,这样它才能旋转30秒…

我应该知道“嵌入式系统”来做这件事,还是有其他我需要学习的东西。

你能帮帮我吗?如果可能的话,与书籍/在线材料开始学习相同。

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-03 22:27:50

首先,你必须为这类项目学习嵌入式系统,尽管你可能会使用这些技术。嵌入式系统中的思考和编程与台式计算机中的思考和编程略有不同。

最重要的区别是硬件资源(例如,在大多数情况下,您的磁盘和内存容量有限,处理器也是如此)。另一个重要的区别是软件容错(如果司机因为软件崩溃而卡在洗衣机上的车里,这可能是一种恩惠……)。你还必须寻找其他重要的点(例如,软硬件协同设计),但我认为这两点非常重要,我认为你必须从项目开始就关注它们。

作为对嵌入式系统的介绍,我推荐Michael Barr的"Programming Embedded Systems: With C and GNU Development Tools“(更多面向软件)和John Catsoulis的"Designing Embedded Hardware”(面向硬件)。当然,您可以始终检查Wikipedia article作为起点。

如果你真的想使用.NET,你有两个选择:

  • 如前所述,寻找.NET微框架。请注意,Windows只能与有限数量的硬件(check this page);
  • other选择是购买一个工业面板(example of one here)或工业计算机,安装.NET Embedded和程序下的标准.NET框架。除了这最后一个优势,硬件是工业的,这意味着它是,例如,冲击和防水,并有许多输入(USB,CAN,以太网,串行,...)你可以利用Windows编程的所有优点来使用。

另一种选择是尝试其他硬件,但在这种情况下,您必须使用制造商为该硬件提供的库/API/框架。

为了访问硬件,您必须使用可用的硬件输入/输出。例如,如果你想要与一个,比方说,步进电机通信,你必须检查你如何与它通信。如果唯一的方法是发送PWM信号,则必须找到这样做的方法。两个假肢:

  • 如果您使用带有.NET MF的开发包,您必须检查它是否能产生脉宽调制信号,否则您可能需要编写设备驱动程序来执行此操作;
  • 如果您使用主机作为连接到外部硬件的人机接口(它可以通过USB、串行等连接),则硬件必须能够从主机接收消息并生成脉宽调制信号(几乎可以肯定的是,您将为此behaviours).

在硬件上安装微控制器

对于这两种假设,您可以创建一个高级框架,其方法类似于您提出的抽象所有与硬件的通信的方法。此外,@Daniel的回调建议是一个非常好的建议,因为它使您的框架更加灵活(例如,您可以在每个引擎停止或启动之前在回调上定义不同的行为)。

作为最后一点,你必须评估你的项目真正需要什么。如果你的项目必须很便宜,你可能会使用一个小的硬件,但在这种情况下,你可能能够,也可能不能使用Windows微框架;如果你可以多花一点钱,也许你可以使用运行.NET的更昂贵的硬件,在这种情况下,你甚至可以使用标准的.NET框架。

很抱歉给出了这么大的答案,但我希望它能帮助你做出选择!

票数 0
EN

Stack Overflow用户

发布于 2011-05-03 21:05:07

您应该开始查找.Net微框架的业余爱好站点。

他们会给你所有你需要的工具包,嗯,工具包形式。我正在使用来自Tinyclr.com的FEZ Domino积极地开发一些硬件

我发现TinyClr.com很棒,而且SparkFun.com也有很多东西。

票数 3
EN

Stack Overflow用户

发布于 2011-05-03 21:04:28

一种非常直接的方法是使用.NET Micro framework。但至少嵌入式系统的基础知识并不是那么差。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5869828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档