PIC Vietnam

Go Back   PIC Vietnam > Robotics > Thực hành

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

Thực hành Bắt đầu làm một robot như thế nào? Mẹo vặt? Kỹ thuật? Công nghệ?... Hãy bắt tay vào việc...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 19-09-2006, 01:36 PM   #1
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
Phần mạch cầu H, anh Nam sẽ comment thêm cho em nếu cần. Còn phần thiết kế, anh có mấy điểm chú ý:

1) Phần RS232, em sử dụng chuẩn bootloader của picvietnam (tìm lại bài báo cáo này do Chính cung cấp) Hồi trước Chính làm cái hình bé xíu, anh không nhớ Chính đã gửi báo cáo lên và sửa lại chưa. Em nên thiết kế theo chuẩn đó.

2) Phần nạp trình cho PIC trên board, với chuẩn đó, em cũng nên thiết kế header theo chuẩn ICSP-BLD của picvietnam, như vậy sẽ có thể phát triển và hỗ trợ công cụ một cách thống nhất.

>> Như vậy, chúng ta sẽ thống nhất chuẩn thiết kế cho mạch chạy PIC ở phần này luôn.

3) Về phần encoder, theo anh, em kô cần làm quá phức tạp, chỉ cần em cấp trực tiếp vào chân vi điều khiển là xong. Rất nhiều thiết kế dùng các con FF đưa vào để tạo xung tốt hơn, nhưng anh thấy với PIC không cần thiết phải làm vậy. Nếu em có osc, em có thể lấy quan sát thử, nó chả mất xung đâu (nhớ tính phần chu kỳ ngắt cho tốt là được).

4) Nếu để tăng độ mịn, anh nghĩ em nên dùng cả hai ngắt trên hai chân. Như vậy, lợi thế nhất là em dùng interrupt onchange trên portb. Vì như vậy, em có thể đọc được độ mịn lên gấp 4 lần, khi đọc encoder.

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 22-09-2006, 09:38 AM   #2
bluepine
Đệ tử 3 túi
 
Tham gia ngày: Jun 2006
Bài gửi: 53
:
Smile

Chào mọi người,
1/ Phần mạch RS232 em sẽ đọc lại phần botloader để sửa.
2/ Chuẩn ICSP-BLD của picvietnam ở luồng nào vậy anh F, anh gửi cho em được không.
3/ "Nếu để tăng độ mịn, anh nghĩ em nên dùng cả hai ngắt trên hai chân. Như vậy, lợi thế nhất là em dùng interrupt onchange trên portb. Vì như vậy, em có thể đọc được độ mịn lên gấp 4 lần, khi đọc encoder." Phần này, em chưa hiểu rõ lắm, chức năng interrupt on change thì em biết, nhưng từ 2 tín hiệu xung đưa về thì làm sao tăng độ nhạy lên 4 lần, anh giải thích thêm cho em.
bluepine vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-09-2006, 10:17 AM   #3
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
http://www.picvietnam.com/forum//showthread.php?t=224

Em xem luồng này, xem bài số 13. Nếu như bây giờ em đọc cả cạnh lên và cạnh xuống của encoder của cả hai kênh A, B, thì như vậy em sẽ thấy rằng độ phân giải sẽ tăng lên 4 lần.

Nếu em chỉ đọc cạnh lên của kênh B chẳng hạn, thì bây giờ em đọc cạnh lên B, lên A, xuống B, xuống A. Như vậy độ phân giải sẽ tăng lên 4.

Như vậy, với encoder 500 xung/vòng, em có thể đọc lên tới 2000 xung/vòng, đây là kỹ thuật cơ bản về encoder thôi.

http://dientuvietnam.net/forums/showthread.php?t=2637
Luồng này là về chuẩn ICSP_BLD của picvietnam (bên dientuvietnam, anh quên viết bài bên picvietnam, nhưng nó có trong bài bootloader của Chính, anh sẽ bổ sung sau).

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 22-09-2006, 11:08 PM   #4
scentoflove
Đệ tử 6 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 129
:
Chuẩn 5x2 em rất thích nhưng ko kiếm được header cũng như ko kiếm được cable ở Nhất Tảo (em chỉ thấy 1 lần sợi cable 5x2 của thằng bạn hỏi nó mua ở đâu, nó nói bạn nó mua dùm )

Em đang vẽ lại module mạch dk nên phân vân ko có link kiện để theo chuẩn 5x2.

Anh F cho em hỏi thêm mục đích của việc mịn hóa encoder, vì nếu để phân biệt chiều của encoder thì chỉ cần ngắt pha A, đọc tín hiệu pha B (0 or 1) là được -> em nghĩ đọc encoder qua kĩ sẽ dẫn đến chậm chương trình chính (tính toán PID số thực)

