Projects
임베디드시스템설계#Arduino#I2C#Timer PWM#TinyMLP

AI 지상 감시·정밀 타격 시스템

임베디드시스템설계 Project 1 · 10조

무엇
서보로 0~180°를 훑으며 거리와 색상을 재고, 보드 위 AI가 적군이면서 큰 표적인지 판단해 자동으로 쏩니다.
구성
Arduino 두 대를 I2C로 연결했습니다. Master는 센싱, Slave는 TinyMLP 추론과 발사 제어를 맡습니다. 상황은 PC GUI에 표시합니다.
핵심
오발을 막는 판정 로직입니다. 범위 밖이면 무조건 금지하고, 조건이 3회 연속 맞아야 쏘고, 쏜 뒤 600ms는 다시 쏘지 않습니다.

시스템 구조

핵심 구현

  • 입력 5개(색상, 거리, 각도, 이전 거리, 각도 변화)로 적군 확률과 대형 표적 확률을 출력
  • 시뮬레이션 데이터 10만 개로 학습한 뒤 소량의 실측 데이터로 파인튜닝하고, 가중치를 헤더 파일로 뽑아 보드에 넣음
  • Sigmoid를 나눗셈 근사식으로 바꿔 MCU 연산 부담을 줄임
  • 거리 20~200cm, 각도 30~150° 밖이면 발사 금지

수치

학습 데이터
100,000개 (학습 9만, 검증 1만)
가중치 갱신
61,600회 (배치 512, 350 에폭)
발사 조건
적 확률 0.6 이상, 대형 확률 0.5 초과, 약 28cm 이내
오발 방지
3회 연속 충족, 600ms 쿨다운
가로축 적군 확률, 세로축 대형 표적 확률 산점도. 적군 0.6 이상이면서 대형 0.5 이상 구역에 발사 판정이 몰려 있음
발사 판정 분포 · 적 확률과 대형 확률

링크