能用c#控制硬件电路吗?

问题描述

各位高手们,我以前学过一点c#,这次毕业设计,我需要用电脑控制电机的转动,请问哈,c#在控制硬件方面怎么样,如果能够控制的话,又该怎样具体实现呢?求助啊,各位大哥.........

解决方案

解决方案二:
串口和单片机通讯,用单片机控制步进电机~最简单的51系列就可以~
解决方案三:
http://topic.csdn.net/u/20120111/18/2dacb0ab-1c29-4ab7-9ef9-f53d5b0a8cd6.html?30226
解决方案四:
问你用的设备的厂商。问我们没有用的。让他提供对应的sdk。不然谁也给不了你答案。
解决方案五:
可以间接控制。
解决方案六:
我的意思就是用c#编写上位机程序,然后控制电机的转动,这样的话,c#和c++相比那个更方便呢?我以前学过c#所以我还是想看看能不能用c#解决这个问题。毕竟要我再学一门语言有点难度。。。。
解决方案七:
引用3楼zanfeng的回复:

问你用的设备的厂商。问我们没有用的。让他提供对应的sdk。不然谁也给不了你答案。

厂商那里如果没有这种sdk怎么办呢?就没办法用c#开发了吗?
解决方案八:
C#给串口发指令,单片机接收串口的指令输出PWM信号,PWM信号作用于L298N电机驱动模块,控制电机的转向和转速。
解决方案九:
电机用变频器控制,c#和变频器通信
解决方案十:
引用6楼tang233418的回复:

厂商那里如果没有这种sdk怎么办呢?就没办法用c#开发了吗?

看7楼。根本用不着什么厂商的SDK。RS232通信协议是公开的、统一的标准,又不是哪个厂商的专属协议。
解决方案十一:
一般是通过电脑串口或者USB口发送指令到单片机,然后单片机控制电机运动,学习的直接上51就成了。不过好像看见过用串口发送脉冲给步进电机驱动,然后驱动板带动电机的
解决方案十二:
引用10楼dongfangmi的回复:

不过好像看见过用串口发送脉冲给步进电机驱动,然后驱动板带动电机的

你说的这个方案,带动电机的那块驱动板,应该是一个带嵌入式操作系统的设备,否则,就没有“驱动”这一说。我认为,除非你还涉及到其他的复杂逻辑,否则,根本用不着这样的设备。有点大材小用了。
解决方案十三:
拿到电机的通讯协议,根据协议写好控制代码,根据电脑和电机的通讯方式写好通讯代码,如果电机和电脑是网络连接就用System.Net.Sockets,如果是通过串口就用System.IO.Ports命名空间
解决方案十四:
引用9楼xinyaping的回复:

引用6楼tang233418的回复:厂商那里如果没有这种sdk怎么办呢?就没办法用c#开发了吗?看7楼。根本用不着什么厂商的SDK。RS232通信协议是公开的、统一的标准,又不是哪个厂商的专属协议。

RS-232是串行连接标准。你能用它控制人家的设备?!!胡说八道
解决方案十五:
可以控制设备,一般都是通过协议进行进行操作,这个要和具体的设备有关,不同的设备方式不一样,比如电力一般是IEC104,工业控制MODBUS用的较多。
解决方案:
引用13楼zincy的回复:

RS-232是串行连接标准。你能用它控制人家的设备?!!胡说八道

为什么不可以控制他的设备?串口只是一个用于通信的接口。上位机所要做的事情,仅仅是向串口发送一个指令。而下位机所要做的事情,仅仅是接收这个指令。这个指令是什么呢?随你定,你可以定义“A”指令是正转、“B”指令是反转,只要在上位机和下位机的程序里做同样的约定就可以。不管用串口还是用红外,或者用ZigBee、用WIFI、用蓝牙……随便你用什么都行,反正上位机只要能把命令发出去就行,别的事情就不管了,具体怎么识别命令、怎么执行,那是下位机的事,跟上位机毫无关系。大侠,我说得对吗?
解决方案:
完全可以,通过串口方式通信即可。
解决方案:
引用15楼xinyaping的回复:

引用13楼zincy的回复:RS-232是串行连接标准。你能用它控制人家的设备?!!胡说八道为什么不可以控制他的设备?串口只是一个用于通信的接口。上位机所要做的事情,仅仅是向串口发送一个指令。而下位机所要做的事情,仅仅是接收这个指令。这个指令是什么呢?随你定,你可以定义“A”指令是正转、“B”指令是反转,只要在上位机和下位机的程序里做同样的约定就可以。……

你上位机和下位机通讯的协议和232没有必然的关联吧,那也还是需要知道硬件的指令格式,不然你怎么知道发哪串1010过去控制硬件?
解决方案:
学习的直接上51就成了,完全可以,通过串口方式通信即可。
解决方案:
引用9楼xinyaping的回复:

