Robocon - Giới thiệu tổng quan.

Bài từ dự án mở SysNet Wiki.

Jump to: navigation, search

Mục lục

[Sửa] Giới thiệu

Một con robo gồm 3 phần: cơ khí, mạch điện tử và chương trình điều khiển.

Phần cơ khí thay đổi tuỳ theo đề thi mỗi năm . Phần mạch điện tử cần 3 phần chính là sensor ( hay là các cảm biến như cảm biến ánh sáng ), phần mạch công suất điều khiển động cơ và phần mạch vi điều khiển. Sensor có các đội làm camera xử lý ảnh. Công nghệ dò đường bằng cảm biến màu tuy cũ nhưng vẫn có đất dụng võ. Phần chương trình điều khiển cốt lõi vẫn là những hàm nhận tín hiệu từ sensor hoặc người dùng và ra quyết định cho robo.

Có lẽ chúng ta quan tâm tới phần mạch điện và phần lập trình. Tuy nhiên, phần cơ khí chính là mặt tiền của đội, khi đem lên sân thi đấu chúng ta chỉ thấy phần cơ khí. Và sẽ cho thấy đội nào mạnh qua phần này. Trước khi nói qua mỗi phần, chúng ta đề cập tới một số kỹ thuật trong robo.

Robo di chuyển như thế nào?

Về robo điều khiển bằng tay có lẽ dễ hiểu, người chơi dùng gamepad để điều khiển, như chơi game vậy đó. Về phần robo tự động, những vạch màu trắng trên sân thi đấu đó chính là các vạch dẫn hướng cho robo. Chương trình điều khiển dựa vào những vạch này để giúp robo chạy theo chiến thuật của đội.

Sao robo có thể quẹo trái, quẹo phải, quay 180 ?

Các robo đều không có bánh lái riêng như xe đạp hay xe ôtô. Mà ở đây sẽ dùng vận tốc khác nhau của hai bánh sau để quẹo trái hoặc phải. Nếu như muốn quẹo trái, bánh trái chạy lui và bánh phải chạy tới. Như vậy là robo có thể chuyển hướng mà không cần phải có bánh lái. Rất đơn giản và dễ hiểu.

[Sửa] Phần cơ khí

Phần cơ khí có lẽ không tiện đề cập ở đây. Bạn phải tự tay làm rồi mới thấy được. Nếu bạn hoàn thành phần cơ khí tốt, bạn sẽ tiết kiệm rất nhiều thời gian khi test robo trên sân và không gặp một số cảnh dở khóc dở cười. Ví dụ, bạn sẽ thấy robo đang chạy ngon lành, tự nhiên một bánh văng ra ngoài và chỉ còn chạy 3 bánh. Rất nguy hiểm nếu các bạn dùng dây trong một số cơ cấu, khi gần tới ngày thi bạn sẽ không biết nó đứt lúc nào.

Phần cơ khí các bạn không thể nghiên cứu trước, gần tới ngày thi bạn hãy bắt tay vô làm và sau đó là gắn mạch điện và chương trình lên. Bạn nên chuẩn bị trước 2 phần này, chúng có thể nghiên cứu trước, vì vậy hãy chuẩn bị kỹ lưỡng.

[Sửa] Phần mạch điện

Phần mạch điện gồm nhiều kiến thức về trong các môn như linh kiện điện tử (không được học trong chương trình), mạch công suất (không được học), kỹ thuật điện tử, hệ thống số và vi điều khiển.

Mạch công suất chúng ta quan tâm là mạch điều khiển động cơ. Và phần khó nhất là mạch công suất cho robo bằng tay, vì chúng chịu tải lớn. Nếu làm không tốt, các bạn sẽ rơi vào cảnh thay các con FET liên tục, và tệ hơn là mạch sẽ cháy. Các bạn có thể tham khảo các mạch của những đội năm trước như mạch của đội FXR, BKPro, hoặc những mạch của khoa ta tự nghiên cứu (ở CLB phần cứng ). Chúng đã được nghiên cứu và thử nghiệm, nên chúng khá tốt.

Bạn chịu khó nghiên cứu các linh kiện trong mạch công suất. Bạn sẽ hiểu rõ nguyên lý hoạt động của nó và sẽ dễ dàng hơn trong quá trình sửa mạch, tìm ra những hỏng hóc. Hãy hiểu rõ mạch của mình để có thể sửa chúng khi gần ngày thi. Và luôn luôn có một mạch dự phòng để phòng trường hợp bạn không thể khác phục được.

Khi thiết kế mạch, chúng ta chú ý là phải tách 2 phần riêng biệt: phần mạch công suất và mạch điều khiển. Có nghĩa là hai phần này dùng hai nguồn khác nhau, nếu không chúng ta sẽ gặp hiện tượng auto reset. Vậy câu hỏi được đặt ra là: nếu tách riêng ta thì sao có thể điều khiển được? Câu trả lời là con vi điều khiển sẽ sử dụng con photo transitor để điều khiển. Nguyên lý con này như con transitor bình thường nhưng dùng ánh sáng để kích hoạt, chúng không dùng dòng điện. Vì vậy mà ta có thể tách riêng 2 phần đó ra và tránh hiện tượng nhiễu giữa hai phần.

