วิทย์ประถม: เรื่องแปลกของการหมุน, ของเล่นชอบหมุนทางเดียว (Rattleback)

ผมไปทำกิจกรรมวิทย์กับเด็กๆประถมศูนย์การเรียนปฐมธรรมครับ เด็กๆหัดคิดแบบวิทย์โดยพยายามอธิบายมายากล  แล้วก็ได้เล่นกับการหมุนแบบแปลกๆเช่นของเล่น Rattleback และรู้จักการหมุนในบางแกนจะไม่สามารถหมุนตามแกนนั้นได้ตลอด (Tennis Racket Theorem)

(อัลบั้มบรรยากาศกิจกรรมอยู่ที่นี่ ส่วนลิงก์รวมทุกกิจกรรมอยู่ที่นี่นะครับ)

ก่อนอื่นเด็กๆประถมได้ดูมายากลเหล่านี้ครับ ดูเฉพาะตอนแรกที่เป็นกล ยังไม่ดูส่วนเฉลยตอนหลัง แล้วดูเฉลยหลังจากได้พยายามคิดพยายามอธิบายว่ากลแต่ละกลทำอย่างไรกันก่อน วันนี้คือกลเปิดหน้านักเล่นกลครับ:

กิจกรรมนี้ฝีกเด็กๆให้คิดแบบวิทยาศาสตร์ มีการสังเกต การตั้งสมมุติฐานเพื่ออธิบายสิ่งที่สังเกตมา การตรวจสอบสมมุติฐานกับข้อมูลที่สังเกตมา การตั้งสมมุติฐานใหม่เมื่อสมมุติฐานเดิมขัดกับข้อมูล นอกจากนี้เราพยายามให้เด็กๆมีความกล้าคิดและออกความเห็นครับ

ต่อจากนั้นผมก็สอนเด็กให้สังเกตว่าของแข็งรอบๆตัวเราจะมีแกนหมุนหลักสามแกน (Principal Axes of Rotation) โดยที่ทั้งสามแกนจะตั้งฉากกัน ยกตัวอย่างเช่นสำหรับไม้เทนนิส แกนทั้งสามจะอยู่ในทิศทางดังในรูป:

หรือสำหรับลูกบิดรูปตัว T แกนทั้งสามก็จะเป็นดังในรูป

หรือถ้าเป็นหนังสือปกแข็งสี่เหลี่ยม แกนทั้งสามก็จะขนานกับด้านกว้างสูงหนาของหนังสือ

ถ้าเราโยนวัตถุให้หมุนรอบแกนหลักแกนใดแกนหนึ่ง เราจะพบว่าจะมีอยู่หนึ่งแกนที่วัตถุไม่ยอมหมุนดีๆนิ่งๆ แต่จะบิดตัวไปมา ขณะที่แกนอื่นๆจะโยนให้หมุนได้นิ่งๆไม่มีปัญหา ความจริงนี้เรียกว่า Tennis Racket Theorem หรือ Intermediate Axis Theorem (ทฤษฎีบทไม้เทนนิส หรือทฤษฎีบทแกนที่สอง) เหมาะเป็นแบบฝึกหัดให้นักศึกษาฟิสิกส์หรือวิศวกรรมศาสตร์คำนวณดูครับ

ผมโยนวัตถุต่างๆให้เด็กๆดูเป็นตัวอย่างครับ:

ต่อจากนั้นผมก็เอาของเล่นที่เรียกว่า Rattleback (แรทเทิลแบ็ค) ที่เป็นชิ้นพลาสติกโค้งๆที่ไม่สมมาตรมาให้เด็กๆดูครับ หน้าตามันเป็นประมาณนี้:

ของเล่นพวกนี้มันประหลาดตรงที่ถ้าเราหมุนมันในทิศทางหนึ่งมันจะหมุนง่ายๆ แต่ถ้าหมุนอีกทิศทางมันจะสั่นๆแล้วหยุด แล้วหมุนสวนทางนิดหน่อย

พอผมแสดงตัวอย่างต่างๆให้เด็กดูแล้ว เด็กๆก็ทดลองและเล่นเองครับ

ผมใช้คลิปวิดีโอเหล่านี้ช่วยให้เด็กเข้าใจมากขึ้นครับ ไม่ได้โชว์ทั้งหมดแต่เลือกบางส่วนเท่าที่มีเวลาครับ:

หมุนลูกบิดในยานอวกาศให้เห็นการบิดตัวไปมาชัดๆครับ
Tennis Racket Theorem ทำงานอย่างไร
Rattleback แบบต่างๆ และของรอบตัวที่หมุนเหมือนกัน
Rattleback ทำงานอย่างไร

เวลาเหลือนิดหน่อยผมให้เด็กประถมปลายดูว่ายาน Perseverance ที่จะไปลงดาวอังคารวันที่ 18 กุมภาหน้าตาเป็นอย่างไรด้วยครับ:

อันนี้คือโดรนที่จะไปบินที่ดาวอังคาร:

วิทย์ม.ต้น: หัดไพธอน, เราขว้างลูกปิงปองได้เร็วเท่าไร

