Lab.Vatli365
← Cấp độ 9 · Đo lường Vật lí và Toán

Bài 59 · Vật lí · Toán

Đo gia tốc rơi tự do
hai mươi lượt trong năm phút

Bài thực hành kinh điển nhất của Vật lí 10, nhưng làm theo cách mới: máy tự nhả bi, tự bấm giờ, tự tính. Học sinh không còn bận bấm đồng hồ nên có thời gian làm việc quan trọng hơn — nhìn hai mươi con số và hỏi vì sao chúng không giống nhau.

Thời lượng
1 tiết, hoặc 2 tiết nếu làm cả phần thống kê
Chi phí một nhóm
≈ 350 nghìn đồng cho phần thêm vào bộ cơ bản
Cấp độ
9 / 12
Trạng thái
Đã chạy thật với học sinh
01

Mục tiêu và yêu cầu cần đạt

Đây là bài mà tôi kể ở đầu cuốn sách: nhóm học sinh báo cáo g = 11,2 và không ai biết con số ấy sai ở đâu. Bài này là câu trả lời cho chuyện đó.

Sau bài này học sinh làm được

  • Đo được gia tốc rơi tự do với sai số dưới 1%.
  • Giải thích được vì sao đo bằng đồng hồ bấm tay luôn cho kết quả lệch về một phía.
  • Tính trung bình, độ lệch chuẩn và sai số của trung bình từ 20 phép đo.
  • Viết kết quả đúng quy cách: g = (9,80 ± 0,01) m/s².
  • Chỉ ra được ít nhất hai nguồn sai số hệ thống còn lại trong thí nghiệm của chính mình.
Gắn với chương trình
  • Vật lí 10 — mạch nội dung Động học: sự rơi tự do; thực hành đo gia tốc rơi tự do.
  • Toán 10–11 — số liệu thống kê: số trung bình, phương sai, độ lệch chuẩn.

Trích nguyên văn yêu cầu cần đạt từ chương trình môn học trước khi đưa vào kế hoạch bài dạy.

02

Lí thuyết

Công thức thì ai cũng biết

s = ½ g t²     →     g = 2s / t²

Đo s bằng thước, đo t bằng đồng hồ. Vấn đề nằm trọn ở chỗ đo t.

Vì sao đồng hồ bấm tay luôn cho g quá lớn

Thời gian phản xạ của người khoảng 0,2 giây, và ta bấm muộn ở cả hai đầu. Hai độ trễ bằng nhau thì triệt tiêu — nhưng chúng không bằng nhau, vì lần bấm thứ hai ta đã đoán trước được thời điểm nên bấm sớm hơn. Kết quả: t đo được nhỏ hơn thời gian thật, mà t nằm dưới mẫu và lại bình phương, nên g bị đẩy lên.

Làm phép tính cho học sinh thấy

Rơi 0,5 m mất 0,319 s. Bấm hụt 0,02 s, tức đo được 0,299 s:

g = 2 × 0,5 / 0,299² = 11,2 m/s²

Hụt hai phần trăm giây là sai 14%. Đây là lúc nói: không phải các em làm sai, mà dụng cụ không đủ tốt cho phép đo này.

Máy đo hai mốc do chính nó tạo ra

  1. Mốc thả — ESP32 ngắt điện nam châm và ghi ngay thời điểm bằng time.ticks_us().
  2. Mốc chạm — bi cắt tia laser, quang trở đổi mức, một ngắt phần cứng ghi mốc thứ hai.

Khoảng giữa hai mốc là thời gian rơi, chính xác tới vài micro giây.

Phải dùng ngắt, không hỏi vòng

Bi cắt tia chỉ trong 5–10 ms. Chương trình đang bận in một dòng ra màn hình đúng lúc đó là bỏ lỡ hoàn toàn.

Ngắt phần cứng thì chip dừng ngay việc đang làm, ghi mốc, rồi quay lại — độ trễ vài micro giây. Mọi bài đo thời gian trong sách đều dùng ngắt vì lí do này.

Một độ trễ máy cũng không tránh được

Nam châm điện không nhả tức thì: từ trường trong lõi sắt cần vài mili giây mới tắt hẳn, trong khoảng đó bi vẫn dính. Đây là sai số hệ thống — làm thời gian đo lớn hơn thật, g nhỏ đi một chút, và đo bao nhiêu lần cũng không hết. Không giấu học sinh chuyện này; xem mục Kinh nghiệm.

03

Linh kiện

