กลับไปหน้ารวมไฟล์
diy-vision-testing-system-snellen-chart-with-arduino-uno-aec7b8.md

ฝั่งตัวส่งสัญญาณ (Transmitter Section):

ระบบทดสอบสายตาที่เราจะมาทำกันนี้ ออกแบบมาเพื่อช่วยในการตรวจสายตาโดยใช้แผนภูมิสเนลเลน (Snellen chart) ที่ควบคุมด้วยฝั่งตัวส่งสัญญาณ (Transmitter) ที่ใช้ Arduino Uno เป็นหัวใจหลัก ตัวส่งสัญญาณนี้ประกอบด้วย Arduino Uno, ตัวส่งสัญญาณวิทยุ 433 MHz, คีย์แพด 4x4 และจอ LCD 16x2 ที่สื่อสารผ่าน I2C

ระบบทำงานโดยการกดปุ่ม * บนฝั่งตัวส่งสัญญาณ จากนั้นระบบจะเริ่มทดสอบโดยไล่เปิดไฟ LED สีขาวที่ติดอยู่ตรงแถวต่างๆ ของแผนภูมิสเนลเลนทีละแถว แถบไฟ LED นี้ใช้ไฟ 12V และจะสว่างทีละแถวเพื่อช่วยให้ผู้ป่วยโฟกัสไปที่ตัวอักษรในแถวนั้นๆ แผนภูมิมีทั้งหมด 7 แถว เรียงจากตัวใหญ่ไปตัวเล็ก เพื่อทดสอบระดับการมองเห็นที่ต่างกัน

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

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

ระบบนี้ให้วิธีการทดสอบสายตาขั้นพื้นฐานที่อัตโนมัติ มีประสิทธิภาพ และใช้ง่าย เหมาะมากสำหรับงานด้านสุขภาพ เอาไปจัดต่อได้เลยวัยรุ่น!

ฝั่งแผนภูมิสเนลเลนและตัวรับสัญญาณ (Snellen Chart Receiver Section)

โปรเจคนี้เกี่ยวกับระบบทดสอบสายตาที่ใช้แผนภูมิสเนลเลนผสานกับ Arduino Uno, ตัวรับสัญญาณวิทยุ 433 MHz และทรานซิสเตอร์ BC548 สำหรับขับแถบไฟ LED สีขาว ระบบจะไล่ส่องสว่างแถวต่างๆ ของแผนภูมิสเนลเลนทีละแถว ช่วยให้การทดสอบสายตาได้ผลดีขึ้น

การติดตั้งประกอบด้วยแผนภูมิสเนลเลน 7 แถว แต่ละแถวจะมีแถบไฟ LED สีขาวของตัวเอง ซึ่งใช้ไฟเลี้ยง 12V แถบไฟ LED เหล่านี้ถูกควบคุมโดย Arduino Uno ที่รับสัญญาณมาจากตัวส่งสัญญาณวิทยุ 433 MHz ฝั่งตัวส่งจะมีปุ่มกด เมื่อกดปุ่มก็จะส่งสัญญาณไปยังตัวรับวิทยุที่ต่อกับ Arduino

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

ระบบนี้เรียบง่าย ใช้งบไม่บานปลาย และมีประสิทธิภาพ ช่วยยกระดับวิธีการทดสอบสายตาแบบเดิมๆ ด้วยอินเทอร์เฟซที่ใช้งานง่ายและมีชีวิตชีวามากขึ้น สู้งานนะน้อง!

การทำงานของระบบ (Working of System)

Enhanced Technical Details: The Randomized Typography Engine (Adafruit GFX)

แผนภูมิ Snellen แบบโบราณมันวางตัว 'E' ตัวเบิ้มไว้บนสุด แล้วตัว 'T F Z P' เล็กจิ๋วไว้ล่างสุด วิธีป้องกันการจำแบบทื่อๆ คือการอัพเกรดระบบด้วย เครื่องสุ่มตัวอักษร (Randomized Typography Engine) เอาให้มันกวนๆ ไปเลย

  1. Arduino ของเราใช้ไลบรารี <Adafruit_GFX.h> เพื่อจัดการเรื่องการขยายขนาดตัวอักษรแบบละเอียดยิบ
  2. โค้ดจะเริ่มวาดหน้าจอด้วยตัวอักษรไซส์ยักษ์ที่ textSize(6) ก่อน
  3. เจ้าเครื่องกำเนิดขวางโลก (The Anti-Cheating Generator): แทนที่จะพิมพ์ข้อความเดิมๆ ซ้ำไปซ้ำมา บอร์ด Uno ของเราจะพึ่งพาฟังก์ชัน random() แทน
