PIC Vietnam

Go Back   PIC Vietnam > Robotics > Cảm biến

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cảm biến Camera, siêu âm, hồng ngoại, gyro, la bàn...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 08-11-2008, 11:31 AM   #16
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
Trích:
Nguyên văn bởi anh_gioi View Post
bây giờ nếu xuất ra LED thì em phải dùng 1 chân điều xung ạ?
vì chân điều xung chỉ có thể thay đổi được giá trị thôi ạ.khi có tín hiệu ra, ta sẽ cho qua chân điều xung để xuất ra LED.
cuối cùng cũng hoàn thành cái siêu âm này.

cho em hỏi câu nữa: nếu em dùng 2 SRF05 cùng lúc, thì em chỉ cần dùng 1 timer hay phải dùng 2 timer ạ.
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-11-2008, 08:49 PM   #17
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
1) Em nên post các thiết kế và các kết quả lên cho các bạn tham khảo. Chú ý chỉ ra những gì mà em đã làm sai, đã gặp khúc mắc để giúp các bạn làm sau làm việc nhanh hơn.

2) Khi dùng 2 siêu âm, em nên tìm hiểu bài toán crosstalk mà anh đã post trong mục cảm biến. Việc dùng timer nào không quan trọng. Trên thực tế thì bài toán anh sử dụng nhiều siêu âm anh cũng chỉ dùng 1 timer là đủ, vấn đề chính là em dùng chức năng capture để đọc siêu âm.

Chúc vui.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-11-2008, 06:45 PM   #18
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
Trích:
Nguyên văn bởi falleaf View Post
1) Em nên post các thiết kế và các kết quả lên cho các bạn tham khảo. Chú ý chỉ ra những gì mà em đã làm sai, đã gặp khúc mắc để giúp các bạn làm sau làm việc nhanh hơn.

2) Khi dùng 2 siêu âm, em nên tìm hiểu bài toán crosstalk mà anh đã post trong mục cảm biến. Việc dùng timer nào không quan trọng. Trên thực tế thì bài toán anh sử dụng nhiều siêu âm anh cũng chỉ dùng 1 timer là đủ, vấn đề chính là em dùng chức năng capture để đọc siêu âm.

Chúc vui.
vừa từ quê lên, mệt ghê.
vâng thưa anh, em đưa code lên sau ạ, cho em hỏi ạ:
nếu bắt buộc dùng capture như anh nói thì nếu em dùng PIC6F877A nó chỉ có 2 chân CCP1 và CCP2 thôi, mà em dùng 2 chân cho 1 SRF rồi, vậy nếu em dùng con nữa thì làm sao dùng capture được ạ?
nếu khi dùng 2 siêu âm, em dự định đặt 2 cảm biến vuông góc với nhau, như vậy bài toán crosstalk chắc em ko cần quan tâm ạ ?
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2008, 12:33 AM   #19
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Crosstalk không chỉ xảy ra khi hai cảm biến đặt cạnh nhau. Sóng siêu âm bay trong không gian, có thể phản xạ nhiều lần rồi mới quay về cảm biến. Bản thân 1 cảm biến, nếu đặt trong không gian hẹp, cũng có thể xảy ra hiện tượng crosstalk với bản thân nó.

Đó là kỹ thuật sử dụng phần cứng của em. Để bắt một chân SRF05, theo anh hiểu chỉ cần sử dụng một chân CCP là đủ, còn chân Trigger thì em dùng chân I/O nào cũng được. Ko hiểu em dùng 2 chân CCP làm gì.

Tốt nhất em nên post kết quả của em lên thì mọi người mới thảo luận được. Ở đây rất nhiều bạn có thể giúp em phần xử lý này nếu em chia sẻ với các bạn ấy.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2008, 04:19 PM   #20
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
đây là cod ecura em ạ. em chủ yếu dựa vào code trong CCS là chính:

Trích:
#include "F:\NCKH 2009\PIC 16\CCP1-2\CCP1-2.h"
#include <F:\NCKH 2009\PIC 16\timer01---\lcd_lib_4bit.c>
#include <F:\NCKH 2009\PIC 16\timer01---\DEFS_16F877A.h>
#define SRF05_IN PIN_D0
///
#define SRF05_OUT PIN_C3
#define CONVERT_TO_MICROSECONDS (20000000/((4)*1000000))
//
long rise,fall,pulse_width;
int16 tram1,chuc1,donvi1;



#int_ccp2
void isr()
{
rise = CCP_1;
fall = CCP_2;

pulse_width = fall - rise; // CCP_1 is the time the pulse went high
} // CCP_2 is the time the pulse went low

