Saya perlu memplot data serial dari Arduino.
Saya memerlukan dukungan untuk:
- Berbagai format data (misalnya ditandatangani, tidak ditandatangani, 8 bit, 16 bit);
- Plot beberapa data pada sumbu yang sama;
- Ekspor / Impor data file.
Karena memplot data serial dari Arduino adalah kebutuhan umum, pertanyaan saya adalah: Program / utilitas apa yang tersedia untuk memplot data serial dari Arduino yang memenuhi kebutuhan di atas?
Apa keuntungan / kerugian dari metode yang Anda sarankan?
Jawaban:
Ada beberapa aplikasi yang bagus untuk memvisualisasikan data serial, termasuk:
MegunoLink ($ 29,95; Lite gratis) - merencanakan, mencatat, pemrograman, melaporkan, dan banyak lagi.
MakerPlot ($ 39) - plot digital & analog, pemantauan, antarmuka khusus dan banyak lagi.
ArduinoPlot (gratis) - plot sederhana.
arduino-plotter (gratis) - plot mudah, ringan dengan dukungan untuk semua jenis primitif
Bridge Control Panel (gratis) - logging, merencanakan, dan banyak lagi.
RealtimePlotter (gratis) - 6 saluran plot data.
Plotter Data Serial Real Time (gratis) - Plot data CSV, logging, dan lainnya.
SimPlot (gratis) - merencanakan 4 saluran.
Arduino Serial Plotter (gratis) - dibangun di Arduino Editor pada Tools> Serial Plotter .
(Ini adalah wiki komunitas, Anda dapat memperluas daftar.)
sumber
GnuPlot
Keuntungan: Sangat fleksibel, dapat dituliskan, dan tersedia secara gratis.
Kekurangan: Agak rumit untuk dipelajari (tapi saya menemukan cara memulai dalam beberapa menit, dan cukup fungsional dalam satu atau dua jam), berjalan di jendela terminal (jika Anda menganggap itu sebagai kerugian).
Sesuatu yang saya temukan sangat berguna adalah untuk skrip untuk memuat ulang logfile program terminal saya secara berkala sehingga saya mendapat grafik dinamis ketika percobaan saya berlangsung.
Sunting: Ini adalah skrip GnuPlot yang menggambarkannya:
sumber
Saya menggunakan Matplotlib untuk merencanakan apa pun yang perlu saya lakukan.
Ini bukan arduino spesifik dalam hal apa pun, tetapi ini adalah toolkit merencanakan Python yang sangat bagus .
Saya telah membangun sejumlah aplikasi yang memplot data dari berbagai mikrokontroler secara real-time ke grafik, tetapi itu sebenarnya lebih dari proses dua langkah: 1. Dapatkan data dari perangkat ke komputer, 2. plot data realtime .
Sungguh, saya pikir Anda harus membagi pertanyaan Anda menjadi dua bagian:
sumber
SerialPlot (gratis). Itu melakukan semua yang Anda butuhkan dan banyak lagi.
Fitur lainnya:
sumber
Menanggapi pertanyaan saya sendiri di sini .. Saya menggunakan Bridge Control Panel sebagaimana disebutkan.
Keuntungan: Banyak Fitur.
Kekurangan: Tricky to setup dan sintaks / kesalahan pelaporan sangat buruk.
Untuk menggunakan: Anda perlu menulis Data Arduino melalui Port Serial satu byte setiap kali. Untuk tipe data int yang akan terlihat sebagai berikut:
Di Bridge perintah untuk Membaca Data adalah:
RX8 adalah perintah baca [h = 43] berarti byte yang valid berikutnya adalah "C" di ASCII kemudian Byte Tinggi dari Key1 kemudian Byte Rendah dari Key1
Ini terlihat seperti ini di Bridge:
sumber
Anda dapat mencoba serialchart . Ini program yang cukup maju. Itu tepat seperti yang Anda minta. Satu-satunya kelemahan adalah bahwa itu membutuhkan data dalam format CSV (tidak memenuhi poin pertama).
Tangkapan layar dari halaman proyek:
sumber
Anda mungkin tertarik dengan
Telemetry
See on Github . Ini adalah protokol komunikasi, sangat mudah digunakan, dengan antarmuka yang bersih, yang memungkinkan komunikasi dua arah dengan perangkat Arduino / Mbed.Jika Anda tidak ingin membaca posting panjang ini, lihat Panduan dari semua fitur luar biasa di dalamnya
Kekuatan perpustakaan ini berasal dari antarmuka baris perintah desktop (yang tidak memerlukan keterampilan pemrograman dengan python).
Ia mampu membuka plot kinerja tinggi (jauh lebih tinggi dari apa yang dapat dilakukan dengan matplotlib) hanya dengan mengetikkan perintah .
Protokol mendukung struktur data yang kompleks . Untuk saat ini, array dan array yang jarang dapat dikirim dari board tertanam.
Plot yang dibuka dari antarmuka baris perintah memahami tipe data, dan untuk array, alih-alih memplot setiap sampel versus waktu, sampel akan diplot terhadap indeksnya sendiri.
Dalam waktu dekat, direncanakan untuk menambahkan dukungan untuk koordinat spasial (data xyz), yang akan memungkinkan Anda untuk segera merencanakan data spasial. Sekali lagi, plot akan mencari tahu semuanya, plot data Anda dalam ruang 2D atau 3D dan Anda dapat fokus pada pengembangan aplikasi Anda.
Saya percaya fitur-fitur itu hanya unik untuk proyek semacam itu.
Pytelemetry CLI
Setelah diinstal dengan
pip
, baris perintah dapat dimulai denganKemudian Anda dapat
connect
,ls
(daftar) topik yang diterima,print
data yang diterima pada suatu topik,pub
(terbitkan) pada suatu topik, atau membukaplot
suatu topik untuk menampilkan data yang diterima secara real-timeMemulai
Wiki
PS: Saya pengarangnya.
Saya mengembangkannya karena saya tidak dapat menemukan solusi yang memungkinkan saya untuk:
semua hal di atas tanpa menggunakan solusi eksklusif atau GUI gembung.
Menggunakan perpustakaan ini, waktu untuk mengatur komunikasi antara Arduino dan PC berlangsung dari biasanya setengah hari menjadi 5 menit.
sumber
Tidak ada yang menyebutkan Pemrosesan yang super serbaguna. Anda dapat melakukan lebih dari sekadar merencanakan, tetapi jika hanya itu yang ingin Anda lakukan, Anda dapat menggunakan perpustakaan gwoptics; menghubungkan Arduino dan Pemrosesan seperti yang diarahkan di sini .
sumber
Saya membuat alat yang setara dengan python yang mencetak data waktu nyata dari accelerometer ADXL345. https://github.com/mba7/SerialPort-RealTime-Data-Plotter
Mungkin itu akan bermanfaat bagi seseorang
Cukup pilih serial com dan speed dan kirim data serial pada format berikut:
Bisa dengan mudah disesuaikan untuk mengubah format ini
sumber
Anda dapat menggunakan MATLAB Student Edition , ini juga dapat menghemat waktu Anda untuk analisis lebih lanjut. Anda cukup membuka port COM di MATLAB dan memplot sinyal yang diterima dan / atau menyimpan sinyal di ruang kerja atau apa pun. MATLAB membuat semuanya mudah!
sumber
Format CSV paling serbaguna untuk data apa pun (masuk / tidak ditandatangani, berbagai ukuran dan presisi).
Alat lintas-platform (ditulis dalam Java / Scala) Scsvlog dapat menerima / mem-parsing string CSV dari port serial / soket, menunjukkan nilai-nilai dan menggambar grafik (hingga 8).
sumber
Anda dapat mencoba perangkat lunak yang saya kembangkan untuk proposal itu. Ini bertujuan agar mudah digunakan. Lihat SerialGraphicator - Open Source Serial Port Client yang mampu nilai grafik yang diterima dalam format JSON.
sumber
Meskipun saya belum menggunakannya sendiri, "rqt_plot" yang berjalan di PC tampaknya menjadi cara yang populer untuk memplot data pada PC yang datang melalui port serial dari Arduino yang menjalankan sketsa yang mencakup perpustakaan rosserial_arduino atau perpustakaan ros_arduino_bridge .
sumber
Saya tahu ini adalah pertanyaan yang sangat lama, tetapi saya baru-baru ini membuat aplikasi mac yang memecahkan masalah ini dengan sangat baik. Anda dapat menemukan informasi lebih lanjut tentang itu di www.bloonapp.com. Ada beberapa video demo di situs web yang dapat Anda periksa.
sumber
Saya tahu Anda mungkin setelah keluaran GUI yang lebih maju, tapi saya berhasil mereplikasi tugas yang biasanya dilakukan dengan osiloskop:
menggunakan plotter serial di Arduino IDE dan modul ADC yang bisa Anda dapatkan seharga $ 3 di eBay. Saya akui itu agak kasar, tetapi mungkin ada baiknya bermain dengan alat untuk sementara waktu, sebelum Anda berinvestasi dalam solusi tingkat Python / Matlab / dll. Itu sangat mudah digunakan. Tidak perlu banyak untuk menambahkan rekaman kartu SD ke proses.
Lihat: https://edwardmallon.wordpress.com/2016/08/15/using-the-arduino-uno-as-a-basic-data-acquis-system/
sumber
Penampil Telemetri
Keuntungan:
Kekurangan:
sumber
Serial Plotter adalah program sederhana yang saya buat dengan Electron yang menerima data dalam format berikut:
data1,data2,timestamp;
dan mengubahnya menjadi bagan waktu nyata.sumber
Hampir bermanfaat. Perlu:
Live Graph adalah pilihan yang lebih baik dan saya menggunakannya bersamaan dengan Tera Term yang mendapatkan data melalui USB / serial link (dan menyimpannya ke file log yang kemudian jajak pendapat Live Graph).
Grafik Langsung sedikit bermasalah ketika menyimpan data dan saya belum menemukan cara untuk mengatur jendela bergerak untuk menampilkan hasil. Selain itu, menampilkan banyak grafik memerlukan penskalaan manual, tetapi terlepas dari semua ini, masih sangat berguna. Ini ditulis dalam java sehingga Anda akan membutuhkan JRE. Saya lebih suka ini daripada harus menginstal python seperti beberapa program grafik lainnya. Kelemahan lain adalah bahwa ia membuka 4 jendela berbeda, yang merupakan rasa sakit ketika saya ingin beralih antara itu dan Tera Term.
Saya belum menemukan software itu
sumber
?
tombol di editor.Saya menggunakan processing.org untuk merencanakan serial dari Arduino. Itu adalah satu-satunya aplikasi yang dapat saya temukan yang memungkinkan saya membuat histogram nyata (mis. Sejuta peristiwa dalam seratus tong) dan menampilkan berbagai nomor info selain sigma rata-rata untuk setiap saluran. Dua masalah utama: A) ternyata didasarkan pada Java tanpa byte B unsigned unsigned) sync dengan input buffer yang diperlukan melingkar dan penanda dalam data. (kecepatan tinggi, tidak ada jabat tangan)
sumber
Pemantauan SVisual dan perekaman sinyal untuk Arduino dan tidak hanya.
Contoh video
Unduh gratis)
sumber