引用6楼tang233418的回复:厂商那里如果没有这种sdk怎么办呢?就没办法用c#开发了吗?看7楼。根本用不着什么厂商的SDK。RS232通信协议是公开的、统一的标准,又不是哪个厂商的专属协议。

晕。这位没搞清楚SDK是啥定义。
解决方案:
不管用串口还是用红外,或者用ZigBee、用WIFI、用蓝牙……随便你用什么都行,反正上位机只要能把命令发出去就行,别的事情就不管了,具体怎么识别命令、怎么执行,那是下位机的事,跟上位机毫无关系。你这里的命令。也就是sdk中通讯协议的一部分。
解决方案:
引用17楼netteans的回复:

你上位机和下位机通讯的协议和232没有必然的关联吧,那也还是需要知道硬件的指令格式,不然你怎么知道发哪串1010过去控制硬件?

原谅我可能用词不当。我所指的RS232的协议,我是这样理解的:对于RS232这种接口,它的电路连接是怎样的,给每个Pin上的电压/电流的限制是怎样的,哪个电压值代表高电平、哪个电压值代表低电平、向它发送一条指令的操作序列是什么…………这些,都应该是业界标准,在我眼里这个就是协议。
解决方案:
引用19楼zanfeng的回复:

引用9楼xinyaping的回复:引用6楼tang233418的回复:厂商那里如果没有这种sdk怎么办呢?就没办法用c#开发了吗?看7楼。根本用不着什么厂商的SDK。RS232通信协议是公开的、统一的标准,又不是哪个厂商的专属协议。晕。这位没搞清楚SDK是啥定义。

抱歉,我确实用词不当。
解决方案:
引用20楼zanfeng的回复:

不管用串口还是用红外,或者用ZigBee、用WIFI、用蓝牙……随便你用什么都行,反正上位机只要能把命令发出去就行,别的事情就不管了,具体怎么识别命令、怎么执行,那是下位机的事,跟上位机毫无关系。你这里的命令。也就是sdk中通讯协议的一部分。

zigbee又有收获
解决方案:
上层用c#底层用c或汇编
解决方案:
引用20楼zanfeng的回复:

不管用串口还是用红外,或者用ZigBee、用WIFI、用蓝牙……随便你用什么都行,反正上位机只要能把命令发出去就行,别的事情就不管了,具体怎么识别命令、怎么执行,那是下位机的事,跟上位机毫无关系。你这里的命令。也就是sdk中通讯协议的一部分。

抱歉,我确实用词不当。硬件方面的编程我只是业余时间玩一玩,没做过什么专业的事情。抛开我不准确的用词,我的意思实际上是这样的:我的意思是说我不需要一个特定厂商的什么SDK,但是我以前也自己业余时间抱着玩的心态做过简单的单片机作品,也用到了串口通信,我用的是一个开源的程序库。(如果这个程序库是哪个特定的厂商提供的,那么这个就是你们所说的SDK吗?)通过这个开源的程序库,我得以向串口发送一些字节,以及接收到我所发送的内容。我自定义了几个命令,当单片机接收到这样的命令的时候,通过我自己写的encode/decode函数,解析出commandheader和commandbody,commandheader里面包含了要执行的功能,commandbody里面包含了执行这个功能所需要的参数。然后调用我自己写的函数来给电机驱动模块发送PWM信号,电机驱动模块我用了一个L298N,电机我用的是电动玩具车里面的直流减速电机。本人硬件方面的知识很贫乏,各位见笑了。但是楼主这样的应用我也做过的,我当时实现的功能比楼主的这个需求还要复杂一些。
解决方案:
引用23楼startstartsvip的回复:

zigbee又有收获

ZigBee,工控领域中的一种低功耗组网技术。它可以两个节点通讯,或者多个节点组成一个网络然后在这个网络内多点通讯。见:http://baike.baidu.com/view/117166.htm
解决方案:
c#可以用api调用KneralIoControl,进而控制驱动,引脚,控制电路。
解决方案:
引用24楼hailang466的回复:

上层用c#底层用c或汇编

