研制微机控制的多功能机床

本文关键字:多功能机 控制 微机 | 更新日期: 2023-09-27 17:54:59

也许我的标题措辞可能会误导人,但这正是我想要实现的。

我有一个计划,开发一个多用途的一体机(像全自动洗衣机…但不止于此)……它将有许多移动和不移动的部件,需要由面板上的芯片/处理器控制…

我知道c#,可以编写模块来处理用户输入并通过向机器发出命令来控制机器。但是在机器方面应该怎么做呢?

说,假设我想让机器旋转B鼓30秒…我的c#代码将是

Machine.Rotate(drumB, Direction.Clockwise, 30);

但是我怎样才能进入机器的马达,使它能旋转30秒…

我应该知道"嵌入式系统"来做到这一点,还是有其他东西我需要学习。

你能帮我一下吗?如果可能的话,用书本或网上的材料开始学习。

谢谢

研制微机控制的多功能机床

你应该开始看看。net微框架的兴趣网站。

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

我发现TinyClr.com很好,SparkFun.com也有很多东西。

首先,恕我直言,无论您可能使用的技术如何,您都必须为此类项目学习嵌入式系统。在嵌入式系统中思考和编程与在台式计算机中思考和编程有点不同。

最重要的区别是硬件资源(例如,大多数情况下您将拥有有限的磁盘和内存容量,处理器也是如此)。另一个重要的区别是软件的容错性(如果司机因为软件崩溃而被困在洗衣机里,那就有点烦人了……)。还有其他重要的点,你必须寻找(例如,软件-硬件协同设计),但我认为这两个是真正重要的,我认为你必须注意他们从你的项目的开始。

作为嵌入式系统的介绍,我推荐Michael Barr的《编程嵌入式系统:使用C和GNU开发工具》(更面向软件)和John Catsoulis的《设计嵌入式硬件》(面向硬件)。当然,你也可以从维基百科的文章入手。

如果你真的想使用。net,你有两个选择:

  • 正如已经说过的,寻找。net微框架。注意。net MF只能在有限数量的硬件上工作(查看此页);
  • 另一种选择是购买工业面板(此处为示例)或工业计算机,安装Windows Embedded并在标准。net框架下编程。除了这最后一个优点之外,硬件是工业的,这意味着它是,例如,防震和防水,并且有许多输入(USB, CAN,以太网,串行,…),您可以使用Windows编程的所有优点。

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

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

  • 如果你正在使用。net MF的开发工具,你必须检查它是否可以产生PWM信号,否则你可能需要编写一个设备驱动程序来这样做;
  • 如果您使用主机作为连接到外部硬件的人机界面(它可以通过USB,串行,…连接),硬件必须能够接收来自主机的消息并生成PWM信号(几乎可以肯定,您将在硬件上使用微控制器进行此行为)。

对于这两种假设,您都可以使用您所展示的方法创建一个高级框架,抽象出与硬件的所有通信。此外,@Daniel回调的建议是一个非常好的,因为它使你的框架更加灵活(作为一个例子,你可以在每个马达停止或开始之前的回调上定义不同的行为)。

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

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

一个非常直接的方法是使用。net Micro框架。但是至少对嵌入式系统有一个基本的了解并不是那么糟糕。

这不是。net,但也许你可以四处搜索并从中获得一些想法。

顺便说一句,在我看来,从第一个"直觉思维"来看,你将向设备发出的大多数命令将是异步的,就像:

Motor.StartTurning(90, 0.1, CallBackFunction);

该系统不需要是嵌入式系统,您可以控制您的机器和获取传感器数据使用PC配备适当的数字和模拟I/O硬件(示例)。这种方法的问题是,实时性能可能是通用操作系统(GPOS)(如Windows或Linux)的问题。您可以为PC配备一个实时操作系统 (RTOS),但是c#不太可能成为一种选择,并且您失去了PC开发的许多好处,例如熟悉的开发和调试环境。物理尺寸也可能是一个问题,虽然非常小的工业PC架构板如PC/104是可用的,但那本质上是一个嵌入式系统,只是碰巧共享熟悉的桌面硬件架构。

在基于非x86硬件的真正嵌入式系统上使用。net Micro是可能的,但这也不能提供硬实时性能。

控制电机并不总是像打开或关闭那么简单,您可能还需要使用闭环反馈和PID控制器进行速度或位置控制。