Category Archives: science class

วิทย์ประถม: เล่นกับแม่เหล็กและไฟฟ้า ทำโฮโมโพลาร์มอเตอร์

ผมไปทำกิจกรรมวิทย์กับเด็กประถมปฐมธรรมครับ เด็กๆหัดคิดแบบวิทย์โดยอธิบายมายากล และได้หัดทำและเล่นโฮโมโพลาร์มอเตอร์ครับ

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

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

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

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

พอเด็กๆรู้วิธีทำก็แยกย้ายกันทำเองครับ:

วิทย์ม.ต้น: ฝึกไพธอน, คลิปน่าสนใจ, Leidenfrost Effect, ฝึก Tracker

1. มีเฉลยการบ้านที่รุ่นพี่เอาไปทำสัปดาห์ที่แล้วครับ

โจทย์ 1: เขียนโปรแกรมรับค่าตัวเลขไปเรื่อยๆ ถ้าจะหยุดให้ใส่คำว่า END แล้วโปรแกรมจะคำนวณค่าเฉลี่ยของตัวเลขที่รับเข้าไป (ใช้ while และ list)

เฉลยแบบที่ 1: คำนวณค่าเฉลี่ยโดยบวกเอง และยังไม่มีการจัดการข้อยกเว้นต่างๆที่ทำให้โปรแกรมพังได้ (ยังไม่มี error handling)

#เขียนโปรแกรมรับค่าตัวเลขไปเรื่อยๆ ถ้าจะหยุดให้ใส่คำว่า END แล้วโปรแกรมจะคำนวณค่าเฉลี่ยของตัวเลขที่รับเข้าไป (ใช้ while และ list)
#พังได้หลายแบบมาก เช่นถ้าสิ่งที่พิมพ์เข้าไปไม่ใช่ตัวเลขและไม่ใช่คำว่า END
#เราจะเรียนรู้เรื่อง exception handling ต่อไป

numbers = []
x = input("ใส่ตัวเลขเข้ามา พิมพ์ END เพื่อหยุด: ")
while x != "END":
    numbers.append(float(x))
    x = input("ใส่ตัวเลขเข้ามา พิมพ์ END เพื่อหยุด: ")
    
print("ตัวเลขคือ ",numbers)
sum = 0
for x in numbers:
    sum = sum + x
average = sum / len(numbers)
print ("ค่าเฉลี่ยคือ", average)

เฉลยแบบที่ 2: คำนวณค่าเฉลี่ยโดยใช้ฟังก์ชั่น sum() ในไพธอน และยังไม่มีการจัดการข้อยกเว้นต่างๆที่ทำให้โปรแกรมพังได้ (ยังไม่มี error handling)

#เขียนโปรแกรมรับค่าตัวเลขไปเรื่อยๆ ถ้าจะหยุดให้ใส่คำว่า END แล้วโปรแกรมจะคำนวณค่าเฉลี่ยของตัวเลขที่รับเข้าไป (ใช้ while และ list)
#พังได้หลายแบบมาก เช่นถ้าสิ่งที่พิมพ์เข้าไปไม่ใช่ตัวเลขและไม่ใช่คำว่า END
#เราจะเรียนรู้เรื่อง exception handling ต่อไป

#ใช้ฟังก์ชั่น sum() ในไพธอน

numbers = []
x = input("ใส่ตัวเลขเข้ามา พิมพ์ END เพื่อหยุด: ")
while x != "END":
    numbers.append(float(x))
    x = input("ใส่ตัวเลขเข้ามา พิมพ์ END เพื่อหยุด: ")
    
average = sum(numbers) / len(numbers)

print ("ตัวเลขคือ ", numbers)
print ("ค่าเฉลี่ยคือ", average)

โจทย์ 2: เขียนโปรแกรมรับค่าตัวเลขไปเรื่อยๆ ถ้าจะหยุดให้ใส่คำว่า END แล้วโปรแกรมจะคำนวณค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานของตัวเลขที่รับเข้าไป (ใช้ while และ list)

เฉลยแบบที่ 1: ใช้ฟังก์ชั่น sum() ในไพธอน คำนวณค่าเบี่ยงเบนมาตรฐานเอง, ไม่มี error handling

#เขียนโปรแกรมรับค่าตัวเลขไปเรื่อยๆ #
#ถ้าจะหยุดให้ใส่คำว่า END แล้วโปรแกรมจะคำนวณค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานของตัวเลขที่รับเข้าไป (ใช้ while และ list)
#พังได้หลายแบบมาก เช่นถ้าสิ่งที่พิมพ์เข้าไปไม่ใช่ตัวเลขและไม่ใช่คำว่า END
#เราจะเรียนรู้เรื่อง exception handling ต่อไป

import math

numbers = []
x = input("ใส่ตัวเลขเข้ามา พิมพ์ END เพื่อหยุด: ")
while x != "END":
    numbers.append(float(x))
    x = input("ใส่ตัวเลขเข้ามา พิมพ์ END เพื่อหยุด: ")
    
average = sum(numbers) / len(numbers)

sum_sq = 0
for x in numbers:
    sum_sq = sum_sq + (x-average)**2


SD = math.sqrt(sum_sq / (len(numbers)-1))
print("ตัวเลขคือ", numbers)
print("ค่าเฉลี่ยคือ", average)
print("ค่าเบี่ยงเบนมาตรฐานคือ ",SD)

เฉลยแบบที่ 2: ใช้ฟังก์ชั่น mean() และ std() ใน numpy, ไม่มี error handling

#เขียนโปรแกรมรับค่าตัวเลขไปเรื่อยๆ #
#ถ้าจะหยุดให้ใส่คำว่า END แล้วโปรแกรมจะคำนวณค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานของตัวเลขที่รับเข้าไป (ใช้ while และ list)
#พังได้หลายแบบมาก เช่นถ้าสิ่งที่พิมพ์เข้าไปไม่ใช่ตัวเลขและไม่ใช่คำว่า END
#เราจะเรียนรู้เรื่อง exception handling ต่อไป

#ใช้ฟังก์ชั่น mean(),std()  ใน numpy

import numpy as np

numbers = []
x = input("ใส่ตัวเลขเข้ามา พิมพ์ END เพื่อหยุด: ")
while x != "END":
    numbers.append(float(x))
    x = input("ใส่ตัวเลขเข้ามา พิมพ์ END เพื่อหยุด: ")
    
average = np.mean(numbers)
SD = np.std(numbers, ddof=1)


print("ตัวเลขคือ", numbers)
print("ค่าเฉลี่ยคือ", average)
print("ค่าเบี่ยงเบนมาตรฐานคือ ",SD)

2. โจทย์รุ่นพี่วันนี้คือเขียนโปรแกรมไพธอนเพื่อแก้ปัญหาเหล่านี้ ข้อที่ทำไม่เสร็จไปทำต่อเป็นการบ้าน:

-เขียนโปรแกรมรับค่าตัวเลขไปเรื่อยๆ ถ้าจะหยุดให้ใส่คำว่า END แล้วโปรแกรมจะคำนวณค่ามากที่สุด น้อยที่สุด (ใช้ while และ list)

-เขียนโปรแกรมรับจำนวนตัวเลขที่จะป้อน แล้วรับตัวเลขไปเรื่อยๆเท่ากับจำนวนครั้งนั้น  แล้วโปรแกรมจะคำนวณค่ามากที่สุด น้อยที่สุด (ใช้ for และ list)

-เขียนโปรแกรมรับจำนวนตัวเลขที่จะป้อน แล้วรับตัวเลขไปเรื่อยๆเท่ากับจำนวนนั้น  แล้วโปรแกรมจะเรียงลำดับตัวเลขเหล่านั้นจากมากไปน้อย (ใช้ for และ list)

-เขียนโปรแกรมรับจำนวนตัวเลขที่จะป้อน แล้วรับตัวเลขไปเรื่อยๆเท่ากับจำนวนนั้น  แล้วโปรแกรมจะเรียงลำดับตัวเลขเหล่านั้นจากน้อยไปมาก (ใช้ for และ list)

3. รุ่นน้องดูคลิปน่าสนใจต่างๆดังนี้:

กาวต่อท่อ PVC หมุนในน้ำ:

จรวดน้ำแข็งแห้ง (อันตรายบ้างถ้าหลบไม่ทัน):

ระเบิดไนโตรเจนเหลว (อันตราย):

เทไนโตรเจนเหลวบนมือแล้วเกิดอะไรขึ้น:

เดินบนไฟได้อย่างไร:

