아두이노 프로그래밍 4일차 – Part1 모바일 로봇 강사: 김영준 목원대학교 겸임교수.

Slides:



Advertisements
Similar presentations
Hamster Manual 정보통신과 이우형. 목차 세팅 햄스터 하드웨어 - Model - I/O -Sensor 센서별 예제.
Advertisements

1 차시 : SW 코딩으로 배우는 3D 기초작품 및 톱니바퀴 만들기 1)SPL3D 프린팅 툴 설치하기 2) 도형 추가하기 3) 도형 연산 명령어 익히기 4)3D 프린터 출력을 위한 STL 파일 내보내기 5) 하트모양 만들기 6) 하트모양 열쇠고리 만들기 7) 변수와 수식.
4차시: 3D프린터를 활용한 아두이노 응용작품 만들기
4D 장치 제작 체험으로 배우는 아두이노 및 SW프로그래밍 교육
대림대학교 2017년도 1학기 강의 왕보현 순서도와 스크래치 5주차 대림대학교 2017년도 1학기 강의 왕보현
자바실험실 이동준 우리 곁으로 다가온 사물 컴퓨팅 자바실험실 이동준.
3차시: 인터랙티브 콘텐츠 만들기 소요시간: 45분 준비물 홀로그램 키트 스마트폰 SPL3D 편집기 저작툴.
1차시: 질량 및 탄성 제어하기 SPL3D VR 툴 설치하기 구체(공) 도형 추가 후 질량 부여하기 바닥 추가하기
아두이노 센서의 연결 디지털 및 아날로그 센서값의 특징 디지털 센서 핀 구조 및 연결하기 아날로그 센서 핀 구조 및 연결하기
한국기술교육대학교 아두이노 기반 펌웨어 개발 (기본과정) 1일차 강사: 김영준 목원대학교 겸임교수.
컬러 LED바 이해하기 목차 재료준비 및 브레드 보드 배선 구성하기 컬러 LED바 이해 및 프로그램 실습 응용 작품 만들기.
아두이노 기반 펌웨어 개발 FUTURE INNOVATOR 강사: 김 영 준 ㈜헬로앱스
19장. 원격 조정 로봇 설계 김용애 1조 김정은 이동한 이재흔.
블루투스로 모터 펌프 제어하기 앱인벤터와 스마트팜 키트를 활용한 ㈜헬로앱스
네트워크 스캔하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
LCD 명령어 이해하기 목차 재료준비 및 브레드 보드 배선 구성하기 LCD 명령어 이해 및 기본 실습 응용 작품 만들기.
AP 모드 활용하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
아두이노 프로그래밍 1일차 – Part1 소개 및 준비 강사: 김영준 목원대학교 겸임교수.
LCD를 활용한 탁상 시계 만들기 재료준비 및 브레드 보드 배선 구성하기 LCD를 활용한 탁상 시계 만들기 응용 작품 만들기
아두이노 프로그래밍 2일차 – Part4 아날로그 키패드 활용하기 강사: 김영준 목원대학교 겸임교수.
DK-128 ADC 실습 아이티즌 기술연구소
LCD 모듈의 특징 LCD 컨트롤러 내장으로 모든 디스플레이 기능을 명령어로 제어 8비트 혹은 4비트로 인터페이스
초음파를 이용한 거리 측정과 음성구현 1 조 한 형 래 김 요 섭 안 정 민.
아두이노 프로그래밍 2일차 – Part2 PSD 거리센서 강사: 김영준 목원대학교 겸임교수.
아두이노 프로그래밍 2일차 – Part2 PSD 거리센서 강사: 김영준 목원대학교 겸임교수
Microsoft Robotics Developer Studio 고급 프로그래밍 과정 [Part 3] VPL 로봇 프로그래밍
아두이노 프로그래밍 5일차 – Part2 아두이노 보드간 통신 강사: 김영준 목원대학교 겸임교수.
HBE-RoboCAR 제어 Obstacle Avoidance
1차시: 아두이노 설치 및 어두워지면 저절로 켜지는 장치 제작 실습
체크포스 설치 안내서 ㈜ 체크빌.
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
10차시: 크리스털 LCD 명령어 기초 준비물 SPL-Duino 보드 개요: 크리스털 LCD의 기초 명령어를 익혀 봅니다.
3D 프린팅 프로그래밍 05 – 반복패턴 만들기 강사: 김영준 목원대학교 겸임교수.
1차시: 낮과 밤이 생기는 원리 지구과학
아두이노 매트릭스 코딩 매트릭스 기본 명령어 실습 01차시 ㈜헬로앱스 김영준.
아두이노 비행선.
아두이노 프로그래밍 (응용과정) 3일차 – Part2 LCD 활용하기 강사: 김영준 목원대학교 겸임교수
PSD센서 명령어 이해하기 목차 재료준비 및 브레드 보드 배선 구성하기 PSD센서 명령어 이해 및 실습 응용 작품 만들기.
클라우드 서버로 사용자 데이터 전송하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
키패드 센서 및 전역변수 목차 재료준비 및 브레드 보드 배선 구성하기 키패드 센서 이해 전역변수 실습 응용 작품 만들기.
클라우드 서버로 부터 값 읽어오기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
헬로앱스 코딩체험교실 아두이노 자율주행 코딩 ㈜헬로앱스
목차 한국기술교육대학교 강사: 김 영 준 ㈜헬로앱스
아두이노 연결하기 WiFi 시리얼 보드 활용가이드 김영준 헬로앱스 (
GM7 PLC 모니터링 프로그램 한국 폴리텍 항공대학 항공정보통신과 송 승 일.
웹서버 기능으로 데이터 읽기 및 제어하기 WiFi 시리얼 보드 활용가이드 김영준
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
7주차 실습 FPGA 보드 사용법.
PART 1 앱 인벤터 프로젝트 12 원격 로봇. PART 1 앱 인벤터 프로젝트 12 원격 로봇.
브레드 보드 연결하기 목차 브레드보드 핀구조 아두이노 입출력 핀 이해하기 전원 연결하기 LED 연결하기 LED 회로 작동시키기.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
한국기술교육대학교 아두이노 기반 펌웨어 개발 (기본과정) 2일차 강사: 김영준 목원대학교 겸임교수.
아두이노 프로그래밍 5일차 – Part1 블루투스 통신 강사: 김영준 목원대학교 겸임교수.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
3D 프린팅 프로그래밍 03 – 도형 회전 (손잡이컵 만들기) 강사: 김영준 목원대학교 겸임교수.
농구 로봇 따라해 보기.
아두이노 프로그래밍 4일차 – Part1 모바일 로봇 강사: 김영준 목원대학교 겸임교수
5차시: 로봇 주행 실습 및 미션 수행하기 준비물 SPL-Duino 보드 (조도센서 내장)
5.1-1 전하의 흐름과 전류 학습목표 1. 도선에서 전류의 흐름을 설명할 수 있다.
다양한 아두이노 개발툴 및 H/W 한국기술교육대학교 아두이노 개발 SW 비교 1 스크래치 2 SPL 블록 3 SPL 스크립트
2D 게임 프로그래밍 프로젝트 박태언.
6차시: 장애물을 회피하는 자율주행 미션 수행하기
교육자료 작성자 / 오두환.
2차시: 스피커를 이용한 멜로디 연주 장치 만들기
2. 굴착기 코스운전 1. 코스 운전 조건 : S 자 코스를 출발하여 반곡점 정지선 안에서 정지 하였다가 정지선 넘은 다음 후진하여 제자리 출발선 까지 4분 이내 완료 한다. 후진 정지선 시간 측정 정차 출발 도착 4분.
Tone 명령어 이해하기 목차 재료준비 및 브레드 보드 배선 구성하기 Tone 명령어 기본 및 프로그램 이해 응용 작품 만들기.
목차 한국기술교육대학교 강사: 김 영 준 ㈜헬로앱스
아두이노 서보로봇 제어 (블루투스 스마트폰 조종) -03차시-
아두이노 프로그래밍 2일차 – Part4 아날로그 키패드 활용하기 강사: 김영준 목원대학교 겸임교수
SPL-Duino 블록 편집기 이용하기 전류센서 블록 만들기 SPL-Duino 블록 편집기를 실행합니다.
Presentation transcript:

아두이노 프로그래밍 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초간 올려 줍니다.