写C#代码,用红外遥控智能车

叶帆 2010-10-10 01:56:58

我们把小车分5种状态:前进、后退、左转、右转、停止

1、 前进代码

static void MoveForward()

{

Lc.Write(true);

pwm.Start(PWM.Channels.CH1, 1, PWM.Mode.PWM1); //PA6

Rc.Write(true);

pwm.Start(PWM.Channels.CH2, 1, PWM.Mode.PWM1); //PA7

}

2、 后退代码

static void MoveBack()
{
Lc.Write(false);
pwm.Start(PWM.Channels.CH1, 99, PWM.Mode.PWM1); //PA6
Rc.Write(false);
pwm.Start(PWM.Channels.CH2, 99, PWM.Mode.PWM1); //PA7
}




3、 左转代码


static void MoveLeft()

{

Lc.Write(false);

pwm.Start(PWM.Channels.CH1, 99, PWM.Mode.PWM1); //PA6

Rc.Write(true);

pwm.Start(PWM.Channels.CH2, 1, PWM.Mode.PWM1); //PA7

}


左转代码有两种实现方法,一种是左轮静止,右轮正转,另一种是左轮倒转,右轮正传,这种转圈的速度更快,当然也可以让两轮都正传,左轮转的慢,右轮转的快,也可以进行左转弯。

4、 右转代码

static void MoveRight()

{

Lc.Write(true);

pwm.Start(PWM.Channels.CH1, 1, PWM.Mode.PWM1); //PA6

Rc.Write(false);

pwm.Start(PWM.Channels.CH2, 99, PWM.Mode.PWM1); //PA7

}

右转处理代码和左转恰好相反。

5、 停止代码

static void MoveStop()

{

Lc.Write(false);

pwm.Start(PWM.Channels.CH1, 0, PWM.Mode.PWM1); //PA6

Rc.Write(false);

pwm.Start(PWM.Channels.CH2, 0, PWM.Mode.PWM1); //PA7

pwm.Stop(PWM.Channels.CH1);

pwm.Stop(PWM.Channels.CH2);

}

红外遥控器我们也没有必须识别全部的按钮编码,我们仅识别5个按键即可,前后左右和确认键。

1、声明红外控制类,并绑定相关处理事件

IRController IR = new IRController(3, (int)GPIO_NAMES.PB12);

IR.IREvent += new IRController.IREventHandler(IR_Click);

2、红外事件处理函数

static void IR_Click(byte[] buff, DateTime time)

{

IRData.Key key = IRData.GetKey(buff);//编码识别

if (key != IRData.Key.None)

{

switch (key)

{

case IRData.Key.Forward:

MoveForward();

break;

case IRData.Key.Left:

MoveLeft();

break;

case IRData.Key.Right:

MoveRight();

break;

case IRData.Key.Back:

MoveBack();

break;

case IRData.Key.Stop:

MoveStop();

break;

}

}

}

相关博文:
(1)红外遥控器编码识别 http://blog.csdn.net/yefanqiu/archive/2010/09/25/5906170.aspx
(2)用PWM驱动智能小车 http://blog.csdn.net/yefanqiu/archive/2010/09/05/5865279.aspx
(3)红外遥控智能小车 http://blog.csdn.net/yefanqiu/archive/2010/09/28/5912938.aspx
...全文
773 1 收藏 50
写回复
50 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xuStanly 2011-10-23
对于我这样一个只专注web领域的dotnet程序员来说,楼主的贴子和视频确实把我振奋了。。。
支持用dotnet开发神9的飞行控制系统,哈哈哈。
回复
叶帆 2011-10-23
用C#做遥控小车,其实只是.NET Micro Framework (最新V4.2版本目前已经支持VB.net 开发嵌入式了)一个小应用而已,我更关注的还是物联网领域的应用。对于协议转换,生产流程控制方面有更好的发展空间。
回复
mabaolin 2011-09-30
娃,倒霉兄头像好亮
回复
cairongyu02064 2011-09-30
LZ是来秀的吧,不过确实有秀的本钱啊
回复
五更琉璃 2011-09-30
表面是上C#开发 但真正执行的还是C编写的程序
回复
wjfwd2009 2011-09-30
受益匪浅啊,C#也能做机器人,我感觉我的前途一片光明啊,楼主最好多给点这方面的知识让大家一起学习啊,说不定哪天就弄个智能高达出来
回复
haihuan23 2011-09-30
很强大呀
回复
haihuan23 2011-09-30
很强大呀呀呀呀呀

NND,床上等你又抽风了
回复
haihuan23 2011-09-30
很强大呀
回复
牛人倍出啊
回复
jishiguang 2011-09-30
仔细看了下,楼主业余爱好而已,用开发板做,小车走得很不顺畅(从视频看),遥控距离就这么点,根本没什么适用性,红外遥控做个15米,是没什么问题的。

申明下:本人不是有意在贬楼主,其实从业余角度出发,楼主很不错了。只是从专业的角度,想说这么几句。
因为本人曾经是电子工程师和单片机工程师,做事从来没用过开发板,都是直接上硬件。
回复
jishiguang 2011-09-30
仔细看了下,楼主业余爱好而已,用开发板做,小车走得也很不顺畅(从视频看),遥控距离就这么点,根本没什么适用性,红外遥控一般做15米没什么问题的。

申明下:本人不是有意在贬楼主,从业余的角度,已经不错了。只是从专业角度看,想说这么几句。
因为曾经是电子工程师和单片机工程师,干活从没用过开发板,都是直接上硬件,
回复
jishiguang 2011-09-30
C#也能搞单片机?看来Keil要破产了
回复
shihaojie1219 2011-09-29
车速太慢,上不了高速
回复
sanjiawan 2011-09-29
以前和同学用c写过小车推箱子 头一次听说C#也可以写嵌入式了 呵呵 C#越来越给力了
回复
苏墨 2011-09-29
这位真犀利,把代码如此引用到生活,太给力了,有机会能教教我这新手吗?还有如何去学,看什么书属于我这样的初学者??
回复
jshzp 2011-09-29
[Quote=引用 30 楼 wenxiwei 的回复:]
楼主您好 请问要做这种遥控技术方面的 需要学哪方面的技术呢? 单片机? 嵌入式? 求解·· 谢谢!
[/Quote]
这种遥控技术,几乎不涉及到什么高级编程语言的,主要都是硬件技术。
单片机的语言都是结构化程序。
回复
fhpu168 2011-09-29
[Quote=引用 28 楼 ronaltn 的回复:]

在Windows的环境下驾驶汽车........
不怕蓝屏哈
[/Quote]

要用什么环境来支持代码的运行??
回复
萧炎 2011-09-29
不错 有遥控的坦克和神舟9号就好了
回复
卧_槽 2011-09-29
有遥控灰机的不?
回复
加载更多回复
相关推荐
发帖
C#
创建于2007-09-28

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2010-10-10 01:56
社区公告

让您成为最强悍的C#开发者