Arduino led roulette | ง่ายสุดๆ และน่าทึ่งมาก
สวัสดีทุกคน!!
ก่อนอื่น ขอขอบคุณมากที่คุณตัดสินใจเข้ามาดูโปรเจกต์ของผม ผมซาบซึ้งใจจริงๆ ครับ
เอาละ มาเริ่มกันเลย
ผมเป็นนักเรียนที่โรงเรียนออกแบบในอินเดียในปัจจุบัน โปรเจกต์นี้เกิดขึ้นโดยไม่คาดคิดจริงๆ และผมก็มีความสุขมากที่ได้เห็นผลลัพธ์ของมัน สองสัปดาห์ก่อนหน้านี้ ผมคงไม่แม้แต่จะสนใจค้นหาคำว่า Arduino ด้วยซ้ำ แต่ตอนนี้ผมอยู่ที่นี่แล้ว! กำลังเขียนลง Project Hub เกี่ยวกับโปรเจกต์ Arduino ของตัวเอง! โลกนี้ช่างตลกจริงๆ :)
โปรเจกต์นี้คืออะไร?
เพื่อให้ทุกคนเข้าใจโดยย่อ โปรเจกต์นี้ค่อนข้างเรียบง่าย โดยใช้เพียง Arduino uno หนึ่งตัว, leds บางส่วน, male to male jumper wires, breadboard และ soldering gun เพียงแค่ทำตามไปเรื่อยๆ และผมมั่นใจว่าเมื่อจบบทความนี้ คุณก็จะมีความเข้าใจที่ชัดเจนเกี่ยวกับโปรเจกต์นี้เช่นกัน
หลักการทำงานเป็นอย่างไร?
Arduino จะส่งข้อมูลไปยัง micro-processor และจากนั้นข้อมูลจะไปที่ led เฉพาะผ่าน digital pin ผมคิดว่าเนื่องจากคุณกำลังอ่านเกี่ยวกับ Arduino อยู่แล้ว คุณคงจะทราบว่า digital pins คืออะไร ถึงแม้คุณจะไม่รู้ ก็ไม่ต้องกังวล แค่ลอง Google ดู มันง่ายกว่าโจทย์คณิตศาสตร์ของเด็กประถม 5 ซะอีก ตอนนี้กลับมาที่โปรเจกต์ เมื่อ wires ได้รับสัญญาณ มันจะถูกส่งต่อไปยัง leds ที่แตกต่างกัน คุณสามารถจุด leds หลายตัวพร้อมกันได้ หากคุณมี breadboard ผมได้จัดทำ schematic diagram ซึ่งจะแชร์ให้ดูด้านล่างครับ
โปรเจกต์นี้ยุ่งยากสำหรับใครบ้างไหม?
ไม่เลยครับ แค่มีข้อแนะนำอย่างหนึ่งคือ ให้ทำความเข้าใจในแง่มุมต่างๆ ของโปรเจกต์ก่อนที่จะดำเนินการ Arduino นั้นง่าย การเชื่อมต่อผ่าน wires ก็ง่าย โปรเจกต์ทั้งหมดง่าย และสนุกด้วย! คุณจะรู้สึกยอดเยี่ยมเมื่อสิ้นสุดการเดินทางนี้
มี code หรือไม่?
แน่นอนครับว่ามี ตอนนี้ผมขอสารภาพตรงนี้เลยว่า code ไม่ได้เขียนโดยผม หลังจากค้นหาอย่างเจาะลึกบนอินเทอร์เน็ต ผมก็พบสิ่งที่ทำงานร่วมกับกลไกของผมได้ในที่สุด แม้ว่าคุณจะอ่าน code อย่างละเอียด คุณก็จะเข้าใจว่ามันเกี่ยวกับอะไร
เราจะเข้าใจมันดีขึ้นด้วย schematic diagram ได้หรือไม่?
ได้ครับ ผมได้จัดทำขึ้นมาแล้วและจะอัปโหลดไว้ที่นี่
สรุป
โปรเจกต์นี้เป็นประสบการณ์การเรียนรู้ที่ยอดเยี่ยมอย่างไม่ต้องสงสัย ชุมชนออนไลน์ก็ช่วยให้ผมเข้าใจ Arduino และการทำงานของมันได้ดีขึ้นมาก ผมขอแนะนำให้คุณลองทำโปรเจกต์นี้ดู แล้วบอกผมว่าคุณมีประสบการณ์อย่างไรบ้าง
รายละเอียดทางเทคนิคเพิ่มเติม
การเคลื่อนไหวภาพแบบสุ่ม
โปรเจกต์นี้จำลองวงล้อ "Roulette" แบบวงกลมโดยใช้ LEDs ผสมผสานความน่าจะเป็นแบบสุ่มเข้ากับรูปแบบแสงที่สวยงาม
- Exponential Deceleration Loop: เมื่อกดปุ่ม "Spin" แสงจะเคลื่อนที่อย่างรวดเร็วรอบวงกลมของ 8-12 LEDs firmware ใช้
delay()แบบปรับค่าได้ ซึ่งจะเพิ่มขึ้นแบบ exponential เพื่อจำลองการชะลอตัวที่เกิดจากแรงเสียดทานของลูก Roulette จริง - Atmospheric Noise Seeding: อาศัย analog pin แบบ floating เพื่อสร้าง "Seed" ที่คาดเดาไม่ได้สำหรับฟังก์ชัน
random()ทำให้มั่นใจได้ว่า "Winning Number" นั้นยุติธรรมทางสถิติและคาดเดาไม่ได้ในทุกๆ ครั้ง
สุนทรียศาสตร์
- Winning Flash Animation: เมื่อแสงหยุดที่ตัวเลขใดตัวเลขหนึ่ง Arduino จะเรียกใช้แอนิเมชัน "Strobe" ความเร็วสูง และ "Winning Tone" บน piezo buzzer เพื่อเฉลิมฉลองผลลัพธ์