หน้าแรก ดูโปรเจกต์ทั้งหมด
Expert

โปรเจกต์ Fake Geiger Counter พร้อมระบบ Indoor Positioning

สร้างการแจ้งเตือน Geiger counter ในตำแหน่งที่กำหนด โดยไม่ต้องใช้สารกัมมันตรังสีจริง เหมาะอย่างยิ่งสำหรับเกม escape room!

โปรเจกต์ Fake Geiger Counter พร้อมระบบ Indoor Positioning

วิดีโอสาธิต

Video

▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์

รายการอุปกรณ์และเครื่องมือ

1x Pozyx tag
-
1x Pozyx anchor
-

รายละเอียดและวิธีทำ

แนวคิดพื้นฐาน

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

ผมสร้างขึ้นมาสองรูปแบบ แบบแรกจะอ้างอิงตามระยะห่างระหว่าง Geiger counter กับอุปกรณ์อื่น และอีกแบบจะอ้างอิงตามตำแหน่งของ Geiger counter คุณสามารถดูการทำงานได้ที่นี่ ลองสังเกตที่หน้าปัดบนตัวเครื่องเมื่อ tag เข้ามาใกล้ขึ้น

ทำไมผมถึงสร้างสิ่งนี้ขึ้นมา?

ผมทำงานที่ Pozyx และหลังจากได้เล่นเกม escape room ผมก็จินตนาการว่าระบบ indoor positioning จะสามารถนำมาใช้ทำให้ escape room มีความน่าสนใจและโต้ตอบได้มากขึ้นได้อย่างไร สำหรับคนที่ไม่รู้จักคอนเซปต์ของ escape room: มันคือเกมที่คุณเล่นกับเพื่อนๆ โดยจะถูกขังไว้ในห้องเป็นเวลา 1 ชั่วโมง และต้องช่วยกันแก้ปริศนาเพื่อหาทางออก นี่คือที่มาของไอเดียการทำ Geiger counter จำลองนี้ คุณสามารถนำไปใช้ให้คนหาเบาะแสที่ซ่อนอยู่ในฉากยุคหลังโลกล่มสลาย (post-apocalypse) หรือฐานยิงขีปนาวุธนิวเคลียร์ได้

Components

  • Arduino: นี่คือจุดที่ code จะทำงาน
  • Pozyx tag: Pozyx tag คือ shield ที่ใช้งานร่วมกับ Arduino ได้ ซึ่งสามารถวัดระยะทางแบบไร้สายหรือระบุตำแหน่งด้วยความแม่นยำ 10cm โดยใช้เทคโนโลยี ultra-wideband (UWB)
  • Pozyx anchor(s): การวัดระยะทางจะเกิดขึ้นร่วมกับอุปกรณ์ Pozyx อีกตัว ส่วนการระบุตำแหน่งจะต้องใช้ 4 anchors (คล้ายกับ GPS) ระบบ Pozyx มีความแม่นยำเพียงพอและทนทานต่อสิ่งกีดขวางหรือสิ่งสะท้อนในสภาพแวดล้อม ทำให้เหมาะสำหรับใช้งานภายในอาคาร แม้จะนำระบบไปใส่ไว้ในเคส Geiger counter ที่เป็นโลหะก็ยังทำงานได้
  • Buzzer: Buzzer ใช้สำหรับสร้างเสียง หากคุณคิดว่า Buzzer เสียงดังไม่พอ คุณสามารถดู this older tutorial ที่ใช้ลำโพงเพื่อเลียนแบบเสียง Geiger counter ได้

เสียง Geiger แบบอ้างอิงตามระยะทาง

Geiger counter มีเสียงแคร็กที่เป็นเอกลักษณ์มาก เราต้องการเลียนแบบเสียงนี้ด้วย Buzzer ง่ายๆ และทำให้ความถี่ของเสียงเพิ่มขึ้นเมื่อเข้าใกล้ anchor เพื่อสร้างเสียงที่เป็นเอกลักษณ์นี้ ผมได้ทำสิ่งต่างๆ ดังนี้:

  • เพิ่มค่า delay พื้นฐานระหว่างเสียง beeps ที่แปรผันตามระยะห่างจากเป้าหมาย โดยมีค่า base delay สูงสุด 3 วินาที
  • นอกเหนือจากค่า delay พื้นฐาน จะมีการสุ่มค่าความต่างอีกไม่เกิน 150ms
  • มีโอกาส 20% ที่จะไม่มี delay เลย ซึ่งจะทำให้เกิดเสียงแคร็กที่เป็นเอกลักษณ์เป็นระยะๆ
  • ความถี่ของเสียง buzzing จะสุ่มในช่วง 350 ถึง 550kHz

คุณยังสามารถปรับเปลี่ยนตัวเลขด้านบนเพื่อเปลี่ยนความไวของ Geiger counter ได้ นี่คือแผนภูมิการทำงานของ Buzzer เมื่อเข้าใกล้ anchor