Linh kiệnMô tả, lưu ý khi muaSố lượng · giá
ESP32 DevKit V1Bo 30 chân1 · 90–150k
Nam châm điện 12 V nhỏLoại hút được viên bi thép 15–20 mm1 · 60–120k
Module MOSFETĐể ESP32 đóng ngắt nam châm điện an toàn1 · 20–35k
Module laser 650 nm1 · 8–15k
Module quang trở có ngõ ra sốLoại 4 chân, có biến trở chỉnh ngưỡng1 · 12–20k
Viên bi thépĐường kính 15–20 mm, càng nặng càng ít bị gió2–3 · 10k
Giá đỡ, kẹp, thước métTận dụng giá thí nghiệm sẵn có của trường1 bộ
Nguồn 12 VAdapter 12 V 1 A cho nam châm điện1 · 60k
04

Lắp mạch và sơ đồ nối dây

Đỏ · nguồn dương Đen · GND Vàng · SCL Xanh dương · SDA Trắng · tín hiệu Xanh lá · 1-Wire
KhốiNối dâyNguồn
Module MOSFETIN → GPIO5 · VCC → 5 V · GND → GND chungTải 12 V riêng
Nam châm điệnNối vào ngõ ra của module MOSFET12 V từ adapter
Module laserVCC → 5 V · GND → GND · tín hiệu → 3V3 (bật liên tục)5 V
Quang trở sốVCC → 3V3 · GND → GND · DO → GPIO183,3 V
B37.1 Ảnh thực

Toàn cảnh giá thí nghiệm dựng đứng: nam châm điện gắn trên cao, viên bi treo bên dưới, cặp laser–quang trở ở dưới cùng, thước mét dựng bên cạnh. Chụp ngang tầm mắt, thấy được cả chiều cao rơi.

Khung giữ chỗ — thay bằng ảnh chụp thật khi có
B37.2 Ảnh thực

Cận cảnh nam châm điện đang hút viên bi thép, thấy rõ bi treo lơ lửng đúng tâm và ngay phía trên tia laser.

Khung giữ chỗ — thay bằng ảnh chụp thật khi có
B37.3 Ảnh thực

Cận cảnh cặp laser và quang trở đặt đối diện, tia laser đỏ đi ngang qua đúng mắt cảm biến. Chụp trong phòng hơi tối để thấy tia.

Khung giữ chỗ — thay bằng ảnh chụp thật khi có
B37.4 Ảnh thực

Mạch điều khiển: ESP32, module MOSFET, adapter 12 V, có dán nhãn rõ đâu là đường 12 V và đâu là đường tín hiệu.

Khung giữ chỗ — thay bằng ảnh chụp thật khi có
B37.5 Đồ thị số liệu

Biểu đồ phân bố 20 giá trị g đo được, có vạch trung bình và khoảng ±độ lệch chuẩn. Đây là hình quan trọng nhất của bài.

Khung giữ chỗ — thay bằng ảnh chụp thật khi có

Dựng giá

  1. Kẹp nam châm điện lên đỉnh giá, mặt hút quay xuống dưới.
  2. Đặt cặp laser–quang trở ở phía dưới, sao cho tia sáng đi ngang đúng dưới viên bi.
  3. Đo khoảng cách từ đáy viên bi tới tia laser. Đây là s. Đo bằng thước mét, đọc tới milimét.
  4. Đặt một hộp giấy hoặc khay cát ở dưới để hứng bi — bi thép rơi xuống nền gạch nảy đi rất xa.
Đo s từ đâu tới đâu

Đây là nguồn sai số lớn nhất mà học sinh hay mắc, và nó khá tinh vi.

Cảm biến báo có vật khi mép dưới viên bi bắt đầu cắt tia sáng. Vậy quãng đường rơi phải tính từ mép dưới viên bi lúc còn treo, tới tia laser.

Nếu đo từ tâm bi thì với bi 20 mm bạn đã sai 10 mm. Trên quãng đường 500 mm thì đó là 2% — và vì s nằm ở tử số nên g cũng sai 2%. Lớn hơn toàn bộ sai số ngẫu nhiên cộng lại.

Ba điều bắt buộc
  • Nam châm điện dùng nguồn 12 V riêng. Nó hút dòng lớn; lấy điện từ ESP32 là bo mạch reset liên tục.
  • Nối chung GND giữa ESP32, module MOSFET và nguồn 12 V. Thiếu bước này thì MOSFET đóng ngắt lung tung.
  • Không nhìn thẳng vào tia laser. Nói rõ với học sinh ngay từ đầu, và đặt tia ở tầm thấp hơn tầm mắt khi ngồi.

Nếu trường không có nam châm điện, có thể thay bằng cách thả tay — nhưng khi đó phải bấm nút ``bắt đầu'' cùng lúc thả, và sai số quay lại như cũ. Nam châm điện là thứ đáng đầu tư nhất trong bài này.

Chỉnh cảm biến

Bật laser, vặn biến trở trên module quang trở cho tới khi đèn báo chuyển trạng thái dứt khoát lúc bạn lấy ngón tay che tia. Nếu đèn nhấp nháy chập chờn thì phòng quá sáng — che bớt hoặc làm một ống giấy đen quanh mắt cảm biến.

05

Mã nguồn

Mã đầy đủ tại kho GitHub, thư mục cap-3/bai-37-roi-tu-do/. Bài này cũng đã có sẵn giao diện web tại lab.vatli365.vn/free-fall-gate2 nếu thầy cô dùng bộ cổng quang USB.

Chương trình chính — thả 20 lượt và thống kê luôn
# ------------------------------------------------------------
#  Bai 59 - Do gia toc roi tu do bang nam cham dien va cong quang
#  Phan cung: nam cham dien -> GPIO5 (qua MOSFET)
#             cong quang    -> GPIO18
# ------------------------------------------------------------
from machine import Pin
import time

# ===== CAU HINH =====
CHAN_NAM_CHAM = 5
CHAN_CONG     = 18
QUANG_DUONG_M = 0.500     # tu day vien bi den tia laser, don vi met
SO_LUOT       = 20
# ===== het phan cau hinh =====

nam_cham = Pin(CHAN_NAM_CHAM, Pin.OUT)
cong     = Pin(CHAN_CONG, Pin.IN, Pin.PULL_UP)

moc_tha  = 0
moc_cham = 0
da_cham  = False

def khi_chan_tia(pin):
    global moc_cham, da_cham
    if not da_cham:
        moc_cham = time.ticks_us()
        da_cham = True

cong.irq(trigger=Pin.IRQ_FALLING, handler=khi_chan_tia)

print("luot,t_s,g_m_per_s2")
ket_qua = []

for luot in range(1, SO_LUOT + 1):
    nam_cham.value(1)                 # hut vien bi
    time.sleep(2)                     # cho nguoi dat bi va cho bi dung yen
    da_cham = False

    nam_cham.value(0)                 # nha bi
    moc_tha = time.ticks_us()

    het_han = time.ticks_add(time.ticks_ms(), 3000)
    while not da_cham:
        if time.ticks_diff(het_han, time.ticks_ms()) <= 0:
            break
        time.sleep_ms(1)

    if not da_cham:
        print("#", luot, "hong: bi khong qua cong")
        continue

    t = time.ticks_diff(moc_cham, moc_tha) / 1_000_000
    g = 2 * QUANG_DUONG_M / (t * t)
    ket_qua.append(g)
    print("{},{:.5f},{:.3f}".format(luot, t, g))

# --- thong ke
n = len(ket_qua)
tb = sum(ket_qua) / n
s  = (sum((x - tb) ** 2 for x in ket_qua) / (n - 1)) ** 0.5
u  = s / (n ** 0.5)
print("---")
print("So luot dung  :", n)
print("Trung binh    : {:.3f} m/s2".format(tb))
print("Do lech chuan : {:.3f}".format(s))
print("Sai so cua TB : {:.3f}".format(u))
print("Ket qua: g = ({:.2f} +/- {:.2f}) m/s2".format(tb, u))

Kết quả:

luot,t_s,g_m_per_s2
1,0.31940,9.803
2,0.31912,9.820
3,0.31968,9.786
4,0.31925,9.812
5,0.31955,9.794
...
---
So luot dung  : 19
Trung binh    : 9.801 m/s2
Do lech chuan : 0.014
Sai so cua TB : 0.003
Ket qua: g = (9.80 +/- 0.01) m/s2

Chương trình cố ý in ra từng lượt một chứ không chỉ in kết quả cuối. Học sinh cần nhìn thấy hai mươi con số khác nhau — đó mới là bài học, còn con số trung bình chỉ là hệ quả.

Hai dòng đáng chú ý trong mã

time.sleep(2) sau khi bật nam châm không phải để cho vui. Nó cho học sinh thời gian đặt bi vào, và quan trọng hơn — cho viên bi đứng hẳn yên. Nếu bi còn đung đưa thì lượt đo hỏng.

