아두이노 프로그래밍 4일차 – Part1 모바일 로봇 강사: 김영준 목원대학교 겸임교수
로봇 및 모터 펌프 연결하기
로봇 모터 및 모터 펌프 연결하기 올인원 센서 쉴드에서의 모터핀 2개의 DC 모터 또는 모터 펌프 등을 연결하는 핀 (2개의 핀으로 구성) 모터2 모터1
로봇 모터 및 모터 펌프 연결하기 모터 핀에 연결되는 부품들 모바일 로봇의 모터 화분 물주기 키트의 모터펌프 선풍기
로봇 모터 및 모터 펌프 연결하기 모터핀에 연결하기 추후 프로그램에서 제어명령을 실행 한 후, 모터가 반대로 회전한다면, 케이블을 빼서 반대 방향으로 연결해 줍니다.
로봇 주행 명령어
기본 주행 제어 명령어 익히기 내장 명령어 탭에 있는 주행제어하기 명령어를 찾습니다.
기본 주행 제어 명령어 익히기 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)
바닥 감지 로봇
바닥 감지 로봇 바닥 감지용 IR 센서 연결하기 각자 자신이 원하는 형태로 IR 센서를 부착합니다.
떨어지지 않는 로봇 책상에서 떨어지지 않는 로봇 구현하기 IR 센서 중에 하나라도 책상 밖으로 나가면 로봇을 후진 및 회전 시킵니다.
떨어지지 않는 로봇 책상에서 떨어지지 않는 로봇 구현하기 IR 센서 중에 하나라도 책상 밖으로 나가면 로봇을 후진 및 회전 시킵니다. 1 1 1
떨어지지 않는 로봇 void loop() { ir_left = AnalogRead(0) ir_right = AnalogRead(1) if (ir_left < 100 || ir_right < 100) DriveWrite(-200, -200) Delay(1000) DriveWrite(-200, 200) Delay(500) } else DriveWrite(200, 200) Delay(10)
떨어지지 않는 로봇 3분 이상 책상에서 떨어지지 않는 로봇을 구현해 봅니다.
라인 트레이서 로봇
라인 트레이서 로봇 센서 장착하기 IR 센서들이 바닥 방향을 향하도록 로봇 전방에 고장시킵니다.
라인 트레이서 로봇 센서 장착하기 로봇이 라인을 따라 가도록 기능을 구현합니다.
라인 트레이서 로봇 void loop() { ir_left = AnalogRead(0) ir_right = AnalogRead(1) if (ir_left > 600) DriveWrite(200, 0) } else if (ir_right > 600) DriveWrite(0, 200) else DriveWrite(200, 200) Delay(10)
자동 주차 로봇
자동 주차 로봇 자동 주차 로봇을 구현해 봅니다.
자동 주차 로봇 IR 센서를 로봇 후방부에 장착해 봅니다.
패스 파인더 로봇
패스 파인더 로봇 로봇에 서보 모터 및 PSD 센서를 장착합니다. 장애물의 위치를 사전에 파악하도록 기능을 구현 합니다
패스 파인더 로봇 장애물이 없는 방향 쪽으로 로봇을 이동시킵니다. 80도 최소값 각도
시뮬레이터에서의 로봇 프로그래밍
로봇 명령어 로봇 명령어 로봇 환경 실행하기 아두이노 로봇 시나리오를 선택한 후 실행해 봅니다.
로봇 명령어 로봇 명령어 로봇 환경 실행하기 키보드의 방향키를 이용해 로봇을 조종해 봅니다.
로봇 명령어 DriveWrite (왼쪽 속도, 오른쪽 속도) 최대 속도 전진: DriveWrite (255, 255) 로봇 주행 명령어 DriveWrite (왼쪽 속도, 오른쪽 속도) 최대 속도 전진: DriveWrite (255, 255) 보통 속도 전진: DriveWrite (150, 150) 정지: DriveWrite (0, 0) 최대 속도 후진: DriveWrite (-255, -255)
로봇 명령어 로봇 명령어 1초간 전진, 1초간 회전, 1초간 후진 반복
로봇 명령어 로봇 명령어 1초간 전진, 1초간 회전, 1초간 후진 반복
거리 센서
거리 센서 거리 센서 총 5개의 거리 센서가 연결되어 있음 차단기 A4 A1 A2 A3 A0 로봇
거리 센서 거리 센서 차단기에 연결되어 있는 A4번 아날로그 거리 센서값 확인하기 로봇을 조종하여 차단기 쪽으로 움직여 봅니다.
로봇 제어
로봇 제어 로봇 제어 로봇이 차단기 앞에 접근하면 로봇을 멈추도록 합니다.
서보 모터 제어
서보 모터 ServoWrite (핀번호, 각도) 서보 모터 각도 값은 0 ~ 179 사이의 값을 사용할 수 있습니다.
서보 모터 서보 모터 45도씩 차단기를 회전시켜 봅니다.
실습 서보 모터 로봇이 접근하면 차단기를 3초간 올려 줍니다.