void convert_bcd1(int16 x)
{

donvi1=(((x%1000)%100)%10) + 0x30; //chia lay phan du, so hang don vi
tram1=((x%1000)/100) + 0x30; //tach hang tram va hang chuc
chuc1=((x%1000)%100)/10 + 0x30;
///// hien thi len gia tri LCD//////
LCD_putcmd(0xC5);
LCD_putchar(tram1);
LCD_putcmd(0xc6);
LCD_putchar(chuc1);
LCD_putcmd(0xC7);
LCD_putchar(donvi1);
}
void main()
{
LCD_init();
//---hien thi LCD---
LCD_putcmd(0x85);
LCD_putchar("Anh_Gioi");
LCD_putcmd(0xC0);
LCD_putchar("S = ");


setup_ccp1(CCP_CAPTURE_RE); // Configure CCP1 to capture rise
setup_ccp2(CCP_CAPTURE_FE); // Configure CCP2 to capture fall
setup_timer_1(T1_INTERNAL); // Start timer 1
enable_interrupts(INT_CCP2); // Setup interrupt on falling edge
enable_interrupts(GLOBAL);

while(TRUE) {
int16 mm2;
// 10us cho trigger
output_high(SRF05_IN);
delay_us(10);
output_low(SRF05_IN);
//tinh ra quang duong
mm2 = pulse_width/(5*58);
convert_bcd1(mm2);
delay_ms(100);
}
}
cái này em nối 2 chân CCP với nhau.
anh xem em có đúng khong ạ. kết quả hiển thị gần như chính xác ạ.
Hình Kèm Theo
File Type: jpg sieu am.JPG (52.4 KB, 111 lần tải)
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2008, 05:11 PM   #21
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Tại sao em lại cần nối 2 cân CCP với nhau. Tại sao em không dùng 1 chân thôi?

Hãy dành thời gian chút xíu để suy nghĩ. Em vẫn nối hai chân đó với nhau như bình thường. Nhưng ban đầu em set nó là chân output. Sau khi xuất xong xung 10us thì em lập tức chuyển nó lại thành chân input.

Lưu ý rằng, thời gian để chuyển chân từ output phải ngay lập tức sau khi em tạo cạnh xuống của xung 10us. Tất nhiên, cảm biến nó đã thiết kế để thời gian này đủ dài, em đọc trong technical sheet của nó. Tuy nhiên, tốt nhất là phải chuyển ngay lập tức.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2008, 05:19 PM   #22
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Nếu bây giờ anh cho em một con PIC16F887, và yêu cầu em thực hiện lại mạch này một cách hoàn chỉnh, rồi chụp lại hình để đưa lên mạng thành một project (tất nhiên, với yêu cầu em sửa lại cái phần CCP như anh nói), liệu em có làm được không?

Nếu em không có máy chụp hình, hãy mang thiết kế của em tới RP để chụp hình và demo cho các anh ở RP xem. Em có thể tới RP để lấy con PIC16F887, nếu đồng ý thì anh sẽ email cho công ty trước để sẵn cho em.

Lý do anh muốn để tụi em làm quen với dòng PIC rẻ tiền hơn 877A và bỏ thói quen sử dụng 877A như một "bí kíp võ công" đi. Bí kíp nằm ở chỗ rẻ tiền, hiệu quả. Sau này khi em thiết kế các đề tài mới, em sẽ có thể mạnh dạn chuyển sang 887, ít nhất nó rẻ đi cho em 10K/pcs.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2008, 11:56 PM   #23
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
vâng, có được anh hỗ trợ em thì hay quá ạ. em sẽ làm theo ý của anh ạ.
nhưng :
1.em ở ngoài bắc thì làm sao vào nam lấy được ạ?
2.em hỏi với mạch nạp PG2C thì có thể nạp cho con 887 được ko ạ (vì em chỉ có mỗi mạch nạp này ạ).
em cám ơn anh rất nhiều ạ !
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-11-2008, 12:02 AM   #24
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
Trích:
Nguyên văn bởi falleaf View Post
Tại sao em lại cần nối 2 cân CCP với nhau. Tại sao em không dùng 1 chân thôi?

Hãy dành thời gian chút xíu để suy nghĩ. Em vẫn nối hai chân đó với nhau như bình thường. Nhưng ban đầu em set nó là chân output. Sau khi xuất xong xung 10us thì em lập tức chuyển nó lại thành chân input.

Lưu ý rằng, thời gian để chuyển chân từ output phải ngay lập tức sau khi em tạo cạnh xuống của xung 10us. Tất nhiên, cảm biến nó đã thiết kế để thời gian này đủ dài, em đọc trong technical sheet của nó. Tuy nhiên, tốt nhất là phải chuyển ngay lập tức.