Biến het_han tạo một giới hạn chờ 3 giây. Nếu bi rơi lệch không qua cổng, chương trình bỏ lượt đó và chạy tiếp thay vì treo mãi. Trong lớp học, chuyện bi rơi lệch xảy ra khoảng một trên mười lượt.

06

Hiệu chuẩn và kiểm thử

Kiểm tra trước khi tin vào số liệu

  1. Thử cắt tia bằng tay. Chương trình phải ghi nhận. Nếu không, chỉnh lại biến trở.
  2. Thả thử ba lượt. Ba giá trị t phải chênh nhau dưới 1 mili giây. Chênh nhiều hơn nghĩa là bi rơi không cùng một đường.
  3. Đổi chiều cao. Nâng cổng quang lên để s chỉ còn một nửa. Giá trị g tính ra phải không đổi. Đây là phép thử tốt nhất — nếu g đổi theo chiều cao thì chắc chắn có sai số hệ thống trong cách đo s.
Phép thử ba chiều cao — nên làm với mọi lớp

Đo g ở ba chiều cao khác nhau: 30 cm, 50 cm, 80 cm. Rồi vẽ đồ thị s theo t².

Ba điểm phải nằm trên một đường thẳng đi qua gốc tọa độ, và độ dốc bằng g/2. Nếu đường thẳng không qua gốc mà cắt trục ở một giá trị dương, đó chính là độ trễ nhả của nam châm hiện hình thành một con số.

Cách này vừa cho kết quả tốt hơn, vừa dạy được kỹ thuật tuyến tính hóa của môn Toán. Với lớp khá, tôi luôn làm theo cách này.

Danh sách kiểm

  • Nam châm hút và nhả được viên bi khi chương trình chạy.
  • Ba lượt liên tiếp cho thời gian chênh nhau dưới 1 ms.
  • Kết quả g nằm trong khoảng 9,7 đến 9,9 m/s².
  • Đổi chiều cao thì g không đổi quá 1%.
  • Học sinh viết được kết quả kèm sai số đúng quy cách.
07

Kinh nghiệm và cạm bẫy

Sai số hệ thống của nam châm — biến khuyết điểm thành bài học

Lần đầu chạy bài này, tôi luôn ra g khoảng 9,72 — thấp hơn giá trị chuẩn một cách đều đặn. Tôi kiểm tra thước, kiểm tra code, không thấy sai đâu.

Rồi tôi hiểu: nam châm điện nhả chậm. Từ trường dư trong lõi sắt giữ viên bi thêm khoảng 3–5 mili giây sau khi cắt điện. Thời gian rơi đo được dài hơn thật, nên g nhỏ hơn thật.

Tôi có thể giấu chuyện này bằng cách nhân một hệ số hiệu chỉnh. Nhưng tôi làm ngược lại: đưa nó vào bài dạy. Hỏi học sinh "kết quả của chúng ta lệch về một phía, chứ không lệch lung tung. Điều đó nói lên cái gì?"

Từ câu hỏi đó, học sinh tự đi tới khái niệm sai số hệ thống, tự nghĩ ra phép thử ba chiều cao để đo chính độ trễ ấy. Bài học hay nhất của tiết học lại đến từ khuyết điểm của thiết bị.

Khoảnh khắc cả lớp im lặng

Tôi luôn cho một nhóm đo song song bằng đồng hồ bấm tay trong khi máy đo. Cùng một lượt thả.

Máy: 0,319 s. Học sinh bấm tay: 0,28 s, 0,35 s, 0,31 s — ba bạn ba số.

Không cần giảng gì thêm về độ tin cậy của dụng cụ đo. Các em tự thấy.

Năm lỗi thường gặp
  • Bi rơi lệch không qua cổng. Nam châm hút bi không đúng tâm. Chỉnh lại giá, và dùng bi to hơn.
  • Kết quả tản mát lớn. Bi còn đung đưa lúc nhả. Tăng thời gian chờ lên 3 giây, và dặn học sinh không chạm vào giá.
  • Ghi nhận hai lần cho một lượt. Bi nảy lên cắt tia lần nữa. Biến da_cham trong mã đã chặn chuyện này.
  • g ra khoảng 4,9. Quên nhân 2 trong công thức, hoặc nhập s bằng centimét thay vì mét. Bảo học sinh tự tìm — đây là bài tập ước lượng độ lớn rất tốt.
  • Nam châm nóng. Bình thường nếu bật liên tục. Nhưng đừng để bật quá lâu giữa các lượt; mã trên đã tắt ngay sau khi thả.
