← Danh sách khóa học

🎓 Danh sách khóa học Thầy Lê Chí Tuyền

Khóa học: 🔧 Micro:bit — Điện tử & Lập trình kéo thả · 5 buổi × 2 giờ — Lớp 6 · Dùng phím ← → hoặc nút để chuyển trang

📋 Tổng quan khóa học (5 buổi × 120 phút = 10 giờ)

1

🔌 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.

2

🚦 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.

3

🚨 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.

4

🌡️ 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.

5

🏠 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ầnThời lượngNội dung
1. Lý thuyết30 phútKiế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ạch30 phútMô 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ình40 phútHướ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ết20 phútChecklist 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

Dự án: Đèn LED nhấp nháy chào mừng

Đ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ạch kín: đèn sáng, dòng điện chạy liên tục.
❌ Mạch hở: đèn tắt, dòng điện bị chặn lại.

💧 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:

Bồn nước = Pin Ống to → chảy mạnh Ống hẹp = Điện trở Cối xay = Bóng đèn
Trong ống nướcTrong mạch điện
Bồn nước tạo áp lực đẩy nước điPin — 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âyCườ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 quaBó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!

Pin 3V 👆 Bấm vào công tắc Điện trở LED

🔴 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

🔋
Nguồn điệnCấp năng lượng cho mạch (3V với micro:bit)
💡
LEDSáng khi dòng điện đi đúng chiều (chân dài = +)
〰️
Điện trởHạn dòng, bảo vệ LED không cháy
🔘
Nút nhấnĐóng/mở mạch khi được bấm
🔊
BuzzerPhát âm thanh khi có dòng điện
🟩
BreadboardBảng cắm lắp mạch không cần hà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.

✅ Dẫn điện tốt: đồng, nhôm, sắt, nước muối, cơ thể người (ẩm)
🚫 Cách điện: nhựa, cao su, gỗ khô, thủy tinh, không khí khô

🔗 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.

💡 Khi ta nối nhiều LED vào các chân P0, P1, P2 khác nhau của micro:bit (như ở Buổi 2), mỗi LED hoạt động độc lập — đó chính là một dạng mạch song song!

🤖 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

🌀
Gia tốc kếPhát hiện rung, lắc, nghiêng — dùng trong game lắc xúc xắc
🧭
La bànPhát hiện hướng Bắc — dùng làm la bàn điện tử
📶
Radio/BluetoothGiao tiếp không dây giữa 2 micro:bit trở lên
🎤
Micro (v2)Phát hiện âm thanh, tiếng vỗ tay

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ĩaChức năng
3VNguồn dương (+)Cấp điện cho linh kiện ngoài
GNDMass (-)Đường về dòng điện, bắt buộc phải nối
P0, P1, P2Chân tín hiệuNhận/gửi tín hiệu điều khiển

🛡️ An toàn khi dùng điện

  1. 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).
  2. 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.
  3. 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.
  4. 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)

  1. 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.
  2. 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.
  3. 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

❓ Vì sao đèn pin thường dùng 2-3 viên pin mà không phải chỉ 1 viên?
❓ Điều gì xảy ra nếu ta nối 2 đèn LED nối tiếp vào cùng một nguồn 3V?
❓ Tại sao chim đậu trên dây điện cao thế mà không bị giật?

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

  1. Xác định đúng chân GND trước — bắt buộc phải nối để mạch kín.
  2. 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.
  3. Kiểm tra chiều LED: chân dài (+) không được cắm vào GND.
⚠️ Chập GND với 3V có thể làm hỏng linh kiện — luôn kiểm tra kỹ trước khi cấp nguồn!

🔍 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.

💡 Bộ kit micro:bit thường dùng điện trở khoảng 220Ω – 330Ω cho LED, không cần tính toán phức tạp ở lớp 6, chỉ cần nhớ luôn luôn có điện trở khi nối LED rờ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.

LED cực (+) → cần vào P0
LED cực (-) → cần vào GND

🧯 Xử lý lỗi thường gặp khi lắp mạch