Chúc vui
em vẫn chưa hiểu ý của anh ạ. anh bảo
Trích:
Em vẫn nối hai chân đó với nhau như bình thường
là nối 2 chân CCP với nhau ạ? như vậy vẫn là theo bài trên của em rồi. như vậy vẫn phải dùng 2 chân CCP cho 1 cảm biến ạ?
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-11-2008, 05:46 AM   #25
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi anh_gioi View Post
vâng, có được anh hỗ trợ em thì hay quá ạ. em sẽ làm theo ý của anh ạ.
nhưng :
1.em ở ngoài bắc thì làm sao vào nam lấy được ạ?
2.em hỏi với mạch nạp PG2C thì có thể nạp cho con 887 được ko ạ (vì em chỉ có mỗi mạch nạp này ạ).
em cám ơn anh rất nhiều ạ !
2. Bạn xem post #10 của luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1198

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-11-2008, 11:31 PM   #26
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
sao không thấy anh hiệp đoàn trả lời nhỉ?
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-11-2008, 01:10 AM   #27
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
Trích:
Nguyên văn bởi falleaf View Post
Tại sao em lại cần nối 2 cân CCP với nhau. Tại sao em không dùng 1 chân thôi?

Hãy dành thời gian chút xíu để suy nghĩ. Em vẫn nối hai chân đó với nhau như bình thường. Nhưng ban đầu em set nó là chân output. Sau khi xuất xong xung 10us thì em lập tức chuyển nó lại thành chân input.

Lưu ý rằng, thời gian để chuyển chân từ output phải ngay lập tức sau khi em tạo cạnh xuống của xung 10us. Tất nhiên, cảm biến nó đã thiết kế để thời gian này đủ dài, em đọc trong technical sheet của nó. Tuy nhiên, tốt nhất là phải chuyển ngay lập tức.

Chúc vui
đang thi nên không vào diễn đàn thường xuyên được, nay mở ra đọc lại thì thấy có một số khuất mắc:
Trích:
Em vẫn nối hai chân đó với nhau như bình thường. Nhưng ban đầu em set nó là chân output. Sau khi xuất xong xung 10us thì em lập tức chuyển nó lại thành chân input.
tại sao lại phải chuyển 2 chân CCp thành output ạ? vì chỉ cần nó là input thì mới nhận được tín hiệu từ SRF được mà?
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-11-2008, 03:27 AM   #28
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
SRF có 2 mode đọc. Cái CCP hiện tại em đang nối 2 chân vào với nhau (hình em gửi). Chả để làm gì cả.

Mode 1, đọc cảm biến vẫn dùng 2 chân CCP và một chân I/O.
Mode 2, chỉ cần dùng 1 chân CCP, ban đầu đặt là Output, xuất xung, sau đó đổi nó thành Input nhận xung.

Đọc bằng cả 2 Mode luôn để xem kết quả. Khi có nhiều cảm biến thì đọc theo mode 2 sẽ tiết kiệm chân của PIC. Anh muốn là em làm thử cả 2 Mode này với PIC16F887.

Việc em ở Hà Nội, muốn lấy PIC thì cũng đơn giản thôi, không có vấn đề gì khó khăn cả. Em cho anh thông tin liên lạc cụ thể, anh sẽ gửi PIC cho em. Quan trọng là em có muốn làm và cung cấp giải pháp của em cho mọi người hay không. Nếu viết lại thành một tutorial đưa lên picvietnam được để lưu trữ như các bạn trước đây học với anh thì tốt. Dạo này anh không có nhiều thời gian để hướng dẫn, nên chủ yếu kêu gọi sự tự giác của các bạn sinh viên, cùng làm, và cùng viết tutorial cho picvietnam thôi.

Trước đây thì anh không có điều kiện hỗ trợ thực tế, bây giờ thì có điều kiện hỗ trợ PIC cho các bạn học tập, thế nhưng thời gian để hỗ trợ, hướng dẫn lại không còn. Cái gì cũng có cái giá của nó mà phải không

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-11-2008, 10:29 PM   #29
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
Trích:
Mode 1, đọc cảm biến vẫn dùng 2 chân CCP và một chân I/O.
nghĩa là 1 chân CCP và 1 chân I/O?
mode2 em xem qua rùi, nếu làm được mode1 thì mode2 ko thành vấn đề ạ.

anh ạ ! em được thế này là nhờ diễn đàn này, nên em rất muốn góp tí công sức cho diễn đàn ạ. nếu được anh nói vậy em cũng sẽ cố gắng hết mình, anh yên tâm khi giao nó cho em.
nếu được anh có thể gửi cho em qua địa chỉ:
Nguyễn thị Hồng Vân
số nhà 37, tổ 43 xóm sở, Phường Mai Dịch. quân Cầu Giấy, Hà Nội.
//
và anh cũng cho em chính xác thời gian nộp bài cho anh luôn ạ, vì bi giờ em đang thi kì cuối (em sắp ra trường rùi) đến hết tháng 12 mới thi xong ạ.
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-11-2008, 04:24 AM   #30
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Thời gian không quan trọng, em cho anh tên người nhận và số điện thoại cho tiện. Vì anh nhờ người gửi giúp.

Khi nào có thời gian làm xong thì em làm, càng sớm càng tốt cho các bạn thôi.

Em có thể tham khảo thêm về một thí dụ ở đây để làm tài liệu tham khảo khi viết.

http://mdubuc.freeshell.org/Robotics/Tips.html

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 06:21 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam