红外避障的程序

xkd12345 2011-06-25 09:02:20
C51的红外壁障小车 壁障程序怎么写 要不要用到中断
...全文
817 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ytmGring 2011-08-18
  • 打赏
  • 举报
回复
正在研究当中,学习......
woshi284178915 2011-08-16
  • 打赏
  • 举报
回复
老大,我也想知道怎么做,能教教我不
guangmingdeshenju 2011-08-07
  • 打赏
  • 举报
回复
最后用外部中断,int0,int1
不然你就只有在程序力不停地查询引脚了,很费资源。
如果有下降沿(假设无障碍为高电平),则直接转

但 你最好还是和红外测距联系在一起做,这样壁障效果会理想些
TLZme 2011-08-01
  • 打赏
  • 举报
回复
正在做
greatriver007 2011-08-01
  • 打赏
  • 举报
回复
首先应该把小车跑起来,能走前后左右,然后 通过红外或者超声波检查周边环境,得出信号,然后决定小车的走向。 这东西应该是调出来的。
qq297021227 2011-07-28
  • 打赏
  • 举报
回复
include <BoeBot.h>
#include <uart.h>
#include <intrins.h>

#define LeftIR P1_2 //左边红外接受连接到P1_2
#define RightIR P3_5 //右边红外接收连接到P3_5
#define LeftLaunch P1_3 //左边红外发射连接到P1_3
#define RightLaunch P3_6 //右边红外发射连接到P3_6
void IRLaunch(unsigned char IR)
{
}
void Forward(void)
{
}
void Left_Turn(void)
{
}
void Right_Turn(void)
{
}
void Backward(void)
{
}
int main(void)
{
int irDetectLeft,irDetectRight;
uart_Init();
printf("Progam Running!\n");
while(1)
{
}
}
iamsheldon 2011-07-28
  • 打赏
  • 举报
回复
一个中断足矣,就是一个时间中断,时间到了,就判断一次状态(方向,距离。。。。。。。)
yangtao6888 2011-07-26
  • 打赏
  • 举报
回复
那要看你要怎样蔽障了,用查询方式写吧,很简单的
hy890512 2011-07-23
  • 打赏
  • 举报
回复
判断 接受信号的时间差
bjtea 2011-07-22
  • 打赏
  • 举报
回复
红外信号越强,说明障碍物越近;越弱说明障碍物越远。
必须使用中断,连续检测,定时读取红外信号;或者定时读取数值后,同时启动下次检测。
码农不专业 2011-07-13
  • 打赏
  • 举报
回复
不懂啊。。我也想知道。。。
lbing7 2011-07-01
  • 打赏
  • 举报
回复
简单的策略可以,不停的收集红外信号,如果没有,则往前走。

如果有检测到,则相应地驱动电机让小车往反方向转90度。

以此循环

。。。

这个是弱智点,如果要高科技的,那就把这个策略进行推广

或者可以看一个人工智能,往这个方向靠一靠
qyl_qyl 2011-06-30
  • 打赏
  • 举报
回复
很抱歉,我以前做过,arm7系列的;根据步进电机的工作原理,完成步进电机的驱动代码。根据PWM原理以及红外探测知识,完成红外探测相关代码。最终实现小车遇障碍物则转向的基础智能;
最基本要用两个中断,红外线感应中断服务函数,定时器中断,在做这个东西时,少用while循环去判断,因为它会一直占有CPU,程序在运行过程中会,出现异常,定时中断隔一段时间检测引脚的信号,做相应的处理,而红外线感应中断服务函数隔一段时间发送红外线信号,
xkd12345 2011-06-26
  • 打赏
  • 举报
回复
没有人吗
Great_Bug 2011-06-25
  • 打赏
  • 举报
回复

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