และการทดลอง(ที่อันตรายที่สุดถ้าพลาด) ดูว่าเอามือของเราไปจุ่มในตะกั่วเหลวร้อนๆได้หรือไม่ ถ้าได้ทำอย่างไร

ปรากฏว่าทำได้ครับถ้าตะกั่วเหลวนั้นร้อนมากๆ (ตะกั่วเริ่มเป็นของเหลวที่ประมาณ 330 องศาเซลเซียส ในการทดลองเขาต้มตะกั่วจนร้อนประมาณ 450 องศาเซลเซียส) แล้วเอามือจุ่มน้ำให้เปียก แล้วจุ่มลงไปในตะกั่วแป๊บเดียวแล้วดึงออก (ถ้าตะกั่วไม่ร้อนมากพอ เวลาเอามือไปจุ่ม ตะกั่วจะเย็นลงพอเพียงที่จะเป็นของแข็งแล้วติดนิ้วขึ้นมาทำให้เป็นอันตราย)

สาเหตุที่สามารถจุ่มนิ้วเข้าไปในตะกั่วเหลวร้อนมากๆแล้วไม่เป็นอันตรายก็เพราะน้ำที่ติดนิ้วอยู่จะโดนความร้อนจากตะกั่วจนกลายเป็นไอน้ำ เจ้าไอน้ำจะเป็นตัวกั้น เป็นฉนวนความร้อนป้องกันไม่ให้ความร้อนจากตะกั่วทำอันตรายนิ้วได้ แต่ถ้าแช่ไว้นานๆน้ำก็จะระเหยเป็นไอหมดและนิ้วก็จะไหม้ได้

ปรากฏการณ์นี้เป็นเรื่องเดียวกับเวลาเราหยดน้ำไปบนกระทะร้อนๆแล้วหยดน้ำลอยอยู่บนกระทะได้นานๆ เราจะสังเกตได้ว่าเวลากระทะร้อนแต่ยังไม่ร้อนมากพอ เมื่อเราหยดน้ำลงไปน้ำจะฟู่ๆแล้วระเหยหายไปอย่างรวดเร็ว นี่เป็นเพราะความร้อนจากกระทะทำให้หยดน้ำส่วนที่ติดกับกระทะร้อนกลายเป็นไอ แต่เมื่อกระทะร้อนขึ้นมากๆ ไอน้ำที่เกิดขึ้นจะเกิดขึ้นเร็วพอและมากพอที่จะกลายเป็นชั้นไอน้ำรองรับหยดน้ำให้ลอยอยู่เหนือกระทะนานๆเนื่องจากชั้นไอน้ำนำความร้อนได้ช้ากว่าเวลาหยดน้ำติดกับกระทะตรงๆ ปรากฏการณ์นี้เรียกว่า “ปรากฏการณ์ลีเดนฟรอสท์” (Leidenfrost Effect)

4. รุ่นน้องหัดใช้ Tracker ต่อ โดยทำตามวิธีในคลิปนี้ คราวนี้หัดใช้ Auto Tracker ติดตามภาพวัตถุที่สนใจครับ:

เด็กๆสามารถโหลดไฟล์วิดีโอการทดลองต่างๆไปหัดใช้กับ Tracker ได้จากลิงก์นี้ครับ

วิทย์ม.ต้น: อย่าโดนหลอกโดยหมอดูและผู้วิเศษทั้งหลาย, การเหนี่ยวนำไฟฟ้า, โฮโมโพลาร์มอเตอร์

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

1. คนเชื่อหมอดูเพราะคนเลือกฟังเลือกจำ (Confirmation Bias) ดังนั้นมักจะจำคำทำนายที่ตนเองคิดว่าใกล้เคียง และลืมคำทำนายที่ไม่ถูก หมอดูรู้จักอ่านปฏิกริยาตอบสนองของลูกค้า (เทคนิคพวก Cold Reading) หมอดูพูดข้อมูลที่เข้ากันได้กับผู้คนทั่วไปออกมาหลากหลาย (Forer Effect) แล้วให้ลูกค้าเลือกฟังเลือกจำเอง

2. ตัวอย่างนักเล่นกลที่หลอกชาวบ้านว่าเป็นผู้วิเศษและหาเงินได้เป็นแสนล้านบาทก็เช่นไสบาบา หรือนักเขียนนิยายวิทยาศาสตร์ที่ตั้งศาสนาหาเงินเช่น L. Ron Hubbard ที่ก่อตั้ง Scientology

