Em hãy viết chương trình điều khiển robot dò đường đi vòng quanh sa bàn, nếu gặp vật cản thì bật...

Câu hỏi:

Em hãy viết chương trình điều khiển robot dò đường đi vòng quanh sa bàn, nếu gặp vật cản thì bật còi, bật đèn LED đỏ ở cổng 1 trong suốt thời gian có vật cản phía trước. Robot rẽ trái để tránh vật cản, khi vật cản đã ở xa thì bật đèn LED xanh lá cây ở cổng 2 trong 1 giây báo hiệu an toàn.

Câu trả lời:
Người trả lời: GV. Đỗ Thị Đạt
Để trả lời câu hỏi trên, chúng ta có thể viết chương trình bằng ngôn ngữ lập trình như Python như sau:

```python
from gpiozero import DistanceSensor, LED, Buzzer, Robot
from time import sleep

sensor_left = DistanceSensor(trigger=17, echo=18)
sensor_right = DistanceSensor(trigger=23, echo=24)
led_red = LED(4)
led_green = LED(27)
buzzer = Buzzer(22)
robot = Robot(left=(9, 10), right=(7, 8))

def check_obstacle():
if sensor_left.distance < 0.1 and sensor_right.distance < 0.1:
return "both"
elif sensor_left.distance < 0.1:
return "left"
elif sensor_right.distance < 0.1:
return "right"
else:
return "none"

while True:
obstacle = check_obstacle()

if obstacle == "none":
robot.forward()
elif obstacle == "left":
led_red.on()
buzzer.on()
robot.left()
sleep(0.7)
elif obstacle == "right":
led_red.on()
buzzer.on()
robot.right()
sleep(0.7)

while sensor_left.distance < 0.05 or sensor_right.distance < 0.05:
buzzer.on()
led_red.on()
robot.left()

led_red.off()
buzzer.off()
led_green.on()
sleep(1)
led_green.off()
```

Trong chương trình trên, chúng ta sử dụng các cảm biến siêu âm để phát hiện vật cản bên trái và bên phải của robot. Nếu phát hiện vật cản, robot sẽ rẽ trái để tránh vật cản và bật còi cũng như đèn LED đỏ. Sau khi vật cản đã được vượt qua, robot sẽ bật đèn LED xanh và chờ trong 1 giây trước khi tiếp tục di chuyển.

Bạn có thể điều chỉnh và mở rộng chương trình để điều khiển robot một cách linh hoạt và phức tạp hơn tùy theo yêu cầu cụ thể của bài toán.
Câu hỏi liên quan:
Bình luận (0)
Nhấn vào đây để đánh giá
Thông tin người gửi
0.40414 sec| 2185.289 kb