เริ่มเรียนรู้เกี่ยวกับไฟฟ้า

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

(อัลบั้มบรรยากาศกิจกรรมต่างๆอยู่ที่นี่นะครับ กิจกรรมประถมคราวที่แล้วเรื่อง “หัดเล่นกล ทำเข็มทิศ เล่นกับโมเมนตัมเชิงมุม วางเหล็กให้ลอยน้ำ” ครับ รวมทุกกิจกรรมอยู่ที่นี่นะครับ)

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

อันต่อไปคือทำให้ผ้าพันคอหายไป:

อันสุดท้ายคือชุดเกราะมีชีวิตขยับได้ครับ:

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

จากนั้นเด็กประถมต้นได้รู้จักหลอดไฟ LED ได้เรียนรู้เกี่ยวกับตัวนำไฟฟ้า ฉนวนไฟฟ้า ได้เอามัลติมิเตอร์ไปวัดของต่างๆในห้องว่าอะไรนำไฟฟ้าอะไรเป็นฉนวนไฟฟ้าครับ

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

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

จากนั้นก็ให้เด็กๆได้เห็นมอเตอร์ฟาราเดย์คล้ายๆที่ไมเคิล ฟาราเดย์ประดิษฐ์ไว้เมื่อปี 1821 ครับ

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

ตัวอย่างการจำลองมอเตอร์แบบที่ฟาราเดย์เคยทำสามารถดูได้ที่คลิปนี้ครับ:

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

เด็กๆเข้าแถวเล่นกับมอเตอร์ครับ:

 

วิทย์ม.ต้น: “อะไรอธิบายถึงความรุ่งเรืองของหมู่มนุษย์”, เล่นมอเตอร์ฟาราเดย์

วันนี้เด็กๆม.ต้นดูคลิปที่ Yuval Noah Harari พูดเกี่ยวกับ “อะไรอธิบายถึงความรุ่งเรืองของหมู่มนุษย์” (“What explains the rise of humans?”) ครับ เด็กๆได้เข้าใจเรื่องจินตนาการร่วมกันของคนหมู่มากทำให้จินตนาการนั้นกลายเป็น “เรื่องจริง” ขึ้นมาสำหรับคนหมู่นั้น 

ดูคลิปที่ https://www.english-video.net/v/th/2307 นะครับ
ดูคลิปที่ https://www.english-video.net/v/th/2307 นะครับ

พอดูและคุยกันเสร็จเด็กๆก็เล่นมอเตอร์ฟาราเดย์ครับ เมื่อปี 1821 ไมเคิล ฟาราเดย์ประดิษฐ์อุปกรณ์ที่เปลี่ยนไฟฟ้าให้เป็นการเคลื่อนไหว (หรือเปลี่ยนพลังงานไฟฟ้าเป็นพลังงานกล) และเรียกสิ่งประดิษฐ์นี้ว่ามอเตอร์

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

ตัวอย่างการจำลองมอเตอร์แบบที่ฟาราเดย์เคยทำสามารถดูได้ที่คลิปนี้ครับ:

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

วิทย์ม.ต้น: หัดใช้ List และ Blockใน Scratch

วันนี้เด็กๆม.ต้นหัดใช้ List และ Block ในภาษา Scratch  กันครับ

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

Block ใน Scratch ทำหน้าที่คล้ายๆฟังก์ชั่นในภาษาอื่นๆ คือจะรับข้อมูลเข้าไป (Input) แล้วทำงานตามขบวนการที่เรากำหนดให้ได้ผลออกมา (Result, Output) เราใช้ Block เพื่อซ่อนความซับซ้อนของโปรแกรม เพื่อเวลาเราคิดเขียนโปรแกรแก้ปัญหาอะไรบางอย่าง เราจะได้พยายามแบ่งปัญหานั้นๆให้เป็นปัญหาย่อยๆแล้วค่อยๆแก้ปัญหาย่อยๆนั้นก่อน แล้วเอาทุกอย่างมาประกอบกันเพื่อแก้ปัญหาตั้งต้นของเราในที่สุด

