How to plot graph in real time by Matlab & Arduino

Started by anoney_potter, October 21, 2014, 02:36:32 AM

Previous topic - Next topic

anoney_potter


Thai Embedded System and Robotics รับออกแบบระบบและให้คำปรึกษาด้่าน Embedded System , PCB Design , Microcontroller , FPGA , GUI ,Hardware 3D Product Design and Solution

tha

กำลังอยากศึกษา mathlab พอดี  :)

JMew

1. Arduino UNO run ที่ 16MHz ใช้ Baud 115200 มี UBRR 8 คิดเป็น 3.7% of error transfer ค่ะ
2. code ไม่ optimize ค่ะ กล่าวคือ ยังส่งเป็น ASCII หลายไบต์อยู่ การส่งตัวเลข ยังส่งเป็น "1023" แบบนี้อยู่ แทนที่จะส่งเป็น 0x03FF แบบนี้ค่ะ

สมมติมี 6 Channel พร้อมกัน ถ้าส่ง "768,232,1023,240,124,59,*" แบบนี้ มันก็หลายไบต์ใช่ไหมคะ ทั้งหมดก็ 25 ไบต์ ซึ่งถ้าตัวเลขเปลี่ยนไปอีก จำนวนไบต์ในแต่ละ transaction ก็จะไม่เท่ากัน สุดท้ายมาเราก็จะคำนวณ transfer rate ไม่ได้ เพราะแต่ละ transaction น้องไม่รู้ว่ามันยาวเท่าไร แต่ละครั้งส่งไม่คงที่ด้วย และเปลือง serial bandwidth

สมมติการแปลง ADC 1 ครั้ง ใช้ 13 clock cycle น้องจะ sampling ได้สูงสุดเท่าไร และมาเสียเวลาส่งกับ ASCII ที่มีความยาวในแต่ละ transaction ที่ไม่เท่ากัน อีกเท่าไร 

แต่ถ้าน้อง optimize ให้เป็น 2byte หมดทั้ง 6 channel ต่อการส่งหนึ่งครั้ง ไม่ว่าข้อมูลจะเป็นอย่างไรก็ตาม ส่งตามแบบแผนนี้

มีตัวเปิดคือ 0x20 ตามด้วยสัญญาณของ channel ต่าง ๆ ช่องละ 2 ไบต์ รวม 6 ช่อง 12 ไบต์ และตัวปิดคือ 0x13 ในหนึ่งครั้งของการส่ง จะใช้ 16 byte คงที่
เมื่อคำนวณ serial transfer แบบ 115200,none parity, 8 data bit, 1 stop bit ต่อการส่ง 1 byte จะได้

start 1 bit ตามด้วย data อีก 8 แล้วตามด้วย stop 1 bit สิริรวมแล้ว ส่ง 1 byte ใช้ 10 bit

เราใช้ baud ที่ 115200 ดังนั้น จะมี transfer rate ที่ 11520  byte ต่อวินาที

เราส่ง 16 byte ต่อครั้ง ดังนั้น PC จะรับข้อมูลได้ 720 ครั้งต่อวินาที (ถ้าคุณน้องใช้ 1 Channel ความเร็วก็เพิ่มขึ้นเป็นหกเท่า เพราะไบต์ที่ส่งต่อครั้งสั้นลง)

แต่ถ้าลด resolution ของ ADC ลงมาเหลือ 8 bit แล้วอ่านค่าที่ละไบต์มา  plot  ความเร็วจะอยู่ที่ 11.52k ต่อวินาที นั่นหมายความว่า น้องจะพลอตสเปกตรัมของเสียงได้ !!!! เอ้ย กะเทยโกหกหรือเปล่า โกหกไม่โกหกก็ลองดูนะคะ เอา Matlab plot spectrum ของ wave โดยใช้ Arduino รับค่าจากไมโครโฟนผ่าน preamp แล้วส่งออกที่ 115200 baud ทีละไบต์มาพลอต ที่ resolution 8 bit โดยไม่ต้องมีตัวเปิดและตัวปิด

สิ่งเหล่านี้สำคัญ เป็นพื้นฐานการสอนระเบียบวิธีการสื่อสารอย่างเป็นระบบ มีความแน่นอน อ้างอิงและคำนวณได้ มีหลักการอธิบายชัดเจน
พี่อยู่ได้อีกไม่นานก็จะตายห่าแล้ว ฝากเด็ก ๆ รุ่นหลังไว้ด้วยค่ะ
   
โครงการกะเทยท่องโลก


electrical55

กระจ่างเลยเรา.....ขอเข้ามาอ่านด้วยครับ...

Admin

ขอบคุณข้อมูลจากเจ๊มิว  ;D
รับทำ PCB (ออกใบกำกับภาษีได้) => https://www.electoday.com