근전도(EMG) 센서를 PC에 연결했을 때, 실시간으로 들어오는 신호를 그래프와 막대로 보여주는 프로그램입니다.
-
실시간 파형 보기
센서에서 들어오는 채널별 신호를 시간에 따라 그래프로 확인할 수 있습니다.
(연속선 모드 / 구간 막대 모드 중 선택 가능) -
채널별 세기 비교
각 채널의 진폭(세기)을 막대 높이(0~100%)로 한눈에 비교할 수 있습니다. -
방향 벡터 보기
채널별 신호 강도를 대각선 방향 벡터로 표시해, 패턴을 직관적으로 볼 수 있습니다. -
데이터 저장
수신한 Raw·진폭·시간을 CSV 파일로 기록할 수 있습니다. -
4채널·6채널 모두 사용 가능
별도 설정 없이, 한 줄에 숫자 4개를 보내는 센서는 4채널로, 6개를 보내는 센서는 6채널로 자동 인식합니다.
데이터 전송 속도가 달라도, 화면에는 항상 최근 5초가 알맞게 표시되도록 자동으로 맞춰집니다.
- PC (Windows / macOS / Linux)
- Python 3 설치
- EMG 센서 (또는 한 줄에 4개 또는 6개 숫자를 시리얼로 보내는 장치)
- 센서와 PC를 연결하는 시리얼(COM) 포트
1. 터미널(명령 프롬프트)을 열고, 이 프로젝트가 있는 폴더로 이동합니다.
2. 가상환경을 만들고 활성화합니다.
python -m venv .venv
.venv\Scripts\activate(macOS/Linux: source .venv/bin/activate)
3. 필요한 라이브러리를 설치합니다.
pip install PyQt6 pyqtgraph numpy pyserial4. 프로그램을 실행합니다.
cd emg_dashboard
python main.py5. 화면에서
- 포트 목록에서 센서가 연결된 포트를 선택하고
- START 버튼을 누르면 수신이 시작됩니다.
- STOP 버튼으로 수신을 중지할 수 있습니다.
- 한 줄에 공백으로 구분된 숫자를 보내고, 줄 끝에 줄바꿈을 넣으면 됩니다.
- 예 (4채널):
123 456 789 012뒤에 줄바꿈 - 예 (6채널):
100 200 300 400 500 600뒤에 줄바꿈
- 예 (4채널):
- 숫자가 한 줄에 4개면 4채널, 6개면 6채널로 자동 인식됩니다.
코드 구조, 모듈 역할, 설정값, 알고리즘 상세가 필요하면 아래 문서를 참고하면 됩니다.
| 문서 | 목적 |
|---|---|
| MODULES.md | 파일별 역할, 데이터 흐름, 모듈 구조 |
| PROJECT_DOCUMENTATION.md | 아키텍처, 설정값/용어/수식, 시그널·에러 처리 등 상세 참조 |
라이선스는 프로젝트 정책을 따릅니다.