image.png

<aside>

드릴같은 개발자, 이주영입니다.

<aside>

정보를 파헤치다

호기심이 생기는 대상에 대해 집요하게 파고듭니다.

</aside>

<aside>

사용자 우선주의

항상 사용자의 입장에서 필요한 서비스를 고민하고 제시합니다

</aside>

</aside>

<aside>

Careers

2025 교내 전공동아리 [Haro] CTO

</aside>

<aside>

Informations

📱010-9897-6040

Gmail [email protected]

https://github.com/jgrgrgurgr

https://www.linkedin.com/in/juyoung-lee-232a4a367/

</aside>

<aside>

Index

Haro

센서링 텀블러

더 많은 프로젝트들

</aside>

<aside>

Stacks

C++, C#, Python

Arduino, ESP32, STM32

Fusion360, EasyEDA, OrCAD

XG5000, Linux, Docker

</aside>

<aside>

Activities

2025 U-BDIA AI-SW 페스티벌 부스 운영 (Haro)

2025 가상융합서비스 개발자 경진대회 학생부문 최우수상 (Haro)

제 46회 전국학생발명품경진대회 장려상 (센서링 텀블러)

제 46회 부산학생과학발명품경진대회 금상 (센서링 텀블러)

</aside>

대표 프로젝트


@Not found

“건설 현장 안전 강화 및 펌프카 사고 예방 솔루션”

<aside>

1. 프로젝트 요약 및 문제 정의

<aside>

EPIC은 디지털 트윈 기반의 펌프카 가상 훈련 및 AR/VR 연동 제어 시스템으로, AI 기반 위험 감지와 자체 제작 컨트롤러를 통해 실제 장비의 안전한 원격 제어와 현장 사고 예방을 목표로 합니다. 저는 이 프로젝트에서 가상 환경과 물리 환경 간의 MQTT 통신을 구축하고, 하드웨어 시스템 전반의 설계를 진행하였습니다.

</aside>


2. 기술 스택 및 역할

<aside>

기술 스택: PCB 디자인 (EasyEDA), MCU (ESP32), 펌웨어 (C++, MQTT), 모델링 (Fusion360)

담당 역할: 기술 팀장 / 하드웨어 시스템 개발 총괄

</aside>


3. 핵심 기여

<aside>

펌웨어


펌프카 컨트롤러 개발을 통해 해당 파트의 핵심 로직을 구현하였습니다.

    int btn1 = digitalRead(BTN1) == LOW ? 1 : 0; //일반 버튼
    
    int controlx = analogRead(JOY1X); //조이스틱

조이스틱은 내부 가변저항값을 ADC로 읽는 구조라 물리적 진동이나 접촉 불량으로 인한 노이즈가 필연적으로 발생합니다. 특히, 제가 개발에 활용한 모듈은 그 정도가 심하였습니다. 따라서, 오작동 시 안전 사고를 유발할 수 있는 장비의 특성을 고려해 범위를 1000~3000으로 설정하여 오입력 가능성을 낮추었습니다.

    if(controlx > 3000){
      a=1; //정방향
    }else if(controlx < 1000){
      a=2; //역방향
    }else{
      a=0; //정지
    }

데드존 설정을 통해, 입력을 세 가지 상태(정지/정방향/역방향)로 분류했습니다.

    int btn1 = digitalRead(BTN1) == LOW ? 1 : 0; //토글 버튼
    int btn2 = digitalRead(BTN2) == LOW ? 1 : 0;
    int btn3 = digitalRead(BTN3) == LOW ? 1 : 0;
    int btn5 = digitalRead(BTN5) == LOW ? 0 : 1;
    int btn6 = digitalRead(BTN6) == LOW ? 0 : 1;

    int controlx = analogRead(JOY1X); //조이스틱 X축
    int controly = analogRead(JOY1Y); //조이스틱 Y축
    int controlx2 = analogRead(JOY2X);
    int controly2 = analogRead(JOY2Y);
    int controlx3 = analogRead(JOY3X);
    int controly3 = analogRead(JOY3Y);
    
    String data = String(b) + String(a) + String(b2) + String(a2) + String(b3) + String(a3) + String(btn1) + String(btn2) + String(btn3) + String(btn5) + String(btn6);
    //String != char*

    Serial.print("Publish message: ");
    Serial.println(data);

각 축의 데이터를 개별 토픽으로 전송할 때 발생하는 시간차를 막기 위해, 6축 조이스틱과 5개 버튼의 상태를 11자리 문자열로 직렬화해 하나의 패킷으로 동기화하여 전송하였습니다.

</aside>

<aside>

PCB 제작


AR/VR 파트 조작을 위한 컨트롤러 PCB, 3축 펌프카 구동을 위한 펌프카 PCB를 제작하였습니다.

컨트롤러 PCB

컨트롤러 PCB

펌프카 PCB

펌프카 PCB

</aside>

<aside>

모델링


<aside>

</aside>

<aside>

</aside>

<aside>

</aside>

<aside>

</aside>

</aside>


4. 트러블슈팅

모델링

<aside>

</aside>

펌웨어

<aside>

</aside>

PCB

<aside>

</aside>


5. 성과 및 회고

후기

<aside>

</aside>

</aside>

센서링 텀블러, 텀블러 내부 온도를 시각과 청각으로 전달하는 솔루션 ‣

<aside>

</aside>

더 많은 프로젝트들

더 많은 프로젝트 / Projects