아두이노 프로그래밍 4일차 – Part1 모바일 로봇 강사: 김영준 목원대학교 겸임교수 헬로앱스 (www.helloapps.co.kr)
로봇 및 모터 펌프 연결하기
로봇 모터 및 모터 펌프 연결하기 올인원 센서 쉴드에서의 모터핀 2개의 DC 모터 또는 모터 펌프 등을 연결하는 핀 (2개의 핀으로 구성) 모터2 모터1
로봇 모터 및 모터 펌프 연결하기 모터 핀에 연결되는 부품들 모바일 로봇의 모터 화분 물주기 키트의 모터펌프
로봇 모터 및 모터 펌프 연결하기 모터핀에 연결하기 오른쪽 모터 케이블 (MOTOR2) 왼쪽 모터 케이블 (MOTOR1)
로봇 주행 명령어
기본 주행 제어 명령어 익히기 내장 명령어 탭에 있는 주행제어하기 명령어를 찾습니다.
기본 주행 제어 명령어 익히기 DriveWrite (200, 200) DriveWrite 명령어 첫번째 모터의 파워값 -255 ~ 255 사이의 값 두번째 모터의 파워값 -255 ~ 255 사이의 값
기본 주행 제어 명령어 익히기 DriveWrite 명령어 설명 첫번째 모터값 (Left Power) 두번째 모터값 Left 값과 Right 파워 값은 -255 에서 255 사이의 아무 값이나 사용 가능 설명 첫번째 모터값 (Left Power) 두번째 모터값 (Right Power) 최대 속도 전진 255 보통 속도 전진 200 정지 후진 -200 최대속도 후진 -255 좌회전 우회전
기본 전진 패턴 void setup() { } void loop() DriveWrite(200, 200) Delay(1000) 양쪽의 모터를 같은 방향으로 회전시킴 void setup() { } void loop() DriveWrite(200, 200) Delay(1000)
기본 주행 패턴 1초간 전진하고 1초간 후진, 1초간 회전을 반복합니다. void setup() { } void loop() DriveWrite(200, 200) Delay(1000) DriveWrite(-200, -200) DriveWrite(-200, 200)
기본 주행 패턴 건전지 홀더를 장착하고, 로봇이 스스로 움직이도록 합니다. 프로그램이 실행되고 나면, USB 전원 케이블을 빼도 프로그램이 지워지지 않고 SPL-Duino 보드에 남아 있게 됩니다. 건전지 홀더를 연결하면, 전원이 켜지는 순간 SPL-Duino 보드에 저장되어 있는 프로그램이 자동으로 실행되게 됩니다.
실습: 컵 주행 미션 다음과 같이 종이컵을 배치합니다. 종이컵 로봇 출발 위치 로봇 도착 위치 출발위치에서 로봇을 출발시켜, 두 개의 종이컵을 건드리지 않고 빠져나가서 목적지에 도착하는 미션을 모둠별로 수행하여 순위를 정해 봅니다. (미션 수행 시간: 50분)
실습: 컵 주행 미션 다음과 같이 미션을 수행합니다. 난이도가 낮은 미션 난이도가 보통인 미션
실습: 로봇 댄스 모둠별로 좋아하는 음악을 선택한 후, 해당 음악에 맞추어 로봇이 움직이도록 로봇 주행 프로그램을 작성해 봅니다.
키패드 로봇 조종기
키패드 함수 라이브러리 불러오기 #include <AnalogKeyPad.h> void setup() { } void loop() a0 = KeyPad(0) PrintLine(a0) Delay(100) • 새로운 스크립트 파일을 생 성합니다. • 프로그램 상단에 #include <AnalogKeyPad.h> 를 추가합 니다. • KeyPad 함수를 활용합니다.
키패드로 로봇 조종기 만들기 #include <AnalogKeyPad.h> void setup() { } void loop() a0 = KeyPad(0) if (a0 == 1) DriveWrite(0, 200) else if (a0 == 2) DriveWrite(200, 200) else if (a0 == 3) DriveWrite(0, 0) } else if (a0 == 4) { DriveWrite(200, 0) } else if (a0 == 5) DriveWrite(-200, -200) Delay(100)
장애물 감지 로봇
장애물 회피 로봇 아날로그 PSD 거리센서 - 적외선을 이용하여 대상물까지의 거리를 측정하여 값으로 변환 - 측정값은 0 ~ 1023 사이의 값으로 읽혀짐 - 10cm ~ 80cm 사이의 거리를 측정합니다.
장애물 회피 로봇 아날로그 PSD 센서 장착하기 PSD 거리 센서를 로봇 앞에 고정시켜 줍니다.
장애물 회피 로봇 장애물을 만나면 로봇이 멈추도록 합니다. void setup() { } void loop() a0 = AnalogRead(0) if (a0 > 300) DriveWrite(0, 0) else DriveWrite(200, 200) Delay(100)
장애물 회피 로봇 장애물을 만나면 로봇이 1초간 후진하도록 기능을 수정 합니다. void loop() { a0 = AnalogRead(0) if (a0 > 300) DriveWrite(-200, -200) Delay(1000) } else DriveWrite(200, 200) Delay(100)
장애물 회피 로봇 장애물을 만나면 로봇이 1초간 후진, 1초간 회전하도록 기능을 수정 합니다. void loop() { a0 = AnalogRead(0) if (a0 > 300) DriveWrite(-200, -200) Delay(1000) DriveWrite(0, 200) } else DriveWrite(200, 200) Delay(100)