วันนี้เราคุยกันเรื่องเหล่านี้ครับ:

1. แนะนำลิงก์วิดีโอใน YouTube เพื่อไปศึกษาเกี่ยวกับไฟฟ้า และหัดใช้ภาษาอังกฤษ แนะนำให้ดูลิสต์ Electrical Engineering Basics ที่ https://www.youtube.com/playlist?list=PLWv9VM947MKi_7yJ0_FCfzTBXpQU-Qd3K

2. พี่ม.2 หัดเขียนไพธอนกันต่อ วันนี้รู้จักการเปลี่ยนอักษรภาษาอังกฤษเป็นตัวใหญ่ตัวเล็ก (ใช้ฟังก์ชั่น upper, lower, title) ใช้ slice ในสตริง (เช่น x[5:8], x[:10], x[3:], x[:]) รู้จักฟังก์ชั่นในโมดูล math (เช่น math.pi, math.floor, math.ceil)

3. น้องม.1 ดูคลิปการทดลองอันตรายจาก ElectroBoom ได้เรียนรู้เรื่องไฟฟ้าโวลท์สูงๆวิ่งผ่านอากาศ หม้อแปลงแปลงโวลท์ขึ้นลง (การทดลองนี้อันตรายถึงตายได้ถ้าพลาด ห้ามเล่นเอง)

4. ผมเอาลูกบอลต่างๆมาปล่อยให้กระเด้ง ให้เด็กๆม.1 สังเกตว่ามันกระเด้งไม่สูงเท่ากับระดับความสูงที่ปล่อย เพราะมีการสูญเสียพลังงานเป็นการสั่นสะเทือนต่างๆ (ที่พื้น ในลูกบอล ในอากาศเป็นเสียง) และโดนอากาศต้านทานการเคลื่อนที่

5. เด็กๆม.1 ดูคลิปน่าสนใจเหล่านี้ เช่นการยุบตัวของลูกกอล์ฟ และความเร็วเท่าไรจะทำให้ลูกกอล์ฟสูญเสียรูปทรง:

https://www.youtube.com/watch?v=AkB81u5IM3I

ปืนใหญ่อากาศยิงลูกปิงปองความเร็วสูง:

6. เด็กๆม.1 พยายามหาว่าเราขว้างลูกปิงปองได้เร็วแค่ไหน เราถ่ายวิดีโอแบบสโลโมชั่นด้วยกล้องมือถือที่ 240 เฟรมต่อวินาที แล้วโหลดวิดีโอเข้าไปวัดสิ่งต่างๆในโปรแกรม Tracker พบว่าเราขว้างลูกปิงปองได้ระหว่าง 50-72 กิโลเมตรต่อชั่วโมงครับ

7. บรรยากาศกิจกรรมวันนี้ครับ:

บรรยากาศวิทย์ม.1 ตอนทำการทดลองวัดว่าเราขว้างลูกปิงปองได้เร็วเท่าไร (ได้ 50-72 กิโลเมตรต่อชั่วโมง และถ้าใช้ไม้ปิงปองตีน่าจะได้เร็วกว่ามือขว้าง)

Posted by Pongskorn Saipetch on Thursday, December 24, 2020

วิทย์ม.ต้น: หัดไพธอน, เปรียบเทียบการตกลูกบอล

วันนี้เราคุยกันเรื่องพวกนี้ครับ:

1. รุ่นพี่ฝึกไพธอนกันต่อ เขียนโปรแกรมแก้ปัญหาเล็กๆหลายๆอัน มีเฉลยการบ้านจากสัปดาห์ที่แล้วให้เด็กๆไปค้นคว้าหาทางคำนวณด้วยเศษส่วน หน้าตาประมาณนี้ (โปรแกรมเบื้องต้น ไม่มี error handling เพื่อให้เข้าใจง่าย)

# เขียนโปรแกรมรับ เศษและส่วน ตัวที่ 1 และตัวที่ 2
# หาค่า +, -, *, / ของเศษส่วน 1 และ 2

from fractions import Fraction as frac

x1 = int(input("ใส่เศษตัวแรก: "))
x2 = int(input("ใส่ส่วนตัวแรก: "))

y1 = int(input("ใส่เศษตัวที่สอง: "))
y2 = int(input("ใส่ส่วนตัวที่สอง: "))
 
x = frac(x1,x2)
y = frac(y1,y2)

print(f"{x} + {y} = {x+y}")
print(f"{x} - {y} = {x-y}")
print(f"{x} * {y} = {x*y}")
print(f"{x} / {y} = {x/y}")

นอกจากนี้ผมแสดงให้เด็กๆดูว่าใช้ฟังก์ชั่น limit_denominator ในโมดูล fractions หาเศษส่วนมาประมาณค่าต่างๆอย่างไร เช่นอันนี้ประมาณค่าพาย = 3.141592653… ให้ใกล้เคียงที่สุดด้วยเศษส่วนที่ส่วนมีขนาดไม่เกิน 1, 10, 100, … ครับ:

# ประมาณค่าพายด้วยเศษส่วน

from fractions import Fraction as frac