3. คนที่เชื่ออะไรไปแล้วบางทีจะไม่สามารถเปลี่ยนความเชื่อได้ด้วยเหตุผล หลักฐาน ข้อมูลต่างๆ โดยจะปฏิเสธสิ่งที่ขัดกับความเชื่อตนเองหรือสร้างคำอธิบายต่างๆให้ความเชื่ออยู่รอดต่อไปแม้จะขัดกับหลักฐานก็ตาม (พยายามกำจัด Cognitive Dissonance)

4. แนะนำให้เด็กอ่านโพสต์นี้ครับ:

เคยเจอใครที่เป็นแบบนี้ไหมครับ ? เขาทำความผิดอะไรบางอย่าง ซึ่งเขาไม่รู้ว่าตัวเองทำผิด แต่เมื่อมีคนชี้ให้เห็นว่าเขาทำผิด…

Posted by เรื่องเล่าจากร่างกาย by หมอเอ้ว ชัชพล on Saturday, November 7, 2020

5. เด็กๆได้ดูคลิปว่าแม่เหล็กแรงๆดูดเหล็กในเลือดเราหรือไม่:

6. คุยกันเรื่องกระแสไฟฟ้าทำให้เกิดสนามแม่เหล็ก ทดลองโดยตัดฟอยล์อลูมิเนียมเป็นเส้นยาวๆ เอาแม่เหล็กๆมาอยู่ใกล้ๆ มันก็ไม่ดูดกัน เมื่อปล่อยไฟฟ้าผ่านเส้นฟอยล์อลูมิเนียมใกล้ๆแม่เหล็ก ปรากฎว่าฟอยล์ขยับตัวครับ เราสังเกตว่าเส้นอลูมิเนียมมันขยับตัวเมื่อมีไฟฟ้าผ่านมัน และถ้าสลับขั้วไฟฟ้ามันก็ขยับต่างจากเดิมด้วย นอกจากนี้ถ้าเราวางแม่เหล็กให้มันขยับง่ายๆ แม่เหล็กเองก็ขยับตัวด้วยในบางครั้ง เราถ้าเราปล่อยกระแสไฟฟ้าเป็นจังหวะ ฟอยล์ก็จะขยับตาม นี่คือคลิปการทดลองในอดีตครับ:

หลักการนี้ใช้ประดิษฐ์ลำโพงด้วยครับ ลำโพงทำงานโดยมีแผ่นกระดาษหรือพลาสติกบางๆติดอยู่กับขดลวดที่ถูกล้อมรอบด้วยแม่เหล็ก เมื่อมีกระแสไฟฟ้าวิ่งเข้าขดลวดก็จะทำให้ขดลวดเป็นแม่เหล็กไฟฟ้า เกิดการผลักและดูดกับแม่เหล็กทำให้ขดลวดและแผ่นกระดาษหรือพลาสติกบางๆขยับตัว ดันอากาศออกมาเป็นคลื่นเสียง ลำโพงเป็นอุปกรณ์ที่เปลี่ยนสัญญาณไฟฟ้าเป็นการเคลื่อนไหวที่ทำให้เกิดการสั่นของอากาศที่เป็นเสียงนั่นเอง:

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

7. เราใช้ไฟฟ้าและแม่เหล็กสร้างมอเตอร์แบบง่ายๆ หลักการคือเมื่อกระแสไฟฟ้าไหลใกล้ๆแม่เหล็ก จะมีแรงดูดหรือแรงผลักกระทำกับกระแสไฟฟ้าและแม่เหล็ก แรงที่ว่านี้จะตั้งฉากกับทั้งทิศทางการไหลของกระแส และทิศทางของสนามแม่เหล็ก เราสามารถแสดงผลของแรงอันนี้ได้ด้วยการสร้างมอเตอร์แบบง่ายๆที่เรียกว่า โฮโมโพลาร์มอเตอร์ ดังวิธีทำในคลิปด้านล่าง:

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

วันนี้ในวิทย์ม.ต้น เราคุยกันว่าหมอดูอาศัยจุดอ่อนในการทำงานของสมองเราเพื่อหากินอย่างไร (พวก Forer Effect, Confirmation…

Posted by Pongskorn Saipetch on Tuesday, November 17, 2020