강의

챌린지

멘토링

로드맵

커뮤니티

Bản chất của hệ thống nhúng - Phần cơ bản (Embedded Systems Essentials)

Khóa học nhập môn giúp bạn trải nghiệm toàn bộ quy trình phát triển hệ thống nhúng, từ cài đặt Linux đến điều khiển robot, chỉ trong một lần Khi bắt đầu với hệ thống nhúng, bạn có thể cảm thấy bối rối vì không biết nên bắt đầu từ đâu. Khóa học này được xây dựng dành cho những người như vậy, giúp bạn trải nghiệm toàn bộ quy trình, từ việc bắt đầu với chỉ một chiếc PC cho đến khi điều khiển được robot. Khóa học bao gồm cài đặt và thiết lập cơ bản cho Linux, quá trình chuẩn bị Raspberry Pi, đọc sơ đồ mạch và datasheet, cũng như thực hành các giao tiếp cơ bản, tập trung vào việc hiểu cấu trúc tổng thể hơn là đi sâu vào từng chi tiết.

(4.8) 18 đánh giá

121 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

Raspberry Pi
Raspberry Pi
Embedded
Embedded
robot
robot
embedded-systems
embedded-systems
python3
python3
Raspberry Pi
Raspberry Pi
Embedded
Embedded
robot
robot
embedded-systems
embedded-systems
python3
python3

[Câu chuyện phát triển] Giá trị cảm biến có phải lúc nào cũng chính xác không?

Xin chào.
Tôi là bố Huchu của đội cứu hộ dành cho người mới học lập trình.
Lần này, dựa trên những nội dung đã học trong bài giảng, tôi muốn chia sẻ một vấn đề mà bạn nên thử suy ngẫm ít nhất một lần trong quá trình phát triển thực tế.

Trong bài giảng, chúng ta học cách sử dụng cảm biến IR để phát hiện chướng ngại vật và điều khiển động cơ dựa trên kết quả đó.
Tuy nhiên, trong môi trường thực tế, cảm biến không phải lúc nào cũng hoạt động như mong đợi.

  • Khi không có chướng ngại vật nhưng lại được phát hiện trong chốc lát hoặc

  • Mặc dù có chướng ngại vật nhưng đôi khi không phát hiện được%timeout

  • Tùy theo môi trường xung quanh, giá trị cảm biến có thể trở nên không ổn định.

Nếu lúc này điều khiển động cơ ngay khi đọc giá trị cảm biến thì điều gì sẽ xảy ra?
Robot có thể dừng lại không cần thiết hoặc động cơ có thể hoạt động lặp đi lặp lại.
Vậy có thể cải thiện như thế nào?


Một trong những cách đơn giản nhất là kiểm tra giá trị cảm biến nhiều lần thay vì chỉ kiểm tra một lần.
Ví dụ, thay vì dừng ngay khi phát hiện chướng ngại vật, hãy thiết lập để dừng khi phát hiện liên tiếp 3 lần.
Nếu biểu diễn bằng Python thì sẽ như sau.

count = count + 1 if detected else 0
if count >= 3: stop_motor()

※ Đây là ví dụ đơn giản nhằm giúp bạn dễ hiểu; detected là kết quả phát hiện chướng ngại vật, còn stop_motor() biểu thị hàm dừng động cơ.


Tất nhiên, trong quá trình triển khai thực tế, cũng cần xem xét chu kỳ đo của cảm biến và tốc độ phản hồi của robot.
Những cải tiến nhỏ như vậy chính là một phần quan trọng trong quá trình phát triển phần mềm nhúng thực tế.

Thử thách nhỏ trong tuần này!

Bạn có muốn thử chỉnh sửa một chút chức năng phát hiện chướng ngại vật đã triển khai trong bài giảng không?
Hãy so sánh cách động cơ phản ứng khi chướng ngại vật được phát hiện liên tiếp lần lượt 1, 3 và 5 lần.
Không chỉ dừng lại ở việc viết mã hoạt động được, hãy rèn luyện thói quen suy nghĩ về lý do mã hoạt động như vậy và cách để mã hoạt động ổn định hơn.

Xin cảm ơn.

Thân ái, Đội cứu hộ dành cho người mới học lập trình C++

Bình luận