배경 & 목표
바로우산은 기숙사 퇴소 시 우산이 없어 비를 맞는 학생들의 불편을 덜기 위해 기획한 교내 우산 대여 서비스다. 나는 기숙사를 퇴소하던 날 우산 없이 비를 맞고 집에 갔던 경험을 계기로, 학교 차원의 우산 대여 서비스가 필요하다고 생각했다.
다만 우산을 단순히 비치하기만 하면 도난·분실을 피할 수 없고, 일부의 비매너로 다수가 피해를 볼 수 있다. 그래서 학생증을 활용한 대여·반납 관리 시스템을 주제로 잡았다. 학생은 학생증으로 우산을 자동으로 빌리고 반납하고, 우산 상태는 웹 대시보드와 라즈베리파이 GUI(WinForm)로 실시간 확인·관리할 수 있다 — 이렇게 학생의 불편을 줄이고 편의를 높이는 것을 목표로 했다.
개발 과정
기구 설계
맡은 역할이 많아 데드라인이 빠른 작업부터 진행했다. 가장 먼저 Fusion360으로 알루미늄 프로파일 2020 기반 본체를 모델링하고, 팀원들과 구조·크기를 논의하며 설계를 구체화했다. 보관 메커니즘은 2×3으로 우산 6개를 넣을 수 있도록 잡고, 각 칸마다 고정 모터(MG996R)와 IR 센서를 배치했다. 우산 고정부는 3D 프린터로 만든 집게 구조로, 로봇팔이 물건을 집듯 우산 손잡이를 잡도록 설계했다. 우산 감지는 대여·반납 명령을 기준으로 삼고 IR 센서로 상태를 보정했다. 우산 밑받침은 3D 프린터로, 본체 덮개는 3D 프린터와 레이저 커팅 아크릴을 함께 써 제작했으며, AutoCAD로 덮개와 라즈베리파이 모니터 고정용 아크릴을 설계했다.
PCB 설계
갑작스럽게 PCB 설계 일정이 확정되면서 빠르게 진행했다. 다른 팀들이 EasyEDA·KiCAD를 쓴 것과 달리, 현업에서 널리 쓰이는 Altium·OrCAD의 워크플로우를 경험해보고자 Altium 기반의 무료 툴인 Circuit Maker 2를 선택했다. 스케메틱부터 2층(Top/Bottom) 보드, 3D 시뮬레이션까지 설계를 완성했다.

PCB 3D Simulation
MCU 펌웨어
STM32CubeIDE와 HAL 라이브러리로 NUCLEO-F103RBT6를 프로그래밍했다. 우산 6개 칸의 고정 모터(MG996R)와 IR 센서를 한 보드에서 관리하며, 라즈베리파이와는 UART(115200bps)로, 학생증 RFID 리더(RC522)와는 SPI로 통신했다. IR 센서 입력은 ADC와 DMA로 효율적으로 수집하고, 모터는 구조체 배열로 관리해 함수 재사용과 최적화를 통해 깔끔하게 구현했다.

STM32CubeMX — 핀 구성

STM32CubeMX — 주변장치
통합 · 협업 지원
개발을 마친 뒤 하드웨어 조립에도 참여했다. WinForm 파트가 버그로 어려움을 겪었지만 이미 두 명이 맡고 있었기에, 남은 시간을 고려해 STM32 통신에서 어려움을 겪던 다른 팀을 지원하는 방향으로 전환했다. 융합 프로젝트 특성상 팀 간 협력도 중요한 평가 요소였기에, 다른 팀의 STM32 및 UART 통신 구현을 적극적으로 도왔다. 학생은 학생증으로 우산을 대여·반납하고, 웹과 WinForm으로 상태를 확인하는 흐름으로 완성됐다.

WEB — 메인페이지

WinForm — 대여 화면

최종 결과물

최종 결과물
최종 시연
학생증 태그로 우산을 대여·반납하고, 그 상태가 웹·WinForm으로 실시간 확인되는 전체 흐름이 실제로 동작하는 모습을 영상으로 담았다.
바로우산 최종 시연 영상
내 역할
5명이 하드웨어·라즈베리파이·WinForm·웹(LLM 연동)을 나눠 맡은 가운데, 나는 팀장으로서 전체 시스템을 설계하고 하드웨어가 실제로 동작하는 층 — 시스템 설계·PCB·펌웨어·하드웨어 통합을 책임졌다.
팀장 — 전체 시스템 아키텍처를 설계하고 하드웨어 통합 전반을 주도했다.
STM32 기반 회로 및 PCB 설계 — Circuit Maker 2로 스케메틱부터 멀티 레이어·3D 시뮬레이션까지 완성했다.
하드웨어 — 프로파일 설계와 아크릴 부품 제작(프로파일 간 결합 구조 포함), 조립까지 참여했다.
STM32CubeIDE·HAL로 NUCLEO-F103RBT6 펌웨어 개발 — DMA 기반 ADC, UART 인터럽트, 구조체 배열 모터 관리, 함수 모듈화로 최적화했다.
통신 — STM32와 라즈베리파이 간 UART, STM32와 RC522 간 SPI 통신을 구현했다.
트러블슈팅
MG996R 서보모터 발열
우산 고정용 MG996R 서보모터를 오래 구동하자 발열이 심해졌다.
사용한 전선이 얇았던 데다, 테스트 과정에서 모터를 쉬지 않고 계속 돌린 탓에 발열이 누적된 것이 원인이었다.
전선을 정리·정돈하니 발열이 가라앉아 정상적으로 동작했다.
결과 & 회고
우리 팀은 전체 2위(최우수상) 를 받았고, 나는 팀워크와 기술 기여도를 인정받아 전체 MVP(1위) 로 선정됐다.
향후에는 API·UI 성능을 개선해 시스템 안정성을 높이고, 우산 반납 기한 알림 같은 사용자 알림 기능을 확장할 계획이다.
이 프로젝트를 진행하며 시간 관리와 팀 내 의사소통의 중요성을 깊이 깨달았다. 많은 부분을 직접 제작했지만, 다른 파트와 통합하는 과정에서 팀원 간 작업 속도 차이로 일정이 지연되는 일이 잦았다.
돌아보면 팀장으로서 일정·우선순위·진행 상황을 명확히 공유하고 조율하는 역할을 충분히 하지 못했다. 앞으로 내 역할의 비중은 줄더라도 협업과 조율 능력은 더 중요해질 것이라 생각한다. 이 경험을 발판 삼아 더 나은 리더십과 협업 능력을 갖춘 개발자로 성장하고 싶다.

융합프로젝트 최우수상

개인상 MVP 1등상