PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Công nghệ robot (http://www.picvietnam.com/forum/forumdisplay.php?f=50)
-   -   help ! robot dò đường dùng 16f877a (http://www.picvietnam.com/forum/showthread.php?t=30694)

l6nngu 10-10-2012 01:14 AM

help ! robot dò đường dùng 16f877a
 
em đang làm btl robot đường dùng 16f877a.
ai có sơ đồ các khối của robot này cho em xin với.
mô phỏng trên proteus nữa thì càng tốt.
em thanks trước :(

l6nngu 11-10-2012 11:58 PM

ko ai giúp e à :(

tuonghiendk7.1 11-12-2012 05:56 PM

Bạn có thể tham khảo code sau
 
Trích:

Nguyên văn bởi l6nngu (Post 78430)
ko ai giúp e à :(

#INCLUDE <18F4431.H>
#DEVICE *=16
#FUSES HS,NOLVP,NOWDT,NOPROTECT
#USE DELAY(clock=20000000)

#BYTE PORTA=0XF80
#BYTE PORTB=0XF81
#BYTE PORTC=0XF82
#byte PORTD=0XF83
#BYTE PORTE=0XF84

#BIT R4 = PORTA.0
#BIT R3 = PORTA.1
#BIT R2 = PORTA.2
#BIT R1 = PORTA.3
//---------------
#BIT L1 = PORTA.4
#BIT L2 = PORTA.5
#BIT L3 = PORTE.0
#BIT L4 = PORTE.1


#BIT CBANH_TRAI = PORTB.2
#BIT CBANH_PHAI = PORTB.0
#BIT LED1 = PORTD.0
#BIT LED2 = PORTD.1
#BIT LED3 = PORTD.2


#DEFINE QUAY_THUAN 0
#DEFINE QUAY_NGUOC 1


VOID SO_CB_TICH_CUC (VOID);
VOID DEM_VACH_NGANG (VOID);
VOID DO_DUONG (VOID);

INT8 TH,SO_VACH,NL,NR;
INT16 BANH_TRAI,BANH_PHAI ;
//0----1---2---3---4---5---6---7---8---9---10-11---12-13
INT16 B_TRAI [14] = {1023,970,780,700,600,550,480,450,400,300,270,220, 170,5};
INT16 B_PHAI [14] = {1023,950,760,730,580,530,460,430,380,280,250,200, 150,5};


VOID SO_CB_TICH_CUC ()
{
TH = 0;
IF (R3 == 0 ) TH ++;
IF (R2 == 0 ) TH ++;
IF (R1 == 0 ) TH ++;
IF (L1 == 0 ) TH ++;
IF (L2 == 0 ) TH ++;
IF (L3 == 0 ) TH ++;
}

VOID DEM_VACH_NGANG ()
{
SO_CB_TICH_CUC ();
IF (TH >=5 )
{
LOVE:
SO_CB_TICH_CUC ();
IF (TH >3 ) GOTO LOVE;

ELSE
{
SO_VACH ++;
IF (SO_VACH == 1 ) LED1 = 1 ;
ELSE IF (SO_VACH == 2 ) LED2 = 1 ;
ELSE IF (SO_VACH == 3 ) LED3 = 1 ;
ELSE LED1=LED2=LED3 =0;
}

}

}

VOID DO_DUONG ()
{
NL =NR = 0;
IF ( R1 == 0 && L1 ==0 || R1 == 0 ||L1 ==0 ) //11 10 01 11
{
BANH_TRAI = B_TRAI [2];
BANH_PHAI = B_PHAI [2];
NL= NR = 0;
}
//-----------LECH TRAI----------------------------------------------------------
ELSE IF ( L2 ==0 && L1 == 0|| L2 ==0) // 11 00 11 11
{
BANH_TRAI = B_TRAI [3];
BANH_PHAI = B_PHAI [2];
NL = 1;
}
ELSE IF ( L3 == 0 && L2 ==0|| L3 ==0 ) // 10 01 11 11
{
BANH_TRAI = B_TRAI [4];
BANH_PHAI = B_PHAI [2];
NL = 2;
}
ELSE IF (L3 == 0 && L4 ==0) // 00 11 11 11
{
BANH_TRAI = B_TRAI [5];
BANH_PHAI = B_PHAI [1];
NL = 3;
}
ELSE IF (L4==0) // 01 11 11 11
{
BANH_TRAI = B_TRAI [6];
BANH_PHAI = B_PHAI [0];
NL = 4;
}
//-----------LECH PHAI----------------------------------------------------------
ELSE IF ( R1 ==0 && R2 ==0 ||R2 ==0) // 11 10 01 11
{
BANH_TRAI = B_TRAI [2];
BANH_PHAI = B_PHAI [3];
NR =1 ;
}
ELSE IF ( R3 ==0&& R2 ==0||R3 ==0) // 11 11 10 01
{
BANH_TRAI = B_TRAI [2];
BANH_PHAI = B_PHAI [4];
NR =2 ;
}
ELSE IF ( R3 ==0 && R4 ==0 ) // 11 11 11 00
{
BANH_TRAI = B_TRAI [1];
BANH_PHAI = B_PHAI [5];
NR =3 ;
}
ELSE IF ( R4 ==0) // 11 11 11 10
{
BANH_TRAI = B_TRAI [0];
BANH_PHAI = B_PHAI [6];
NR = 4 ;
}
//---------------NHO DUONG------------------------------------------------------

ELSE IF ( PORTA ==0B111111 && PORTE == 0B111 && NL == 4 && NR ==0)
{
BANH_TRAI = B_TRAI [0];
BANH_PHAI = B_PHAI [6];

}
ELSE IF ( PORTA ==0B111111 && PORTE == 0B111 && NL == 0 && NR ==4)
{
BANH_TRAI = B_TRAI [6];
BANH_PHAI = B_PHAI [0];
}
ELSE IF (PORTA == 0B111111 && PORTE == 0B111)
{
BANH_TRAI = B_TRAI [0];
BANH_PHAI = B_PHAI [0];
}

//------------XUAT XUNG---------------------------------------------------------
SET_POWER_PWM0_DUTY (BANH_PHAI);
SET_POWER_PWM2_DUTY (BANH_TRAI);
}
//------------------------------------------------------------------------------
VOID MAIN ()
{
SET_TRIS_A (0B111111);
SET_TRIS_B (0X00);
SET_TRIS_C (0XFF);
SET_TRIS_D (0X00);
SET_TRIS_E (0X7);
SETUP_POWER_PWM_PINS (PWM_ODD_ON,PWM_ODD_ON,PWM_ODD_ON,PWM_ODD_ON );
SETUP_POWER_PWM (PWM_CLOCK_DIV_16|PWM_FREE_RUN,1,0,250,0,1,0);
SET_POWER_PWM2_DUTY (1023);
SET_POWER_PWM0_DUTY (1023);

CBANH_TRAI = QUAY_THUAN ;
CBANH_PHAI = QUAY_THUAN ;
SO_VACH = 0;
//------------------------------------------------------------------------------
WHILE (TRUE)
{
CBANH_TRAI = QUAY_THUAN ;
CBANH_PHAI = QUAY_THUAN ;
SO_VACH = 0;
WHILE (SO_VACH <=3)
{
DO_DUONG ();
DEM_VACH_NGANG ();
}
SET_POWER_PWM2_DUTY (1023);
SET_POWER_PWM0_DUTY (1023);


}

}
đây là một bài toán dò đường mà mình đã hoàn thiện dùng trong robocon bạn tham khảo nhé !

dinhnambkhn 31-12-2012 03:11 PM

Trích:

Nguyên văn bởi l6nngu (Post 78342)
em đang làm btl robot đường dùng 16f877a.
ai có sơ đồ các khối của robot này cho em xin với.
mô phỏng trên proteus nữa thì càng tốt.
em thanks trước :(

Mình dùng 8051 roj. Còn dùng pic16f877a lập trình vs ccs thì dễ hơn.
Sơ đồ của nó gồm khối cảm biến dùng 8 led phát siêu sáng vs thu là 8 led thu hồng ngoại hoặc dùng quang trở.đầu ra của nó cho vào LM324 or LM339. Là khuếch đại thuật toán.
Một con có 4 opam,nên dùng 8 đầu dò luôn cho chính xác.sau đó cho vào đầu digital của pic or 8051.
Thuật toán khá đơn giản, nếu bị lệch thì ta hiệu chỉnh bằng chiều quay và tốc độ quay của 2 động cơ.
Nếu có khó khăn gì cứ gửi mail cho mình dinhnambkhn@gmail.com
Chúc thành công!
Thân!

sonitwilli 03-01-2013 08:38 AM

Bạn có thể cho mình xem mạch dc ko? Mô phỏng càng tốt.

pstin 03-01-2013 10:00 AM

1 Attachment(s)
Trích:

Nguyên văn bởi sonitwilli (Post 80373)
Bạn có thể cho mình xem mạch dc ko? Mô phỏng càng tốt.

Trước có post rồi, post lại nè,..cái này đúng "gốc" robot luôn!!!..

dinhnambkhn 03-01-2013 06:28 PM

Trích:

Nguyên văn bởi sonitwilli (Post 80373)
Bạn có thể cho mình xem mạch dc ko? Mô phỏng càng tốt.

bạn gửi mail cho mình! dinhnambkhn@gmail.com
có thuật toán và mô phỏng ...
thân!

thanh37na 02-03-2013 10:59 PM

em cũng đang làm đề tài tiểu luận tương tự nhu trên nhưng dung con CPLD coolrunnel II
đơn giản hơn, chỉ có 4 led hồng ngoại, có gì anh có thể chỉ giúp em, cho em mạch nguyên lý thì càng tốt, tks a

nhapmonkythuat 29-07-2013 09:53 PM

Mình cũng đang làm. ai có code và mạch cho mình xin. 8051 hay pic cung được. thanks. phmthduybk11@gmail.com


Múi giờ GMT. Hiện tại là 12:44 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam