也许我的标题措辞可能会产生误导,但这就是我试图实现的目标。
我有一个计划,开发一个多功能的一体机(有点像全自动洗衣机…但不仅仅是这样)..。它将有许多移动和不移动的部件,需要由面板上的芯片/处理器控制……
我了解C#,可以编写模块来处理用户输入,并通过向机器发出命令来控制机器。但是在机器端应该做什么.
比方说,假设我想让机器旋转鼓B 30秒。我的C#代码将是
Machine.Rotate(drumB, Direction.Clockwise, 30);但是我怎么才能接触到机器的马达,这样它才能旋转30秒…
我应该知道“嵌入式系统”来做这件事,还是有其他我需要学习的东西。
你能帮帮我吗?如果可能的话,与书籍/在线材料开始学习相同。
谢谢
发布于 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,你有两个选择:
另一种选择是尝试其他硬件,但在这种情况下,您必须使用制造商为该硬件提供的库/API/框架。
为了访问硬件,您必须使用可用的硬件输入/输出。例如,如果你想要与一个,比方说,步进电机通信,你必须检查你如何与它通信。如果唯一的方法是发送PWM信号,则必须找到这样做的方法。两个假肢:
在硬件上安装微控制器
对于这两种假设,您可以创建一个高级框架,其方法类似于您提出的抽象所有与硬件的通信的方法。此外,@Daniel的回调建议是一个非常好的建议,因为它使您的框架更加灵活(例如,您可以在每个引擎停止或启动之前在回调上定义不同的行为)。
作为最后一点,你必须评估你的项目真正需要什么。如果你的项目必须很便宜,你可能会使用一个小的硬件,但在这种情况下,你可能能够,也可能不能使用Windows微框架;如果你可以多花一点钱,也许你可以使用运行.NET的更昂贵的硬件,在这种情况下,你甚至可以使用标准的.NET框架。
很抱歉给出了这么大的答案,但我希望它能帮助你做出选择!
发布于 2011-05-03 21:05:07
您应该开始查找.Net微框架的业余爱好站点。
他们会给你所有你需要的工具包,嗯,工具包形式。我正在使用来自Tinyclr.com的FEZ Domino积极地开发一些硬件
我发现TinyClr.com很棒,而且SparkFun.com也有很多东西。
发布于 2011-05-03 21:04:28
一种非常直接的方法是使用.NET Micro framework。但至少嵌入式系统的基础知识并不是那么差。
https://stackoverflow.com/questions/5869828
复制相似问题