不是什么“上层”、“底层”这样的结构,而是上位机与下位机这样的结构。上位机与下位机之间,除了通讯以外,再无任何联系。上位机可以是PC(或者智能手机,或者另一个移动设备)。下位机是一个带电机驱动电路的单片机系统。上位机与下位机的软、硬件平台不同,所以用的开发语言/开发工具也不同。比如说上位机用PC或者WindowsMobile/WindowsCE/WindowsPhone的智能手机,那么这样的平台你当然可以用.Net来编程。而下位机,你可以用什么样的语言/工具来开发,也是由下位机的环境决定的。下位机的Bootloader起了一个最基本的单片机操作的软环境,这个软环境主要有裸系统或者嵌入式操作系统这两种情况。(“裸系统”这个词我或许又用词不准确了,我的意思是没有OS直接靠状态机来给单片机的PIN发送高低电平的这种情况)对于“裸系统”,你需要用C/汇编生成二进制的bin文件然后烧到Flash里面。对于嵌入式OS的环境来说,这个OS支持什么样的运行环境,你就可以用什么来编程,比如说,如果你的嵌入式OS是一个embeddedLinux,然后你在这个Linux系统上运行了一个BusyBox的小环境,又添加了Python的运行库,那么你也可以用Python来给下位机编程。当然理论上说是可以这样做的,你觉得方便不方便那就另说了。

时间: 2024-10-06 07:17:24

能用c#控制硬件电路吗?的相关文章

stm32-基于STM32和18B20的温控系统代码和硬件电路

问题描述 基于STM32和18B20的温控系统代码和硬件电路 求大神 给一个方案 基于STM32和18B20的温控系统代码和硬件电路 控制一个加热电阻 温度维持在50℃. 急需~!不胜感激~~!

软件-求大神汇编程序用8255方式0无条件输入的硬件电路

问题描述 求大神汇编程序用8255方式0无条件输入的硬件电路 用8255方式0无条件输入的硬件电路,编写软件.要求有菜单选项,可根据选项的不同,将输入的数据K0---K7,以十六进制的形式,二进制的形式显示到CRT上

协议-j1939的硬件电路和一般的can通信电路有什么不同吗?

问题描述 j1939的硬件电路和一般的can通信电路有什么不同吗? 主要刚接触can.看到1939协议比较混乱.希望有大神帮我说一下他们的区别 解决方案 j1939的硬件电路是基于汽车电路的一个模式,而CAN是包含j1939的硬件电路协议在内的一个总的通信模式

硬件电路-提问,74hct245是每个通道隔离的吗?

问题描述 提问,74hct245是每个通道隔离的吗? 这是一个数据缓冲器,如果一个通道出现问题,会不会影响其他几个通道的缓冲功能?

android蓝牙如何实现控制led亮灭

问题描述 android蓝牙如何实现控制led亮灭 设计一个安卓软件利用蓝牙通讯来控制硬件电路.最好是低功耗蓝牙,求助各位大神. 解决方案 http://blog.csdn.net/liqinghan/article/details/41346675 解决方案二: 中断控制LED灯亮灭LED的亮灭的判断的实现?

控制-驱动程序是如何驱动硬件的?

问题描述 驱动程序是如何驱动硬件的? 我想问一下,一个硬件设备被计算机系统控制如果必须要安装驱动程序的话,那么驱动程序是如何控制硬件的? 解决方案 驱动程序相比应用程序没有什么特别的,特别只是特别在它们可以拥有一些特权指令,访问操作系统的关键区域以及特殊的地址. 硬件大致分为几类,一类是像显卡之类的硬件,本质上它们相当于一个异构的处理器,它拥有专门的独立的指令,你的驱动程序相当于上传这些代码给它,然后它自己处理. 一类是类似硬盘.网卡之类的,高速IO,这些一般使用DMA,操作起来如同读写内存,操

模拟电路-multisim硬件仿真电路

问题描述 multisim硬件仿真电路 谁有篮球24秒倒计时器,硬件电路,,multisim仿真电路,发一下吧,谢谢啦,,,,,,,急急, 解决方案 用2个同步计数器163不就能实现了么? 解决方案二: 同步计数器啊,很简单的

proteus 硬件-proteus仿真时钟电路,加上三极管,总是出问题,求大神帮忙解答

问题描述 proteus仿真时钟电路,加上三极管,总是出问题,求大神帮忙解答 我加上三极管总是出错,不知道哪里有问题,求大神帮忙解答,我不加三极管,就对了,就正常显示,可是实际电路不是要放大电流才可以吗?我这个数码管是共阳极的 解决方案 硬件电路

宽带无线接入网中的RS编译码硬件解决方案

一. 引言 差错控制技术对提高通信系统的可靠性有重要作用.RS码具有很强的纠错能力,既可以纠随机错,又可以纠突发错,在通信系统中应用广泛.RS的编码方案相对简单,在此不赘述,仅在最后的测试过程中给出测试结果.但RS码的解码复杂度高,数学运算量大,国内的硬件及软件解码方案大多不能满足高速率的传输需求,一般适用于10 MHz以下.本文基于欧氏算法(Euclidean Algorithm)和IDFT相结合的RS解码方案利用FPGA芯片实现了GF(28)上符号速率为32.5 MHz的流式解码方案,最大