สร้าง arduino oscilloscope ง่ายนิดเดียว

Posted by | August 23, 2010 | MyProject | 7 Comments

สวัสดีครับ ช่วงนี้ต้องรีบเข้ามาปล่อยบทความไปเรื่อยก่อน หลังจากที่ดองไว้นาน สำหรับช่วงนี้ ผมได้กลับมาลองเล่นโปรแกรม processing อย่างจริงจัง อีกรอบ สำหรับโปรแกรม processing เป็น platform พัฒนาโปรแกรมสำหรับงาน Visual Art ครับ ซึ่งรู้สึกว่าโปรแกรมนี้ เล่นอะไรได้เยอะดีครับ ทดลองใช้งานมา ก้อไม่ติดขัดอะไร เขียนได้เรื่อยๆ เลยมาตั้งโจทย์ เขียนโปรแกรมง่ายๆ เล่นดูบ้างดีกว่า

สำหรับโปรแกรม processing เขาตั้งใจสร้างมาเพื่อศิลปิน visual art เขาใช้งานกัน เพราะว่า tools ต่างๆ มันจะเกี่ยวกับ computer graphics ไม่ว่าจะเป็น สร้างภาพ 2D ,3D OpenGL และ ส่วน interface กับ mouse ,keyboard อย่างง่ายๆ คือ จริงๆมันก้อเหมือน C#, C++ ,java อะไรพวกนั้นล่ะครับ แต่มันง่ายกว่า กับไม่ต้องเรียนรู้การเขียนโปรแกรมมากนัก และ ที่สำคัญมันฟรี และ ใช้งานได้ทุก platform อีกด้วยคับ ไม่ว่าจะเป็น MacOS ,Linux ,Windows และอีกไม่นานจะไปอยู่บนโทรศัพท์ android กับ iphone อีกด้วย

ในบทความตอนนี้ผมก้อ ลองทำ Oscilloscope ง่าย โดยเอา processing กับ arduino มาใช้ร่วมกันเลย จากแผนภาพจะแสดงให้เห็นว่า ใช้บอร์ด arduino อ่านค่าจะ sensor ผ่าน A/D แล้วส่งค่าให้ processing เอาไปแสดงผล จึงได้ digital scope ง่าย แสดงผลเป็นจอสี ต่อ USB ได้ด้วย และมีอาจจะใส่ function แปลงค่าที่อ่านได้ มาเป็นค่าอุณหภูมิ ความเข้มแสง? (แต่ต้องเขียนโปรแกรมเพิ่มเองนะครับ)

ในเน็ทมีคนทำ Oscilloscope เยอะเหมือนกัน ถ้าใครอยากใช้งานจริงจัง ไปเอาที่เวปเวอร์ชั่นนี้ arduinoscope ดีกว่า วัดได้ save ได้ ใช้งานจริงจังกว่าเยอะ บอร์ด arduino ที่มีไว้จะได้ใช้งานคุ้มไปกว่าเดิม ตอนที่แล้วทำเครื่องเบิร์นไปแล้ว ตอนนี้ทำ oscilloscope อีก เหลือ function gen จะครบแล้ว ฮ่าๆ

วิธีการสร้าง

สำหรับจุดประสงค์ ศึกษาวิธีการส่งข้อมูลระหว่าง arduino กับ processing ครับ และเอามาอ่าน sensor ง่าย แค่พอใช้งานได้ นะครับ อีกเดี่ยวจะมี sensor อีกหลายตัวที่จะเข้ามาทดสอบ เลยเตรียมเครื่องมือไว้สักหน่อยครับ

แผนภาพการเชื่อมโยงโดยรวมของระบบ

สำหรับโปรเจคนี้จะแบ่งเป็นสองส่วน

1. ส่วน arduino อุปกรณ์และวงจรไม่มีอะไรเพิ่มเติมเลยครับ สร้างโปรแกรมให้ arduino อ่านค่าจาก A/D ซึ่งจะได้ค่าเป็นโวลต์ แล้วส่งข้อมูลผ่าน UART หรือ RS232 ไปยังคอมพิวเตอร์ โดยผมแอบเสริม sensor วัดความชื้น กับ วัดอุณหภูมิเข้าไปด้วย (แอบทดสอบ) ซึ่งมันอ่านค่าออกมาเป็น analog ครับ สนใจเข้าไปอ่านใน กระทู้ electoday อันนี้ครับ

