ในหลายโอกาส คุณอาจต้องการ oscilloscope หรือ spectrum analyser ค่าใช้จ่ายของ USB scopes ลดลงอย่างมากในช่วงไม่กี่ปีที่ผ่านมา เช่น 2-channel, 10 MHz pico-scope 2000 series แต่ถ้าหากค่าใช้จ่ายและคุณสมบัติของ USB scope แบบนี้เกินกว่าที่ต้องการ หรือค่าใช้จ่ายยังคงสูงเกินไปล่ะ? ถ้าผมต้องการให้ developers, hackers และนักเรียนนักศึกษาได้สัมผัสกับ oscilloscope ผมจะเปิดห้องปฏิบัติการระยะไกลทั้งหมดในการ สอนของผม ได้อย่างไร?
The Adri/Ardu-Scope (ชื่อย่อของ Adrian's Arduino-Scope) พิจารณาว่าจะสร้าง 2 channel oscilloscope, spectrum analyser, spectrogram และ cross-correlation analyser ที่สามารถ sampling สัญญาณได้ที่ประมาณ 153 kHz ซึ่งเพียงพอสำหรับการตรวจสอบ audio, accelerometer, vibration และ ultrasonic (40 kHz) ผมได้จำกัดโปรเจกต์นี้ไว้ที่ 2 channels เท่านั้น เพื่อให้ข้อมูลของทั้งสอง channel สามารถดึงมาได้เร็วพอที่จะดู "พร้อมกัน" แม้ว่าข้อมูลจะถูก sampling ทีละ channel จริงๆ ความหวังของโปรเจกต์นี้คือการสร้างห้องปฏิบัติการระดับมัธยมปลาย/มหาวิทยาลัยสำหรับนักเรียนที่อยู่ห่างไกล (แยกตัวจาก COVID) เพื่อให้ได้รับประสบการณ์จริงในการทำงานกับ signals และ time-series data collection สิ่งที่จำเป็นมีเพียง Arduino ราคาประมาณ $5 และ Python-3 (+ packages numpy, matplotlib, pyserial) เพื่อสร้างสภาพแวดล้อมการเรียนรู้ที่ใช้งานได้จริง

นอกจากนี้ยังสามารถสื่อสารโดยตรงกับ UNO ผ่าน serial port ได้โดยไม่ต้องใช้ interface ของ python3 ซึ่งช่วยให้คุณสามารถ stream ข้อมูลในรูปแบบ ascii (อ่านง่ายโดยมนุษย์แต่ช้า) หรือ binary (เร็วแต่มนุษย์อ่านไม่ออก) เพื่อช่วยในการพัฒนาโปรเจกต์ของคุณหากต้องการ พิมพ์เครื่องหมายคำถาม (?) จาก serial monitor ที่ทำงานที่ 115200 baud เพื่อเรียกเมนูคำสั่งที่มีให้ใช้งาน
EXPANDED TECHNICAL DETAILS
Portable Signal Analysis
Adri/Ardu-Scope คือ oscilloscope น้ำหนักเบาที่ใช้ Arduino ซึ่งออกแบบมาสำหรับการวินิจฉัยภาคสนามและการ debug hardware ในกรณีที่ไม่มี bench scope ขนาดเต็ม
- Input Sampling Hub: Arduino ใช้ ADC (Analog-to-Digital Converter) ภายในเพื่อจับข้อมูล waveform ในการเพิ่ม sampling frequency firmware จะปรับ ADC Prescaler เป็น 16 หรือ 32 ซึ่งช่วยให้ polling ได้เร็วกว่า
analogRead()มาตรฐานมาก - Software Visualization: ข้อมูลจะถูก stream ผ่าน USB ไปยัง Python/Processing application บน PC ฝั่ง PC จะจัดการการ triggering, scaling (Volts/Div) และ time-base (Time/Div) เพื่อแสดงผล wave ที่ราบรื่นและ real-time
Hardware Safety
- Input Protection: มีวงจรป้องกัน resistor-diode พื้นฐานเพื่อป้องกัน high-voltage spikes ไม่ให้สร้างความเสียหายต่อ analog pins ของ Arduino ทำให้เป็นเครื่องมือที่ทนทานสำหรับการทดสอบ logic-level signals และ audio frequencies