📋 Tổng quan khóa học (5 buổi × 120 phút = 10 giờ)
🏆 Dự thi AIJAM 2026
Khóa học này hướng học sinh chế tạo một mô hình thuyền/tàu tự động điều khiển từ xa (ROV — Remotely Operated Vehicle) để tham gia cuộc thi AIJAM 2026. Mẫu thân thuyền tham khảo theo thiết kế in 3D "ROV Part Design" (Printables.com): thân thuôn dòng chảy, có khối dằn (ballast) để cân bằng, có hệ thống quản lý dây tether — học sinh có thể in 3D hoặc tự chế bằng vật liệu tái chế (chai nhựa, ống nhựa, xốp).
🌊 Nền tảng: Lực nổi & Thiết kế thân thuyền
Lực đẩy Archimedes, vì sao vật nổi/vật chìm, hình dáng thân thuyền khí động học dưới nước, ROV là gì, làm quen board điều khiển.
Sản phẩm: Thân thuyền hoàn chỉnh, nổi ổn định trên mặt nước.
⚙️ Dự án: Lắp động cơ đẩy (Thruster)
Động cơ DC, chân vịt, mạch cầu H điều khiển động cơ, tín hiệu PWM để điều chỉnh tốc độ.
Sản phẩm: Thuyền tự di chuyển tiến/lùi bằng động cơ.
🛡️ Dự án: Chống thấm nước & Cân bằng dằn
Kỹ thuật chống thấm mạch điện, khối dằn ballast, trọng tâm con thuyền, điều khiển 2 động cơ độc lập để rẽ hướng.
Sản phẩm: Thuyền chống nước, tự rẽ trái/phải khi thử nghiệm.
📡 Dự án: Điều khiển từ xa & Cảm biến tránh vật cản
Điều khiển qua dây tether hoặc sóng không dây, cảm biến siêu âm phát hiện vật cản, xử lý tín hiệu điều khiển.
Sản phẩm: Thuyền điều khiển từ xa, tự tránh chướng ngại vật.
🏁 Hoàn thiện & Thử nghiệm dự thi AIJAM 2026
Quy trình kiểm thử an toàn, tiêu chí chấm thi, ghép toàn bộ hệ thống, thuyết trình sản phẩm, định hướng mở rộng (camera, cảm biến chất lượng nước, GPS).
Sản phẩm: Mô hình thuyền tự động hoàn chỉnh sẵn sàng dự thi + báo cáo trình bày.
🗂️ Cấu trúc mỗi buổi (120 phút)
| Phần | Thời lượng | Nội dung |
|---|---|---|
| 1. Lý thuyết | 30 phút | Kiến thức mới, mô phỏng tương tác, ví dụ thực tế, câu hỏi thảo luận |
| 2. Lắp ráp / Chế tạo | 30 phút | Lắp ráp cơ khí, đấu nối mạch điện, xử lý lỗi thường gặp |
| 3. Lập trình | 40 phút | Hướng dẫn từng bước điều khiển động cơ/cảm biến + thực hành |
| 4. Tổng kết | 20 phút | Checklist dự án, quiz ôn tập, thử thách mở rộng |
🌊 Buổi 1: Lực nổi & Thiết kế thân thuyền
Vì sao thuyền nổi? & ROV là gì
⏱ 30 phút⚓ Lực đẩy Archimedes
Khi một vật được nhúng vào nước, nước sẽ đẩy ngược vật đó lên với một lực gọi là lực đẩy Ác-si-mét (Archimedes), có độ lớn đúng bằng trọng lượng phần nước bị vật chiếm chỗ. Nếu lực đẩy này lớn hơn hoặc bằng trọng lượng vật thì vật nổi; nếu nhỏ hơn thì vật chìm.
🧊 Vì sao tàu thép nặng vẫn nổi?
Một khối thép đặc sẽ chìm ngay, nhưng vỏ tàu thép rỗng bên trong (chứa không khí) lại chiếm một thể tích nước rất lớn so với trọng lượng của nó — nên lực đẩy nước đủ lớn để nâng cả con tàu. Đây chính là lý do thân thuyền của chúng ta cần rỗng và kín nước, không phải là một khối đặc.
🚢 ROV là gì?
ROV (Remotely Operated Vehicle) — phương tiện điều khiển từ xa — là loại robot hoạt động dưới nước hoặc trên mặt nước, được người điều khiển từ xa qua dây (tether) hoặc sóng không dây, thường dùng để quan sát san hô, kiểm tra đáy biển, khảo sát môi trường nước mà con người khó tiếp cận trực tiếp.
🐬 Hình dáng khí động học dưới nước
Thân thuôn dài, đầu nhọn/tròn và đuôi thon nhỏ dần giúp nước "lướt" qua thân dễ dàng hơn, giảm lực cản (drag), giúp thuyền di chuyển nhanh hơn và tiết kiệm năng lượng động cơ hơn — giống hình dáng của cá heo hay tàu ngầm.
🧩 Các bộ phận chính của một ROV/thuyền tự động
🧠 Board điều khiển dùng trong khóa học
Chúng ta dùng board vi điều khiển (micro:bit hoặc ESP32/Arduino tuỳ điều kiện lớp học) làm "bộ não" của thuyền: nhận lệnh điều khiển, xử lý tín hiệu cảm biến, và ra lệnh cho động cơ quay. Board được lập trình bằng ngôn ngữ kéo-thả (block coding), rất trực quan và dễ học cho học sinh.
🕹 Câu hỏi thảo luận
Chế tạo thân thuyền
⏱ 30 phút🧰 Vật liệu gợi ý
🛠️ Các bước chế tạo thân thuyền
- Vẽ hoặc in 3D thân thuyền theo dáng thuôn dòng (tham khảo mẫu ROV Part Design), hoặc cắt gọt chai nhựa/xốp theo hình dáng tương tự.
- Tạo một khoang kín ở giữa thân để đặt board điều khiển, pin và dây điện — đây là phần bắt buộc phải chống thấm nước hoàn toàn.
- Khoét lỗ nhỏ ở đuôi thuyền để lắp trục động cơ và chân vịt (sẽ lắp ở Buổi 2).
- Gắn tạm khối dằn nhỏ (đá cuội, ốc vít bọc túi nilon) dưới đáy để thử độ cân bằng ban đầu.
🌊 Thử nghiệm nổi lần đầu
- Thả thân thuyền (chưa lắp điện) vào chậu nước hoặc xô lớn.
- Quan sát: thuyền có nổi thẳng đứng (không bị nghiêng/lật úp) không?
- Nếu bị nghiêng một bên: thêm một ít khối dằn ở phía đối diện.
- Nếu chìm quá sâu (ngập gần hết thân): cần thân rỗng hơn hoặc giảm bớt vật nặng bên trong.
🧯 Lỗi thường gặp
| Hiện tượng | Nguyên nhân | Cách khắc phục |
|---|---|---|
| Thuyền bị lật úp | Trọng tâm quá cao | Đặt khối dằn thấp xuống đáy thân |
| Thuyền chìm hẳn | Thân không đủ rỗng / bị nước lọt vào | Kiểm tra lại các mối nối, tăng thể tích rỗng |
| Thuyền nghiêng một bên | Phân bố khối lượng không đều | Cân chỉnh lại vị trí khối dằn hai bên |
Làm quen board điều khiển
⏱ 40 phút💻 Input & Output là gì?
Input (đầu vào) là tín hiệu board nhận được (nút bấm, cảm biến, tín hiệu điều khiển từ xa). Output (đầu ra) là hành động board thực hiện (bật LED, quay động cơ, phát âm thanh). Toàn bộ chương trình điều khiển thuyền tự động đều xoay quanh việc: nhận Input → xử lý → ra Output.
🚦 Bài tập đầu tiên: đèn báo hiệu
Trước khi lắp động cơ, ta lập trình một đèn LED trên board nhấp nháy liên tục để báo hiệu "thuyền đã bật nguồn" — dùng khối lệnh forever (lặp mãi mãi) kết hợp bật LED → chờ (pause) → tắt LED → chờ.
🔢 Biến (Variable) — bộ nhớ tạm của board
Biến là một "hộp chứa" giá trị có thể thay đổi trong lúc chương trình chạy, ví dụ biến tocDo lưu tốc độ hiện tại của động cơ. Ta sẽ dùng biến rất nhiều ở Buổi 2 khi điều khiển tốc độ động cơ bằng PWM.
Tổng kết Buổi 1
⏱ 20 phút✅ Checklist dự án
📝 Quiz ôn tập Buổi 1
1. Lực đẩy Ác-si-mét có phương chiều như thế nào?
2. Vật sẽ NỔI khi nào?
3. Vì sao tàu thép rất nặng vẫn nổi được trên mặt nước?
4. ROV là viết tắt của cụm từ nào?
5. Hình dáng thân thuyền nào giúp giảm lực cản nước tốt nhất?
6. Khối dằn (ballast) trong thiết kế ROV dùng để làm gì?
7. Trong lập trình kéo-thả, khối lệnh nào giúp một hành động lặp lại mãi mãi?
8. Vì sao KHÔNG nên lắp board điều khiển và pin vào thân thuyền trước khi thử nổi lần đầu?
9. ROV thường được dùng để làm gì trong thực tế?
10. Mẫu thiết kế thân thuyền tham khảo trong khóa học lấy ý tưởng từ đâu?
11. Thân thuyền cần có đặc điểm gì để nổi tốt?
12. Trọng tâm của thuyền càng thấp thì thuyền sẽ:
13. Đầu (mũi) thuyền nên thiết kế theo hình dáng nào để lướt nước tốt?
14. Vì sao chai nhựa tái chế phù hợp làm thân thuyền tự chế?
15. Khoang chứa board điều khiển và pin bên trong thân thuyền cần đặc điểm gì?
16. Bước đầu tiên khi chế tạo thân thuyền là gì?
17. Khi thử nổi lần đầu, nếu thuyền bị nghiêng về một bên thì nên làm gì?
18. Nếu thuyền chìm quá sâu (ngập gần hết thân) khi thử nổi, cần làm gì?
19. Lỗi "thuyền bị lật úp" khi thử nổi thường do nguyên nhân nào?
20. Board điều khiển (ESP32/micro:bit) đóng vai trò gì trong thuyền tự động?
21. Trong lập trình, "Input" (đầu vào) là gì?
22. Trong lập trình, "Output" (đầu ra) là gì?
23. Bài tập lập trình đầu tiên ở Buổi 1 là gì?
24. Khối lệnh nào dùng để board "chờ" một khoảng thời gian trước khi thực hiện bước tiếp theo?
25. Biến (variable) trong lập trình dùng để làm gì?
26. Vì sao mọi hành vi tự động của thuyền nên đặt bên trong khối lệnh forever?
27. Sản phẩm cần hoàn thành vào cuối Buổi 1 là gì?
28. Trước khi thử nổi thân thuyền, cần đảm bảo điều gì?
29. Ba loại vật liệu được gợi ý để chế tạo thân thuyền là gì?
30. Mục tiêu chính của khóa học "Chế tạo thuyền tự động ROV" là gì?
Bấm nộp sẽ mở 1 tab GitHub Issue đã điền sẵn điểm số của bạn — bấm "Submit new issue" để hoàn tất nộp bài.
⚙️ Buổi 2: Động cơ đẩy (Thruster) & Nguồn điện
Động cơ, chân vịt & mạch điều khiển
⏱ 30 phút⚙️ Động cơ DC là gì?
Động cơ DC (Direct Current — dòng điện một chiều) là loại động cơ điện phổ biến nhất trong các dự án robot: khi cấp điện, trục động cơ quay tròn liên tục. Gắn một chân vịt (propeller) vào trục sẽ đẩy nước ra phía sau, tạo lực đẩy ngược lại giúp thuyền tiến về phía trước — giống nguyên lý của cánh quạt máy bay hay quạt máy.
🌀 Chân vịt (propeller) hoạt động thế nào?
Các cánh chân vịt được vặn nghiêng một góc — khi quay, mỗi cánh "cắt" vào nước theo một góc chéo, đẩy khối nước về phía sau. Theo định luật III Newton (lực và phản lực), nước bị đẩy lùi sẽ tạo ra một phản lực đẩy chân vịt (và cả con thuyền) tiến về phía trước.
🔌 Mạch cầu H (H-bridge) — điều khiển chiều quay
Động cơ DC chỉ có 2 dây, muốn đảo chiều quay (tiến ↔ lùi) ta cần đảo chiều dòng điện qua động cơ. Mạch cầu H (ví dụ IC L298N) làm việc này: board điều khiển chỉ cần ra lệnh "tiến" hoặc "lùi", mạch cầu H sẽ tự đảo cực tính dòng điện cấp cho động cơ.
📶 PWM — điều chỉnh tốc độ động cơ
PWM (Pulse Width Modulation — điều chế độ rộng xung) là kỹ thuật bật/tắt dòng điện rất nhanh (hàng nghìn lần/giây) để "giả lập" một mức điện áp trung bình thấp hơn điện áp nguồn. Xung "bật" càng dài (tỷ lệ % càng cao) thì động cơ quay càng nhanh; xung "bật" càng ngắn thì động cơ quay càng chậm.
🔋 Nguồn điện cho thuyền
Động cơ tiêu thụ dòng điện lớn hơn nhiều so với LED hay cảm biến, nên cần dùng pin Li-Po (pin sạc) hoặc bộ pin AA đủ dòng, thường qua một mạch sạc/bảo vệ pin riêng (như TP4056) để an toàn, tránh sạc quá dòng hoặc xả cạn kiệt pin.
Lắp động cơ vào thân thuyền
⏱ 30 phút🛠️ Các bước lắp đặt
- Luồn trục động cơ qua lỗ đã khoét sẵn ở đuôi thuyền (Buổi 1), gắn chặt động cơ vào khung bên trong.
- Lắp chân vịt vào trục động cơ, đảm bảo chân vịt xoay tự do không bị cọ vào thân thuyền.
- Đấu 2 dây động cơ vào 2 chân đầu ra của mạch cầu H (không cần quan tâm cực + / − vì mạch cầu H tự xử lý chiều quay).
- Đấu mạch cầu H với board điều khiển theo đúng sơ đồ chân của mạch (chân IN1, IN2, ENA...).
- Đấu nguồn pin vào mạch cầu H, kiểm tra kỹ cực tính trước khi bật nguồn.
🔍 Kiểm tra trước khi thử nước
🧯 Lỗi thường gặp khi lắp động cơ
| Hiện tượng | Nguyên nhân | Cách khắc phục |
|---|---|---|
| Động cơ không quay | Dây lỏng hoặc pin yếu | Kiểm tra lại mối nối, đo lại điện áp pin |
| Động cơ chỉ quay 1 chiều dù đổi lệnh | Đấu sai chân IN1/IN2 trên mạch cầu H | Kiểm tra lại sơ đồ đấu nối theo tài liệu mạch cầu H |
| Chân vịt rung lắc mạnh | Chân vịt lắp lệch tâm hoặc cong vênh | Lắp lại thẳng tâm trục, thay chân vịt nếu cong |
Lập trình điều khiển động cơ
⏱ 40 phút▶️ Lệnh tiến / lùi cơ bản
Bắt đầu đơn giản: lập trình khối lệnh "quay động cơ chiều tiến, chờ 2 giây, dừng động cơ" khi bấm nút A trên board — tương tự lệnh "bật LED → chờ → tắt LED" đã học ở Buổi 1, chỉ thay LED bằng động cơ.
🔧 Điều khiển tốc độ bằng biến
Tạo một biến tocDo (giá trị 0-100), gán giá trị cho biến này rồi dùng khối lệnh "đặt tốc độ động cơ = tocDo" — đây chính là cách chương trình "nói" cho mạch cầu H biết cần tạo xung PWM với tỷ lệ bao nhiêu phần trăm.
🔁 Vòng lặp forever điều khiển liên tục
Đặt toàn bộ logic điều khiển động cơ bên trong khối forever: board sẽ liên tục kiểm tra "nút nào đang được bấm" và cập nhật tốc độ/chiều quay động cơ theo thời gian thực, thay vì chỉ chạy một lần rồi dừng.
🧪 Thử nghiệm tăng giảm tốc độ
- Lập trình: bấm nút A → tăng biến tocDo thêm 20 (tối đa 100).
- Lập trình: bấm nút B → giảm biến tocDo bớt 20 (tối thiểu 0).
- Hiển thị giá trị tocDo hiện tại lên màn hình LED của board để dễ theo dõi khi thử nghiệm.
Tổng kết Buổi 2
⏱ 20 phút✅ Checklist dự án
📝 Quiz ôn tập Buổi 2
1. Bộ phận nào tạo lực đẩy giúp thuyền di chuyển?
2. PWM là viết tắt của cụm từ nào?
3. Mạch cầu H (H-bridge) dùng để làm gì?
4. Tỷ lệ xung PWM càng cao thì động cơ sẽ:
5. Vì sao chân vịt quay lại đẩy được thuyền tiến lên?
6. Vì sao KHÔNG nên đấu ngược cực tính pin vào mạch cầu H?
7. Ở bước lắp động cơ, vì sao chưa nên thử thuyền dưới nước?
8. Biến tocDo trong chương trình dùng để lưu giá trị gì?
Bấm nộp sẽ mở 1 tab GitHub Issue đã điền sẵn điểm số của bạn — bấm "Submit new issue" để hoàn tất nộp bài.
🛡️ Buổi 3: Chống thấm nước & Cân bằng dằn
Chống thấm nước & trọng tâm
⏱ 30 phút💧 Vì sao phải chống thấm nước?
Board điều khiển, mạch cầu H và pin đều là linh kiện điện tử — nếu nước lọt vào có thể gây chập mạch, hỏng hóc vĩnh viễn hoặc thậm chí nguy hiểm với pin Li-Po. Toàn bộ khoang điện phải được bọc kín hoàn toàn trước khi thử nghiệm dưới nước.
🧴 Các vật liệu chống thấm phổ biến
⚖️ Trọng tâm & sự ổn định
Trọng tâm là điểm coi như toàn bộ khối lượng con thuyền tập trung tại đó. Trọng tâm càng thấp (gần đáy thuyền) thì thuyền càng khó bị lật; trọng tâm càng cao (gần đỉnh) thì thuyền càng dễ mất thăng bằng khi có sóng hoặc gió.
🪨 Cân chỉnh khối dằn (ballast)
Thêm hoặc bớt khối dằn ở hai bên và phía trước/sau thân thuyền để thuyền nổi đúng mực nước mong muốn (không quá cao khiến dễ lật, không quá thấp khiến nước tràn vào) và không bị nghiêng về bất kỳ hướng nào.
↔️ Điều khiển vi sai (differential steering)
Với 2 động cơ trái/phải độc lập, ta có thể điều khiển hướng đi mà không cần bánh lái riêng: nếu 2 động cơ quay cùng tốc độ, thuyền đi thẳng. Nếu động cơ bên phải quay nhanh hơn bên trái, thuyền sẽ rẽ trái (và ngược lại) — giống cách xe tăng hay xe lăn điện đổi hướng.
Bọc kín mạch & gắn khối dằn
⏱ 30 phút🛠️ Các bước chống thấm
- Bọc board điều khiển và pin vào túi nilon kín hoặc hộp nhựa nhỏ có nắp đậy chặt.
- Bọc từng mối nối dây điện bằng ống co nhiệt (dùng máy sấy tóc hơ nhẹ để ống co khít lại) hoặc băng keo điện quấn kỹ nhiều lớp.
- Trám keo silicon quanh mép nắp khoang điện và quanh lỗ xuyên trục động cơ ở đuôi thuyền.
- Để keo silicon khô hoàn toàn theo đúng thời gian khuyến nghị trên bao bì trước khi thử nước (thường 12-24 giờ).
🪨 Gắn khối dằn cố định
- Đặt các khối dằn (đá cuội bọc túi nilon, ốc vít, cát trong túi kín) vào đáy thân thuyền.
- Thử nổi trong chậu nước, quan sát mực nước ngập quanh thân thuyền.
- Thêm/bớt dằn và di chuyển vị trí đến khi thuyền nổi thẳng, không nghiêng.
- Cố định khối dằn bằng keo hoặc dây buộc để không bị xê dịch khi thuyền di chuyển.
🧪 Thử nghiệm chống thấm (quan trọng!)
Lập trình rẽ hướng
⏱ 40 phút🔧 2 biến tốc độ cho 2 động cơ
Tạo 2 biến tocDoTrai và tocDoPhai để điều khiển riêng từng động cơ. Khi cả hai bằng nhau, thuyền đi thẳng.
↩️ Lập trình rẽ trái / rẽ phải
Bấm nút trái → giảm tocDoTrai, giữ nguyên tocDoPhai (thuyền rẽ trái). Bấm nút phải → giảm tocDoPhai, giữ nguyên tocDoTrai (thuyền rẽ phải). Toàn bộ đặt trong khối forever để phản ứng liên tục theo thời gian thực.
Thuyền đang đi thẳng — hai động cơ cùng tốc độ.
🧮 Câu lệnh điều kiện if/else
Dùng if (nút trái được bấm) → giảm tocDoTrai; else if (nút phải được bấm) → giảm tocDoPhai; else → tocDoTrai = tocDoPhai = tocDo (đi thẳng bình thường). Đây chính là logic điều khiển hướng đi hoàn chỉnh cho thuyền.
Tổng kết Buổi 3
⏱ 20 phút✅ Checklist dự án
📝 Quiz ôn tập Buổi 3
1. Vì sao cần bọc kín board điều khiển và pin?
2. Trọng tâm càng thấp thì thuyền sẽ:
3. Khối dằn nên được đặt ở vị trí nào trên thân thuyền?
4. Điều khiển vi sai (differential steering) nghĩa là gì?
5. Nếu động cơ bên phải quay nhanh hơn bên trái, thuyền sẽ:
6. Trước khi thử thuyền hoàn chỉnh dưới nước, nên làm gì trước?
7. Vật liệu nào phù hợp để trám kín mép nắp khoang điện?
8. Trong chương trình, biến nào dùng để điều khiển riêng động cơ bên trái?
Bấm nộp sẽ mở 1 tab GitHub Issue đã điền sẵn điểm số của bạn — bấm "Submit new issue" để hoàn tất nộp bài.
📡 Buổi 4: Điều khiển từ xa & Cảm biến tránh vật cản
Điều khiển từ xa & cảm biến khoảng cách
⏱ 30 phút🔌 Điều khiển qua dây (tether)
Cách đơn giản và tin cậy nhất: nối một dây dài từ tay điều khiển trên bờ xuống board trên thuyền để truyền tín hiệu điều khiển trực tiếp. Đây cũng là cách các ROV khảo sát đáy biển thật sự dùng — "quản lý dây tether" chính là một phần quan trọng trong thiết kế ROV Part Design mà khóa học tham khảo.
📶 Điều khiển không dây
Nếu board có sẵn module radio/Bluetooth (như micro:bit có Radio tích hợp), ta có thể dùng 2 board: một board cầm tay làm tay điều khiển (gửi lệnh), một board đặt trên thuyền (nhận lệnh và điều khiển động cơ) — không cần dây, thuyền di chuyển tự do hơn.
| Kiểu điều khiển | Ưu điểm | Nhược điểm |
|---|---|---|
| Dây tether | Tín hiệu ổn định, không lo hết pin tay điều khiển ảnh hưởng thuyền | Dây có thể vướng, giới hạn khoảng cách |
| Không dây (radio/BLE) | Thuyền di chuyển tự do, không vướng dây | Có thể mất tín hiệu nếu quá xa hoặc nhiễu sóng |
📏 Cảm biến siêu âm (Ultrasonic) là gì?
Cảm biến siêu âm phát ra sóng âm tần số cao (con người không nghe được), đo thời gian sóng phản xạ lại từ vật cản để tính ra khoảng cách. Gắn cảm biến này ở mũi thuyền giúp thuyền "biết" phía trước có vật cản (bờ, đá, thuyền khác) hay không.
🚨 Ngưỡng cảnh báo & tự động tránh vật cản
Đặt một "ngưỡng khoảng cách an toàn" (ví dụ 20cm). Nếu cảm biến đo được khoảng cách nhỏ hơn ngưỡng này, chương trình sẽ tự động cho thuyền dừng lại hoặc rẽ hướng khác, bất kể người điều khiển đang ra lệnh gì — đây là một lớp an toàn tự động bổ sung cho điều khiển từ xa.
Lắp module điều khiển & cảm biến
⏱ 30 phút🛠️ Lắp dây tether (nếu dùng điều khiển có dây)
- Chọn dây điện mềm, đủ dài (dài hơn khoảng cách dự kiến điều khiển khoảng 1-2m để có dư).
- Bó gọn các dây tín hiệu lại với nhau bằng ống gen hoặc dây rút để tránh rối, vướng khi thuyền di chuyển.
- Cố định điểm dây đi ra khỏi thân thuyền bằng khớp nối kín nước, tránh để nước theo dây thấm vào khoang điện.
🛠️ Lắp cảm biến siêu âm ở mũi thuyền
- Gắn cảm biến siêu âm hướng thẳng về phía trước ở mũi thuyền, cao hơn mặt nước để tránh sóng nước ảnh hưởng phép đo.
- Đấu dây cảm biến vào board điều khiển theo đúng chân tín hiệu (Trig, Echo, VCC, GND).
- Bọc kín điểm đấu nối cảm biến bằng ống co nhiệt như đã làm ở Buổi 3.
🧯 Lỗi thường gặp
| Hiện tượng | Nguyên nhân | Cách khắc phục |
|---|---|---|
| Cảm biến báo khoảng cách sai lệch nhiều | Cảm biến bị ướt hoặc bị sóng nước che khuất | Nâng cao vị trí gắn cảm biến, lau khô bề mặt cảm biến |
| Mất tín hiệu điều khiển đột ngột | Dây tether bị đứt ngầm hoặc board không dây quá xa vùng phủ sóng | Kiểm tra lại dây, giảm khoảng cách thử nghiệm |
Lập trình nhận lệnh & tránh vật cản
⏱ 40 phút📥 Nhận lệnh điều khiển
Trên board tay cầm: mỗi lần bấm nút, gửi một tín hiệu radio (hoặc tín hiệu qua dây) mang mã lệnh (ví dụ số 1 = tiến, 2 = lùi, 3 = trái, 4 = phải). Trên board thuyền: dùng khối lệnh "khi nhận được tín hiệu radio" để đọc mã lệnh và gọi đúng hàm điều khiển động cơ tương ứng.
🛑 Ưu tiên an toàn: kiểm tra cảm biến trước lệnh điều khiển
Logic tổng quát: forever { nếu khoảng cách phía trước < ngưỡng an toàn → dừng động cơ hoặc lùi lại; ngược lại → thực hiện theo lệnh điều khiển mới nhất nhận được }. Cảm biến an toàn luôn được kiểm tra trước, ghi đè lên lệnh điều khiển nếu cần thiết.
🧩 Hàm (function) — gom nhóm lệnh lặp lại
Vì các hành động "tiến", "lùi", "rẽ trái", "rẽ phải" được gọi đi gọi lại nhiều lần, ta nên gom mỗi hành động thành một hàm (function) riêng, giúp chương trình gọn gàng, dễ đọc và dễ sửa lỗi hơn so với viết lặp lại toàn bộ khối lệnh nhiều lần.
Tổng kết Buổi 4
⏱ 20 phút✅ Checklist dự án
📝 Quiz ôn tập Buổi 4
1. Cảm biến siêu âm dùng để làm gì trên thuyền?
2. Ưu điểm chính của điều khiển bằng dây tether là gì?
3. Trong logic an toàn, cảm biến khoảng cách nên được kiểm tra khi nào?
4. Hàm (function) trong lập trình giúp ích điều gì?
5. Vì sao cần bọc kín điểm đấu nối cảm biến siêu âm?
6. Nếu khoảng cách đo được nhỏ hơn ngưỡng an toàn, thuyền nên:
7. micro:bit có thể điều khiển không dây bằng cách nào?
8. Vì sao nên gắn cảm biến siêu âm cao hơn mặt nước một chút?
Bấm nộp sẽ mở 1 tab GitHub Issue đã điền sẵn điểm số của bạn — bấm "Submit new issue" để hoàn tất nộp bài.
🏁 Buổi 5: Hoàn thiện, Thử nghiệm & Dự thi AIJAM 2026
Quy trình kiểm thử & tiêu chí thi
⏱ 30 phút🧪 Quy trình kiểm thử (test) một sản phẩm kỹ thuật
- Kiểm tra từng bộ phận riêng lẻ trước (thân nổi, động cơ quay, cảm biến đo đúng).
- Kiểm tra tích hợp toàn hệ thống trên cạn (chưa xuống nước).
- Thử nghiệm thực tế trong môi trường nước nông, có người giám sát.
- Ghi lại lỗi phát sinh, sửa và thử lại — lặp lại quy trình đến khi ổn định.
🦺 An toàn khi thử nghiệm trên nước
- Luôn thử nghiệm ở vùng nước nông, có người lớn giám sát.
- Không chạm tay vào chân vịt đang quay.
- Ngắt nguồn pin ngay khi phát hiện dấu hiệu bất thường (khói, mùi khét, nóng bất thường).
- Vệ sinh và lau khô thuyền sau mỗi lần thử nghiệm.
🏆 Tiêu chí tham khảo khi chấm thi AIJAM 2026
| Tiêu chí | Mô tả |
|---|---|
| Kỹ thuật chế tạo | Thân thuyền chắc chắn, chống thấm tốt, nổi cân bằng |
| Khả năng vận hành | Di chuyển ổn định, điều khiển chính xác, phản ứng đúng với cảm biến |
| Tính sáng tạo | Có cải tiến/mở rộng riêng so với mẫu cơ bản |
| Thuyết trình | Trình bày rõ nguyên lý hoạt động, quá trình chế tạo và bài học rút ra |
🚀 Hướng mở rộng sau khóa học
Lắp ráp hoàn chỉnh
⏱ 30 phút🔧 Kiểm tra tổng thể trước khi hoàn thiện
- Rà soát lại toàn bộ mối nối điện, siết chặt các ốc vít/khớp nối cơ khí.
- Kiểm tra lại độ kín nước của toàn bộ khoang điện lần cuối.
- Sạc đầy pin, kiểm tra thời lượng hoạt động thực tế của thuyền.
- Vệ sinh bên ngoài thân thuyền, hoàn thiện tính thẩm mỹ (sơn, dán decal nếu muốn).
📋 Bảng kiểm tra hoàn thiện (final checklist)
| Hạng mục | Đạt / Chưa đạt |
|---|---|
| Thân thuyền chắc chắn, kín nước | ____ |
| Động cơ + chân vịt hoạt động êm, đúng chiều | ____ |
| Cân bằng dằn, nổi thẳng không nghiêng | ____ |
| Điều khiển từ xa phản hồi nhanh, ổn định | ____ |
| Cảm biến tránh vật cản hoạt động đúng | ____ |
Hoàn thiện chương trình tổng hợp
⏱ 40 phút🧩 Ghép toàn bộ logic đã học
Chương trình cuối cùng kết hợp toàn bộ 4 buổi trước: nhận lệnh điều khiển (Buổi 4) → kiểm tra cảm biến an toàn (Buổi 4) → tính toán tốc độ 2 động cơ theo hướng mong muốn (Buổi 3) → xuất tín hiệu PWM ra mạch cầu H (Buổi 2) — tất cả chạy liên tục trong một khối forever duy nhất.
🔎 Bảng mô phỏng bảng điều khiển tổng hợp
🐞 Mẹo gỡ lỗi (debug) chương trình
- Hiển thị giá trị các biến quan trọng (tocDoTrai, tocDoPhai, khoảng cách cảm biến) lên màn hình LED để theo dõi trực tiếp.
- Kiểm tra từng khối lệnh riêng lẻ trước khi ghép toàn bộ chương trình lại.
- Nếu thuyền phản ứng sai, kiểm tra lại thứ tự ưu tiên: cảm biến an toàn phải luôn được kiểm tra trước lệnh điều khiển.
Tổng kết khóa học
⏱ 20 phút✅ Checklist hoàn thiện dự thi
📝 Quiz tổng kết Buổi 5
1. Trong chương trình tổng hợp, điều gì luôn được kiểm tra ưu tiên trước lệnh điều khiển?
2. Bước nào nên làm ĐẦU TIÊN trong quy trình kiểm thử sản phẩm?
3. Vì sao không nên chạm tay vào chân vịt đang quay?
4. Tiêu chí nào KHÔNG nằm trong bảng chấm thi AIJAM 2026 được đề cập?
5. Gắn thêm camera mini vào thuyền phục vụ mục đích gì?
6. Khi thuyền phản ứng sai, bước gỡ lỗi đầu tiên nên làm là gì?
7. Module nào có thể giúp thuyền tự hành theo một hành trình định sẵn?
8. Nên làm gì ngay khi phát hiện thuyền có mùi khét hoặc nóng bất thường khi thử nghiệm?
Bấm nộp sẽ mở 1 tab GitHub Issue đã điền sẵn điểm số của bạn — bấm "Submit new issue" để hoàn tất nộp bài.