📋 Tổng quan khóa học (5 buổi × 120 phút = 10 giờ)
🔌 Nền tảng: Điện tử cơ bản & Micro:bit
Dòng điện, mô hình dòng nước, mạch kín/hở, dẫn điện/cách điện, nối tiếp/song song, an toàn điện, làm quen board micro:bit, lập trình kéo thả đầu tiên.
Sản phẩm: Đèn LED nhấp nháy chào mừng.
🚦 Dự án: Đèn giao thông mini
Biến số, vòng lặp, tuần tự hoá — nối 3 LED và lập trình chu trình đèn đỏ–vàng–xanh.
Sản phẩm: Mô hình đèn giao thông hoạt động tự động.
🚨 Dự án: Còi báo động thông minh
Ánh sáng, cảm biến ánh sáng, nút nhấn, câu lệnh điều kiện if/else, phép so sánh, AND/OR, ngưỡng cảnh báo.
Sản phẩm: Còi báo động kêu khi trời tối hoặc khi có người bấm nút.
🌡️ Dự án: Trạm đo nhiệt độ
Nhiệt độ và đơn vị đo, cảm biến nhiệt độ tích hợp, hiển thị số liệu, so sánh & cảnh báo bằng LED ngoài.
Sản phẩm: Trạm đo nhiệt độ tự động cảnh báo khi quá nóng.
🏠 Dự án tổng hợp: Ngôi nhà thông minh mini
IoT là gì, kết hợp toàn bộ kiến thức 4 buổi trước thành một hệ thống hoàn chỉnh, thuyết trình sản phẩm, định hướng học tiếp.
Sản phẩm: Mô hình nhà thông minh mini + báo cáo trình bày trước lớp.
🗂️ 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, ví dụ thực tế, mô phỏng tương tác, câu hỏi thảo luận |
| 2. Lắp ráp mạch | 30 phút | Mô phỏng kéo-thả dây điện vào đúng chân micro:bit + xử lý lỗi thường gặp |
| 3. Lập trình | 40 phút | Hướng dẫn từng bước + thực hành trực tiếp trên MakeCode + mẹo gỡ lỗi |
| 4. Tổng kết | 20 phút | Checklist dự án, quiz ôn tập, thử thách mở rộng, ghi chú cho giáo viên |
💡 Mỗi phần được chia thành nhiều trang nhỏ — bấm nút ◀ ▶ (hoặc phím mũi tên) để lật từng trang như slide, mỗi trang chỉ có 1 nội dung để dễ trình chiếu. Mỗi buổi hiện có 20-28 trang, đủ tư liệu để dạy trọn 2 giờ kể cả thời gian thực hành tay.
🔌 Buổi 1: Nền tảng — Điện tử cơ bản & Micro:bit
Điện tử cơ bản & Làm quen Micro:bit
⏱ 30 phút⚡ Dòng điện & mạch điện
Dòng điện là dòng chuyển động có hướng của các hạt điện tích (electron) bên trong dây dẫn. Để dòng điện chạy được cần một mạch kín: nguồn điện → dây dẫn → thiết bị tiêu thụ → quay lại nguồn. Mạch hở (đứt) ở bất kỳ điểm nào sẽ làm dòng điện ngừng chạy ngay lập tức, giống như một vòng dây bị cắt đứt.
💧 Mô hình dòng nước — dễ hiểu hơn về điện
Điện khó "nhìn thấy" nên các nhà khoa học hay ví điện giống như nước chảy trong ống. Hãy tưởng tượng một bồn nước trên cao, nước chảy qua ống xuống làm quay một cối xay nước:
| Trong ống nước | Trong mạch điện |
|---|---|
| Bồn nước tạo áp lực đẩy nước đi | Pin — nguồn tạo ra điện áp |
| Độ cao / áp lực nước | Điện áp (Voltage) — đơn vị Vôn (V) |
| Lượng nước chảy qua mỗi giây | Cường độ dòng điện (Current) — đơn vị Ampe (A) |
| Ống hẹp làm nước chảy chậm lại | Điện trở (Resistance) — đơn vị Ôm (Ω) |
| Cối xay quay nhờ nước chảy qua | Bóng đèn / thiết bị tiêu thụ điện |
⚡ Mạch điện sống động — bấm vào công tắc!
🔴 Công tắc đang MỞ — mạch hở, LED không sáng.
Để ý: dây điện đi liền một mạch từ Pin → Công tắc → Điện trở → LED → quay lại Pin, không có chỗ nào bị đứt quãng — đó chính là "mạch kín".
🧩 5 linh kiện điện tử cơ bản
🧲 Chất dẫn điện & chất cách điện
Không phải vật liệu nào cũng cho dòng điện đi qua. Chất dẫn điện (kim loại như đồng, nhôm, sắt, bạc) cho electron di chuyển dễ dàng nên được dùng làm dây điện. Chất cách điện (nhựa, cao su, gỗ khô, thủy tinh, không khí khô) gần như không cho dòng điện đi qua, nên được dùng làm lớp vỏ bọc bên ngoài dây điện để bảo vệ con người.
🔗 Mạch nối tiếp và mạch song song
Mạch nối tiếp (series): các thiết bị nối thành một đường duy nhất, dòng điện phải đi qua lần lượt từng thiết bị. Nếu một thiết bị hỏng, cả mạch ngừng hoạt động — giống dây đèn trang trí Noel đời cũ, một bóng cháy là cả dây tắt.
Mạch song song (parallel): mỗi thiết bị có một đường dây riêng, độc lập với các thiết bị khác — giống hệ thống điện trong nhà, tắt đèn phòng này không ảnh hưởng đèn phòng khác.
🤖 Micro:bit là gì?
Micro:bit là máy tính mini bỏ túi dành riêng cho học sinh: 25 đèn LED tạo ma trận hiển thị, 2 nút bấm (A, B), cảm biến gia tốc/la bàn/ánh sáng/nhiệt độ, loa & micro (bản v2), và các chân kết nối GPIO (3V, GND, P0, P1, P2...) để nối linh kiện ngoài.
📡 Các cảm biến khác trên Micro:bit
Chúng ta sẽ dùng cảm biến ánh sáng ở Buổi 3 và cảm biến nhiệt độ ở Buổi 4. Các cảm biến còn lại có thể tự khám phá thêm ở nhà!
🔌 3 chân quan trọng cần nhớ
| Chân | Ý nghĩa | Chức năng |
|---|---|---|
| 3V | Nguồn dương (+) | Cấp điện cho linh kiện ngoài |
| GND | Mass (-) | Đường về dòng điện, bắt buộc phải nối |
| P0, P1, P2 | Chân tín hiệu | Nhận/gửi tín hiệu điều khiển |
🛡️ An toàn khi dùng điện
- Không bao giờ chạm tay ướt vào thiết bị điện hoặc ổ điện trong nhà (220V rất nguy hiểm).
- Micro:bit chỉ dùng nguồn 3-5V nên rất an toàn cho học sinh, nhưng vẫn cần cẩn thận khi đấu nối.
- Luôn tắt nguồn / rút pin trước khi đấu nối lại dây để tránh chập mạch.
- Không để dây kim loại chạm chập trực tiếp giữa chân 3V và GND.
🙋 Hoạt động lớp học (5 phút)
- Giáo viên cho học sinh quan sát/cầm linh kiện thật: pin, LED, điện trở, nút nhấn, breadboard.
- Học sinh theo cặp đoán tên và chức năng từng linh kiện trước khi giáo viên xác nhận.
- Hỏi nhanh: "Điều gì xảy ra nếu lắp LED sai chiều?" (đáp: đèn không sáng vì LED chỉ dẫn điện một chiều).
🕹 Câu hỏi thảo luận mở rộng
Gợi ý: liên hệ lại mô hình dòng nước và khái niệm mạch kín/hở để giải thích.
Lắp ráp: Nối LED đầu tiên vào Micro:bit
⏱ 30 phút📏 Quy tắc đấu nối cơ bản
- Xác định đúng chân GND trước — bắt buộc phải nối để mạch kín.
- Chân tín hiệu (P0, P1, P2) phải khớp với chân sẽ khai báo trong chương trình.
- Kiểm tra chiều LED: chân dài (+) không được cắm vào GND.
🔍 Vì sao LED cần điện trở đi kèm?
LED chỉ chịu được một dòng điện rất nhỏ. Nếu nối thẳng LED vào nguồn 3V mà không qua điện trở, dòng điện sẽ quá lớn và làm LED cháy hỏng gần như ngay lập tức — giống như mở van nước quá mạnh làm vỡ ống!
Điện trở đóng vai trò như "ống hẹp" trong mô hình dòng nước ở phần Lý thuyết: nó làm chậm dòng điện lại vừa đủ để LED sáng ổn định và an toàn lâu dài.
🎮 Mô phỏng: Kéo dây điện vào đúng chân
Kéo từng dây bên trái thả vào đúng chân trên micro:bit bên phải.
🧯 Xử lý lỗi thường gặp khi lắp mạch
| Hiện tượng | Nguyên nhân có thể | Cách khắc phục |
|---|---|---|
| LED không sáng | Cắm sai chiều +/- | Đảo ngược 2 chân LED |
| LED không sáng | Dây bị lỏng | Cắm chặt lại, kiểm tra tiếp xúc |
| LED không sáng | Chưa nối GND | Kiểm tra đủ 2 dây +/- đều đã nối |
| Board không nhận cáp USB | Cáp lỗi hoặc chỉ để sạc | Đổi cáp dữ liệu khác, đổi cổng USB |
Lập trình: Đèn nhấp nháy chào mừng
⏱ 40 phút🧱 Các nhóm khối lệnh chính trong MakeCode
🧩 Biến số là gì?
Biến số giống như một "cái hộp" có tên riêng để lưu tạm một giá trị. Ví dụ hộp tên "diem" có thể lưu số 10, sau đó ta có thể lấy giá trị trong hộp ra dùng bất cứ lúc nào trong chương trình mà không cần gõ lại số 10. Ở Buổi 2 và 4, chúng ta sẽ dùng biến số nhiều hơn để đếm thời gian và lưu kết quả cảm biến.
🎨 Thiết kế hình LED của riêng bạn
Bấm vào từng ô để bật/tắt đèn LED — thử vẽ trái tim, mặt cười hoặc icon riêng, sau đó tự lập trình lại bằng khối "plot" trong MakeCode!
👣 Hướng dẫn từng bước
- Mở MakeCode, khối "on start" đã có sẵn trong vùng làm việc.
- Kéo khối "forever" từ nhóm Loops vào vùng làm việc.
- Bên trong forever, kéo khối "digital write pin P0 to 1" để bật LED.
- Kéo khối "pause (ms) 500" ngay sau đó.
- Kéo tiếp "digital write pin P0 to 0" để tắt LED, và thêm "pause (ms) 500".
- Nhấn ▶ trên mô phỏng bên phải để xem đèn nhấp nháy liên tục.
🛠 Lỗi thường gặp khi lập trình kéo thả
- Khối không khớp vào nhau: kéo đúng phần lõm/lồi để 2 khối "khớp" tiếng "tách".
- Chương trình chạy trên mô phỏng nhưng không chạy trên board thật: cần bấm nút Download rồi kéo thả file .hex vào ổ đĩa MICROBIT hiện trên máy tính.
- Board thật không nhận file: kiểm tra lại cáp USB có phải cáp dữ liệu (không phải cáp chỉ sạc).
🖥️ Thực hành trực tiếp trên MakeCode
Nếu khung không hiển thị được, bấm nút bên dưới để mở ở tab mới.
🔗 Mở MakeCode ở tab mớiTổng kết Buổi 1
⏱ 20 phút✅ Checklist dự án
❓ Quiz ôn tập (30 câu)
1. Dòng điện là gì?
2. Để dòng điện chạy được, mạch điện cần phải:
3. Mạch hở nghĩa là gì?
4. Trong mô hình dòng nước, "bồn nước" tương ứng với linh kiện nào?
5. Trong mô hình dòng nước, "ống hẹp" tượng trưng cho:
6. Trong mô hình dòng nước, "cối xay nước" tượng trưng cho:
7. Điện áp (Voltage) được đo bằng đơn vị nào?
8. Cường độ dòng điện (Current) được đo bằng đơn vị nào?
9. Điện trở (Resistance) được đo bằng đơn vị nào?
10. Linh kiện nào có chức năng "hạn dòng, bảo vệ LED không bị cháy"?
11. LED chỉ sáng khi:
12. Vì sao LED cần điện trở đi kèm khi nối vào nguồn 3V?
13. Chất nào sau đây là chất dẫn điện tốt?
14. Chất nào sau đây là chất cách điện?
15. Vì sao dây điện thường được bọc lớp nhựa/cao su bên ngoài?
16. Mạch nối tiếp là gì?
17. Mạch song song là gì?
18. Nếu một bóng đèn trong mạch nối tiếp bị cháy, điều gì xảy ra?
19. Khi nối nhiều LED vào các chân P0, P1, P2 khác nhau của micro:bit, đây là ví dụ của loại mạch nào?
20. Micro:bit có bao nhiêu đèn LED trong ma trận hiển thị?
21. Micro:bit có bao nhiêu nút bấm có sẵn?
22. Chân nào trên micro:bit dùng để cấp nguồn dương (+) cho linh kiện ngoài?
23. Chân nào trên micro:bit bắt buộc phải nối để hoàn thành mạch kín?
24. Các chân P0, P1, P2 trên micro:bit dùng để làm gì?
25. Cảm biến nào trên micro:bit dùng để phát hiện rung, lắc, nghiêng?
26. Trước khi đấu nối lại dây điện, ta nên làm gì để đảm bảo an toàn?
27. Điều gì có thể xảy ra nếu để dây kim loại chạm chập trực tiếp giữa chân 3V và GND?
28. Trong lập trình kéo thả MakeCode, khối nào giúp chương trình lặp lại hành động mãi mãi?
29. Khối "pause (ms) 500" có tác dụng gì?
30. Biến số (Variable) trong lập trình dùng để làm 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.
🎯 Thử thách mở rộng (cho học sinh giỏi)
📝 Ghi chú cho giáo viên
Học sinh thường nhầm chiều LED — nên chuẩn bị sẵn vài LED dự phòng. Dành khoảng 5 phút cuối giờ để học sinh dọn dẹp, cất gọn dây điện và linh kiện vào đúng hộp trước khi kết thúc buổi học.
➡️ Buổi sau
Buổi 2 sẽ dùng chính kỹ năng nối dây và khối "forever" hôm nay để xây dựng một mô hình đèn giao thông mini với 3 màu đèn!
🚦 Buổi 2: Dự án Đèn giao thông mini
Tuần tự, biến số & vòng lặp
⏱ 30 phút🔁 Ôn nhanh Buổi 1
Nhắc lại: cách nối LED vào chân GPIO + GND, vì sao cần điện trở, và khối "forever" để lặp lại hành động liên tục.
🚥 Đèn giao thông hoạt động thế nào?
Đèn giao thông thật hoạt động theo chu trình tuần tự lặp lại mãi: Đỏ (dừng) → Vàng (chuẩn bị) → Xanh (đi) → quay lại Đỏ.
| Màu | Ý nghĩa | Thời gian gợi ý |
|---|---|---|
| 🔴 Đỏ | Dừng lại | 3 giây |
| 🟡 Vàng | Chuẩn bị chuyển | 1 giây |
| 🟢 Xanh | Được đi | 3 giây |
🔁 Vòng lặp là gì? (Loop)
Vòng lặp giúp máy tính thực hiện lại một nhóm lệnh nhiều lần mà không cần viết lại nhiều lần — giống như việc lặp lại một điệu nhảy nhiều lần theo đúng thứ tự động tác. Khối "forever" lặp mãi mãi không dừng, còn khối "repeat (x) times" chỉ lặp một số lần nhất định rồi dừng.
🚦 Chạy thử chu trình đèn giao thông
🧠 Khái niệm mới: Tuần tự & thời gian chờ
Các khối lệnh chạy theo đúng thứ tự từ trên xuống. Khối "pause (ms)" giúp chương trình "chờ" một khoảng thời gian trước khi thực hiện lệnh tiếp theo — đây chính là cách tạo ra chu trình đèn giao thông.
🌍 Đèn giao thông trong thực tế
Đèn giao thông đầu tiên trên thế giới xuất hiện ở Anh năm 1868, ban đầu chạy bằng khí gas! Ngày nay nhiều nước còn thêm đèn cho người đi bộ, đèn đếm ngược số giây, và cảm biến đo lưu lượng xe để tự động điều chỉnh thời gian đèn xanh cho hợp lý hơn.
🕹 Câu hỏi thảo luận
Lắp ráp 3 đèn LED (Đỏ – Vàng – Xanh)
⏱ 30 phút📦 Sơ đồ nối dây
Mỗi LED cần 2 dây: cực (+) nối vào 1 chân tín hiệu riêng, cực (-) nối chung vào GND.
⚡ Vì sao mỗi LED cần điện trở riêng?
Giống như Buổi 1, mỗi LED đều cần điện trở riêng của mình để không bị cháy — không thể dùng chung một điện trở cho 3 LED cùng lúc. Vì mỗi LED nối vào một chân riêng biệt (P0, P1, P2) và có đường dây GND chung, đây chính là ví dụ thực tế của mạch song song đã học ở Buổi 1: ba đèn hoạt động độc lập với nhau.
🎮 Mô phỏng: Kéo dây nối 3 đèn LED
🧯 Xử lý lỗi thường gặp
| Hiện tượng | Cách khắc phục |
|---|---|
| 1 trong 3 LED không sáng | Kiểm tra riêng từng LED: chiều cắm, dây có lỏng không |
| Cả 3 LED không sáng | Kiểm tra dây GND chung có được nối đủ không |
| LED sáng nhưng mờ | Kiểm tra lại điện trở có đúng loại không |
Lập trình chu trình đèn giao thông
⏱ 40 phút👣 Hướng dẫn từng bước
- Kéo khối "forever" vào vùng làm việc.
- Bật đèn Đỏ: "digital write pin P0 to 1", chờ "pause 3000", tắt: "digital write pin P0 to 0".
- Bật đèn Vàng: "digital write pin P1 to 1", chờ "pause 1000", tắt: "digital write pin P1 to 0".
- Bật đèn Xanh: "digital write pin P2 to 1", chờ "pause 3000", tắt: "digital write pin P2 to 0".
- Chạy mô phỏng để kiểm tra chu trình lặp lại đúng thứ tự Đỏ → Vàng → Xanh.
🔁 Dùng biến số đếm số lần chuyển đèn
Học sinh khá giỏi có thể tạo thêm biến "soLanChuyen", mỗi lần đèn chuyển màu thì tăng biến này lên 1 (dùng khối "change soLanChuyen by 1"), sau đó hiển thị số lần đã chuyển bằng "show number soLanChuyen" — đây là bước chuẩn bị cho việc dùng biến số phức tạp hơn ở các buổi sau.
🛠 Mẹo gỡ lỗi chương trình
Nếu đèn không đổi màu theo đúng thứ tự, kiểm tra lại xem có đúng 3 cặp "bật/pause/tắt" theo thứ tự Đỏ-Vàng-Xanh chưa, và các khối "pause" có nằm đúng vị trí (sau khi bật, trước khi tắt) hay không.
🖥️ Thực hành trực tiếp trên MakeCode
🔗 Mở MakeCode ở tab mớiTổng kết Buổi 2
⏱ 20 phút✅ Checklist dự án
❓ Quiz ôn tập
1. Khối nào giúp chương trình "chờ" trước khi chạy lệnh tiếp theo?
2. Đèn giao thông chuyển màu theo thứ tự nào?
3. Ba LED nối vào 3 chân khác nhau là ví dụ của loại mạch nào?
🎯 Thử thách mở rộng
📝 Ghi chú cho giáo viên
Học sinh dễ nhầm lẫn thứ tự pause và write pin — nên đi từng bàn kiểm tra khi các em ghép khối. Có thể chiếu bài làm của 1-2 nhóm lên màn hình chung để cả lớp cùng học hỏi.
➡️ Buổi sau
Buổi 3 sẽ thêm cảm biến ánh sáng và nút nhấn để tạo còi báo động thông minh, dùng câu lệnh điều kiện if/else!
🚨 Buổi 3: Dự án Còi báo động thông minh
Cảm biến ánh sáng & câu lệnh điều kiện
⏱ 30 phút🌗 Ánh sáng hoạt động thế nào?
Ánh sáng là một dạng năng lượng lan truyền từ nguồn sáng (mặt trời, bóng đèn) đến mắt ta. Ban ngày trời sáng vì ánh sáng mặt trời chiếu tới, ban đêm trời tối vì không còn ánh sáng mặt trời. Cảm biến ánh sáng trên micro:bit thực chất dùng chính các đèn LED trong ma trận — LED không chỉ phát sáng mà còn có thể "cảm nhận" được lượng ánh sáng chiếu vào nó, rồi đổi thành tín hiệu điện để chương trình đọc được.
💡 Cảm biến ánh sáng tích hợp
Micro:bit có sẵn cảm biến ánh sáng ngay trên ma trận LED (không cần nối dây thêm). Cảm biến trả về một con số từ 0 (rất tối) đến 255 (rất sáng) — gọi là mức ánh sáng (light level).
💡 Cảm biến ánh sáng ảo — thử kéo thanh trượt
🧠 Câu lệnh điều kiện if / else
Câu lệnh "if...then...else" giúp chương trình "ra quyết định": Nếu điều kiện đúng thì làm việc A, ngược lại thì làm việc B. Ví dụ: nếu mức ánh sáng nhỏ hơn 50 thì bật còi báo động.
🔢 So sánh số trong lập trình
Để tạo điều kiện, ta cần các phép so sánh cơ bản:
| Ký hiệu | Ý nghĩa |
|---|---|
| < | Nhỏ hơn |
| > | Lớn hơn |
| = | Bằng nhau |
| <= | Nhỏ hơn hoặc bằng |
| >= | Lớn hơn hoặc bằng |
🔘 Nút nhấn ngoài
Ngoài nút A, B có sẵn, ta có thể nối thêm nút nhấn ngoài vào chân GPIO để test còi báo động bất cứ lúc nào, không cần chờ trời tối. Nút nhấn cần 2 dây: một dây nối 3V, một dây nối chân tín hiệu.
🌍 Ứng dụng còi báo động trong đời sống
Nguyên lý "cảm biến + điều kiện + cảnh báo" được dùng rất nhiều trong đời sống: đèn đường tự động bật khi trời tối, hệ thống báo trộm khi có người đột nhập, đèn hành lang chung cư tự sáng khi có người đi qua vào ban đêm.
🕹 Câu hỏi thảo luận
Lắp ráp Buzzer & Nút nhấn
⏱ 30 phút📦 Module cần lắp
Cảm biến ánh sáng đã có sẵn trên board, không cần nối thêm dây.
⚡ Vì sao Buzzer cũng cần đúng cực?
Cũng giống LED ở Buổi 1 và 2, Buzzer là linh kiện phân cực — chỉ hoạt động đúng khi dòng điện đi đúng chiều (+/-). Nếu cắm ngược cực, buzzer thường sẽ không kêu hoặc kêu rất nhỏ.
🎮 Mô phỏng: Kéo dây nối Buzzer & Nút nhấn
🧯 Xử lý lỗi thường gặp
| Hiện tượng | Cách khắc phục |
|---|---|
| Buzzer không kêu | Kiểm tra cực +/-, kiểm tra dây có lỏng |
| Nút nhấn không hoạt động | Kiểm tra dây 3V và chân tín hiệu có đúng vị trí |
| Buzzer kêu liên tục không tắt | Kiểm tra lại điều kiện if trong chương trình |
Lập trình còi báo động
⏱ 40 phút👣 Hướng dẫn từng bước
- Kéo khối "forever" vào vùng làm việc.
- Bên trong, kéo khối "if...then...else" từ nhóm Logic.
- Ở điều kiện, đặt: "light level < 50" (từ nhóm Input).
- Nếu đúng: kéo khối "play tone Middle C for 1 beat" (nhóm Music) để phát âm báo động.
- Nếu sai (else): để trống hoặc thêm "show icon" mặt cười bình thường.
- Thêm khối "on button (P1) pressed" để test còi kêu ngay khi bấm nút.
🔀 Kết hợp nhiều điều kiện (AND/OR)
Đôi khi ta cần kiểm tra nhiều điều kiện cùng lúc. Khối "and" nghĩa là "cả hai điều kiện đều phải đúng", còn "or" nghĩa là "chỉ cần một trong hai điều kiện đúng". Ví dụ: "nếu trời tối VÀ (and) có người bấm nút thì còi kêu to hơn bình thường".
🛠 Mẹo gỡ lỗi
Nếu còi kêu liên tục dù trời sáng, kiểm tra lại dấu so sánh trong khối if có đang là "< 50" (nhỏ hơn) chứ không nhầm thành "> 50" (lớn hơn).
🖥️ Thực hành trực tiếp trên MakeCode
🔗 Mở MakeCode ở tab mớiTổng kết Buổi 3
⏱ 20 phút✅ Checklist dự án
❓ Quiz ôn tập
1. Câu lệnh nào giúp chương trình "ra quyết định"?
2. Mức ánh sáng nhỏ nghĩa là gì?
3. Khối "and" (VÀ) có nghĩa là gì?
🎯 Thử thách mở rộng
📝 Ghi chú cho giáo viên
Có thể che cảm biến ánh sáng bằng tay để mô phỏng "trời tối" ngay trong lớp học sáng đèn, giúp học sinh kiểm tra chương trình dễ dàng mà không cần tắt đèn phòng học.
➡️ Buổi sau
Buổi 4 sẽ dùng cảm biến nhiệt độ tích hợp để xây dựng một trạm đo nhiệt độ tự động cảnh báo!
🌡️ Buổi 4: Dự án Trạm đo nhiệt độ
Cảm biến nhiệt độ & biến số
⏱ 30 phút🌡️ Nhiệt độ là gì? Đơn vị đo
Nhiệt độ cho biết một vật nóng hay lạnh, đo bằng đơn vị độ C (Celsius) ở Việt Nam. Một số mốc quen thuộc: nước đá tan ở 0°C, nhiệt độ cơ thể người khoảng 37°C, nước sôi ở 100°C, một ngày hè nóng ở Việt Nam có thể lên tới 35-38°C.
🌡️ Cảm biến nhiệt độ tích hợp
Micro:bit có cảm biến nhiệt độ ngay bên trong chip, đo bằng đơn vị độ C. Dùng khối "temperature (°C)" từ nhóm Input để lấy giá trị này bất cứ lúc nào trong chương trình.
🌡️ Nhiệt kế ảo — thử kéo thanh trượt
🧠 Biến số (Variable)
Biến số giống như một "cái hộp" để lưu tạm giá trị, ví dụ hộp tên "nhietdo" lưu kết quả đo được.
- Tạo biến mới tên nhietdo (nhóm Variables).
- Gán giá trị: set nhietdo to temperature (°C).
- So sánh: if nhietdo > 30 then...
🌍 Ứng dụng đo nhiệt độ trong đời sống
Cảm biến nhiệt độ có mặt ở khắp nơi: tủ lạnh tự điều chỉnh độ lạnh, máy điều hòa duy trì nhiệt độ phòng, lò vi sóng/lò nướng kiểm soát nhiệt khi nấu ăn, trạm khí tượng dự báo thời tiết, và cả nhiệt kế điện tử đo sốt cho con người.
🔢 Ôn lại phép so sánh và biến số
Kết hợp kiến thức đã học: biến số (Buổi 2) dùng để lưu giá trị đo được, phép so sánh (Buổi 3) dùng để kiểm tra giá trị đó có vượt ngưỡng hay không, rồi câu lệnh if/else (Buổi 3) quyết định hành động tiếp theo. Đây là 3 mảnh ghép quan trọng của lập trình mà Buổi 4 sẽ ghép lại cùng nhau.
🕹 Câu hỏi thảo luận
Lắp ráp LED cảnh báo nhiệt độ cao
⏱ 30 phút📦 Module cần lắp
Cảm biến nhiệt độ đã có sẵn trên board — chỉ cần thêm 1 LED cảnh báo màu đỏ nối ra ngoài.
⚡ Ôn lại vì sao cần điện trở và đúng cực
Nhắc lại từ Buổi 1: LED cảnh báo vẫn cần điện trở đi kèm và phải cắm đúng chiều (+/-) để hoạt động, giống hệt nguyên tắc đã học ở các buổi trước.
🎮 Mô phỏng: Kéo dây nối LED cảnh báo
🧯 Xử lý lỗi thường gặp
| Hiện tượng | Cách khắc phục |
|---|---|
| LED cảnh báo không sáng dù trời nóng | Kiểm tra ngưỡng trong chương trình, kiểm tra chiều LED |
| Nhiệt độ hiển thị luôn cao bất thường | Có thể do hơi nóng từ chip hoặc tay cầm gần board |
Lập trình trạm đo nhiệt độ
⏱ 40 phút👣 Hướng dẫn từng bước
- Kéo khối "forever" vào vùng làm việc.
- Tạo biến nhietdo, gán bằng khối "temperature (°C)".
- Kéo khối "show number nhietdo" để hiển thị nhiệt độ liên tục.
- Thêm khối "if nhietdo > 30 then": bật LED cảnh báo bằng "digital write pin P0 to 1".
- Ở else: tắt LED bằng "digital write pin P0 to 0".
- Chạy mô phỏng, thử kéo thanh nhiệt độ để kiểm tra LED bật/tắt đúng ngưỡng 30°C.
🔁 Dùng vòng lặp hiển thị nhiều thông tin
Có thể mở rộng chương trình để xen kẽ hiển thị số nhiệt độ và một icon cảnh báo: "show number nhietdo" → "pause 1000" → "show icon cảnh báo (nếu nóng)" → "pause 1000" rồi lặp lại — giúp thông tin dễ nhìn hơn thay vì chỉ hiện mỗi con số.
🛠 Mẹo gỡ lỗi
Nếu LED cảnh báo luôn sáng hoặc luôn tắt, kiểm tra lại biến "nhietdo" đã được gán giá trị "temperature (°C)" ngay trong vòng lặp forever hay chưa — nếu chỉ gán 1 lần ở "on start" thì giá trị sẽ không được cập nhật liên tục.
🖥️ Thực hành trực tiếp trên MakeCode
🔗 Mở MakeCode ở tab mớiTổng kết Buổi 4
⏱ 20 phút✅ Checklist dự án
❓ Quiz ôn tập
1. Biến số dùng để làm gì?
2. Khối nào lấy giá trị nhiệt độ hiện tại?
3. Nước sôi ở nhiệt độ khoảng bao nhiêu?
🎯 Thử thách mở rộng
📝 Ghi chú cho giáo viên
Có thể cho học sinh thử áp tay vào board hoặc thổi hơi ấm gần cảm biến để thấy số liệu thay đổi trực quan, giúp bài học sinh động hơn.
➡️ Buổi sau
Buổi 5 sẽ kết hợp tất cả những gì đã học — đèn, còi, cảm biến — thành một hệ thống "Ngôi nhà thông minh mini" hoàn chỉnh!
🏠 Buổi 5: Dự án tổng hợp — Ngôi nhà thông minh mini
Ôn tập toàn khóa & ý tưởng dự án
⏱ 30 phút🔁 Nhắc lại 4 buổi trước
💡 Ôn lại toàn bộ kiến thức điện tử
Tổng hợp lại: dòng điện cần mạch kín để chạy, mô hình dòng nước giúp hình dung điện áp/dòng điện/điện trở, chất dẫn điện vs cách điện, mạch nối tiếp vs song song, và các quy tắc an toàn khi dùng điện. Đây chính là nền tảng cho mọi mạch điện tử ta đã lắp trong 4 buổi qua.
🌐 IoT là gì? (Internet of Things)
IoT (Internet vạn vật) là các thiết bị điện tử có thể cảm nhận môi trường xung quanh (qua cảm biến) và tự động phản ứng lại, đôi khi còn kết nối internet để gửi dữ liệu đi xa. Nhà thông minh, đồng hồ thông minh theo dõi sức khỏe, xe tự lái, tủ lạnh tự đặt hàng thực phẩm... đều là ví dụ của IoT. Dự án "Ngôi nhà thông minh mini" hôm nay chính là một phiên bản đơn giản của IoT!
🏠 Ý tưởng: Ngôi nhà thông minh mini
Kết hợp tất cả linh kiện đã lắp ráp trong 4 buổi trước vào một hệ thống duy nhất: đèn LED cửa (bật khi trời tối), còi báo động (kêu khi bấm nút khẩn cấp), và cảnh báo nhiệt độ. Học sinh tự thiết kế logic riêng cho "ngôi nhà" của mình.
🏠 Bảng điều khiển tổng hợp — thử vận hành "ngôi nhà"
🕹 Câu hỏi thảo luận tổng hợp
Lắp ráp hệ thống hoàn chỉnh
⏱ 30 phút📦 Toàn bộ module cần lắp
⚡ Ôn lại toàn bộ nguyên tắc lắp ráp
Trước khi lắp, hãy cùng nhắc lại: mọi LED và buzzer đều cần điện trở và đúng cực +/-; mọi thiết bị đều cần một đường về GND chung; luôn tắt nguồn trước khi đấu nối lại dây để đảm bảo an toàn.
🎮 Mô phỏng: Kéo dây nối toàn bộ hệ thống
🧯 Xử lý lỗi thường gặp toàn hệ thống
Khi lắp nhiều linh kiện cùng lúc, nếu có lỗi hãy tháo bớt và kiểm tra từng linh kiện một (chỉ để lại LED trước, test xong mới lắp thêm Buzzer, rồi mới lắp nút nhấn) thay vì kiểm tra tất cả cùng lúc — cách này giúp tìm lỗi nhanh hơn nhiều.
Lập trình hệ thống hoàn chỉnh
⏱ 40 phút👣 Hướng dẫn ghép chương trình
- Trong "forever": nếu light level < 50 thì bật LED cửa (P0 = 1), ngược lại tắt (P0 = 0).
- Thêm biến nhietdo = temperature(°C); nếu nhietdo > 30 thì show icon cảnh báo ⚠️.
- Thêm "on button (P2) pressed": phát "play tone" qua Buzzer (P1) làm còi khẩn cấp.
- Chạy thử toàn bộ chương trình, kiểm tra từng chức năng hoạt động đúng.
🔁 Ôn lại cấu trúc chương trình hoàn chỉnh
Một chương trình micro:bit hoàn chỉnh thường có: khối "on start" (chạy 1 lần lúc bật nguồn), khối "forever" (lặp lại liên tục kiểm tra cảm biến), và các khối "on button/pin pressed" (phản ứng ngay khi có sự kiện xảy ra) — 3 khối nền tảng này ta đã dùng xuyên suốt cả 5 buổi học.
🛠 Mẹo gỡ lỗi toàn diện
Nếu chương trình không hoạt động như mong muốn, hãy kiểm tra lần lượt: (1) các chân trong code có khớp với chân đã nối dây thực tế không, (2) các ngưỡng so sánh có hợp lý không, (3) có khối nào bị đặt sai vị trí (ví dụ nằm ngoài forever) không.
🖥️ Hoàn thiện dự án trên MakeCode
🔗 Mở MakeCode ở tab mớiTổng kết khóa học
⏱ 20 phút🎤 Thuyết trình sản phẩm
Mỗi nhóm trình bày trong 2–3 phút: giới thiệu hệ thống, giải thích cách nối dây và logic lập trình, demo trực tiếp.
| Tiêu chí | Điểm tối đa |
|---|---|
| Lắp ráp đúng, chắc chắn | 3 điểm |
| Chương trình chạy đúng logic | 4 điểm |
| Trình bày rõ ràng, tự tin | 3 điểm |
❓ Quiz tổng kết toàn khóa
1. Chân nào dùng để cấp nguồn dương cho linh kiện ngoài?
2. Khối nào giúp so sánh và ra quyết định?
3. Cảm biến nào KHÔNG cần nối dây vì đã có sẵn trên board?
4. IoT là viết tắt của cụm từ nào?
🎯 Định hướng học tiếp theo
📝 Ghi chú cho giáo viên (tổng kết khóa)
Nên lưu lại hình ảnh/video sản phẩm của từng nhóm để làm tư liệu trưng bày hoặc chia sẻ với phụ huynh. Có thể trao giấy chứng nhận nhỏ ghi nhận sự cố gắng của học sinh sau khi hoàn thành khóa học.
🏆 Chúc mừng hoàn thành khóa học!
Học sinh đã học được: điện tử cơ bản, cấu tạo micro:bit, lập trình kéo thả với biến số/vòng lặp/điều kiện, và cách lắp ráp mạch với nhiều loại cảm biến — đủ nền tảng để tự sáng tạo các dự án IoT đơn giản tiếp theo.