2. 프로젝트에 쓰인 구성품
라즈베리파이, 라즈베리파이 카메라
아두이노 우노, nodeMCU(esp8266),
28BYJ-48스텝모터
App을 실행시킬 스마트폰
AWS로 구축한 서버
보조배터리5000 2개, VR기기, 연결 전선 다수
3. 아두이노 및 nodeMCU 코딩 환경 만들기
아두이노 스케치 다운로드
https://www.arduino.cc/en/Main/Software
툴 -> 아두이노 보드 종류 선택: 이번 프로젝트에서는 aruino uno를 사용함
툴 -> 포트: Arduino uno는 자기가 연결된 포트를 보여주기 때문에 uno가 연
결된 포트를 선택하면 된다.
모터를 돌리기 위해 필요한 AccelStepper library 다운로드 후 아두이노 라이브
러리에 추가(검색을 통해 쉽게 받을 수 있다)
4. 아두이노 및 nodeMCU 코딩 환경 만들기
nodeMCU를 스케치로 코딩하기 위한 설정
환경설정 보드매니저 다음 URL에 추가
http://arduino.esp8266.com/stable/package_esp8266com_index.json
툴 -> 보드매니저 탭 esp library 설치(버전 최신 2.2.0)
툴 -> reset method: nodeMCU
툴 -> 보드 종류: esp 8266 general
툴 -> 포트: nodeMCU가 연결된 USB포트로 설정
5. 아누이노와 nodeMCU 보드 세팅
스텝 모터의 입력전선들을 아누이노의 디지털핀 3 4 5 6
에 연결한다. 그리고 스텝모터의 vcc, gnd를 아두이노의
5v와 gnd핀에 연결해준다. (자세한 연결방식은 검색과 코
드참조)
nodeMCU의 vcc, gnd와 아두이노의 3.3v, gnd핀을 연결
해준다.
6. 아두이노 및 nodeMCU 구동 코드
https://github.com/InnocentSnow/Capstone1/tree/master/C
apstone/Capstone_Project/motor
https://github.com/InnocentSnow/Capstone1/tree/master/C
apstone/Capstone_Project/client
각각의 코드를 컴파일 후 업로드하고 아두이노와 nodeMCU
를 연결한다.
아두이노의 디지털 핀과 nodeMCU의 tx rx연결(디지털 핀 번
호는 코드 참조)
8. APP을 제작하기 위한 코딩 환경 만들기
안드로이드 스튜디오 및 SDK를 설치한다.
https://developer.android.com/studio/index.html
9. App 제작 코드
https://github.com/InnocentSnow/Capstone1/tree/mast
er/Capstone/Capstone_Project/VRPlayer
10. 중계 서버를 위해 AWS 서버 구축하기
이번 프로젝트에서는 아마존 웹 서비스를 사용하여 서버
를 만들었다.
Free tier로 만들면 되며, 데이터 50기가바이트까지는 추
가 요금이 발생하지 않는다.
https://aws.amazon.com/ko/free/
11. 서버 구축 코드
https://github.com/InnocentSnow/Capstone1/tree/mast
er/Capstone/Capstone_Project/server
12. 서버 작동 화면
서버에 라즈베리파이 카메라 이미지와 스마트폰에서 전송된 각도 값이 들
어오는 것이 보인다. 맨 밑줄에는 app을 실행하여 연결을 확인한 신호가
들어왔다.
13. 라즈베리파이 카메라 세팅
라즈베리파이에 라즈비언 os를 깔고 카메라 모듈을 꽂는
다.
카메라를 실행시키는 프로그램은 이미 깔려있어서 바로
사용이 가능하다.
이번 프로젝트에서는 라즈베리파이 상에서 자바프로그
램을 돌리기 때문에 라즈비언에 jdk를 설치한다.
설치방법링크: http://www.rasplay.org/?p=4143
14. 카메라 구동 코드
코드는 tcp통신과 카메라 작동으로 구분되어있다.
Tcp는 다음을 참고 http://www.icbanq.com/pbloger/board_View.aspx?number=521
사진캡쳐는 다음을 참고 http://roadrunner.tistory.com/214
raspistill 명령어로 사진 캡쳐
라즈베리파이 부팅시 프로그램을 자동 실행 시키기 위한 코드참고
http://incleaf.tistory.com/10
여기서 windows.h 대신 unistd.h를 사용하면 된다.
자동실행은 rc.local에 실행파일을 등록해서 구현하였다.
http://wooguy-linux.blogspot.kr/2014/08/blog-post_11.html