智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4824|回复: 7
打印 上一主题 下一主题

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

[复制链接]

0

主题

1

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
威望
193
贡献
41
兑换币
14
注册时间
2010-10-10
在线时间
2 小时
跳转到指定楼层
1#
发表于 2010-10-10 15:33:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我们把小车分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

12

主题

108

帖子

0

精华

高级会员

Rank: 4

积分
920
QQ
威望
610
贡献
188
兑换币
0
注册时间
2011-9-7
在线时间
61 小时
2#
发表于 2011-11-30 22:11:00 | 只看该作者
我想制作一台红外遥控小车,能不能请楼主把资料发到506644585@qq.com这个邮箱?
回复 支持 反对

使用道具 举报

1

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
310
威望
211
贡献
61
兑换币
15
注册时间
2012-2-13
在线时间
19 小时
毕业学校
吉林大学
3#
发表于 2012-2-13 14:42:38 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

18

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1111
QQ
威望
658
贡献
331
兑换币
89
注册时间
2012-2-29
在线时间
61 小时
4#
发表于 2012-3-6 22:40:13 | 只看该作者
回复 支持 反对

使用道具 举报

3

主题

60

帖子

0

精华

高级会员

Rank: 4

积分
664
QQ
威望
425
贡献
149
兑换币
43
注册时间
2011-12-2
在线时间
45 小时
5#
发表于 2012-3-25 22:13:32 | 只看该作者
楼主,能告知 一下 你的 底层 pwm是怎么样的吗??
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

注册会员

Rank: 2

积分
135
威望
98
贡献
31
兑换币
0
注册时间
2012-4-29
在线时间
3 小时
毕业学校
东北民族大学
6#
发表于 2012-5-2 19:06:35 | 只看该作者
回复 支持 反对

使用道具 举报

20

主题

155

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3468

优秀会员奖章活跃会员奖章论坛元老奖章

威望
1458
贡献
1388
兑换币
496
注册时间
2011-5-20
在线时间
311 小时
7#
发表于 2012-9-7 18:16:35 | 只看该作者
楼主能否推荐下要学C#哪本教材好呢
回复 支持 反对

使用道具 举报

15

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
594
威望
390
贡献
88
兑换币
37
注册时间
2012-7-28
在线时间
58 小时
8#
发表于 2012-11-4 14:48:16 | 只看该作者
请楼主发送一些资料让我学习学习,pcb图,代码之类的,谢谢啦!!!295863196@qq.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-6 00:27 , Processed in 0.075145 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表