Hiện tượngNguyên nhân có thểCách khắc phục
LED không sángCắm sai chiều +/-Đảo ngược 2 chân LED
LED không sángDây bị lỏngCắm chặt lại, kiểm tra tiếp xúc
LED không sángChưa nối GNDKiểm tra đủ 2 dây +/- đều đã nối
Board không nhận cáp USBCá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

🟦
Basicshow icon, show string, pause
🟧
Inputon button pressed
🟩
Loopsforever, repeat

🧩 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

  1. Mở MakeCode, khối "on start" đã có sẵn trong vùng làm việc.
  2. Kéo khối "forever" từ nhóm Loops vào vùng làm việc.
  3. Bên trong forever, kéo khối "digital write pin P0 to 1" để bật LED.
  4. Kéo khối "pause (ms) 500" ngay sau đó.
  5. Kéo tiếp "digital write pin P0 to 0" để tắt LED, và thêm "pause (ms) 500".
  6. Nhấn ▶ trên mô phỏng bên phải để xem đèn nhấp nháy liên tục.
💡 Mẹo: thêm khối "show icon" trái tim ❤️ trong "on start" để có lời chào trước khi đèn bắt đầu nhấp nháy.

🛠 Lỗi thường gặp khi lập trình kéo thả

  1. 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".
  2. 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.
  3. 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ới

Tổ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ì?

Dòng chuyển động có hướng của các hạt điện tích
Dòng nước chảy trong ống
Ánh sáng phát ra từ đèn

2. Để dòng điện chạy được, mạch điện cần phải:

Có màu sắc đẹp
Là một mạch kín
Được đặt ngoài trời

3. Mạch hở nghĩa là gì?

Mạch bị đứt ở một điểm nào đó, dòng điện ngừng chạy
Mạch có nhiều màu sắc
Mạch chạy nhanh hơn bình thường

4. Trong mô hình dòng nước, "bồn nước" tương ứng với linh kiện nào?

Pin
Điện trở
Bóng đèn

5. Trong mô hình dòng nước, "ống hẹp" tượng trưng cho:

Điện áp
Điện trở
Dòng điện

6. Trong mô hình dòng nước, "cối xay nước" tượng trưng cho:

Bóng đèn / thiết bị tiêu thụ điện
Bồn nước
Công tắc

7. Điện áp (Voltage) được đo bằng đơn vị nào?

Ampe (A)
Vôn (V)
Ôm (Ω)

8. Cường độ dòng điện (Current) được đo bằng đơn vị nào?

Vôn (V)
Ampe (A)
Ôm (Ω)

9. Điện trở (Resistance) được đo bằng đơn vị nào?

Vôn (V)
Ampe (A)
Ôm (Ω)

10. Linh kiện nào có chức năng "hạn dòng, bảo vệ LED không bị cháy"?

Buzzer
Điện trở
Breadboard

11. LED chỉ sáng khi:

Cắm chiều nào cũng được
Dòng điện đi đúng chiều (chân dài là cực dương)
Không cần nguồn điện

12. Vì sao LED cần điện trở đi kèm khi nối vào nguồn 3V?

Để LED sáng nhiều màu hơn
Để hạn chế dòng điện, tránh LED cháy hỏng
Để LED nhấp nháy tự động

13. Chất nào sau đây là chất dẫn điện tốt?

Nhựa
Đồng
Gỗ khô

14. Chất nào sau đây là chất cách điện?

Đồng
Nhôm
Cao su

15. Vì sao dây điện thường được bọc lớp nhựa/cao su bên ngoài?

Để dây đẹp hơn
Để cách điện, bảo vệ người dùng không bị giật
Để dây nhẹ hơn

16. Mạch nối tiếp là gì?

Các thiết bị nối thành một đường duy nhất, dòng điện đi lần lượt qua từng thiết bị
Mỗi thiết bị có đường dây riêng
Mạch không có dòng điện

17. Mạch song song là gì?

