intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

KINH NGHIỆM LÀM ROBOCON

Chia sẻ: Nguyen Tan Vinh | Ngày: | Loại File: PDF | Số trang:25

378
lượt xem
143
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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...

Chủ đề:
Lưu

Nội dung Text: KINH NGHIỆM LÀM ROBOCON

  1. 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
  2. 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ả
  3. 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
  4. 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ỉ: http://www.ttvnol.com/dtvy425748.ttvn 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)
  5. 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) 00 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 .
  6. 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: http://picvietnam.com/ http://www.diendandientu.com/diendandientu/mvnforum/listthreads?forum=15 http://www.dientuvietnam.net/viewforum.php?f=41 Đây là một vài địa chỉ để các bạn tham khảo 2) Làm mạch in, vẽ orcad: http://picvietnam.com/showthread.php?t=54 http://www.diendandientu.com/diendandientu/mvnforum/listthreads?forum=11 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.
  7. 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.
  8. 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!!!
  9. 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 '
  10. 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)
  11. 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
  12. 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.
  13. 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)
  14. -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...
  15. 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.
  16. 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.
  17. Giải thuật : · MAIN :
  18. · 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.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2