Phương án rẻ hơn nếu chưa có nam châm điện

Dùng hai cổng quang thay vì nam châm. Thả bi bằng tay, đo thời gian bi đi giữa hai cổng. Khi đó công thức là g = 2(d − v₁t)/t², phức tạp hơn một chút nhưng hoàn toàn không phụ thuộc vào thời điểm thả — nên độ trễ nhả tay không còn ảnh hưởng.

Bộ hai cổng quang này cũng chính là bộ dùng cho mười ba bài khác của Vật lí lớp 10, nên nếu phải chọn đầu tư một thứ, hãy chọn nó.

08

Ứng dụng trong dạy học

Vật lí 10Toán 10–11Tin học

Vật lí — bài thực hành theo chương trình, nhưng sâu hơn

Bài này nằm sẵn trong phân phối chương trình, nên không phải xin thêm tiết. Điều thay đổi là trọng tâm của tiết học:

Cách cũCách có cảm biến
Thời gian đo18 phút cho 3 lượt5 phút cho 20 lượt
Thời gian phân tích2 phút15 phút
Câu hỏi trung tâm"g bằng bao nhiêu?""vì sao 20 số này khác nhau, và khác nhau kiểu gì?"

Toán — thống kê trên số liệu của chính mình

Hai mươi giá trị g là bộ dữ liệu lí tưởng để dạy thống kê mô tả. Học sinh tính trung bình, độ lệch chuẩn, vẽ biểu đồ phân bố. Và lần này bộ số liệu không phải trong sách bài tập — nó là kết quả tay các em vừa làm ra.

Câu hỏi nối tiếp rất hay: "muốn giảm sai số của trung bình xuống một nửa thì phải đo bao nhiêu lượt?" Đáp án là gấp bốn lần, vì sai số giảm theo căn bậc hai. Con số này làm học sinh bất ngờ và nhớ lâu.

Tin học — lập trình có mục đích

Đoạn mã trong bài dùng ngắt, vòng lặp, danh sách, và công thức thống kê. Với lớp có học Tin, hãy để chính học sinh viết phần thống kê ở cuối chương trình thay vì cho sẵn.

Bài học STEM 5 hoạt động — "Đồng hồ đo rơi chính xác nhất lớp"

Hoạt động 1 — Xác định vấn đề. Cho cả lớp xem kết quả g = 11,2 của một nhóm năm trước. Sai ở đâu? Làm sao để không sai như thế?

Tiêu chí sản phẩm: đo được g với sai số của trung bình dưới 0,05 m/s²; kết quả kèm sai số; chỉ ra được ít nhất hai nguồn sai số hệ thống và ước lượng độ lớn của chúng; và một nhóm khác dùng thiết bị của mình cũng cho kết quả tương đương.

Hoạt động 2 — Kiến thức nền. Rơi tự do; thời gian phản xạ; ngắt phần cứng; sai số hệ thống và ngẫu nhiên.

Hoạt động 3 — Đề xuất phương án. Mỗi nhóm chọn: thả bằng nam châm hay bằng hai cổng quang, đo ở một chiều cao hay ba chiều cao, đo bao nhiêu lượt. Bảo vệ lựa chọn trước lớp.

Hoạt động 4 — Đo và phân tích. Chạy thí nghiệm, xuất số liệu, tính thống kê, vẽ biểu đồ phân bố.

Hoạt động 5 — Báo cáo và điều chỉnh. Các nhóm so kết quả. Nhóm nào lệch nhiều thì cùng cả lớp truy nguyên nhân — đây thường là phần hay nhất của tiết.

Hướng mở rộng
  • Thả một tờ giấy phẳng và một tờ giấy vo tròn qua cùng hệ thống. Vì sao kết quả khác nhau, và điều đó nói gì về giả thiết "bỏ qua sức cản"?
  • Bài 60 (đo tốc độ bằng cổng quang) và Bài 66 (va chạm và động lượng) dùng chung bộ phần cứng này.
  • Đo g ở tầng trệt và tầng bốn của trường. Chênh lệch lí thuyết là bao nhiêu, và thiết bị của ta có đủ nhạy để thấy không? (Câu trả lời trung thực là không — và đó cũng là một bài học về giới hạn của dụng cụ.)
  • Hướng thi Khoa học kĩ thuật: bộ thí nghiệm rơi tự do giá rẻ dùng chung cho nhiều bài, kèm phần mềm phân tích thống kê tự động cho học sinh.