ตัวอย่างจังหวะเวลาของ Buzzer เมื่อเคลื่อนที่ไปรอบๆ anchor

Indoor positioning

เสียงของ Geiger counter ขึ้นอยู่กับระยะห่างจากเป้าหมาย ด้วยระบบ Pozyx นี่อาจเป็นระยะทางที่วัดได้ระหว่าง tag และ anchor อีกทางหนึ่ง เมื่อใช้ระบบ Pozyx ในการระบุตำแหน่ง ระยะทางจะสามารถอ้างอิงกับจุดใดก็ได้ที่คุณกำหนดไว้ในพื้นที่ ช่วยให้เราตั้งค่า Geiger counter ในจุดที่ไม่มีอุปกรณ์ติดตั้งอยู่จริงๆ ได้ เยี่ยมไปเลย!

วิธีที่ง่ายที่สุดในการเริ่มต้นคือการใช้การวัดระยะ (ranging) กับ anchor เพียงตัวเดียว ลองดู sketch แรกด้านล่างนี้ สำหรับการระบุตำแหน่ง เราจำเป็นต้องติดตั้ง 4 anchors และวัดตำแหน่งของมันก่อน ซึ่งสามารถทำได้ด้วยตัวเองหรือใช้ Pozyx web interface ผมจะให้พวกคุณเขียน code สำหรับกรณีการระบุตำแหน่งเอง ซึ่งมันน่าจะง่ายมาก

ตัวเครื่องสไตล์ Old-school

เพื่อสร้างประสบการณ์ที่สมจริง เราสามารถนำ Geiger counter จำลองของเราไปใส่ในเคสที่เหมาะสม ใน ebay ผมพบ 'radiation survey meter 715' ซึ่งเป็น Geiger counter รุ่นเก่าจากปี 1962 ที่เราสามารถนำมาแกะแยกชิ้นส่วนได้ง่าย ตัวเครื่องมาพร้อมกับ analog gauge, rotary selector สำหรับเลือกโหมด และปุ่มควบคุมสำหรับปรับ zero offset ขึ้นอยู่กับว่าคุณต้องการทุ่มเทแรงกายแค่ไหน คุณสามารถรวบรวมองค์ประกอบเหล่านี้ทั้งหมดเข้ากับ Geiger counter จำลองตัวสุดท้ายของคุณได้

การแกะแยกชิ้นส่วน

เริ่มต้นจากการแกะเครื่องโดยเปิดฝาครอบและคลายสกรู 8 ตัว ในการนำ PCB ออกมาทั้งหมด ผมต้องบัดกรีถอด potentiometer ที่เชื่อมต่อกับปุ่มควบคุมออก และถอดสายไฟสองเส้นที่เชื่อมต่อกับ gauge ออก

Gauge

Gauge สามารถขยับเข็มได้ระหว่าง 0 ถึง 5 Roentgen / hr เราสามารถขยับเข็มได้โดยการจ่ายแรงดันไฟฟ้าระหว่าง 0 ถึง 85mV (17mV เท่ากับประมาณ 1 r/hr) เราสามารถใช้เอาต์พุต PWM (เช่น digital pin 3) ของ Arduino เพื่อขยับเข็มได้ Arduino สามารถจ่ายแรงดันไฟฟ้าระหว่าง 0 ถึง 5V ได้ 256 ระดับ (โดยใช้ pulse width modulation) เนื่องจากเราต้องการความละเอียดที่มากขึ้น ผมจึงใช้ voltage divider ซึ่งทำได้โดยการวาง resistors สองตัวต่ออนุกรมกันระหว่าง pins PWM และ ground (11kOhm และ 2.7kOhm) และเชื่อมต่อจุดกึ่งกลางระหว่าง resistors เข้ากับ gauge วิธีนี้จะช่วยลดแรงดันเอาต์พุตลงประมาณ 5 เท่า

Rotary selector

ปุ่มหมุนมีตำแหน่งคงที่ 6 ตำแหน่ง (ห่างกัน 60 องศาในแต่ละตำแหน่ง) นี่คือสิ่งที่เราสามารถวัดค่าได้ด้วย potentiometer แม้ว่าปุ่มจะถูกออกแบบมาเพื่อเปลี่ยนความละเอียดของการอ่านค่า แต่การนำมันมาใช้เพื่อล็อคตำแหน่งกับ anchor ตัวอื่นก็น่าสนุกกว่า

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: fake-geiger-counter-with-indoor-positioning-df0ebc
2450 บาท
PromptPay QR Code

Verified user reviews

รีวิวและความคิดเห็นจากผู้ใช้จริง

ล็อกอินด้วยบัญชีบนเว็บนี้แล้วให้คะแนนหรือคอมเมนต์ได้เลย ระบบเก็บผ่าน Supabase ไม่ต้องใช้ GitHub แล้ว

กำลังโหลดรีวิว...