Ngoài ra còn các mạch sensor, các swich gắn trên robo để nhận biết, các phím chiến thuật. Chúng khá là đơn giản.

[Sửa] Phần vi điều khiển

Nói về vi điều khiển robo, bạn có thể sử dụng nhiều loại của các hãng khác nhau như 8051, PIC, AVR, H8… Ở đây cần phân biệt rõ vi điều khiển và vi xử lý. Vi xử lý chỉ là một khối xử lý mà không có ô nhớ, ROM hay màn hình. Nhưng ngược lại vi điều khiển là máy tính thu nhỏ ,chỉ thiếu một cái màn hình. Nó có đủ RAM, ROM trên đó, và bạn cũng có khả năng mở rộng nó, nếu có nhu cầu. Nhưng thông thường ít ai sử dụng nó và mở rộng ô nhớ, cách hay nhất là thay thế bằng một con có mạnh hơn (mạnh hơn ở đây nghĩa là nhiều RAM, ROM hơn ).

Bạn có thể sử dụng bất cứ loại vi điều khiển (VDK) nào trong robo của mình. Tất nhiên là có chút ít thay đổi trong mạch VDK và giao tiếp với mạch công suất. Nhìn chung vẫn là các tín hiệu logic 0, 1 và được khuếch đại để điều khiển. Ở đây chú ý một điều: bạn tham gia thi với mong muốn tìm hiểu cặn kẽ về vi điều khiển hay là chỉ viết chương trình cho robo chạy? Nếu muốn học hỏi về vi điều khiển, bạn nên nghiên cứu 8051 và viết bằng Assembly. Có như vậy bạn mới hiểu kỹ càng về phần cứng và nắm tổ chức bên trong con 8051. Đây chính là nền tảng cho việc thiết kế mạch và sửa chương trình. Sau này, có bạn có thể chuyển qua các con vi điều khiển khác một cách dễ dàng và nhanh chóng vì bạn nắm rõ phần cứng và cách thức hoạt động bên trong của một con rồi, các con khác tương tự.

Khi viết bằng hợp ngữ, chúng ta là người tổ chức RAM, ROM, quyết định đặt một biến ở đâu… Nói chung chúng ta là một trình biên dịch cấp cao đó. Và chúng ta phải đối mặt với viễn cảnh là hàng ngàn dòng mã code hợp ngữ, những lệnh chỉ mang tính gợi nhớ. Viết bằng ASM khó mà có thể quản lý chương trình tốt được khi so sánh với việc viết bằng C. Nếu như bên C, chúng ta có thể phát triển chương trình rất nhanh, thì ngược lại chúng ta phải cẩn thận và xem xét kỹ lưỡng trước khi phát triển một chức năng mới. Khi gọi hàm trong C, người viết chỉ cần một dòng, nhưng với bên hợp ngữ bạn cần 3, 4 dòng. Đổi lại là chương trình sẽ nhỏ gọn hơn. Bạn thấy sự lợi hại của mỗi bên rồi đó, tuy nhiên dùng Assembly giúp hiểu cặn kẽ những cái mình đang làm. Những con vi điều khiển cao hơn, chúng ta nên dùng C để viết vì tổ chức của nó khá phức tạp.

Các bạn có thể tham khảo sách “Lập trình với vi điều khiển 8051“ của Tống Văn On. Nó hơi khó đọc vì giống tài liệu datasheet. Nếu khá tiếng Anh, bạn sử dụng cuốn “The 8051 microcontroller and embeded systems“ (có thể tìm thấy tại thư viện trường). Quyển này viết dễ hiểu và nhiều ứng dụng hay như kết nói với LCD, mạch ROM ngoài,… Nó hướng dẫn viết bằng C và Assembly luôn.

Những năm trước những người thi sử dụng Atmel 89C51 để điều khiển hoặc PIC. Năm nay, việc dùng 89V của hãng Phillips đã phổ biến hơn, vì nó có chân điều xung (nói nôm na là chân chuyên dụng điều khiển động cơ). Ở khoa ta, các anh khoá 2003 đã thử sử dụng H8 (nó có tới 100 chân), phải nói nó khá mạnh. Các bạn có thể lên phòng Renesas để biết thêm. Có một anh khoá 2002 đã sử dụng PIC, và ảnh để lại khá nhiều công trình về PIC.

Ngoài ra, muốn trực quan và thử nhanh chóng chương trình của mình, bạn nên sử dụng một số phần mềm giả lập, nhớ là có chức năng giả lập phần vi điều khiển. Mấy anh năm trước truyền đạt lại, dùng Proteus là khá tốt. Phần mềm này giả lập được mạch logic, bạn có thể sử dụng nó để kiểm tra mạch khi làm đồ án hệ thống số. Hãy chịu khó một tí vì nó hơi khó sử dụng, chỉ là do các phím có chức năng hơi lạ.

Học vi điều khiển là phần thú vị. Bạn có nhiều mạch ứng dụng dùng nó. Khi học xong bạn có vô khối cái để làm, nó sẽ giúp bạn giảm công sức đáng kể khi trong mạch chỉ có cổng logic. Biết đâu bạn có thể biến ngôi nhà của mình thành một ngôi nhà thông minh, bạn có thể ngồi một chỗ và điều khiển qua cái máy tính.