2. ส่วน processing รับค่าจาก UART มาแปลงเป็นข้อมูล แสดงผลเป็น กราฟ หน้าตา interface ที่ออกแบบของ Scope? ออกแบบหน้าตาง่ายๆ plot กราฟ กับ แสดงค่า อย่างเดียวเลย ซึ่งผมก้อให้มันแสดงได้สองแบบ คือ 1-แสดงค่าโวลต์ ที่อ่านมาได้ กับ 2-แสดงค่าโวลต์ที่แปลงหน่วย มาเป็น ค่าความชื้น และ อุณหภูมิ เทคนิคการแปลงค่า ก้อเอามาจาก กระทู้ เริ่มต้นกับ module humi+temp ราคาประหยัด เอาสมการ ที่คำนวนการแุปลงค่าโวลต์ที่อ่านมาได้ เป็นค่าจริง

[download code] -> simple_scope_with_processing

วีดีโอการทำงานของ scope

เอาล่ะครับบรรยายมาคร่าวๆ เริ่มง่วงนอน ล่ะคงเขียนไม่ไหว สำหรับวีดีโอการทำงานเดี่ยวไว้ชมกันตอนต่อไป เรื่อง scope แบบ DIY ความเร็วในการอ่าน sampling ก้อคงสู้ scope จิงๆ ไม่ได้นะครับ ฮ่าๆ ยังไม่ได้ ปรับปรุง อ่านค่าความถี่จริงๆ เดี่ยวเอาไว้ ทำโปรเจคอะไร ที่น่าสนใจเกี่ยวกับ processing จะเอามาให้ชมกันเพิ่มเติมครับ

About chang

ชื่อ “ช้าง” ส่วนมากเขาจะเรียกว่า “พี่ช้าง” แล้ว มีความสนใจทางเทคโนโลยีทางคอมพิวเตอร์ อิเล็กทรอนิกส์ และ หุ่นยนต์ เป็นทั้งนักคิด นักประดิษฐ์ ชอบทดลองเล่น จนเดี่ยวนี้รู้สึกว่าจะเล่นมากกว่ามืออาชีพไปสักแล้ว

  • มาเยี่ยมชม มาทักทายครับ

    ผมเพิ่งได้เข้ามาเยี่ยมชมเป็นครั้งแรกครับ ยอมรับว่าไม่มีความรู้เรื่องพวกนี้เลยครับ

    เห็นภาพแล้วก็ งง นะ … มันคือแผงอิเลคทรอนิกส์อะไรกว่า?

    อิอิ

    • ขอบคุณครับ พี่กล่องคุง ที่แวะเข้ามาเยี่ยม ยินดีกับรางวัลที่ได้รับด้วยนะครับ หมวดนี้คนไม่ฮาจริง ไม่ได้หรอกครับ ฮ่าๆ

      สงสัยว่า ผมจะใส่อะไรที่เข้าใจยากไปนิดหนึ่ง 😀 เดียวคงปรับลงให้กลางๆบ้างดีกว่าจะได้เข้าถึงกันง่ายๆ

  • ผมอยากให้ arduino oscilloscopeให้มีฟังก์ชั้น component test ได้ด้วยครับ
    ผมจะได้ใช้ประกอบอาชีพได้

    • component test คืออะไรครับ

  • นิ

    สวัสดีครับ
    ผมรบกวนเจ้าของกระทู้ นำเสนอรูปการต่ออุปกรณ์ให้ชัดกว่านี้ได้ไหมครับ ผมมองไม่ออกเลย พอดีผมมีปัญหาด้านการมองเห็นอ่ะครับ ต้องขอโทษจริงๆ
    คือผมหมายถึง สายไหนเข้า สายไหนออก arduino ?
    เข้า R ไปเข้า LED โยงไปไหนต่อ ?
    สายไหนต่อ sensors แล้วไปเข้าอะไรต่อ ?
    ประมานนี้ครับ
    ขอบคุณล่วงหน้าครับผม

    • ดูใน code ของ arduino ครับ
      ที่จริง แค่ต่อ sensor เข้า adc แล้วให้ คอมพิวเตอร์ plot กราฟครับ

  • Foey Salingkan Pitphibunwong

    ผมอ่านยังงงอยู่มากคับ รบกวนช่วยชี้เเนะให้ละเอียดด้วยคับ ขอบคุนค้บ