Các thiết bị nối thành một đường duy nhất
Mỗi thiết bị có một đường dây riêng, hoạt động độc lập
Mạch luôn bị hở

18. Nếu một bóng đèn trong mạch nối tiếp bị cháy, điều gì xảy ra?

Các bóng đèn còn lại vẫn sáng bình thường
Cả mạch ngừng hoạt động
Chỉ bóng đó tắt, các bóng khác không đổi

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?

Mạch nối tiếp
Mạch song song
Không phải mạch điện

20. Micro:bit có bao nhiêu đèn LED trong ma trận hiển thị?

16
25
36

21. Micro:bit có bao nhiêu nút bấm có sẵn?

1
2 (A và B)
4

22. Chân nào trên micro:bit dùng để cấp nguồn dương (+) cho linh kiện ngoài?

GND
3V
P2

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?

3V
GND
P1

24. Các chân P0, P1, P2 trên micro:bit dùng để làm gì?

Chỉ để trang trí
Nhận/gửi tín hiệu điều khiển tới linh kiện ngoài
Cấp nguồn duy nhất

25. Cảm biến nào trên micro:bit dùng để phát hiện rung, lắc, nghiêng?

La bàn
Gia tốc kế
Micro

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?

Không cần làm gì cả
Tắt nguồn / rút pin trước khi đấu nối lại
Tăng điện áp lên cao hơ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?

Không có gì xảy ra
Có thể gây chập mạch, hỏng linh kiện
Board sẽ chạy nhanh hơn

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?

pause
forever
on start

29. Khối "pause (ms) 500" có tác dụng gì?

Bật LED sáng ngay lập tức
Cho chương trình "chờ" 500 mili-giây trước khi chạy lệnh tiếp theo
Tắt toàn bộ chương trình

30. Biến số (Variable) trong lập trình dùng để làm gì?

Phát ra âm thanh
Lưu tạm một giá trị để dùng lại trong chương trình
Nối dây điện vật lý

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)

Thử làm đèn nhấp nháy nhanh hơn khi bấm nút A, chậm lại khi bấm nút B (dùng biến số lưu thời gian pause).

📝 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

Dự án: Mô hình đèn giao thông 3 màu tự động

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ĩaThời gian gợi ý
🔴 ĐỏDừng lại3 giây
🟡 VàngChuẩn bị chuyển1 giây
🟢 XanhĐược đi3 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

--
Bấm Bắt đầu để xem chu trình

🧠 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

❓ Điều gì sẽ xảy ra nếu ta đổi thứ tự thành Vàng → Đỏ → Xanh? Xe cộ có thể gặp nguy hiểm gì?
❓ Vì sao đèn Vàng chỉ sáng trong thời gian rất ngắn (1 giây) so với Đỏ và Xanh?

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.

🔴
LED Đỏ(+) → P0, (-) → GND
🟡
LED Vàng(+) → P1, (-) → GND
🟢
LED Xanh(+) → P2, (-) → 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

LED Đỏ (+) → P0
LED Đỏ (-) → GND
LED Vàng (+) → P1
LED Vàng (-) → GND
LED Xanh (+) → P2
LED Xanh (-) → GND

🧯 Xử lý lỗi thường gặp

Hiện tượngCách khắc phục
1 trong 3 LED không sángKiểm tra riêng từng LED: chiều cắm, dây có lỏng không
Cả 3 LED không sángKiể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

  1. Kéo khối "forever" vào vùng làm việc.
  2. Bật đèn Đỏ: "digital write pin P0 to 1", chờ "pause 3000", tắt: "digital write pin P0 to 0".
  3. Bật đèn Vàng: "digital write pin P1 to 1", chờ "pause 1000", tắt: "digital write pin P1 to 0".
  4. Bật đèn Xanh: "digital write pin P2 to 1", chờ "pause 3000", tắt: "digital write pin P2 to 0".
  5. Chạy mô phỏng để kiểm tra chu trình lặp lại đúng thứ tự Đỏ → Vàng → Xanh.
