当前位置:编程学习 > C#/ASP.NET >>

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


我们把小车分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 --------------------编程问答--------------------  没房,没车。 --------------------编程问答-------------------- 不错不错,不知道我家的冰箱能不能控制自动关开门 --------------------编程问答-------------------- 遥控视频:http://video.sina.com.cn/v/b/38689146-1804832611.html --------------------编程问答-------------------- 好强....收藏之....我对这些很感兴趣...向楼主学习. --------------------编程问答-------------------- 向lz学习了 --------------------编程问答-------------------- 呵呵 LZ
搞单片机的吗?MSP430是凌阳的板子哦? --------------------编程问答-------------------- 这是 Cortex-M3的开发板,是红牛的 --------------------编程问答-------------------- 最近总是看到别人在做小车,再次学习了。 --------------------编程问答-------------------- 支持一下:我们以前也用自定义类库函数来实现小车的智能化,不过我们用C,C++ ,VB,VF不同语言,由不同学生团队来完成的,你有兴趣的话用C#编一个电脑模拟程序模拟小车全过程,你会有不同的收获的 --------------------编程问答-------------------- 厉害 前几天就是做了个数字温度计还是别人帮做的 --------------------编程问答-------------------- 有点意思,学习了 --------------------编程问答-------------------- 请问是不是要把代码刷到小车芯片里? --------------------编程问答-------------------- 事实上,楼主弄的东西都非常棒。但这个帖子,我没看出你的意图。想表达什么呢? --------------------编程问答-------------------- 可以用VS2008,直接把程序部署到小车上的Flash芯片上。也可以用我专门写的程序把用户程序烧写到Flash上,你可以参考一下我的博客或下面的文章:
博客:http://blog.csdn.net/yefanqiu
文章:http://www.sky-walker.com.cn/yefan/MFV40/MFUserManual.pdf --------------------编程问答-------------------- 收       藏 --------------------编程问答-------------------- @wuyazhe
    选择在C#栏目,而不是嵌入式栏目发这个帖子,就是想对说软件人员说,PC软件人员也是有实力做嵌入式开发的,我就是从一个纯软件开发程序员转为一个嵌入式程序员的。
    此外以前主要做工控软件,所以有机会接触一些硬件,直到遇到.net mf,使一个windows程序开发爱好者,才终于绕开linux,开始嵌入式开发之旅。
    由于是.net mf项目组的,所以也希望有更多的人知道.net mf,并喜欢.net mf --------------------编程问答-------------------- 学 习 --------------------编程问答-------------------- 这个好玩 --------------------编程问答-------------------- 学习了
--------------------编程问答--------------------
引用 16 楼 yefanqiu 的回复:
@wuyazhe
    选择在C#栏目,而不是嵌入式栏目发这个帖子,就是想对说软件人员说,PC软件人员也是有实力做嵌入式开发的,我就是从一个纯软件开发程序员转为一个嵌入式程序员的。
    此外以前主要做工控软件,所以有机会接触一些硬件,直到遇到.net mf,使一个windows程序开发爱好者,才终于绕开linux,开始嵌入式开发之旅。
    由于是.net mf项目组的,所以也希望……


让更多windows程序开发爱好者开始嵌入式开发之旅,不错哦 --------------------编程问答-------------------- 不错,我也是使用.NET做windows程序开发的。 --------------------编程问答-------------------- 强啊   不错
好东西
学习了 --------------------编程问答-------------------- 哇,楼主牛人。 --------------------编程问答-------------------- --------------------编程问答-------------------- 想问下做这个嵌入式开发需要什么硬件工具么? --------------------编程问答-------------------- 不错不错!嵌入式开发我都不会。。学习了。 --------------------编程问答-------------------- --------------------编程问答-------------------- 在Windows的环境下驾驶汽车........
不怕蓝屏哈 --------------------编程问答-------------------- 学习了! --------------------编程问答-------------------- 楼主您好  请问要做这种遥控技术方面的    需要学哪方面的技术呢?  单片机? 嵌入式?  求解··  谢谢! --------------------编程问答-------------------- 有遥控灰机的不? --------------------编程问答-------------------- 不错 有遥控的坦克和神舟9号就好了 --------------------编程问答--------------------
引用 28 楼 ronaltn 的回复:
在Windows的环境下驾驶汽车........
不怕蓝屏哈


要用什么环境来支持代码的运行?? --------------------编程问答--------------------
引用 30 楼 wenxiwei 的回复:
楼主您好 请问要做这种遥控技术方面的 需要学哪方面的技术呢? 单片机? 嵌入式? 求解·· 谢谢!

这种遥控技术,几乎不涉及到什么高级编程语言的,主要都是硬件技术。
单片机的语言都是结构化程序。 --------------------编程问答-------------------- 这位真犀利,把代码如此引用到生活,太给力了,有机会能教教我这新手吗?还有如何去学,看什么书属于我这样的初学者??
--------------------编程问答-------------------- 以前和同学用c写过小车推箱子  头一次听说C#也可以写嵌入式了 呵呵  C#越来越给力了 --------------------编程问答-------------------- 车速太慢,上不了高速 --------------------编程问答-------------------- C#也能搞单片机?看来Keil要破产了 --------------------编程问答-------------------- 仔细看了下,楼主业余爱好而已,用开发板做,小车走得也很不顺畅(从视频看),遥控距离就这么点,根本没什么适用性,红外遥控一般做15米没什么问题的。

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

申明下:本人不是有意在贬楼主,其实从业余角度出发,楼主很不错了。只是从专业的角度,想说这么几句。
因为本人曾经是电子工程师和单片机工程师,做事从来没用过开发板,都是直接上硬件。 --------------------编程问答-------------------- 牛人倍出啊 --------------------编程问答-------------------- 很强大呀 --------------------编程问答-------------------- 很强大呀呀呀呀呀

NND,床上等你又抽风了 --------------------编程问答-------------------- 很强大呀 --------------------编程问答-------------------- 受益匪浅啊,C#也能做机器人,我感觉我的前途一片光明啊,楼主最好多给点这方面的知识让大家一起学习啊,说不定哪天就弄个智能高达出来 --------------------编程问答-------------------- 表面是上C#开发 但真正执行的还是C编写的程序 --------------------编程问答-------------------- LZ是来秀的吧,不过确实有秀的本钱啊  --------------------编程问答-------------------- 娃,倒霉兄头像好亮 --------------------编程问答-------------------- 用C#做遥控小车,其实只是.NET Micro Framework (最新V4.2版本目前已经支持VB.net 开发嵌入式了)一个小应用而已,我更关注的还是物联网领域的应用。对于协议转换,生产流程控制方面有更好的发展空间。 --------------------编程问答-------------------- 对于我这样一个只专注web领域的dotnet程序员来说,楼主的贴子和视频确实把我振奋了。。。
支持用dotnet开发神9的飞行控制系统,哈哈哈。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,