สำหรับเด็กม.3 ผมให้พยายามดัดแปลงการหาห.ร.ม. (GCD = Greatest Common Divisor) คราวที่แล้วที่คำนวณห.ร.ม.สำหรับเลขสองตัวให้คำนวณห.ร.ม.ของตัวเลขหลายๆตัวครับ 

วิธีหาห.ร.ม.ของตัวเลขสองตัวอาจหาได้จากวิธีประมาณนี้ แบบแรกมี recursion คือการเรียกตัวเองของ Block เราตั้งชื่อว่า GCD_recursive:

วิธีหาห.ร.ม.แบบ recursive (เรียกตัวเองไปเรื่อยๆจนได้คำตอบ)
วิธีหาห.ร.ม.แบบ recursive (เรียกตัวเองไปเรื่อยๆจนได้คำตอบ)

แบบที่สองไม่เรียกตัวเอง แต่ทำงานวนไปเรื่อยๆจนได้คำตอบ เราตั้งชื่อว่า GCD_iterative:

วิธีหาห.ร.ม.แบบ iterative (ทำวนไปเรื่อยๆจนได้คำตอบ ไม่ได้เรียกตัวเองแบบ recursive)
วิธีหาห.ร.ม.แบบ iterative (ทำวนไปเรื่อยๆจนได้คำตอบ ไม่ได้เรียกตัวเองแบบ recursive)

เมื่อมีเลขมากกว่าสองตัว เช่นมีเลข A, B, C, D, … เราก็จะหาห.ร.ม.ของ A กับ B ก่อน แล้วเอา C มาหาห.ร.ม.กับผลของห.ร.ม.ของ A และ B แล้วเราก็เอาผลห.ร.ม.ที่ได้ไปหาห.ร.ม.กับ D อีก ทำอย่างนี้ไปเรื่อยๆจนหมดก็จะได้ห.ร.ม.ของเลข A, B, C, D ทั้งหมด ถ้าจะเขียนเป็นสัญญลักษณ์ได้ว่า

GCD(A, B, C, D,…) = GCD( GCD( GCD( A,B ), C ), D,… )

เด็กๆม.สามต้องเขียนโปรแกรมรับค่าตัวเลขหลายๆตัว เอาตัวเลขไปเก็บใน List แล้วหาห.ร.ม.ของตัวเลขทั้งหมด พอดีเวลาหมดก่อนจึงให้ไปทำกันที่บ้านแล้วไว้มาคุยกันต่อครั้งต่อไปครับ

สำหรับเด็กม.  1 และ 2 เราก็ต่อยอดจากคราวที่แล้วที่เด็กๆเขียนโปรแกรมตรวจว่าตัวเลขเป็นจำนวนเฉพาะหรือไม่ โดยคราวนี้หัดเอาส่วนที่ตรวจสอบจำนวนเฉพาะมาทำเป็น Block แล้วเรียกใช้เพื่อหาจำนวนเฉพาะ 100 ตัวแรกไปใส่ใน List

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

หน้าตา Block เพื่อเช็คว่าค่า x เป็นจำนวนเฉพาะหรือเปล่าจะหน้าตาประมาณนี้ครับ:

Block เพื่อตรวจว่า x เป็นจำนวนเฉพาะหรือไม่
Block เพื่อตรวจว่า x เป็นจำนวนเฉพาะหรือไม่

ส่วนที่ไล่ตัวเลขไปเรื่อยๆจนได้จำนวนเฉพาะครบ 100 ตัวจะหน้าตาประมาณนี้ครับ จะมีการเรียกใช้ Block “เป็นจำนวนเฉพาะ” เพื่อตรวจสอบตัวเลขทีละตัวๆ ตัวไหนเป็นจำนวนเฉพาะก็เอาไปใส่ใน List เก็บไว้:

หาจำนวนเฉพาะ 100 ตัวแรก
หาจำนวนเฉพาะ 100 ตัวแรก

ผมเขียนโปรแกรมภาษา Python ที่แก้ปัญหาเดียวกันให้เด็กๆดูด้วยครับ ไว้เทอมหน้าจะเริ่มเรียนกัน

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