💡 Mở rộng: thử thêm khối "show icon" nhỏ tương ứng mỗi màu để dễ theo dõi trên mô phỏng.

🔁 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ới

Tổ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?

forever
pause
show icon

2. Đèn giao thông chuyển màu theo thứ tự nào?

Xanh → Đỏ → Vàng
Đỏ → Vàng → Xanh
Vàng → Xanh → Đỏ

3. Ba LED nối vào 3 chân khác nhau là ví dụ của loại mạch nào?

Mạch nối tiếp
Mạch song song
Không phải mạch điện

🎯 Thử thách mở rộng

Thêm một đèn LED thứ 4 làm "đèn người đi bộ": sáng cùng lúc với đèn Đỏ của xe cộ, dùng chân P3 hoặc thời gian riê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

Dự án: Còi kêu khi trời tối hoặc khi bấm nút

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

Mức ánh sáng: 180 🔕 Yên tĩnh (đủ sáng)

🧠 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.

💡 Con số 50 ở đây gọi là ngưỡng (threshold) — mức để so sánh và quyết định hành độ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

❓ Nếu đặt ngưỡng ánh sáng = 200 thay vì 50, còi sẽ kêu thường xuyên hơn hay ít hơn? Vì sao?
❓ Em nghĩ đèn đường ở khu phố nhà em hoạt động theo nguyên lý cảm biến hay theo giờ hẹn sẵn?

Lắp ráp Buzzer & Nút nhấn

⏱ 30 phút

📦 Module cần lắp

🔊
Buzzer(+) → P0, (-) → GND
🔘
Nút nhấn ngoàidây 1 → 3V, dây 2 → P1

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

Buzzer (+) → P0
Buzzer (-) → GND
Nút nhấn dây 1 → 3V
Nút nhấn dây 2 → P1

🧯 Xử lý lỗi thường gặp

Hiện tượngCách khắc phục
Buzzer không kêuKiểm tra cực +/-, kiểm tra dây có lỏng
Nút nhấn không hoạt độngKiể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ắtKiể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

  1. Kéo khối "forever" vào vùng làm việc.
  2. Bên trong, kéo khối "if...then...else" từ nhóm Logic.
  3. Ở điều kiện, đặt: "light level < 50" (từ nhóm Input).
  4. Nếu đúng: kéo khối "play tone Middle C for 1 beat" (nhóm Music) để phát âm báo động.
  5. Nếu sai (else): để trống hoặc thêm "show icon" mặt cười bình thường.
  6. 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ới

Tổ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"?

forever
if...then...else
pause

2. Mức ánh sáng nhỏ nghĩa là gì?

Trời tối
Trời sáng
Không liên quan đến ánh sáng

3. Khối "and" (VÀ) có nghĩa là gì?

Chỉ cần 1 điều kiện đúng
Cả 2 điều kiện đều phải đúng
Không điều kiện nào cần đúng

🎯 Thử thách mở rộng

Làm còi phát ra âm điệu khác nhau tùy mức độ tối: trời hơi tối thì kêu tiếng thấp, trời rất tối thì kêu tiếng cao và nhanh hơn.

📝 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 độ

Dự án: Đo nhiệt độ và cảnh báo khi quá nóng

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

Nhiệt độ: 24°C ✅ Bình thường

🧠 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.

  1. Tạo biến mới tên nhietdo (nhóm Variables).
  2. Gán giá trị: set nhietdo to temperature (°C).
  3. 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

❓ Nếu đặt board gần lòng bàn tay đang cầm, nhiệt độ đo được có thay đổi không? Vì sao?
❓ Em nghĩ nhiệt độ trong lớp học hiện tại là bao nhiêu độ C? Thử đo bằng micro:bit để kiểm tra dự đoá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.

🔴
LED cảnh báo(+) → P0, (-) → GND

⚡ Ô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

LED cảnh báo (+) → P0
LED cảnh báo (-) → GND

🧯 Xử lý lỗi thường gặp

