-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
56 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,68 @@ | ||
# How to Build a Serial Frequency Generator and Oscilloscope with PyQt5, ESP32, and Arduino | ||
# **How to Build a Serial Frequency Generator and Oscilloscope with PyQt5, ESP32, and Arduino** | ||
|
||
As an embedded engineer, I enjoy creating real-time tools that simplify workflows. This project combines a **Serial Frequency Generator** and an **Arduino Oscilloscope** using PyQt5, ESP32, and Arduino. | ||
As an embedded engineer, I enjoy creating real-time tools that simplify workflows. This project combines a **Serial Frequency Generator** and an **Arduino Oscilloscope** using PyQt5, ESP32, and Arduino, providing powerful tools for signal generation and visualization. | ||
|
||
## Project Overview | ||
--- | ||
|
||
### Serial Frequency Generator | ||
- Generates customizable signals (frequency, waveform, amplitude). | ||
- Built with PyQt5, controlling an ESP32. | ||
- Onboard LED for visual feedback. | ||
## **Project Overview** | ||
This project consists of two main applications: | ||
|
||
![Serial Frequency Generator](assets/images/serial-frequency-generator.png) | ||
### **1. Serial Frequency Generator** | ||
- Generates customizable signals, including adjustable frequency, waveform, and amplitude. | ||
- Built with **PyQt5**, with an intuitive GUI for controlling an **ESP32**. | ||
- Includes an onboard LED on the ESP32 for real-time visual feedback of the signal. | ||
|
||
### Arduino Oscilloscope | ||
- Displays real-time signals received from the generator. | ||
- Built with PyQt5, using Arduino Uno for data visualization. | ||
![Serial Frequency Generator GUI](assets/images/serial-frequency-generator.png) | ||
*Screenshot of the Serial Frequency Generator application GUI.* | ||
|
||
![Arduino Oscilloscope](assets/images/arduino-oscilloscope.png) | ||
--- | ||
|
||
### Live Simulation of the Hardware Setup | ||
![Live Simulation](assets/images/live-hardware-setup.png) | ||
### **2. Arduino Oscilloscope** | ||
- Captures and displays real-time signals generated by the Serial Frequency Generator. | ||
- Built with **PyQt5**, with an intuitive GUI for data visualization using an **Arduino Uno**. | ||
- Provides engineers with an accessible tool for signal analysis. | ||
|
||
### Saved Data | ||
![Saved Data](assets/images/saved-data.png) | ||
![Arduino Oscilloscope GUI](assets/images/arduino-oscilloscope.png) | ||
*Screenshot of the Arduino Oscilloscope application GUI.* | ||
|
||
## Video Demonstration | ||
Watch the video to see both applications in action: | ||
--- | ||
|
||
## **Hardware Setup** | ||
The hardware setup connects the ESP32 (for signal generation) and the Arduino Uno (for signal visualization) directly via jumper wires. This simple configuration bridges signal generation and analysis. | ||
|
||
![Live Hardware Setup](assets/images/live-hardware-setup.png) | ||
*Live demonstration of the hardware setup for the project.* | ||
|
||
--- | ||
|
||
## **Features** | ||
- **Real-Time Signal Generation and Analysis**: Quickly generate and visualize signals for testing and debugging. | ||
- **Customizable Parameters**: Modify signal frequency, amplitude, and waveform through an intuitive GUI. | ||
- **Saved Data Support**: Analyze saved signals for post-experiment review. | ||
|
||
![Saved Data Visualization](assets/images/saved-data.png) | ||
*Example of saved data visualized in the Oscilloscope GUI.* | ||
|
||
--- | ||
|
||
## **Video Demonstration** | ||
Watch both applications in action in this short demonstration: | ||
|
||
[![Video Demo](https://img.youtube.com/vi/X13B3740r2U/0.jpg)](https://www.youtube.com/watch?v=X13B3740r2U) | ||
|
||
## Final Thoughts | ||
This project demonstrates the potential of combining software and hardware for real-time engineering applications. Questions or feedback? [Reach out](https://linkedin.com/in/nabil-salhi/)! | ||
--- | ||
|
||
## **Getting Started** | ||
1. **Clone the Repository**: | ||
```bash | ||
git clone https://github.com/salhina/serial-frequency-generator-oscilloscope.git | ||
cd serial-frequency-generator-oscilloscope | ||
2. **Install Dependencies** | ||
- Python 3.8+ | ||
- PyQt5 | ||
- Arduino IDE | ||
|
||
3. **Run the Applications** | ||
1. Open and run the Serial Frequency Generator application on your PC. | ||
2. Upload the Arduino Oscilloscope firmware to your Arduino Uno. | ||
|