아두이노 서보로봇 제어 (블루투스 스마트폰 조종) -03차시- ㈜헬로앱스 김영준 www.helloapps.co.kr
서보로봇 준비하기
개발툴 다운로드 www.helloapps.co.kr/arduino 페이지에서 v2.42.0 이상 버전 설치
로봇 케이블 확인 서보형 로봇 케이블 확인 (총 4개의 연결 필요) 디지털 5, 6번에 연결되는 서보모터 케이블 2개 아날로그 핀에 연결되는 보조 전원공급용 케이블 아두이노 전원잭에 연결되는 전원 케이블
로봇 케이블 확인 아두이노 보드를 아크릴 판 위에 올려놓습니다.
로봇 케이블 확인 바퀴가 있는 쪽이 전진방향입니다. 전진방향
로봇 케이블 확인 오른쪽 서보 모터의 케이블을 디지털 5번 핀에 연결합니다. 디지털 5번에 가장 어두운 케이블이 GND(검정)쪽에 가도록 합니다. 디지털 5번에 오른쪽 서보모터 케이블을 연결합니다. 오른쪽 바퀴
로봇 케이블 확인 서보모터 케이블을 디지털 5번과 6번에 각각 연결합니다. 왼쪽 서보모터 오른쪽 서보모터
로봇 케이블 확인 왼쪽 서보 모터의 케이블을 디지털 6번 핀에 연결합니다. 디지털 6번에 왼쪽 서보모터 케이블을 연결합니다. 왼쪽 바퀴 가장 어두운 케이블이 GND(검정)쪽에 가도록 합니다.
로봇 케이블 확인 로봇 방향은 추후에 변경할 수 있습니다. 전진방향 5번과 6번의 위치는 일단 연결한 후, 추후에 로봇의 전진 방향이 반대로 되어 있는 경우, 순서를 바꾸어 연결합니다. 전진방향
로봇 케이블 확인 보조 전원케이블과 메인 전원 케이블은 로봇을 작동시킬 경우에만 연결합니다. 아날로그 핀에 연결되는 보조 전원공급용 케이블 아두이노 전원잭에 연결되는 전원 케이블
로봇 케이블 확인 보조 전원케이블과 메인 전원 케이블은 로봇을 작동시킬 경우에만 연결합니다. 아날로그 핀에 연결되는 보조 전원공급용 케이블 보조 전원용 3핀 케이블은 아날로그 핀 중 아무 핀이나 연결합니다. 검정색과 빨간색을 맞추어 줍니다. 아두이노 전원잭에 연결되는 전원 케이블 전원 관련 2개의 케이블들은 프로그램 업로드 후, 로봇을 작동시킬 때에만 연결합니다. 프로그램 작성시에는 전원관련 2개의 케이블을 모두 빼 놓습니다.
서보 함수 준비하기
서보 함수 추가하기 서보로봇은 서보모터로 작동되는 로봇입니다. 서보 로봇은 ServoDrive 라는 이름의 함수를 만들어서 사용합니다. ServoDrive 라는 이름의 함수는 개발툴에 포함되어 있지 않으며, 개발시 해당 함수를 추가해 주어야 합니다.
서보 함수 추가하기 서보 로봇을 제어할 때에는 제일 먼저 해야할 일은 ServoDrive 라는 이름의 함 수를 프로그램에 추가해 주는 것입니다. AddServoDriveFunction 블록을 편집기의 비어 있는 영역으로 드래그 합니다. 서보모터 명령어가 위와 같이 보이지 않는 경우, 최신 버전으로 제품을 업데이트 하기 바랍니다.
서보 함수 추가하기 서보 로봇을 제어할 때에는 제일 먼저 해야할 일은 ServoDrive 라는 이름의 함 수를 프로그램에 추가해 주는 것입니다. 해당 함수를 드래그하면 자동으로 ServoDrive 함수가 추가됩니다.
서보 함수 추가하기 스크립트 모드에서는 다음과 같이 스크립트로 구성된 함수가 추가됩니다.
서보 함수 추가하기 스크립트 모드에서는 다음과 같이 스크립트로 구성된 함수가 추가됩니다. void setup() { } void loop() void ServoDrive(int left, int right) left_pw = map(left, -255, 255, 180, 0) right_pw = map(right, -255, 255, 0, 180) ServoWrite(5, left_pw) ServoWrite(6, right_pw)
블루투스 연결하기
블루투스 연결하기 스마트폰과 아두이노 간에 블루투스로 페어링을 위해 블루투스를 잠시 연결해 보도록 하겠습니다. 스마트폰과 아두이노 간에 블루투스로 페어링을 위해 블루투스를 잠시 연결해 보도록 하겠습니다. 블루투스 모듈은 페어링 과정에서만 잠시 아두이노 보드에 연결하고, 페어링 과정이 끝나면 케이블을 빼 놓을 예정입니다.
블루투스 연결하기 블루투스 모듈을 확인합니다. 앞면 뒷면 블루투스 뒷면의 이름을 확인합니다.
블루투스 연결하기 블루투스 모듈을 이두이노의 시리얼 통신 핀에 연결합니다. RX TX 5V GND 라고 쓰여있는 핀이 불루투스를 연결할 핀입니다.
블루투스 연결하기 블루투스 모듈을 아두이노의 시리얼 통신 핀에 연결합니다. 블루투스 케이블에서 검은색 선이 바깥쪽으로 향하도록 한 후 핀에 연결합니다.
블루투스 연결하기 아두이노 보드의 USB 케이블을 노트북에 연결합니다.
스마트폰용 앱 설치하기
스마트폰용 앱 설치하기 구글 안드로이드 계열만 블루투스 연결을 할 수 있습니다. 스마트폰에서 Play 스토어 앱을 실행합니다. 구글 안드로이드 계열만 블루투스 연결을 할 수 있습니다. 스마트폰에서 Play 스토어 앱을 실행합니다. Play 스토어 앱 실행
스마트폰용 앱 설치하기 Helloapps 입력 SPL-Duino Lite (HelloApps) 앱을 선택합니다.
스마트폰용 앱 설치하기 앱을 설치한 후 실행해 줍니다.
스마트폰용 앱 설치하기 SPL Example 4를 선택해 줍니다.
스마트폰용 앱 설치하기 Scan for devices를 클릭합니다. Run 버튼을 클릭합니다.
스마트폰용 앱 설치하기 자신의 블루투스 모듈 뒷면에 있는 글자가 표시될 때 까지 기다립니다.
스마트폰용 앱 설치하기 자신의 블루투스 모듈 뒷면에 있는 글자와 동일한 항목을 선택합니다.
스마트폰용 앱 설치하기 숫자 0000 을 입력한 후, 확인 버튼을 클릭합니다.
스마트폰용 앱 설치하기 성공적으로 연결이 되면 자동으로 이 화면으로 전환됩니다. 만약 이 화면이 표시되지 않는 다면 이전 과정을 다시 반복해 주세요.
블루투스 값 확인하기
블루투스 연결 제거하기 아두이노 보드에서 블루투스 모듈 연결을 제거합니다. 블루투스가 연결되어 있으면 아두이노 보드에 프로그램이 업로드 되지 못합니다.
블루투스 값 확인하기 스마트폰에서 아두이노 보드로 보낸 값을 PC에 출력해 봅니다. 다음 프로그램을 아두이노 보드에 업로드해 줍니다.
블루투스 값 확인하기 [스크립트 모드] 스마트폰에서 아두이노 보드로 보낸 값을 PC에 출력해 봅니다. 다음 프로그램을 아두이노 보드에 업로드해 줍니다. void setup() { } void loop() a = SerialRead() if (a >= 0) PrintLine(a) Delay(100)
프로그램 업로드 하기 프로그램을 업로드 시킵니다. 실행 버튼을 클릭하여 프로그램을 아두이노 보드에 업로드 시킵니다.
블루투스 모듈 연결하기 블루투스 모듈을 아두이노의 시리얼 통신 핀에 연결합니다. 블루투스 케이블에서 검은색 선이 바깥쪽으로 향하도록 한 후 핀에 연결합니다.
앱 실행하기 SPL-Duino Light 앱에서 메뉴로 이동한 다음 다시 SPL Example 4를 실행해 줍니다. 선택해 줍니다. Run 버튼을 클릭합니다.
앱 실행하기 화면에 있는 버튼을 클릭해 봅니다. 버튼에는 숫자가 표시되어 있습니다. PC의 화면에 해당 숫자가 표시되는 지 확인해 봅니다.
블루투스 값 확인하기
스마트폰으로 LED 제어하기
블루투스 연결 제거하기 아두이노 보드에서 블루투스 모듈 연결을 제거합니다. 블루투스가 연결되어 있으면 아두이노 보드에 프로그램이 업로드 되지 못합니다.
스마트폰으로 LED 제어하기 스마트폰으로 13번 LED를 제어해 봅니다.
스마트폰으로 LED 제어하기 [스크립트 모드] 스마트폰으로 13번 LED를 제어해 봅니다. void setup() { } void loop() a = SerialRead() if (a == 1) DigitalWrite(13, HIGH) else if (a == 2) DigitalWrite(13, LOW) Delay(100)
프로그램 업로드 하기 프로그램을 업로드 시킵니다. 실행 버튼을 클릭하여 프로그램을 아두이노 보드에 업로드 시킵니다.
블루투스 모듈 연결하기 블루투스 모듈을 아두이노의 시리얼 통신 핀에 연결합니다. 블루투스 케이블에서 검은색 선이 바깥쪽으로 향하도록 한 후 핀에 연결합니다.
앱 실행하기 SPL-Duino Light 앱에서 메뉴로 이동한 다음 다시 SPL Example 4를 실행해 줍니다. 선택해 줍니다. Run 버튼을 클릭합니다.
앱 실행하기 1번 버튼을 클릭하여 LED가 켜지는 지 확인 합니다. 2번 버튼을 클릭하여 LED가 꺼지는 지 확인 합니다.
스마트폰으로 로봇 제어하기
스마트폰으로 로봇 조종하기 다음과 같이 버튼이 눌려지면 로봇이 동작하도록 합니다. 버튼 ()안의 숫자 값 1 전전 2 좌회전 3 정지 4 우회전 5 후진
스마트폰으로 로봇 조종하기 다음과 같이 버튼이 눌려지면 로봇이 동작하도록 합니다. 버튼 ()안의 숫자 값 1 전전 ServoDrive(200, 200) 2 좌회전 ServoDrive(150, -150) 3 정지 ServoDrive(0, 0) 4 우회전 ServoDrive(-150, 150) 5 후진 ServoDrive(-150, -150)
스마트폰으로 로봇 조종하기
스마트폰으로 로봇 조종하기 [스크립트 모드] void loop() { a = SerialRead() if (a == 1) ServoDrive(200, 200) } elseif (a == 2) ServoDrive(150, -150) elseif (a == 3) ServoDrive(0, 0) elseif (a == 4) ServoDrive(-150, 150) elseif (a == 5) ServoDrive(-150, -150) Delay(100) void ServoDrive(int left, int right) { left_pw = map(left, -255, 255, 180, 0) right_pw = map(right, -255, 255, 0, 180) ServoWrite(5, left_pw) ServoWrite(6, right_pw) }
프로그램 업로드 하기 프로그램을 업로드 시킵니다. 실행 버튼을 클릭하여 프로그램을 아두이노 보드에 업로드 시킵니다.
블루투스 모듈 연결하기 블루투스 모듈을 아두이노의 시리얼 통신 핀에 연결합니다. 블루투스 케이블에서 검은색 선이 바깥쪽으로 향하도록 한 후 핀에 연결합니다.
전원 케이블 연결 보조 전원케이블과 메인 전원 케이블을 연결합니다. 아날로그 핀에 연결되는 보조 전원공급용 케이블 보조 전원용 3핀 케이블은 아날로그 핀 중 아무 핀이나 연결합니다. 검정색과 빨간색을 맞추어 줍니다. 아두이노 전원잭에 연결되는 전원 케이블 전원 관련 2개의 케이블들은 프로그램 업로드 후, 로봇을 작동시킬 때에만 연결합니다. 프로그램 작성시에는 전원관련 2개의 케이블을 모두 다시 빼 놓습니다.
로봇 케이블 확인 보조 전원케이블과 메인 전원 케이블을 연결합니다. 메인 전원잭 보조 전원 케이블 (로봇 하단부에 있는 4개의 건전지 홀더에 연결되어 있음)
스마트폰으로 로봇 조종하기 다음과 같이 버튼으로 로봇을 조종해 봅니다. 버튼 ()안의 숫자 값 1 전전 2 좌회전 3 정지 4 우회전 5 후진
결과 확인 로봇이 버튼 값에 따라 움직이는 지 확인합니다. 전진방향
로봇 정지 시키기 로봇을 정지시키고, 프로그램을 수정하기 위해서는 보조 전원케이블과 메인 전원 케이블을 보드에서 제거해 줍니다. 아날로그 핀에 연결되는 보조 전원공급용 케이블 아두이노 전원잭에 연결되는 전원 케이블 프로그램 작성시에는 전원관련 2개의 케이블을 모두 다시 빼 놓습니다.