Trong bài này chúng tôi giới thiệu với các bạn giả thuật Robot dò đường. Điều
khiển Robot dò đường hiện nay đã có rất nhiều đội làm được và rất ổn định. Tuy nhiên
giả thuật của mỗi đội thường theo ý tưởng của riêng mình và theo kinh
nghiệm.Chúng tôi làm việc theo tinh thần “sáng tạo Robot”, vì vậy chúng tôi chỉ đưa
ra sơ đồ giải thuật để góp ý cùng các bạn xây dựng nên một chương trình hoàn hảo.
Với mỗi đội nên có một bản sắc cho riêng mình trên cơ sở một giả thuật chung ổn
định.
25 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2549 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Kinh nghiệm khi làm robocon, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
KINH NGHIỆM LÀM ROBOCON
BÀI VIẾT 1
Có lẽ về cơ bản thì ai cũng biết là để làm robot tham gia cuộc thi Robocon thì cũng
phải có sự phân công lao động một cách hợp lý trong 3 lĩnh vực: mạch điện tử, cơ khí,
lập trình. Mỗi lĩnh vực có những đặc thù riêng, cần những kiến thức rất khác nhau.
Trong khi sinh viên hiện nay được đào tạo theo các chuyên ngành, và đã học về điện
tử thì thường là không biết nhiều về cơ khí, học cơ khí thì lại không biết về lập trình.
Vậy yêu cầu đặt ra với mỗi đội nếu muốn giành chiến thắng đó là phải có được sự kết
hợp. Các thành viên trong đội nên là những người có am hiểu trong các lĩnh vực khác
nhau mà quan trọng nhất là cơ khí và điện tử, còn lập trình thì chỉ cần một người khá
về tin học là có thể học được trong một thời gian khoảng 2, 3 tháng. Đây là điều kiện
đầu tiên để có thể giành chiến thắng. Nếu không thì chỉ gọi là làm được thôi chứ
không thể làm tốt để vô địch. Tôi xin lấy ví dụ trong năm 2004. Ở ĐHBKHN ban đầu
có một phong trào rất mạnh, rất nhiều đội đang ký tham dự nhưng đa số lại là những
người cùng lớp trong 1 đội vì vậy một tất yếu là mỗi đội chỉ làm tốt được một phần cơ
khí hoặc mạch điện. Chỉ có đội BKHTSI ngay từ đầu được đánh giá là khả quan nhất
với sự góp mặt của Sơn-lập trình + mạch và Thanh - cơ khí. Hai người đều là những
người đã có rất nhiều kinh nghiệm từ trước. Vậy điều đầu tiên phải xem xét là vấn đề
lựa chọn thành viên.
Về lập trình:
Về lập trình thì không có nhiều phức tạp mà chỉ cần chọn ngôn ngữ cho phù hợp,
thường là Asembly và turbo C: Asembly thì lập trình gần với ngôn ngữ máy nên dung
lượng nhỏ hơn nhiều so với bộ nhớ của vi điều khiển 89c51.
Các bạn có thể lập trình thoải mái cũng chỉ đến 1 K bộ nhớ, trong khi bộ nhớ của vi
điều khiển 89c51 là 4K).
- Ngôn ngữ C thì là ngôn ngữ lập trình bậc cao hơn nên lập trình dễ hơn nh¬ng lại tốn
bộ nhớ hơn. Các bạn nên dùng chương trình Reads51 (download tại
www.rigelcorp.com). Chương trình này hỗ trợ cả Assembly và C, nó lại có khả năng
giả lập các cổng vào/ra của họ IC 89c51 , nến rất thuận tiện cho việc lập trình mà
không cần mạch điện. Nên dùng cảm biến đếm vạch riêng, cảm biến bám vạch riêng
để việc lập trình được rõ ràng và khó bị lẫn.
Về cơ khí:
Về cơ khí thì tốt nhất các bạn hãy học theo cách làm của các đội đi trước, xem cách
họ gắn động cơ vào xe, các trục quay... Nếu các bạn không có điều kiện xem trực tiếp
của các đội đi trước thì tôi xin có 1 số ý kiến thế này:
Khi bắt các thanh nhôm không nên dùng ke mà cưa 4 góc của thanh nhôm rồi bẻ ra
để bắt vào nhau. Không dùng vít mà dùng đinh tán. Để gắn chặt bánh vào động cơ
nên dùng vít chí (loại này có thể thuê các cửa hàng cơ khí làm hộ - dọc đường Đê La
Thành - Hà Nội).
- Gắn động cơ vào robot không nên bằng cách chỉ buộc động cơ vì khi tải nặng sẽ làm
nghiêng bánh dẫn đến xe di chuyển không chuẩn. Ở đây có một vật liệu rất đặc biệt
đó là các cục nhựa (mua Ở Hàng Bông hoặc chợ Trời - Hà Nội). Ta đem nhựa đi cưa
thành hình hộp và khoan lỗ để bắt vào khung xe, đồng thời khoan lỗ to để cho vòng
bi vào, xuyên trục bánh xe qua 2 bộ vòng bi rồi mới dùng vít chí để gắn vào trục động
cơ như vậy thì động cơ không hề phải chịu lực ấn nào mà chỉ có bánh xe tì lên 2 vòng
bi + khối nhựa.
- Nhựa ở trên ta còn có thể làm một bộ phận rất quan trọng đó là các lô cuốn. Ta đem
đi tiện thành hình trụ có vành ở ngoài giống như lõi chỉ và khoan lỗ ở trục vừa bằng
trục động cơ, dùng vít chí hoặc đơn giản là que sắt để gắn chặt vào trục động cơ,
buộc dây cố định vào lô cuốn. Như vậy khi động cơ quay ta sẽ cuốn dây để kéo vật
hay làm chuyển động các bộ phận.
Về mạch điện:
* Thiết kế mạch:
- Các mạnh cơ bản dùng cho robot các bạn có thể tìm trong sách hoặc trên mạng vì
vậy tôi không trình bày kỹ mà tôi chỉ khuyên hãy chia ra thành 3 module riêng là:
+ Mạch của vi điều khiển.
+ Mạch của sensor (cảm biến nhận biết vạch trắng)
+ Mạch của động cơ.
Có một hiện tượng rất hay gặp đó là khi xe chạy được một lúc thì vi điều khiển bị
treo. Lý do là có các xung mạnh đánh ngược về nguồn nuôi của vi điều khiển làm cho
nguồn nuôi không còn ổn định ở 5V, dẫn đến bị treo. Cách xử lý triệt để hiện tượng
này có nhiều bước:
+ Trước hết cứ giữ nguyên mạch của bạn và bổ sung thêm một hệ thống các tụ (chỉ
cần tụ loại 1 03 là đủ), các tụ này bạn đặt chặn ở trước tất cả các nguồn nuôi, song
song với các công tắc hành trình, đầu ra của mạch sensor, đầu vào của công tắc
hành trình... nói chung là ở bất kỳ điểm nào thường xuyên xảy ra những thay đổi đột
biến về mức điện áp.
+ Thứ nữa là nên dùng mạch động cơ theo kiểu cầu H, sử dụng Transistor trường,
tuyệt đối tránh dùng các Rơ le trong mạch.
+ Sử dụng bộ cách ly, thiết kế mạch làm sao để phần mạch lực (nguồn nuôi động cơ,
Transistor đóng mở động cơ, các trở liên quan) và phần mạch điều khiển (các trở, các
bộ đảo, bộ logic... linh kiện nối trực tiếp với vi điều khiển ) phải tách biệt thành 2 khu,
chỉ nối với nhau qua bộ cách ly.
Để đảm bảo không có hiện tượng có 2 Transistor thẳng hàng cùng mở dẫn đến nối tắt
mạch thì phải sử dụng IC logic (ví dụ 74HCOO: thực ra là 4 NAND bạn tìm cách tổ hợp
để trong 4 đầu ra của nó có 2 cặp luôn không cùng một mức logic).
Trong mạch vi điều khiển chú ý là phải để dây dẫn từ thạch anh đến chân của vi điều
khiển là ngắn nhất. Tức là xếp thạch anh càng gần chân 1 9,20 của vi điều khiển thì
càng tốt.
- Độ rộng dây của phần điều khiển nên để nhỏ (khoảng 20 đối với đơn vị inchs) vì
chạy trên nó toàn là các tín hiệu, còn phần mạch lực phải để rộng (khoảng 70-90
inchs) vì nó chịu dòng lớn.
- Sau cùng của phần thiết kế là một vấn đề nhỏ nhưng không kém phần quan trọng
đó là nên chia toàn bộ mạch của ta ra thành các module riêng hay thiết kế cho tất cả
vào một bo mạch.
+ Nếu các bạn không tự làm mạch in đượcc thì nên chia thành các module riêng vì sẽ
thuận lợi trong việc đi đặt mạch in, và với mỗi con robot ta lại cần số lượng các
module khác nhau (ví dụ mỗi robot thường là 1 bo vi điều khiển, 1 bo sensor, nhưng
có con chỉ cần 3 bo động cơ trong khi con phức tạp cần tới 6 - 7 bo động cơ). Tuy vậy,
nhược điểm là giữa các bo ta phải nối bằng dây và giắc cắm nên có khả năng phát
sinh nhiễu và lẫn lộn các dây.
+ Nếu các bạn có thể tự làm mạch in thì nên gộp chung vào một bo sẽ khắc phục
đ¬ược nhiễu và nhiều dây cắm. Nhưng sẽ có khó khăn là việc đi dây sẽ rất khó, mà
nhiều khi buộc phải câu dây hoặc dùng loại mạch in 2 lớp.
Làm mạch in:
Nếu ai mới bắt đầu làm robot thì thường tập trung vào việc dùng bo cắm để thử mạch
rồi khi thấy tốt rồi sẽ mang đi thuê thợ làm mạch in. Tuy nhiên, các bạn sẽ thấy sự
bất tiện của nó, không chủ động, chờ lâu, vì đắt nên ngại thay đổi thường phải đặt
nhiều thì mới àm... và cả sự khó chịu khi gặp phải ông thợ nào khó tính. Tôi khuyên
các bạn nên
tìm hiểu ngay cách tự làm mạch in vì nó khắc phục được tất cả các nhược điểm trên
mà lại rẻ hơn rất nhiều. Qua tham khảo nhiều cách làm thì tôi xin giới thiệu một cách
mà tôi thấy là dễ, rẻ và tiện lợi nhất chỉ 5.OOOĐ cho 1 dm2:
- Bước 1: Thiết kế bằng Protel, Orcad ta sẽ có được kích thước của các chân linh kiện
sau đó đem in (cách này nếu không có máy in ở nhà thì khó vì ít cửa hàng in nào có
Protel và Orcad). Cách khác cho người chưa thạo dùng Protel, Orcad thì tìm cách xuất
sang rle Autocad, Corel Draw để chỉnh sửa đường di dây trực quan như mình đang vẽ
sau đó cũng đem in. Nếu là cũng không thạo cả 2 chương trình trên thì dùng cách
chụp ảnh màn hình rồi dùng Paint để chỉnh sửa vì chủ yếu là ta cân khoảng cách các
chân linh kiện. Hai cách sau thì việc in dễ hơn vì nó là những định dạng file quen
thuộc.
- Bước 2: Việc in ra thì vẫn dùng máy in bình th¬ường như¬ng vấn đề đặc biệt quan
trọng là dùng giấy loại gì.
Quan tham khảo cách làm của nhiều nơi, tôi đã làm theo và thấy rằng cách rẻ nhất là
dùng giấy thủ công cao cấp Hồng Hà ( loại 2000 - 2500đ được 1 chục tờ A4). Ta sẽ in
lên mặt có mầu. Kết hợp với việc dùng Paint hay Word, Autocad ta có thể sắp xếp
nhiều bản vẽ vào một trang in để tận dụng tối đa một lần in.
Bước 3: Mua Fíp đồng về, đặt áp mặt có mầu vào mặt đồng rồi dùng bàn là ủi 4 cạnh
trước rồi ủi vào giữa đến khi thấy mực in thấm ra sau thì được (có một số người cũng
ủi như vậy nhưng không thấy mực in thấm ra sau mà vẫn được và cũng không cần
thiết phải để bàn là ở chế độ nóng nhất).
Bước 4: Cho tấm đồng vừa ủi xong vào nước lã, dùng bàn chải hay giẻ lau để làm
sạch phần không dính mực in.
- Bước 5: Cho tấm đồng vào dung dịch ăn mòn. Có thể dùng dung dịch Fecl3 Còn tôi
dùng dung dịch với tỉ lệ sau:
HCL 35% = 1 phần - H2O2 = 1 phần - H2O = 5 phần (chú ý khi pha sẽ có khói bốc lên
mùi khó chịu và dùng kẹp để thao tác vì có axít). Chỉ sau vài phút là được.
Bước 6: Dùng giấy giáp loại 1000 hoặc giẻ lau để đánh hết mực in, ta sẽ có được kết
quả.
Bước 7: Cũng nên chú ý đến vấn đề tẩm, phủ cho mạch in được bền đẹp:
+ Thứ nhất: Mua một lọ sơn bóng Ai 0 giá 14.000Đ xịt lên bề mặt sau khi khoan và
đánh giấy ráp. Sau đó dùng Aceton lau ở những lỗ hàn. Ai0 có độ bóng cao, không
dẫn điện, chịu đ¬ợc nhiệt độ khoảng 180 - 2000C. Đảm bảo mạch rất đẹp.
+ Thứ hai: Mua 1 chai Aceton (16.000Đ/1) sau đó chonhựa thông vào, chú ý chỉ lấy
khoảng 5cc cho 1000G nhựa thông bạn sẽ có một dung dịch dạng keo có thể bảo vệ
mạch rất tốt hơn nữa khi hàn chì sẽ không bị loang, mạch sẽ rất đẹp. Để tìm hiểu chi
tiết hơn các bạn có thể lên mạng tham khảo tại địa chỉ:
Khoan lỗ:
Đương nhiên là không nên dùng các loại khoan to mà tìm mua miền Bắc không có,
chỉ trong Nam) hoặc tự chế bằng cách mua mô tơ 10 nghìn ở chợ rồi gắn mũi khoan 1
ly vào (Hình kèm theo).
(Bài này của tác giả Quang Hưng trên TCTDHNN)
CÁCH BỐ TRÍ SENSOR
1. Dùng 6 sensor, hoặc 8 sensor
4 con lắp ở phía trên dùng bám vạch
2 con lắp dưới đít để đếm ngã tư và quay (2 bánh)
0 0
0 0
0
2. Sensor line thi 4 hay 6 hay 8 chi giai quyet duoc do lech
nhieu hon chu khong tang duoc toc do hoac độ mịn khi dò,
khoảng cách tối thiểu giữa các sensor là 1,8 cm vì vậy tôi đưa
thêm một cách bố trí nữa:
7 sensor line và
2 sensor đếm và dừng ở trước bánh phát động khoảng 5cm
7sensor line bố trí thành 2 hàng 3 trước và 4 sau , trên một hàng
các sensor cách nhau 2 cm, và 2 hàng cách nhau 3 cm .
BÀI VIẾT 2
1.Tìm hiểu việc lập trình cho vi điều khiển (thông dụng nhất hiện nay là AT89***).Có
thể lập trình bằng Assembly hoặc C
2.Tìm hiểu cách làm mạch in (là nhiệt hoặc in lưới) để có thể test mạch. Cũng có thể
dùng panel chân cắm để test,khi mạch đã chạy ngon có thể đem đi đặt
3.Tìm hiểu mạch cầu H (H-bridge) dùng MOSFET để điều khiển động cơ 1 chiều.Chú ý
đến hiện tượng nhiễu trong mạch
4.Tìm hiểu về sensor hồng ngoại (gồm 1 con phát và một con thu) để dò đường.
5.Tìm hiểu về các kết cấu cơ khí để thiết kế các hệ thống truyền động,các chi tiết...
6.Tuy nhiên điều quan trọng nhất là bạn phải có tâm huyết và tiền bạc để đầu tư cho
nó !
__________________
1) Vi điều khiển, loại nào cũng như nhau, tham khảo tại:
Đây là một vài địa chỉ để các bạn tham khảo
2) Làm mạch in, vẽ orcad:
3) Mạch cầu H:
Mạch này dùng điều khiển động cơ 1 chiều. Khi cả A, B đều ở mức cao thì Q1
và Q2 dẫn bão hòa do cực B của Q4 và Q6 được nối đất. Q3, Q5 khóa, Q4, Q6 dẫn.
Điện áp ở 2 cực động cơ bằng nhau nên động cơ đứng yên. Tương tự, khi A, B đều ở
mức thấp thì động cơ cũng dừng.
Khi A ở mức cao, B ở mức thấp, Q4, Q5 dẫn, động cơ quay.
Khi A ở mức thấp, B ở mức cao, Q3, Q6 dẫn, động cơ quay theo chiều ngược
lại.
Các diot bảo vệ các Transistor khởi quá áp khi đảo chiều động cơ đột ngột.
Tuy nhiên, tôi nêu ra vấn đề chủ yếu của thi robocon là gì, khong phải theo cách bạn
viết thế này. Những cái cơ bản có rồi, đó là lý thuyết, vấn đề thực tế là gì?
1) Lựa chọn động cơ?
Xe cỡ nào, khối lượng, kích thước, làm sao ước lượng động cơ có đủ sức không? Làm
một cái xe bốn bánh đi, làm một cái trục, chừa chỗ đặt động cơ, bỏ các cục nặng lên
khung xe, đem ra mua động cơ, thì thử tại chỗ luôn. Gắn động cơ vào, xiết lại, cắm
điện chạy thử, bỏ thêm vật nặng cho giống với dự tính của mình... Xem nó chạy là
biết liền
2) Chống nhiễu sensor?
Chuyện nhỏ, cả trăm người làm rồi
3) Xây dựng chiến thuật
Ý tưởng cơ bản, phải bắt đầu từ hai chữ fairplay... Đừng đem cái khôn vặt của mình đi
đấu với người ta. Càng có tư tưởng fairplay, càng dễ chiến thắng. FXR đã thằng bằng
cách chơi rất fairplay (ngay từ trong tư tưởng). Họ làm ra con cản con cản đường, chứ
không cố tình cản con robot chính của đối phương.
Bạo dạn, sáng tạo.. dám nghĩ dám làm... đừng quá ham chiến thắng, hãy luôn nhớ
rằng, lý do bạn đến với cuộc thi là để học hỏi, đừng bao giờ rời bỏ lý do này.
4) Học hỏi
Đừng bao giờ nghe ai về ý tưởng và chiến thuật hay bất cứ thứ gì trong cuộc thi, bởi
vì 99,5% trong số họ đều đã thất bại.
Chỉ có 1 chiến thắng trong tổng số khoảng 200 đội thi.
Không trao đổi bất kỳ một ý tưởng nào là một điều ngu ngốc, nhưng nói quá nhiều thì
dại dột. Hãy trao đổi những kỹ thuật cơ bản nh3 ... : Mấy năm trước dùng cầu H để
điều khiển động cơ là thông dụng, Nhưng năm nay thấy dùng 1 Tran + 1 Role là
thông dụng ( đơn giản là rẻ tiền hơn và ít hỏng hơn ). Cầu H trong Robocon có vẻ lỗi
thời , chỉ còn ít đội dùng.
Năm nay những kỹ thuật điện tử chung về Robocon gần như phổ cập, hầu hết các đội
đều thực hiện được , đó là một điều tiến bộ vượt bậc tuy năm nay không có đội nào
thể hiện kỹ thuật điện tử nổi bật như FXR, hay PoL năm ngoái nhưng nhìn chung mức
nền nâng lên đáng kể.
Không biết năm sau sẽ phát triển đến đâu. Hy vọng năm sau sẽ thấy được những kỹ
thuật cao hơn, đẹp mắt hơn.
trời !
Kinh nghiệm năm vừa rồi tui khuyên các bác về mạch
công suất:
1. Điều khiển động cơ nào thì không biết chứ đã là động cơ chính(2 động cơ di
chuyễn) thì không bao giờ dùng rơle rất đơn giản vì chúng ta phải sử dụng pwm mà
làm sao mà dùng rơle để băm xung được,
2. Các động cơ khác nên dùng rơle để điều khiển cho đơn giản và chắc ăn nhưng
nhớ nên mắc thêm tụ chống tia lửa điện-->gây nhiễu đó
3. Khôgn nên dùng các ic điều khiển chiều động cơ vì dòng nhỏ tốn kém nữa
4. Dùng mạch cầu H đi mà , dùng mấy con mosfet cho nó chắc bảo đảm hơi bị ok
đó mà rẻ nữa chứ(tui nói rẻ là những con mua lại đó nha mấy con này còn tốt hơn
mấy con mới không tin làm thử xem).hôm trước tui cho robot no chạy đâm đầu vào
từng để đọ với mạch công suất hi' chẳng hề gì mát rựi
4. Một bí kíp không biết có ai biết không là để chống nhiếu do các động cơ gây ra
thì ta chỉ cần gắng thêm mỗi động cơ một con ferit thế là xong
5. Nói túm lại đừng cho rằng cuộc thi robocon là chốn để thể hiện công nghệ cái
nào đơn giản chạy ổn ta làm thế thì nó không hư lặc vặt và dễ sữa .điển hình các bác
có thấy đội nào điều khiển con bằng tay bằng hồng ngoại không.không phải không
làm được nhưng nó không ổn định như dây và có thể bị nhiễu. dây cũng tốt chứ sao.
Cuối cùng chúc các bác thành công!!!
GÓC KỸ THUẬT CỦA SVBK HN
Bài 1 : HƯỚNG DẪN SỬ DỤNG P89V51RD2 CỦA
PHILIPS
Trong 3 năm qua Philips tài trợ một số lượng đáng kể MCU cho
các đội thi Robocon phía Nam thông qua Bộ môn Điều khiển Tự động,
Khoa Điện - Điện tử, Trường Đại học Bách Khoa Tp.HCM. Đây là MCU
Philips có tính ổn định cao và có nhiều tính năng phù hợp với cuộc thi
Robocon. Để giúp đỡ các bạn lần đầu làm quen với MCU P89V51RD2 và
sử dụng hiệu quả những tính năng cho việc điều khiển Robot.Chúng tôi
sẽ có các bài viết về quy trình thiết kế một Robot tự động sử dụng MCU
P89V51RD2. Rất mong sự góp ý của các bạn.
• Mạch nạp:
Mạch nạp dùng MAX232 truyền dữ liệu theo kiểu nối tiếp, có thể
nạp trực tiếp chương trình từ máy tính xuống MCU thông qua cổng
COM.
Để sử dụng IC được lâu và mạch điều khiển thiết kế gọn, chúng
ta nên làm mạch nạp ở ngoài.Chúng tôi gửi kèm các file Datasheets, Flash
Magic,chương trình dịch. Sơ đồ mạch mạch nạp của MCU P89V51RD2 như
sau
'
Hình minh họa
• Chương trình nạp:
Dùng Flash Magic (phiên bản tháng 10 năm 2004)
Bài 2: KỸ THUẬT ĐIỀU XUNG PWM
MCU P89V51RD2 Có 5 kênh điều xung (PWM) từ P1.3 - P1.7. Sử dụng rất đơn
giản và linh hoạt cho việc điều xung. Nếu mạch công suất được thiết kế dạng mạch
cầu H thì ta điều khiển được 2 động cơ. Tuy nhiên ta có thể điều xung được cho 5
động cơ nếu mạch công suất được thiết kế bao gồm 1 FET và 1 Rơle.Trong bài này
chúng tôi lấy 1 ví dụ là chương trình điều khiển vận tốc động cơ tăng dần và giảm
dần . Các điều kiện được khai báo ở đầu chương trình là bắt buộc, nên đọc trước
Datasheets để hiểu rõ hơn. Chúc các bạn thành công.
Ví dụ :
$mod51fx ;include : Định nghĩa các biến thanh ghi
(CCAP0H,CCAP1H,...)
;================ DEFINE BIT =================
;-------- MOTOR
MOTOR1 DATA CCAP0H ; P1.3
MOTOR2 DATA CCAP1H ; P1.4
MOTOR3 DATA CCAP2H ; P1.5
MOTOR4 DATA CCAP3H ; P1.6
MOTOR5 DATA CCAP4H ; P1.7
;-------- START
BIT_START BIT P2.0 ; Nút nhấn start
;-------- GIÁ TRỊ ĐIỀU XUNG
PWM_COUNT BIT 50H ; 0 - 255
;=================== MAIN ====================
ORG 0000H
MAIN
; Cho phép điều xung 5 kênh P1.3 - P1.7
MOV CMOD,#0 ;Chế độ 6 chu kì xung nhịp = 1/2 chu kì máy
SETB CR ;Cho phép PCA (programing counter array) hoạt
động
MOV CCAPM0,#01000010B ; P1.3 PCA hoạt động ở chế độ PWM 8
bits
MOV CCAPM1,#01000010B ; P1.4
MOV CCAPM2,#01000010B ; P1.5
MOV CCAPM3,#01000010B ; P1.6
MOV CCAPM4,#01000010B ; P1.7
; * Chương trình điều khiển vận tốc động cơ
; từ 0 - max và từ max - 0 trên kênh P1.3
; * Vận tốc động cơ từ 0 - max ứng với
; PWM_COUNT từ 0 - 255 và ngược lại
MOV PWM_COUNT,#0 ; Động cơ dừng
JB BIT_START,$ ; Cho phép động cơ chạy
RUN_UP: ; 0 – max
INC PWM_COUNT
MOV MOTOR1,PWM_COUNT
LCALL DELAY200MS
MOV A, PWM_COUNT
CJNE A,#255,RUN_UP
RUN_DOWN: ; max - 0
DEC PWM_COUNT
MOV MOTOR1,PWM_COUNT
LCALL DELAY200MS
MOV A, PWM_COUNT
CJNE A,#0,RUN_DOWN
JMP RUN_UP
SJMP $
;-------- DELAY 200MS
DELAY200MS:
MOV R2,#2
LOOP200_1:
MOV R0,#200
LOOP200_2:
MOV R1,#250
DJNZ R1,$
DJNZ R0, LOOP200_2
DJNZ R2, LOOP200_1
RET
;--------
END
Mạch điện :
Chúng tôi thay động cơ bằng led để minh hoạ. Các bạn có thể quan sat thấy led
tuần tự sáng dần và tối dần sau khi nhấn nút start.
Bài 3: CẢM BIẾN DÒ ĐƯỜNG:
1.CẢM BIẾN DÒ ĐƯỜNG:
a)Các loại cảm biến thường dùng:
-led hồng ngoại:
-quang trở:
-cảm biến công nghiệp:
Để giảm kinh phí khi làm Robot và thể hiện đúng tinh thần "sáng tạo Robot", theo
kinh nghiệm của các đội FXR, Basic bot, BKIT, POL ... thì với mạch cảm biến thông
thường vẫn có độ nhạy tốt và ổn định cao.Trong vấn đề chống nhiễu ta nên dùng
phần mềm và che chắn tốt.
b)mạch cảm biến:
Nguồn cho led phát nên dùng ổn áp riêng với VXL.Vì động cơ sử dụng ở Robot tự
động công suất nhỏ nên VXL có thể dùng chung nguồn với động cơ.Tuy nhiên ta nên
sử dụng diode ở trước mạch ổn áp.FXR và Basic Bot trước đây dùng chung nguồn và
hoạt động ổn định.
2.MỘT SỐ CÁCH BỐ TRÍ CẢM BIẾN:
-Bố trí 2 led (BKIT_2004):(dùng thêm led đếm vạch ngang)
-Bố trí 4 led:
-Bố trí 5 led(Basic Bot_2004):
-Bố trí 6 led(FXR_2004):
-Bố trí 8 led (RLB_2005):
Việc sử dụng hai hay nhiều led tuỳ thuộc vào từng đội nhằm thuận tiện trong vấn
đề lập trình dò đường .Trong phương án bố trí led theo 1 hàng ngang thì vạch trắng
ngang được xác định khi tất cả các cảm biến đều tích cực (hoặc để an toàn và chống
nhiễu thì nên cho phép sai số 1 cảm biến, ví dụ 5/6 cảm biến tích cực thì xem Robot
đang ở vạch trắng ngang).
Bài tiếp theo chúng tôi giới thiệu giải thuật dò đường 6 led đã được dùng trong
cuộc thi Robocon 2005...
Bài 4: KỸ THUẬT DÒ ĐƯỜNG
Trong bài này chúng tôi giới thiệu với các bạn giả thuật Robot dò đường. Điều
khiển Robot dò đường hiện nay đã có rất nhiều đội làm được và rất ổn định. Tuy nhiên
giả thuật của mỗi đội thường theo ý tưởng của riêng mình và theo kinh
nghiệm.Chúng tôi làm việc theo tinh thần “sáng tạo Robot”, vì vậy chúng tôi chỉ đưa
ra sơ đồ giải thuật để góp ý cùng các bạn xây dựng nên một chương trình hoàn hảo.
Với mỗi đội nên có một bản sắc cho riêng mình trên cơ sở một giả thuật chung ổn
định.
Giả thuật Robot dò đường bằng 6 led.
Sơ đồ bố trí :
Ta chia 6 cảm biến thành 13 vùng:
Chú ý: ledn cảm biến n tích cực.
/ledn cảm biến n không tích cực.
+ Vùng trung tâm : led3+ led4
+Vùng trái 1 : /led2 + led3 + /led4
+Vùng trái 2 : led2 + led3
+Vùng trái 3 : /led1 + led2 +/led3
+Vùng trái 4 : led1 + led2
+Vùng trái 5 : led1 + /led2
+Vùng trái 6 :bit nhớ trái + /led1
+Vùng phải 1 : /led3 + led4 + /led5
+Vùng phải 2 : led4 + led5
+Vùng phải 3 : /led4 + led5 +/led6
+Vùng phải 4 : led5 + led6
+Vùng phải 5 : /led5 + led6
+Vùng phải 6 :bit nhớ phải + /led6
Bit nhớ = 1 khi tất cả cảm biến lệch ra khỏi đường line theo hướng trái (bit nhớ
phải) và theo hướng phải (bit nhớ trái). Ví dụ Bit nhớ phải được set trong trường hợp
/5led + led6 và được clr khi led4 +led5
Ứng với mỗi vùng ta xây dựng 1 hàm vận tốc tương ứng để có thể điều khiển
vận tốc linh hoạt. Phần điều xung chúng tôi đã đề cập ở Bài 2.
Ví dụ :
Vùng trung tâm : MOV V_bánhphải,#255
MOV V_bánhtrái,#255
Vùng phải 1: MOV V_bánhphải,#200
MOV V_bánhtrái,#255
Chú ý:
· Chương trình dò đường đặt trong Timer 1.
· Chương trình quét led và Timer out đặt trong Timer 2.
· Các hoạt động của Robot xây dựng thành các chương trình con.
Ví dụ : cua phải, cua trái, gắp quà ...
· 1 vạch trắng ngang ứng với trường hợp có 4 (hoặc 5 hoặc 6 led tích cực tuỳ
thuộc vào mức độ chống nhiễu mà người lập trình tuỳ chọn).
· Chương trình được xây dựng sao cho ở chương trình MAIN ta chỉ cần gọi chạy
thẳng bao nhiêu vạch ứng với tốc độ bao nhiêu, cua trái, phải, gắp quà,…nhằm đơn
giản cho người sử dụng và linh hoạt khi thay đổi chương trình.
Giải thuật :
· MAIN :
· Chương trình dò đường :
Timer1 sẽ quét liên tục sau mỗi 1ms (tuỳ vào giá trị đặt), sẽ dừng khi bit TR1= 0
lúc Robot hoàn thành xong quãng đường cần đi.
· Cua 90:
Khi chương trình dò đường chỉ sử dụng cảm biến thành công. Chúng ta có thể kết
hợp với các thiết bị như encoder, la bàn … để tăng tính ổn đinh, chính xác và linh
hoạt cho Robot.
Chúc các bạn thành công !
Bài 5: GAMEPAD CHO ROBOT ĐIỀU KHIỂN BẰNG TAY
Gamepad cho Robot điều khiển bằng tay chia làm 2 loại : điều khiển từ xa
bằng hồng ngoại và điều khiển qua dây cáp. Nếu dùng các mạch thu phát hồng ngoại
thông thường thì tính ổn định khi thi đấu không cao (!), tốt nhất nên dùng Vi xử lí
(VXL) để thu phát theo tần số riêng của mình (như POL chẳng hạn). Điều khiển qua
dây cáp mang tính ổn định rất cao, ở đây chúng tôi đề cập tới cách sử dụng gamepad
qua dây cáp.
1.Sử dụng gamepad playstation của SONY.
Kết nối trực tiếp vào Vi xử lí. Rất gọn khi thiết kế phần cứng, tuy nhiên
chúng ta nên kèm theo nút Reset VXL trên gamepad để tăng tính ổn định. Đây là
phương pháp sử dụng của đội FXR.
Chúng tôi gửi kèm file hướng dẫn sử dụng gamepad playstation .
2.Cải tạo phần mạch của 1 gamepad bất kì:
Trong mạch của các gamepad bất kì, các nút nhấn được thiết kế như là các
công tắc hành trình (tức là có 1 điểm chung nối mass).
+ Cắt bỏ đường mạch in nối các nút nhấn với phần điều khiển của
gamepad.
+ Sử dụng các nút nhấn như là các công tắc hành trình độc lập.
a. Truyền nối tiếp :
Theo cách xử lí này chúng ta chỉ sử dụng cáp 4 sợi : +5v, mass, TXD, RXD.
Cách xử lí này vẫn chưa ổn định tuyệt đối nhưng sử dụng ít Port VXL. Nên kèm
theo nút Reset VXL trên gamepad để tăng tính ổn định. Đây là phương pháp Basic Bot
sử dụng năm 2003 và 2004.
b. Truyền song song :
Thực chất ta nối tất cả các nút nhấn xuống thẳng mạch điều khiển, khi đó các
nút
nhấn đóng vai trò như là những công tắc hành trình. Phương pháp này rất ổn định,
tuy nhiên nhược điểm là rất tốn Port VXL (mỗi nút nhấn ứng với 1 Port).
Cách khắc phục nhược điểm trên :
Sử dụng mạch dồn kênh 16 sang 1.
`Phương pháp này giảm bớt được đáng kể số lượng Port VXL, tính ổn định cao.
”MUA GÌ Ở ĐÂU”
FOR ROBOCONER
Ở TP. HCM
Đầu tiên CLB xin giới thiệu với các bạn một vài địa điểm trong thành phố giúp các bạn mua đồ
làm robot :
Chợ Tạ Uyên ( chợ Phạm Hữu Chí ) ( đường Tạ Uyên - gần BV Chợ Rẫy ) : Chuyên bán bánh xe ,
bánh răng , lò xo , dây đai truyền , nhựa tấm nhựa thỏi dùng để tiện ra các chi tiết theo thiết
kế , ...
Chợ Nhật Tảo : Chuyên bán linh kiện điện tử , điện trở đốt , nam châm , dây điện , đồ điện ... ;
ngoài ra phía bên kia chợ ( đường Vĩnh Viễn mặt tiền và trong hẻm , cùng một số khu vực gần
chợ ) còn chuyên bán động cơ DC , AC , động cơ bước , công tắc hành trình , hợp số trợ động
....
Công ty Tương Lai ( 578 đường 3/2 - gần chợ Nhât Tảo - đt : 9.125.627) chuyên cung cấp linh
kiện điện tử .
Chợ sắt : (gần chợ Tạ Uyên) là nơi bạn có thể tìm thấy bánh răng đủ loại , sắt tấm , sắt thỏi , có
thể đặt gia công chi tiết nếu cần .
Công ty TM E-design ( đt : 8506738 - 0903639768 ) Chuyên cung cấp mạch nạp chương trình
từ máy tính vào IC ( để lập trình robot tự động ).
Chợ vật liệu xây dựng ( đường Trịnh Hoài Đức - P.13 - Q.5) chuyên bán nguyên liệu như đồng ,
nhôm , sắt , ốc vít các loại , bánh xe , ròng rọc ...
Cửa hàng sắt xây dựng Tuấn Cường ( 81 Bến Chương Dương - Q.1 - chợ Dân Sinh -đt : 8.210664
) chuyên bán sắt đục lỗ sẵn , thuận tiện trong việc kết cấu khung vững chắc cho robo ( đương
nhiên động cơ của bạn phải có công suất lớn một chút ! ) giá cũng mềm : 10.000 đ --> 13.000đ
mổi mét .
Cửa hàng Thuận Phát ( 67 Lý Nam Đế ( gần đối diện BV.Chợ Rẫy ) - đt 0903.812938 ) chuyên
bán Nhôm thỏi , nhôm tấm , nhựa thỏi , nhựa tấm ... để các bạn gia công chi tiết .
Gần đó có cơ sở Sỹ Điền ( đường Nguyễn Chí Thanh - đt : 9070374 - gần đối diện BV.Chợ Rẫy )
chuyên tiện các chi tiết có dạng tròn xoay từ thỏi nguyên liệu , tán bánh răng , bánh xe vào
trục động cơ , ... ( giá hơi đắt , bạn nên tận dụng các chi tiết có sẵn cần thiết lắm mới đặt gia
công )
Cửa hàng nhôm 234 ( đường Lý Thường Kiệt - P8 - Q.Tân Bình gần ĐH.BK ) và các cửa hàng
nhôm trên đường này chuyên bán nhôm thanh đủ hình dạng , nhôm tấm các kích thước , ... gia
công khung nhôm .
Cửa hàng Acquy 25 Trần Hưng Đạo - Q1 ( đt : 8222869 ) chuên bán các loại acquy khô , ac quy
nước , từ 6V - 12V - 24V - ... , bộ nạp acquy .
Công ty sách thiết bị trường học ( 223 Nguyễn Tri Phương - P9-Q5- đt: 8554645 ) Chuyên bán
các dụng cụ thí nghiệm vật lý , hóa học , sinh học ... ( giá cả hơi mắc vì là công ty độc quyền
của nhà nước , nhưng các bạn có thể tham khảo nhiều ý tưởng của dụng cụ thí nghiệm )
Các bạn tìm được những địa điểm tốt nhớ gởi bài chia sẽ với mọi người nhé !!!
Chợ HỒ THỊ KỶ (góc đường Hùng Vương và đường Hồ Thị Kỷ):
Có bán các loại acquy cũ giá tương đối mềm, theo tôi biết thì khoảng từ 10.000 -> 20.000 đ/ 1
acquy. Tuy cũ nhưng chất lượng cũng tương đối tốt và điện thế khá ổn định.
Nếu các bạn không tìm được thì có thể mail cho tôi: tanthi01vlhn@yahoo.com, tui sẽ hướng
dẫn chi tiết cho các bạn.
Hiện nay tôi đang có 2 loại chip 16F877A và 18F458 cùng mạch nạp.Nếu bạn nào muốn mua
thì liên hệ với tôi Giá đảm bảo rẻ hơn Nhật Tảo nhiều lần .Thậm chí còn rẻ hơn cả PICvietnam
nữa
QUOTE
1. Chip:
18F458: 100.000đ
18F4331: 95.000đ
16F877A: 75.000đ
16F876A: 65.000đ
16F88: 40.000đ
- Có một số loại chip khác nhưng chúng tôi không còn nhiều hàng (số lượng <10 con), bạn nào
có nhu cầu mua lẻ thì liên lạc, chúng tôi sẽ kiểm tra và báo lại ngay. Xin hãy xem bảng giá ở
địa chỉ này:
2. Mạch nạp:
Mạch nạp Falleaf PIC1 + CD phần mềm: 50.000đ (không phải 35.000đ)
Mạch nạp Falleaf PIC3 + CD phần mềm: 350.000đ
Thông tin từ PICVietNam
Các bạn có thể tham khảo mọi thông tin về mặt hàng ở đây.Bạn cũng có thể hưởng mọi quyền
lợi như khi mua hàng ở đây .Nhưng nếu mua từ tôi giá sẽ rẻ hơn từ 10K-40K (tuỳ số lượng )
Liên hệ qua YIM và email : vivine_wind.
Các file đính kèm theo tài liệu này:
- Kinh nghiệm khi làm robocon.pdf