서보 제어 시 아두이노에 어댑터 전원 공급 필수. PC USB 전원은 진동 유발 → 서보 과열 및 손상. (내 서보 하나 고장남)
3단계: LinkIt ONE 연결
LinkIt ONE이 아두이노와 통신해 서보 제어.
LinkIt ONE Tx → 아두이노 Rx, 양쪽 GND 연결.
데이터 수신 시 아두이노로 전송.
참고: 아두이노 블루투스 실드 있으면 한 보드로 전체 제어 가능.
4단계: 서보 위치 설정
모든 서보 모터를 90도로 설정. 위 프로그램(아래 Servoposition.ino) 아두이노에 업로드.
서보 전원과 아두이노 전원을 정전압 전원 보드 5V, 12V 핀에 연결.
서보 암 커넥터를 우리가 만든 PCB의 아두이노 디지털 핀 3,5,6 수 커넥터에 연결.
12V 어댑터를 정전압 전원 보드에 연결.
어댑터 켜기.
프로그램대로 모든 모터가 90도 회전.
로터 건드리지 말고 모터 분리해 조립 준비.
아두이노 IDE 코드는 Servoposition.ino로 제공
5단계: 설계 계획
머리가 X, Y, Z 3축 회전.
회전 종류:
Yaw(요) – 좌우 회전
Pitch(피치) – 상하 회전
Roll(롤) – 좌우 기울이기
양면테이프로 서보 배치 계획.
알루미늄 파티션 조각을 L자형으로 잘라 위 서보를 아래 서보에 고정.
서보 혼(horn)을 계획대로 또는 사진처럼 연결.
모든 서보 중심이 90도일 때 일직선 되게.
양면테이프로 서보와 알루미늄 L자 고정, 다른 서보 방해 안 되는지 움직임 확인.
6단계: 본조립
이제 영구 고정.
양면테이프 하나씩 떼며 글루건으로 영구 고정.
서보 손상 안 되게 조심.
서보 커넥터 다시 아두이노에 연결하고 전원 켜기.
마지막 이미지처럼 모두 일직선 서 있는지 확인.
7단계: 안드로이드 앱 세부사항
안드로이드 폰에서 SensoDuino 실행. 모든 모바일 센서 읽기 표시 및 블루투스로 전송 가능.
최신 센서들 나열, 폰에 있는 센서만 선택 가능.
메뉴 → 블루투스 연결 선택.
사용 가능한 블루투스 기기 목록 표시.
LinkIt ONE 블루투스 선택.
우리 프로젝트는 방향 센서(Orientation) 사용. 첫 번째 체크박스 켜고(활성화), 두 번째 체크박스 켜기(블루투스로 데이터 전송).
메뉴의 성능 옵션에서 각 센서 성능 설정. 읽기 간격 시간 변경.
8단계: 코딩
코드 2개: LinkIt ONE용, 아두이노용.
LinkIt ONE: 블루투스로 모바일 데이터 수신 → 시리얼 포트로 아두이노 전송.
아두이노: 시리얼 포트 데이터 수신 → 문자열 연결 → indexOf와 substring으로 전체 데이터 세트 분리 → 다시 indexOf/substring으로 각 위치 추출 → 아두이노 map 함수로 0~180도 서보 제어. 블루투스 실드 쓰면 요구사항 맞게 프로그램 수정.
프로그램 작동 원리
방향 센서로 로봇 머리를 우리처럼 회전.
a) Yaw: 자북 기준 0~360도. 90~270도 사용, 180도가 서보 90도에 해당. 모자 쓸 때 180도 정면 향하도록.
b) Pitch: 전면 상하. 센서 -180~+180. -90~+90 사용.
c) Roll: 좌우 기울이기. 0→90→0→-90→0. -90~90 사용.
LinkIt ONE 코드는 Linkitonehead.ino로 제공
아두이노 코드는 Arduinohead.ino로 제공
9단계: 보드 적층
두 실드 보드를 각 마이크로컨트롤러 위에 적층.
양면테이프로 전부 겹쳐 붙이기.
단자 쇼트 안 나게 주의.
10단계: 손으로 테스트
모든 전원 켜고 폰을 손에 든 채 테스트. Yaw 180도(정면) 향하게 앉아 폰으로 세 서보 모두 제어.