thay đổi nội dung bởi: scentoflove, 22-09-2006 lúc 11:18 PM.
scentoflove vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-09-2006, 10:20 AM   #5
bluepine
Đệ tử 3 túi
 
Tham gia ngày: Jun 2006
Bài gửi: 53
:
Hỏi về interrupt on change

Trích:
Nguyên văn bởi falleaf View Post
http://www.picvietnam.com/forum//showthread.php?t=224


Em xem luồng này, xem bài số 13. Nếu như bây giờ em đọc cả cạnh lên và cạnh xuống của encoder của cả hai kênh A, B, thì như vậy em sẽ thấy rằng độ phân giải sẽ tăng lên 4 lần.

Nếu em chỉ đọc cạnh lên của kênh B chẳng hạn, thì bây giờ em đọc cạnh lên B, lên A, xuống B, xuống A. Như vậy độ phân giải sẽ tăng lên 4.

Như vậy, với encoder 500 xung/vòng, em có thể đọc lên tới 2000 xung/vòng, đây là kỹ thuật cơ bản về encoder thôi.

http://dientuvietnam.net/forums/showthread.php?t=2637
Luồng này là về chuẩn ICSP_BLD của picvietnam (bên dientuvietnam, anh quên viết bài bên picvietnam, nhưng nó có trong bài bootloader của Chính, anh sẽ bổ sung sau).

Chúc vui.
bluepine vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-09-2006, 10:22 AM   #6
bluepine
Đệ tử 3 túi
 
Tham gia ngày: Jun 2006
Bài gửi: 53
:
Chào mọi người, cho em hỏi sao em không dùng được chức năng interrupt on change trên portb, em viết chương trình như thế này
.......
#INT_RB
void RB_int()
{
counted_round_value++;
printf("%ld\t",counted_round_value);// hiển thị giá trị số lần ngắt về máy tính

}


void main()
{
enable_interrupts(GLOBAL);
enable_interrupts(INT_RB);
port_b_pullups(true);
set_tris_b(0xf0);

output_low(PIN_B0);
while(true);
}
..... em dùng 1 phím nhấn để thay đổi tín hiệu trên 1 chân (từ b4 đến b7)
khi hiển thị về máy tính thì thấy giá trị số lần ngắt tăng liên tục mặt dù chưa nhấn phím.
dòng lệnh port_b_pullups(true); để chống nhiễu do áp trôi trên portb, em đã thử bỏ đi mà kết quả vẫn không đổi.
kiểm tra lại thì phím nhấn không vấn đề gì.
bluepine vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-09-2006, 03:02 AM   #7
scentoflove
Đệ tử 6 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 129
:
Bạn chọn ngắt cạnh lên hay cạnh xuống (điện trở kéo lên chắc là ngắt cạnh xuống). Bạn nên mắc điện trở kéo lên ở mạch ngoài như vậy ổn định hơn
Nếu nút nhấn chỉ mắc 1 chân RB0 thi bạn nên set_tris_b(0x10), chân Rb1-Rb3 ko xài
Thực ra khi lúc mới học PIC viết ngắt ngoài thì bị lỗi khác (lúc chạy đúng lúc chạy sai) làm cho mình có cảm giác RB0-RB3 ngắt ko ổn định bằng RB7.
scentoflove vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-09-2006, 11:01 AM   #8
bluepine
Đệ tử 3 túi
 
Tham gia ngày: Jun 2006
Bài gửi: 53
:
Trích:
Nguyên văn bởi scentoflove View Post
Bạn chọn ngắt cạnh lên hay cạnh xuống (điện trở kéo lên chắc là ngắt cạnh xuống). Bạn nên mắc điện trở kéo lên ở mạch ngoài như vậy ổn định hơn
Nếu nút nhấn chỉ mắc 1 chân RB0 thi bạn nên set_tris_b(0x10), chân Rb1-Rb3 ko xài
Thực ra khi lúc mới học PIC viết ngắt ngoài thì bị lỗi khác (lúc chạy đúng lúc chạy sai) làm cho mình có cảm giác RB0-RB3 ngắt ko ổn định bằng RB7.
chào bạn, mình nghĩ bạn nhầm, vì mình dùng chức năng ngắt INT_RB (interupt on change) tức là chương trình ngắt sẽ được gọi khi có sự thay đổi mức trạng thái trên bất kì chân nào trong số b4 đến b7. Còn ngắt trân chân b0 như bạn nói là ngắt ngoài INT_EXT, bạn có thể vào mục help của CCsc để xem lại.
mến
bluepine 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à 01:37 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