Hiện tượngCách khắc phục
LED cảnh báo không sáng dù trời nóngKiể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ườngCó 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

  1. Kéo khối "forever" vào vùng làm việc.
  2. Tạo biến nhietdo, gán bằng khối "temperature (°C)".
  3. Kéo khối "show number nhietdo" để hiển thị nhiệt độ liên tục.
  4. Thêm khối "if nhietdo > 30 then": bật LED cảnh báo bằng "digital write pin P0 to 1".
  5. Ở else: tắt LED bằng "digital write pin P0 to 0".
  6. 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ới

Tổ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ì?

Phát âm thanh
Lưu tạm một giá trị để dùng lại
Nối dây điện

2. Khối nào lấy giá trị nhiệt độ hiện tại?

temperature (°C)
light level
show number

3. Nước sôi ở nhiệt độ khoảng bao nhiêu?

37°C
50°C
100°C

🎯 Thử thách mở rộng

Hiển thị nhiệt độ bằng biểu đồ cột LED (càng nóng càng nhiều đèn sáng theo cột dọc) thay vì chỉ hiện con số.

📝 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

Dự án cuối khóa: Kết hợp toàn bộ kiến thức đã học

Ôn tập toàn khóa & ý tưởng dự án

⏱ 30 phút

🔁 Nhắc lại 4 buổi trước

Buổi 1Điện tử cơ bản, mô hình dòng nước, nối LED, khối forever
Buổi 2Biến số, tuần tự, chu trình đèn giao thông
Buổi 3Cảm biến ánh sáng, if/else, and/or, còi báo động
Buổi 4Cảm biến nhiệt độ, biến số, cảnh báo

💡 Ô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à"

💡 Đèn cửa: TẮT
⚠️ Cảnh báo nhiệt: bình thường
🔊 Còi: TẮT

🕹 Câu hỏi thảo luận tổng hợp

❓ Nếu muốn thêm một cảm biến mưa để tự động đóng cửa sổ, em nghĩ cần thêm chân nào và logic if/else ra sao?
❓ Ngôi nhà thông minh có thể giúp tiết kiệm điện như thế nào so với nhà bình thường?

Lắp ráp hệ thống hoàn chỉnh

⏱ 30 phút

📦 Toàn bộ module cần lắp

🔴
LED cửa(+) → P0, (-) → GND
🔊
Buzzer(+) → P1, (-) → GND
🔘
Nút khẩn cấpdây 1 → 3V, dây 2 → P2

⚡ Ô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

LED cửa (+) → P0
LED cửa (-) → GND
Buzzer (+) → P1
Buzzer (-) → GND
Nút khẩn cấp dây 1 → 3V
Nút khẩn cấp dây 2 → P2

🧯 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

  1. Trong "forever": nếu light level < 50 thì bật LED cửa (P0 = 1), ngược lại tắt (P0 = 0).
  2. Thêm biến nhietdo = temperature(°C); nếu nhietdo > 30 thì show icon cảnh báo ⚠️.
  3. Thêm "on button (P2) pressed": phát "play tone" qua Buzzer (P1) làm còi khẩn cấp.
  4. 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ới

Tổ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ắn3 điểm
Chương trình chạy đúng logic4 điểm
Trình bày rõ ràng, tự tin3 đ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?

3V
GND
P2

2. Khối nào giúp so sánh và ra quyết định?

forever
if...then...else
show string

3. Cảm biến nào KHÔNG cần nối dây vì đã có sẵn trên board?

LED ngoài
Cảm biến ánh sáng & nhiệt độ
Buzzer

4. IoT là viết tắt của cụm từ nào?

Input of Technology
Internet of Things
Idea of Team

🎯 Định hướng học tiếp theo

Học sinh yêu thích có thể tìm hiểu thêm: lập trình micro:bit bằng ngôn ngữ Python (thay vì kéo thả), thử các module cảm biến khác (khoảng cách, độ ẩm đất), hoặc tham gia các cuộc thi sáng tạo khoa học kỹ thuật dành cho học sinh.

📝 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.