|
| 1 | +.. image:: https://travis-ci.org/Dennis-van-Gils/DvG_Arduino_PyQt_multithread_demo.svg?branch=master |
| 2 | + :target: https://travis-ci.org/Dennis-van-Gils/DvG_Arduino_PyQt_multithread_demo |
| 3 | +.. image:: https://requires.io/github/Dennis-van-Gils/DvG_Arduino_PyQt_multithread_demo/requirements.svg?branch=master |
| 4 | + :target: https://requires.io/github/Dennis-van-Gils/DvG_Arduino_PyQt_multithread_demo/requirements/?branch=master |
| 5 | + :alt: Requirements Status |
| 6 | +.. image:: https://img.shields.io/badge/code%20style-black-000000.svg |
| 7 | + :target: https://github.com/psf/black |
| 8 | +.. image:: https://img.shields.io/badge/License-MIT-purple.svg |
| 9 | + :target: https://github.com/Dennis-van-Gils/DvG_Arduino_PyQt_multithread_demo/blob/master/LICENSE.txt |
| 10 | + |
| 11 | +DvG_Arduino_PyQt_multithread_demo |
| 12 | +================================= |
| 13 | + |
| 14 | +Demonstration of multithreaded communication, real-time plotting and logging of live Arduino data using PyQt5 and PyQtGraph. |
| 15 | + |
| 16 | +This demo needs just a bare Arduino(-like) device that, for demonstration purposes, will act as a numerical waveform generator. The source files are included and they should compile over a wide range of Arduino boards. Connect the Arduino to any USB port on your computer and run this Python demo. It should automatically find the Arduino and show you a fully functioning GUI with live data at a stable acquisition rate of 100 Hz. |
| 17 | + |
| 18 | +It features a PyQt5 graphical user-interface, with a PyQtGraph plot for fast real-time plotting of data. The main thread handles the GUI and redrawing of the plot, another thread deals with acquiring data from the Arduino at a fixed rate and a third thread maintains a thread-safe queue where messages to be sent out to the Arduino are managed. |
| 19 | + |
| 20 | +Other depencies you'll need for this demo can be installed by running:: |
| 21 | + |
| 22 | + pip install -r requirements.txt |
| 23 | + |
| 24 | +* `dvg-debug-functions <https://pypi.org/project/dvg-debug-functions/>`_ |
| 25 | +* `dvg-qdeviceio <https://pypi.org/project/dvg-qdeviceio/>`_ |
| 26 | +* `dvg-devices <https://pypi.org/project/dvg-devices/>`_ |
| 27 | +* `psutil <https://pypi.org/project/psutil/>`_ |
| 28 | +* `pySerial <https://pypi.org/project/pyserial/>`_ |
| 29 | +* `NumPy <http://www.numpy.org/>`_ |
| 30 | +* `PyQt5 <https://pypi.org/project/PyQt5/>`_ |
| 31 | +* `PyQtGraph <http://pyqtgraph.org/>`_ |
| 32 | + |
| 33 | +.. image:: /images/Arduino_PyQt_demo_with_multithreading.PNG |
0 commit comments