PIC Vietnam

Go Back   PIC Vietnam > Robotics > Cơ cấu chấp hành (Actuator)

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ơ cấu chấp hành (Actuator) Động cơ DC, AC, động cơ không chổi than, động cơ không cảm biến...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 07-08-2007, 01:02 AM   #1
dvnccbmacbt
Đệ tử 4 túi
 
Tham gia ngày: May 2007
Bài gửi: 65
:
Cool Hỏi về cách bảo vệ động cơ bằng lập trình?

Các bác cho em hỏi! Em đang tập lập trình cơ bản cho robot dò đường. Em được biết có nhiều nguyên nhân gây nguy hiểm cho động cơ. Vậy em xin hỏi theo kinh nghiệm các bác khi lập trình ta cần chú ý như thế nào để ít nguy hiểm cho động cơ nhất? Em lấy ví dụ như : hạn chế đổi chiều động cơ đội ngột. dừng robot từ từ, v..v... Các bác có thuật toán hay thủ thuật gì mong giúp em với. Em cảm ơn các bác nhiều.
dvnccbmacbt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-08-2007, 10:45 PM   #2
Tuấn Anh CVN
Đệ tử 1 túi
 
Tham gia ngày: Jul 2007
Bài gửi: 15
:
Khi làm robot follow line, để tránh việc thay đổi tốc độ đột ngột hay để làm cho robot chuyển động mềm dẻo (flexible) ta cần bố trí càng nhiều cảm biến dò đường càng tốt. Tất nhiên là trong giới hạn có thể để phần cứng không trở nên phức tạp quá. Khi đọc giá trị từ nhiều cảm biến sẽ có nhiều trường hợp xảy ra, với mỗi trường hợp ta lại quyết định thay đổi tốc độ sử dụng PWM theo các kiểu khác nhau sao cho mềm dẻo. Nếu làm vậy sẽ tránh được việc thay đổi tốc độ đột ngột gây hại cho động cơ. Cùng là động tác quay robot nhưng nếu có nhiều cảm biến nên dựa vào kết quả thu được ta có thể đưa ra nhiều cách quay khác nhau khiến robot chuyển động từ từ không bị dật. Ví dụ có các cách quay như sau: quay cạnh (một bánh quay, một bánh đứng yên); quay tâm (hai bánh quay ngược chiều); quay mềm dẻo ( hai bánh cùng tiến nhưng tốc độ khác nhau). Nếu đưa ra được càng nhiều cách quay mềm dẻo kiểu như trên thì chắc chắn sẽ giải quyết được vấn đề của bạn.
Tuấn Anh CVN vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-01-2008, 11:26 AM   #3
kidcdt
Đệ tử 1 túi
 
Tham gia ngày: Dec 2007
Bài gửi: 12
:
thiệt sự là em thấy vấn đề điều xung là rất khó khăn.Anh Tuấn Anh có thể chia sẽ kinh nghiệm được không.dùng 89c51 ấy.
kidcdt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-02-2009, 01:23 AM   #4
Tuấn Anh CVN
Đệ tử 1 túi
 
Tham gia ngày: Jul 2007
Bài gửi: 15
:
Điều chế xung sử dụng 89C51 thì chỉ dùng ngắt timer mới chính xác được. Nếu dùng delay thì khá khó phải viết phần mềm theo kiểu nhảy state (dùng con trỏ hàm). Song hình như trên thị trường có bán các loại IC chuyên dụng để tạo xung. Loại này cần dọc data sheet nhiều. Tốt nhất là nên sử dụng loại IC hỗ trợ PWM. Để tăng tốc độ từ từ thì thường trong source code hay định nghĩa cứng như là:

#define Tien { Banh_Trai(Tien,100); Banh_Fai(Tien,100); }
#define Re_Fai_1 { Banh_Trai(Tien,100); Banh_Fai(Tien,80); }
#define Re_Fai_2 { Banh_Trai(Tien,100); Banh_Fai(Tien,70); }

#define Re_Trai_1 { Banh_Trai(Tien,80); Banh_Fai(Tien,100); }
#define Re_Trai_2 { Banh_Trai(Tien,70); Banh_Fai(Tien,100); }

Cách định nghĩa cứng các marco này thực ra không hay vì không mềm dẻo. Thực tế nhiều khi cần phải tăng tốc độ rất mềm. Nếu theo cách trên thì không biết là phải định nghĩa bao nhiêu mới vừa để đảm bảo yêu cầu ấy. Như vậy gây rối loạn.
Nên sử dụng định nghĩa theo marco có đối. Mỗi bánh xe coi là một đối tượng có 3 thuộc tính : chiều quay, tốc độ, gia tốc (d,s,a)

#define Tien(s,a) { Banh_Trai(Tien,s,a); Banh_Fai(Tien,s,a); }
#define Re_Fai(s_L,a_L,s_R,a_R) { Banh_Trai(Tien,s_L,a_L); Banh_Fai(Tien,s_R,a_R); }
#define Re_Trai(s_L,a_L,s_R,a_R) { Banh_Trai(Tien,s_L,a_L); Banh_Fai(Tien,s_R,a_R); }

Giả sử muốn cho tiến dần từ tốc độ 0 thì ta sẽ gọi
speed = 0;
accelerate = 0;
.
.
.
if (speed <= 100)
Tien(++speed,accelerate);

Thế là đã tăng tốc độ rất mềm với gia tốc là 0.
Tuấn Anh CVN vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-03-2011, 11:21 AM   #5
dai_ngoc
Nhập môn đệ tử
 
Tham gia ngày: Dec 2008
Bài gửi: 2
:
tui thì cũng đang mày mò học xí để điều khiển tốc độ động cơ DC mà khó viêt quá
ai có code C nào điều khiển tăng giảm tốc độ động cơ thì post lên hoặc email cho tui nhé tui cảm ơn
email: nguyenminhnghia2009@gmail.com
dai_ngoc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-07-2011, 11:54 PM   #6
hanhcd
Nhập môn đệ tử
 
Tham gia ngày: Jul 2011
Bài gửi: 5
:
Nó đây! ct cho robot dò đường tui viết lúc trước.

Trích:
Nguyên văn bởi dai_ngoc View Post
tui thì cũng đang mày mò học xí để điều khiển tốc độ động cơ DC mà khó viêt quá
ai có code C nào điều khiển tăng giảm tốc độ động cơ thì post lên hoặc email cho tui nhé tui cảm ơn
email: nguyenminhnghia2009@gmail.com
http://www.mediafire.com/?jxd9g63vjcvsekg

kết quả chạy:
http://www.youtube.com/watch?v=unpaN966abo

mail:08153006@st.hcmuaf.edu.vn
hanhcd 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à 08:23 AM.


Đượ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