Nội Dung Chính
Trang 28
Học xong bài này em sẽ:
- Biết cách thiết lập và kiểm tra chương trình điều khiển robot.
- Biết cấu trúc chung của một chương trình điều khiển robot.
Khởi động
Em đã biết muốn điều khiển robot thì cần viết chương trình. Một chương trình điều khiển robot có đặc điểm gì? Cấu trúc một chương trình như thế nào? Bài học này sẽ giúp các em thiết lập được chương trình để điều khiển robot.
1. Thiết lập chương trình điều khiển robot
Hoạt động 1 Cách thiết lập chương trình điều khiển robot Đọc, quan sát và tìm hiểu các bước đầu tiên thiết lập chương trình điều khiển robot. |
a) Ngôn ngữ lập trình
Nói chung, các phần mềm lập trình điều khiển robot đều cho phép sử dụng một số ngôn ngữ lập trình bậc cao như C++, Python,... hoặc lập trình kéo thả để viết các chương trình điều khiển. Hình 6.1 là giao diện phần mềm GaraBlock lập trình điều khiển cho bảng mạch điều khiển G-Robot.
Hình 6.1. Giao diện phần mềm GaraBlock
Trang 29
b) Thiết lập chương trình đầu tiên
Chúng ta sẽ thiết lập một chương trình đơn giản bằng cách kéo thả vào màn hình để tạo hai khối lệnh như Hình 6.2. Khối thứ nhất bao gồm các lệnh được thực hiện bốn lần phía sau khối lệnh Khởi động chương trình. Khối thứ hai nằm trong vòng lặp vô tận.
Khối thứ nhất (Khởi động chương trinh) gồm lệnh lặp bốn lần hành động đi thẳng với tốc độ 100 trong một giây.
Khối thứ hai (Lặp lại vô tận) gồm lệnh lặp vô tận hành động đi thẳng với tốc độ 100 trong một giây và bật còi trong một giây sau đó tắt cõi.
Hình 6.2. Chương trình đầu tiên
Câu hỏi
1. Trong chương trình ở Hình 6.2, nếu bỏ 5 câu lệnh nằm trong vòng lặp vô tận (trong khối lệnh thứ hai) ra ngoài vòng lặp vô tận thì chương trinh sẽ chạy như thế nào?
2. Vì sao 5 câu lệnh trong khối lệnh thứ hai ở Hình 6.2 cần phải đưa vào trong vòng lặp vô tận?
2. Cấu trúc chương trình điều khiển robot
Hoạt động 2 Tìm hiểu cấu trúc chương trình điều khiển robot Đọc, quan sát và tìm hiểu cấu trúc chung của các chương trình điều khiển robot. |
Trước hết cần phân biệt sự khác nhau giữa việc thực hiện chương trình trên máy tính và chương trình điều khiển robot. Với chương trình thực hiện trên máy tính, toàn bộ chương trình và dữ liệu thường được đưa vào bộ nhớ và thực hiện lần lượt các lệnh, chương trình chủ động yêu cầu khi cần thông tin từ thiết bị vào (bàn phím, chuột,...). Với robot, chương trình điều khiển phải thường xuyên chờ để tiếp nhận thông tin vào (tín hiệu thu được từ các cảm biến, nút bấm,...) và xử lí để điều khiển các cơ cấu chấp hành (động cơ, tay nâng...) và phụ kiện tiếp nhận điều khiển (cõi, màn hình,...) gần như tức thời, cho nên cấu trúc và thực hiện chương trình khác chương trình thực hiện trên máy tính.
Các chương trình điều khiển robot thường có hai khối lệnh như Hình 6.3.
Khối lệnh này thực hiện khi khởi động chương trình và chạy một lần.
Khối lệnh này thực hiện lập vô tận dùng để xử lí tín hiệu nhận từ bên ngoài.
Hình 6.3. Cấu trúc chương trình điều khiển robot
Trang 29
– Khối lệnh thứ nhất sẽ được thực hiện một lần ngay sau khi nạp chương trình vào bộ nhớ của robot hoặc mỗi khi bật công tắc nguồn của bộ nhớ.
– Khối lệnh nằm trong vòng lặp vô tận thường là những lệnh thu nhận thông tin vào từ cảm biến hoặc phụ kiện (như bẫm nút hoặc nhận sóng hồng ngoại từ vì điều khiển). Các lệnh này sẽ xử lí thông tin nhận được và chuyển điều khiển đến các cơ cấu chấp hành và các phụ kiện tiếp nhận điều khiển theo yêu cầu của chương trình.
Ví dụ 1. Robot tự hành, khi thấy vật cản phía trước thì dừng lại. Như vậy khi bắt đầu chương trình chúng ta thiết lập lệnh cho robot chuyển động. Trong vòng lặp vô tận cần luôn thực hiện kiểm tra nếu thấy vật cản phía trước thì dừng lại.
Ví dụ 2. Robot dò đường, tự động tim đường đi trên sa bàn. Khi bắt đầu chương trình cần thiết lập lệnh cho robot chuyển động. Trong vòng lặp vô tận cần luôn kiểm tra dò đường, nếu thấy lệch khỏi đường đi thì điều chỉnh robot quay trái hoặc quay phải để đảm bảo đi đúng theo đường đã vạch ra trên sa bàn.
Câu hỏi
Nếu thay vòng lặp vô tận trong sơ đồ ở Hình 6.3 bằng vòng lặp hữu hạn thì chương trình còn đúng không?
3. Lập trình điều khiển robot
Hoạt động 3 Tìm hiểu mô hình mã giả chương trình điều khiển robot Đọc, quan sát và tìm hiểu cách viết chương trình điều khiển robot qua hệ thống mã già (pseudocode). |
Để có thể mô tả chung chương trình điều khiển cho các loại robot khác nhau chúng ta sẽ không sử dụng một ngôn ngữ lập trình cụ thể mà thiết lập một hệ thống mã giả đơn giản và dễ hiểu. Bảng 6.1 mô tả các lệnh mã giả cơ bản. Các lệnh điều khiển các cơ cấu cảm biến và chấp hành sẽ được học trong các bài tiếp theo.
Bảng 6.1. Mô tả các lệnh mã giả cơ bản
Lệnh | Mô tả bằng mã giá | Ý nghĩa |
Khởi động chương trình | Khởi động chương trình <các lệnh> | <các lệnh> được thực hiện khi chạy chương trình. |
Lệnh gán | <biến nhớ> = <giá trị> | Định nghĩa và gán giá trị cho biến nhớ. |
Lệnh rẽ nhánh, dạng thiếu | if <điều kiện> <các lệnh> | Nếu <điều kiện> đúng thì thực hiện <các lệnh>. |
Lệnh rẽ nhánh, dạng đầy đủ | if <điều kiện> <nhóm lệnh 1> else <nhóm lệnh 2> | Nếu <điều kiện> đúng thì thực hiện <nhóm lệnh 1>, trái lại thực hiện <nhóm lệnh 2>. |
Lệnh lặp vô tận forever | forever <các lệnh> | <nhóm lệnh> được thực hiện lặp vô tận. |
Trang 31
Lệnh | Mô tả bằng mã giá | Ý nghĩa |
Lệnh lặp hữu hạn repeat | repeat <số lần lặp> <nhóm lệnh> | <các lệnh> được thực hiện khi chạy chương trình. |
Lệnh lặp hữu hạn for | for <biến> = <giá trị đầu> to <giá trị cuối> | Cho biến nhớ <biến> lần lượt gán từ giá trị từ <giá trị đầu> cho đến <giá trị cuối>, mỗi lần gần sẽ thực hiện <nhóm lệnh>. |
Lệnh lặp có điều kiện dừng, kiểm tra trước while | while <điều kiện> <nhóm lệnh> | Kiểm tra liên tục nếu <điều kiện> đúng thì thực hiện <các lệnh>. |
Dừng toàn bộ chương trình | stop | Dừng toàn bộ chương trình. |
Lưu ý: Một số bảng mạch không hỗ trợ lệnh dừng toàn bộ stop.
Ví dụ chương trình điều khiển bảng mạch G-Robot ở Hình 6.2 có thể mô tả lại bằng mã giả như sau:
Khởi động chương trình
repeat 4
Đi thẳng (100)
Đợi 1 giây
forever
Đi thẳng (100)
Đợi 1 giây
Bật còi
Đợi 1 giây
Tắt còi
Câu hỏi
1. Vì sao nhóm lệnh lặp vô tận phải đặt ở cuối chương trình?
2. Em hãy viết chương trình bằng mã giả để điều khiển G-Robot luôn đi thẳng với tốc độ 100 trong 1 giây và xoay trái với tốc độ 100 trong 0.5 giây.
LUYỆN TẬP
1. Khi robot hoạt động theo chương trình đã nạp chưa đúng như mong muốn thì cần phải làm gi?
2. Robot nhận các tín hiệu từ bên ngoài như thế nào? Em hãy trình bày cơ chế nhận các thông tin đó.
VẬN DỤNG
Em hãy viết chương trình bằng mã giả điều khiển G-Robot thực hiện:
- Khi bắt đầu chương trình G-Robot sẽ bật còi trong 1 giây rồi tắt còi. Quá trình bật tắt còi lặp lại 3 lần.
- Sau đó, G-Robot luôn đi thẳng với tốc độ 100 trong 1 giây và đi lùi với tốc độ 100 trong 2 giây.
Bình Luận
Để Lại Bình Luận Của Bạn