char randomLetter = random(65, 91); // สุ่มเลข ASCII ระหว่าง 'A' ถึง 'Z' มาให้เลยจ้า!
display.setCursor(xOffset, yOffset);
display.print(randomLetter);
  1. โค้ด C++ จะลด textSize ลงเหลือ 5, สุ่มตัวอักษรมา 2 ตัว, ลดเหลือ 4, แล้วพิมพ์ 3 ตัว ผู้ป่วยถูกบังคับให้อ่านเมทริกซ์ที่เปลี่ยนไปเรื่อยๆ จริงๆ!

The HC-SR04 Focal Range Enforcer

ถ้าผู้ป่วยยื่นหน้าเข้ามาใกล้หน่อย การทดสอบ 20/40 vision ก็พังไม่เป็นท่า! เพื่อบังคับให้รักษาระยะทดสอบที่ถูกต้อง ระบบของเราต้องเพิ่ม เซ็นเซอร์อัลตราโซนิค HC-SR04 เข้าไป

  • ตั้งเซ็นเซอร์เล็งไปที่หัวผู้ป่วยเพื่อวัดระยะ
  • ฟังก์ชัน loop() จะคอยประเมินระยะทางมาตรฐานทางการแพทย์ (เช่น 20 ฟุต / 6 เมตร) ตลอดเวลา
  • ถ้า getSonarDistance() < 595cm: แปลว่าผู้ป่วยกำลังยื่นหน้าเข้ามา!
  • การลงทัณฑ์ (The Penalty Execution): บอร์ด Uno สามารถสั่ง display.clearDisplay(); ทันที แล้วแสดงข้อความ ERROR สีแดงตัวเบิ้มว่า STEP BACK! พร้อมกับเปิดเสียงปี๊บจาก buzzer! การทดสอบจะไม่เริ่มจนกว่าผู้ป่วยจะถอยไปอยู่ที่ระยะ 6.0 เมตรพอดี!

Optical Medical Hardware

สำหรับการอิมพลีเมนต์แบบขั้นสูง ขอแนะนำชิ้นส่วนดังต่อไปนี้:

  • Arduino Uno/Mega (แนะนำ Mega มากกว่าเพราะการอัพเดทอาร์เรย์ข้อความไซส์ 6 ยักษ์ๆ มันใช้ RAM เยอะมากกก)
  • จอสีขนาดใหญ่ 2.8" SPI ILI9341 Color TFT Display หรือไม่ก็ จอ LCD ขนาด 20x4 I2C LCD Display ตัวเบิ้ม
  • โมดูลอัลตราโซนิค HC-SR04 (สำคัญมากสำหรับระบบล็อคระยะโฟกัส)
  • ปุ่มอาร์เคดแบบถือได้ สำหรับให้ผู้ป่วยกด เพื่อสร้างแผนภูมิใหม่ทั้งหมดแบบไดนามิก! จัดไปวัยรุ่น!

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE 2.0 (beta)"
author: "ballieducation"
category: "Science & Simulation"
components:
  - "1x 16x2 LCD display with I²C interface"
  - "1x Digital Multimeter"
  - "7x BC 548"
  - "1x Piezo buzzer"
  - "1x Wire cutter"
  - "7x Resistor 470k Ohm"
  - "1x Soldering Station"
  - "2x ARDUINO UNO R3"
  - "1x 433mhz rf transmitter and receiver"
  - "1x 4X4 MATRIX KEYPAD"
  - "1x Wires, etc."
description: "The Snellen Chart Vision Testing System using Arduino Uno is an innovative, automated self-test solution for eye vision assessment. Designed to accommodate large-scale testing, it enables individuals to evaluate their visual acuity efficiently within a short period. This system is particularly beneficial in rural or high-demand areas, eliminating the need for a professional to administer each test. Cost-effective and portable, it significantly reduces testing time while maintaining accuracy, making it an ideal solution for mass eye vision screening programs."
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/0c05e2c1-4119-4056-af37-ef484f54b144.ino"
  - "https://projects.arduinocontent.cc/f3fc1e3d-656d-42c0-924a-a9af47783ca6.ino"
encryptedPayload: "U2FsdGVkX1/l2JjQUQJOOb6okyBEvyWx2N7Aftm+voZ7tnUlDupy8EGxY/K6OJwBJvm7CHXbVCIO7OX3hi7d7AUYPMvEN1bm98IOQblSt1A="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/diy-vision-testing-system-snellen-chart-with-arduino-uno-aec7b8_cover.jpg"
lang: "en"
likes: 1
passwordHash: "f3f177c8e6c8bd3649286c959052a1f9af36c03e6fa5ba1204f997bbf1de5f6f"
price: 2450
seoDescription: "Build a DIY Vision Testing System with Arduino Uno and Snellen Chart. Automated, cost-effective solution for mass eye vision screening programs."
tags:
  - "Arduino User Group"
  - "Communication"
  - "Data Collection"
  - "Disability Reduction"
  - "Health"
title: "DIY Vision Testing System: Snellen Chart with Arduino Uno"
tools: []
videoLinks:
  - "https://youtu.be/1KWoavOa6HY?si=tFHSDClnijIwe-5E"
views: 5467