TopStudy

Đáp án và lời giải

Chuyên đề Tin học 10 Bài 10. Điều khiển robot nhận biết vật cản có đáp án

Về trang đề

Câu 1

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợ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.

Câu 2

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợ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:

Hình minh hoạ

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 3

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợ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 4

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợ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.

Câu 5

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợ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 6

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợ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

Câu 7

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợ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.

Câu 8

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợ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

Câu 9

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợ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.

Câu 10

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợ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