Giải bài tập Chuyên đề Tin học 10 Bài 10: Điều khiển robot nhận biết vật cản
Khởi động trang 44 chuyên đề học tập Tin học 10: Nếu trên đường đi robot gặp vật cản thì sẽ như thế nào? Làm thế nào để robot nhận ra vật cản và làm gì để tránh vật cản đó?
Trả lời:
Robot sẽ tự động phát hiện và tránh được vật cản khi di chuyển, robot có thể: dừng lại hoặc đổi hướng di chuyển tùy thuộc vào chương trình lập trình điều khiển của con người.
1. Cảm biến siêu âm
Hoạt động 1 trang 44 chuyên đề học tập Tin học 10: Tìm hiểu cách điều khiển cảm biến siêu âm
Đọc, thảo luận về nguyên tắc hoạt động và lệnh lập trình cảm biến siêu âm.
Trả lời:
Nguyên tắc hoạt động của cảm biến siêu âm:
Mỗi cảm biến siêu âm chỉ có tác dụng trong một khoảng cách nhất định. Gọi khoảng cách này là Max. Khi vật cản ở xa, vượt qua giới hạn Max, có thể coi hàm nhận tín hiệu cảm biến sẽ trả về giá trị Max. Cảm biến siêu âm dựa trên nguyên lý phát sóng và phản xạ sóng siêu âm.
Lệnh lập trình cảm biến siêu âm:
Câu lệnh lập trình cảm biến siêu âm luôn trả về giá trị là khoảng cách từ cảm biến siêu âm đến vật cản phía trước theo đơn vị centimet.
Để robot nhận được tín hiệu cảm biến siêu âm liên tục với thời gian thực chúng ta cần đưa lệnh điều khiển cảm biến siêu âm vào trong nhóm lệnh thứ hai, tức là nhóm lệnh lặp vô hạn trong chương trình.
Sơ đồ chung của việc xử lí thông tin cảm biến siêu âm của robot:
forever
if <nhận tín hiệu cảm biến siêu âm>
Xử lí tín hiệu cảm biến siêu âm
Câu hỏi 1 trang 45 chuyên đề học tập Tin học 10: Nếu câu lệnh xử lý tín hiệu cảm biến siêu âm đặt trong vòng lặp không vô hạn thì sẽ như thế nào?
Trả lời:
Nếu câu lệnh xử lý tín hiệu cảm biến siêu âm đặt trong vòng lặp không vô hạn thì sẽ như sau: Robot giáo dục chỉ nhận được tín hiệu và thực hiện câu lệnh xử lý cảm biến siêu âm với số lần tương ứng với số lần của vòng lặp không vô hạn. Khi hết số vòng lặp đó robot sẽ không phát hiện và tránh được vật cản nữa.
Câu hỏi 2 trang 45 chuyên đề học tập Tin học 10: Vì sao không thể đặt lệnh kiểm tra nhận biết vật cản của cảm biến siêu âm ở khoảng cách quá ngắn, ví dụ dưới 1cm?
Trả lời:
Không thể đặt lệnh kiểm tra nhận biết vật cản của cảm biến siêu âm ở khoảng cách quá ngắn, ví dụ dưới 1cm vì như thế khoảng cách giữa cảm biến siêu âm và vật cản quá ngắn nên robot chưa kịp thực hiện câu lệnh xử lý mà đã chạm phải vật cản. Khoảng cách đo tối thiểu khuyến cáo là 10cm.
2. Robot nhận biết và tránh vật cản
Hoạt động 2 trang 45 chuyên đề học tập Tin học 10: Robot tránh vật cản như thế nào?
Đọc, thảo luận về nguyên tắc chung và cách lập trình điều khiển robot tránh vật cản.
Trả lời:
Các lệnh sử dụng cảm biến siêu âm để nhận biết và tránh vật cản của robot đều phải đặt trong nhóm lệnh lặp vô tận forever. Có một số trường hợp cụ thể của công việc điều khiển này:
(1) Điều khiển robot gặp vật cản thì dừng lại, có thể cho robot tiến sát đến vật cản mới dừng lại.
(2) Điều khiển robot gặp vật cản thì rẽ trái để tránh vật cản
Trong thực tế cần điều chỉnh chi tiết tham số về tốc độ, khoảng cách và thời gian để chương trình đạt được hiệu quả như ý muốn.
Khi sử dụng các biến nhớ trong lập trình cần chú ý đến các giá trị thay đổi của biến để chương trình lập trình được chính xác và tối ưu nhất.
Câu hỏi trang 48 chuyên đề học tập Tin học 10: Em hãy viết đoạn chương trình điều khiển robot chuyển động thẳng, nếu gặp vật cản thì quay lại đi theo chiều ngược lại.
Trả lời:
Đoạn chương trình có thể như sau:
Khởi động chương trình
forever
Đi thẳng (50)
if Tín hiệu siêu âm (cổng) < 15
Xoay trái (50)
Đợi 2.5 giây
Đi thẳng (50)
Đợi 1 giây
Luyện tập 1 trang 48 chuyên đề học tập Tin học 10: Vì sao luôn phải đặt lệnh nhận tín hiệu cảm biến siêu âm trong vòng lặp vô hạn?
Trả lời:
Vì như vậy robot sẽ luôn nhận được tín hiệu trả về từ cảm biến siêu âm để biết được phía trước đang có vật cản hay không và kịp thời xử lý nếu có vật cản.
Luyện tập 2 trang 48 chuyên đề học tập Tin học 10: Nếu có 2 cảm biến siêu âm kết nối với robot thì làm thế nào để phân biệt được tín hiệu của 2 cảm biến khi lập trình?
Trả lời:
Cần cắm mỗi cảm biến siêu âm ở một cổng khác nhau trên robot và chú ý phân biệt tên của hai cổng đó trong lúc lập trình. Ví dụ có 2 cảm biến siêu âm lần lượt cắm ở cổng 1 và cổng 3 trên robot thì câu lệnh lập trình tương ứng là:
Tín hiệu siêu âm (cổng 1) < 15
Tín hiệu siêu âm (cổng 3) < 15
Vận dụng 1 trang 48 chuyên đề học tập Tin học 10: Em hãy tìm hiểu xem các robot hút bụi sử dụng cảm biến siêu âm để cảm nhận vật cản như thế nào?
Trả lời:
Một robot hút bụi thường được tích hợp nhiều loại cảm biến như: Cảm biến hồng ngoại giúp robot không bị rơi khi ở gần cầu thang, cảm biến siêu âm giúp robot chống va đạp vào tường…
Cảm biến siêu âm vẫn hoạt động theo nguyên lý phát sóng siêu âm liên tục cho đến khi phát hiện vật cản trong khoảng đo đã được lập trình thì điều khiển robot hút bụi tránh vật cản.
Vận dụng 2 trang 48 chuyên đề học tập Tin học 10: Em hãy viết chương trình mở rộng yêu cầu của chương trình minh họa trong Mục 2, yêu cầu robot xử lý vật cản như sau:
– Nếu gặp phải vật cản thứ nhất sẽ rẽ trái.
– Nếu gặp phải vật cản thứ hai sẽ rẽ phải.
– Nếu gặp phải vật cản thứ ba thì xoay 180 độ đi theo chiều ngược lại.
– Nếu gặp phải các vật cản tiếp theo thì lặp lại yêu cầu như trên: robto rẽ trái, sau đó rẽ phải, sau đó xoay để đi ngược lại nếu gặp các vật cản tiếp theo.
Trả lời:
Chương trình có thể như sau:
Khởi động chương trình
dem_vat_can = 0
forever
Đi thẳng (50)
if Tín hiệu siêu âm (cổng)<10
if Dem_vat_can = 0
Xoay trái (50)
Đợi 0.5 giây
if Dem_vat_can = 1
Xoay phải (50)
Đợi 0.5 giây
if Dem_vat_can = 2
Xoay trái (100)
Đợi 1 giây
dem_vat_can = Dem_vat_can + 1
if Dem_vat_can = 3
dem_vat_can = 0
Xem thêm các bài giải bài tập Chuyên đề Tin học 10 Kết nối tri thức hay, chi tiết khác:
Bài 9: Điều khiển robot chuyển động
Bài 11: Dẫn đường tự động cho robot
Bài 12: Thực hành điều khiển robot trên sa bàn
Bài 13: Lập trình điều khiển một số phụ kiện