• Stars
    star
    119
  • Rank 296,242 (Top 6 %)
  • Language
    Python
  • Created over 8 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A software oscilloscope for Arduino made with Python and PyQtGraph

Software Oscilloscope

A python project which takes in data from any stream(Serial port, TCP socket or any generic stream) and plots it in real time using PyQtGraph. The stream must implement open(), close() and readline() methods to work with the package.

Installation

  • Works with Python 2/3
  • Clone the repo or download the zip
  • Install VC++ for Python from here
  • cd to the folder
  • run pip -install -r "requirements.txt"

Dependencies

  • pyqtgraph
  • PySide or PyQt 4.8+
  • numpy
  • pySerial

Usage

  • The stream has to implement open(), close() and readline() methods
  • Data from multiple sources has to be space separated and each reading must be on a new line
    source1_value1 source2_value1
    source1_value2 source2_value2
    and so on
  • X/Y axis limits, Frame interval, Autoscaling(True by default) and the number of lines(1 by default) to read can be specified via kwargs.
'''
Uses the SocketPlot-Test example to plot a sine wave.
Run SocketPlot-Test.py on a different console window
'''
>>>from SoftOscilloscope import SocketClientPlot
>>>plot = SocketClientPlot('localhost', 5000)
>>>plot.start()

'''

Example for serial plots
'''
>>>from SoftOscilloscope import SerialPlot
>>>plot = SerialPlot('COM_PORT_NUMBER', BAUD_RATE)
>>>plot.start()

'''
Takes a generic stream and sets custom parameters
'''
>>>from SoftOscilloscope import GenericPlot
>>>plot = GenericPlot(
	myStream, 
	xlim=(-100,100),
	ylim=(-50, 50),
	interval=1, 
	autoscale=False,
	read_size=1)
>>>plot.start()

Demos

alt tag
Plotting x,y,z data from a 9DOF IMU over a serial port.

Contributions

If you want to add features, improve them, or report issues, feel free to send a pull request!

More Repositories

1

WiktionaryParser

A Python Wiktionary Parser
Python
350
star
2

soundcloud-dl

A Python project that downloads tracks from soundcloud.com, complete with metadata and album art
Python
119
star
3

wordbot

A Telegram dictionary bot written in Python
Python
50
star
4

LeapProjects

Experiments with the Leap Motion API for Python
Python
33
star
5

autoindex

A command line tool to automatically create a navigable index for e-books
Python
5
star
6

greenscreen

A tool for video meetings which adds a virtual webcam that blurs backgrounds
JavaScript
4
star
7

enjoyable-learning

A collection of resources on various topics that are not just thorough but also fun
3
star
8

twilio-audio-streaming

JavaScript
2
star
9

MCUProjects

Microcontroller projects
C
2
star
10

ActivityClassification

Final year B.Tech project on activity classification using a wrist worn wearable
Arduino
2
star
11

lumos-app

A react-native for the Lumos project
TypeScript
2
star
12

lumos

A Bluetooth Controlled LED Strip Project
C++
2
star
13

blog

JavaScript
1
star
14

Flask_Microblog

Microblog created with Flask. (Standard tutorial)
Python
1
star
15

nptel-dl

A small command-line program to download video lectures from nptel.ac.in
Python
1
star
16

aoc-2020

Solutions to Advent of Code 2020 in Rust
Rust
1
star
17

autoindex-site

Web app for the autoindex project
TypeScript
1
star
18

rust_exercism

Solutions to problems on the Rust track from Exercism
Rust
1
star
19

termscope

A command line tool that plots data from sockets/serial ports
Rust
1
star
20

weekly-clock

A beginner vanilla JS project that shows how long you (probably) have left to live in weeks
JavaScript
1
star