สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
จุดประสงค์ของ Bright Paths คือการสอนนักเรียนเกี่ยวกับ Minimum Spanning Trees (MSTs) โหนด A เป็นแหล่งที่มาและโหนดอื่นๆ ทั้งหมดมีน้ำหนัก (ราคา) ที่แน่นอนเพื่อเข้าถึง สื่อการสอนนี้แสดงให้เห็นว่าค่าใช้จ่ายนั้นเกิดจากการหรี่แต่ละโหนด ขึ้นอยู่กับต้นทุนของโหนดนั้น ฉันวางแผนที่จะพูดคุยเกี่ยวกับโหนดราวกับว่าเป็นร้านค้าที่ต้องการการส่งมอบและขึ้นอยู่กับเส้นทางที่ไป ค่าใช้จ่ายของแสง (น้ำหนัก) จะมากเกินไป ผลลัพธ์ที่ได้คือ LED ที่หรี่ลงหรือดับลง ขึ้นอยู่กับน้ำหนักอีกครั้ง โดยรวมแล้วเป็นวิธีที่ดีในการทำให้ปัญหานี้ง่ายขึ้นสำหรับนักเรียน ปัญหานี้เรียกอีกอย่างว่าปัญหาพนักงานขายการเดินทาง
ขั้นตอนที่ 1: เครื่องมือและวัสดุสิ้นเปลือง
เสบียง
- Foamcore เพื่อถือ MST. ของคุณ
- สายจัมเปอร์สำหรับเชื่อมต่อ beadboard ของคุณกับ MST
- สายจัมเปอร์สำหรับเชื่อมต่อ Arduino กับเขียงหั่นขนม
- ไฟ LED แปดดวงที่มีสีเดียวกันเพื่อเป็นตัวแทนของโหนด
- ตัวต้านทาน 220ohm แปดตัวสำหรับ LEDs
- Arduino เพื่อควบคุมความสว่าง
- Shift Register เพื่อรับเอาต์พุต PWM เพิ่มเติม
เครื่องมือ
- ปืนกาวร้อนถือ LEDs
- อุปกรณ์ศิลปะในการวาด MST
- คอมพิวเตอร์สำหรับการเขียนโปรแกรม
ขั้นตอนที่ 2: การวาดและไฟ LED สำหรับ MST
- ฉันพิมพ์ออกมาหนึ่งเล่มจากตำราเรียนเก่าของฉันและเจาะรูผ่านโหนดที่พิมพ์บนแกนโฟม
- ฉันวาดขอบด้วยน้ำหนักตามลำดับบนแกนโฟมและติดฉลากโหนด A-H
- ฉันผลักไฟ LED ผ่านกระดาน (ที่ด้านบนของโหนด) โดยให้หมุดยาวหงายขึ้นเพื่อให้ฉันรู้ว่าจะส่งสัญญาณไปที่พินใดในภายหลัง นอกจากนี้ ให้ดันหมุดลงเพื่อยึดเข้าที่
- ติดกาว LED ให้เข้าที่
- ใส่สายตัวเมียกับตัวผู้บนหมุด LED ฉันทำลวดสีอ่อนกว่าบนหมุดสูงของเราหรือที่หงายขึ้น
ขั้นตอนที่ 3: เขียงหั่นขนม
Sparkfun มีคำแนะนำที่ยอดเยี่ยมสำหรับการลงทะเบียนกะ และคุณสามารถปฏิบัติตามนี้สำหรับการเดินสายทั้งหมด ข้อแตกต่างเพียงอย่างเดียวคือไฟ LED นั้นต่อสายด้วยสายจัมเปอร์แบบยาว ไม่ใช่กับบอร์ดโดยตรง สำหรับรหัสของฉัน ให้ตรึง 0-7 บน shift register ขึ้นบรรทัดกับ A-H บน MST
ขั้นตอนที่ 4: รหัส
จุดประสงค์ของรหัสคือเปลี่ยนความสว่างของ LED ตามน้ำหนักของโหนด ในภาพทางขวา มันแสดง wgtA ถึง wgtH ค่าเหล่านี้เป็นค่าที่คุณสามารถเปลี่ยนเพื่อแสดงปริมาณน้ำหนักบน LED บางตัวได้ การเปลี่ยนแปลงความสว่างทำได้โดย:
sr.set(ledA, 255/wgtA*1.1)
เส้นนี้จะตั้งค่าความสว่างสูงสุดหารด้วยน้ำหนักคูณด้วยจำนวนเพื่อให้แสงมองเห็นได้ ความสว่างจะลดลงเมื่อน้ำหนักเพิ่มขึ้น และสิ่งนี้จะเสร็จสิ้นสำหรับ LED ทุกดวง
ขั้นตอนที่ 5: ปัญหาและอนาคต
ฉันเริ่มโครงการนี้ด้วยไฟ LED สีน้ำเงินสี่ดวงและไฟ LED สีเขียวสี่ดวง แต่พบปัญหาเมื่อพยายามเปรียบเทียบความสว่าง ฉันแก้ไขปัญหานี้โดยค้นหาสีน้ำเงินเพิ่มอีกสี่ตัว แต่ให้คำนึงถึงสิ่งนี้เมื่อเลือก LED ฉันยังต้องพกพา Arduino เขียงหั่นขนมและแล็ปท็อปแยกกัน ดังนั้นการสร้างกล่องหุ้มเพื่อยึด Arduino และเขียงหั่นขนมจะเป็นการปรับปรุงที่ดีในอนาคต นอกจากนี้ยังเป็นการดีที่จะเพิ่มแอนิเมชั่นให้กับไฟ LED เพื่อช่วยให้เห็นภาพว่าเส้นทางใดที่กำลังดำเนินไป โดยรวมแล้ว วิธีที่ดีในการแสดงให้เห็นว่า MST ทำงานอย่างไร และฉันหวังว่าจะได้ใช้มันมากขึ้น