#ค่าพาย 200 หลัก
my_pi = "3.14159265358979323846264338327950288419716939937510582097494459230781\
6406286208998628034825342117067982148086513282306647093844609550582231\
7253594081284811174502841027019385211055596446229489549303820"


for e in range(10):
    #print(frac(my_pi).limit_denominator(10 ** e))
    x = frac(my_pi).limit_denominator(10 ** e)
    print(f"ประมาณค่าพายเป็นเศษส่วน โดยส่วนไม่เกิน {10**e:,}: {x} ≈ {float(x)}")
    

ได้ผลลัพธ์หน้าตาแบบนี้:


ประมาณค่าพายเป็นเศษส่วน โดยส่วนไม่เกิน 1: 3 ≈ 3.0
ประมาณค่าพายเป็นเศษส่วน โดยส่วนไม่เกิน 10: 22/7 ≈ 3.142857142857143
ประมาณค่าพายเป็นเศษส่วน โดยส่วนไม่เกิน 100: 311/99 ≈ 3.1414141414141414
ประมาณค่าพายเป็นเศษส่วน โดยส่วนไม่เกิน 1,000: 355/113 ≈ 3.1415929203539825
ประมาณค่าพายเป็นเศษส่วน โดยส่วนไม่เกิน 10,000: 355/113 ≈ 3.1415929203539825
ประมาณค่าพายเป็นเศษส่วน โดยส่วนไม่เกิน 100,000: 312689/99532 ≈ 3.1415926536189365
ประมาณค่าพายเป็นเศษส่วน โดยส่วนไม่เกิน 1,000,000: 3126535/995207 ≈ 3.1415926535886505
ประมาณค่าพายเป็นเศษส่วน โดยส่วนไม่เกิน 10,000,000: 5419351/1725033 ≈ 3.1415926535898153
ประมาณค่าพายเป็นเศษส่วน โดยส่วนไม่เกิน 100,000,000: 245850922/78256779 ≈ 3.141592653589793
ประมาณค่าพายเป็นเศษส่วน โดยส่วนไม่เกิน 1,000,000,000: 2549491779/811528438 ≈ 3.141592653589793

แนะนำให้เด็กๆศึกษาตัวอย่างเรื่อง fractions ที่ https://www.tutorialspoint.com/fraction-module-in-python และเรื่อง f-string ที่ https://careerkarma.com/blog/python-f-string/ นะครับ

2. ให้โจทย์รุ่นน้องสังเกตดูว่าลูกบอลต่างๆ (ลูกบอลยาง, ลูกบาส, ลูกปิงปอง, ลูกบอลโฟม) ตกลงพื้นเร็วเท่ากันไหม ลูกไหนตกเร็วหรือตกช้า เด็กๆก็จัดการถ่ายวิดีโอแล้วใส่เข้าไปในโปรแกรม Tracker เพื่อนับการเคลื่อนที่แต่ละเฟรม หรือบางคลิปก็วัดตำแหน่งที่เวลาต่างๆด้วยครับ

บรรยากาศตอนทดลองเป็นแบบนี้:

ให้เด็กๆสังเกตดูว่าลูกบอลต่างๆ (ลูกบอลยาง, ลูกบาส, ลูกปิงปอง, ลูกบอลโฟม) ตกลงพื้นเร็วเท่ากันไหม ลูกไหนตกเร็วหรือตกช้า…

Posted by Pongskorn Saipetch on Thursday, December 17, 2020

ผมเล่าให้เด็กๆฟังว่าเวลามีของตกจากที่สูง มันจะตกเร็วขึ้นเรื่อยๆเนื่องจากแรงดึงดูดของโลก แต่ขณะเดียวกันยิ่งมันตกเร็วเท่าไร แรงต้านอากาศก็จะเพิ่มขึ้นตาม ทำให้ของแต่ละอย่างตกลงมาด้วยความเร็วต่างกันขึ้นอยู่กับรูปร่างความสามารถในการแหวกอากาศและความหนาแน่นของมัน ความเร็วสูงสุดที่ของแต่ละชิ้นที่จะตกลงมาได้เรียกว่า Terminal Velocity สำหรับคนที่กระโดดมาจากเครื่องบินแต่ร่มไม่กางความเร็วสูงสุดจะประมาณ 200-300 กิโลเมตรต่อชั่วโมง (ขึ้นกับว่ากางแขนขาเพื่อต้านลมหรือเปล่า)  แม้ว่าความเร็วการตกจะเร็วแบบนั้น แต่ก็มีคนรอดชีวิตหลายคนด้วยความโชคดีต่างๆเช่นตกโดนต้นไม้อ่อน ตกโดนสายไฟ ตกลงน้ำ

ไฟล์วิดีโอต่างๆที่ถ่ายวันนี้โหลดได้ที่นี่เผื่อใครต้องการใช้ Tracker จับตำแหน่งการตกนะครับ

บันทึกกิจกรรมวิทยาศาสตร์สำหรับเด็กๆ อยากให้คุณพ่อคุณแม่คุณครูเอาไปประยุกต์เล่นกับเด็กๆเยอะๆครับ :-)