1차시: 아두이노 설치 및 어두워지면 저절로 켜지는 장치 제작 실습 아두이노 개발툴 다운로드 (http://www.helloapps.co.kr/arduino) SPL-Duino 편집기 설치 SPL-Duino 보드 구조 설명 바탕화면의 SPL 폴더에서 USB 드라이버 설치 후 보드와 컴퓨터간에 USB 케이블 연결 아날로그 및 디지털 핀 위치 설명 아두이노 스케치 프로그램 구조 설명 LED 점멸 명령어 실습 (DigitalWrite) 및 응용실습 (점멸주기 변경) 아날로그 명령어 실습 (AnalogRead) 및 변수 배우기 조도센서값 출력 (아날로그 6번핀 -> SerialWrite) If 명령어 설명 조도값에 따라 어두워 지면 저절로 켜지는 LED 로직 구현 조도 센서값에 따라 LED 점멸 주기 변경시키기 소요시간: 100분 SPL-Duino 보드 (조도센서 내장) 컴퓨터 준비물
하드웨어 설계도가 오픈되어 있어 누구든지 만들 수 있음 1. 아두이노란? 이탈리아에서 만들어진 프로젝트 결과물 오픈소스 하드웨어 프로젝트의 결과물 하드웨어 설계도가 오픈되어 있어 누구든지 만들 수 있음 2) “아두이노 (Arduino)”는 이탈리아어로 오래된 친구라는 뜻 3) 아두이노로 할 수 있는 것 각종 창작 작품 만들기 발명작품 만들기 로봇 만들기 디지털 예술 작품 만들기 과학실험 장치 만들기
1) 다음과 같은 과정으로 준비를 진행함 2. 아두이노를 사용하기 위한 준비 과정 아래 홈페이지에 접속 SPL-Duino 개발툴 설치 USB 드라이버 설치 SPL-Duino 보드를 PC에 연결 (USB 케이블 연결) 아래 홈페이지에 접속 http://www.helloapps.co.kr 2) 화면 위쪽의 아두이노 메뉴를 클릭
1) 다음과 같은 과정으로 준비를 진행함 3. 아두이노를 사용하기 위한 준비 과정 SPL-Duino 개발툴 설치 USB 드라이버 설치 SPL-Duino 보드를 PC에 연결 (USB 케이블 연결) 3) SPL-Duino 프로그램 개발툴 링크 클릭
1) 다음과 같은 과정으로 준비를 진행함 4. 아두이노를 사용하기 위한 준비 과정 SPL-Duino 개발툴 설치 USB 드라이버 설치 SPL-Duino 보드를 PC에 연결 (USB 케이블 연결) 4) 화면 하단에 실행할 것인지 물어보는 창이 표시되면, “실행” 버튼을 클릭하여 설치를 진행함
폴더 안에 있는 파일중에서 “Install SPL-Duino USB Drive” 파일을 실행해 줌 5. 아두이노를 사용하기 위한 준비 과정 1) 다음과 같은 과정으로 준비를 진행함 SPL-Duino 개발툴 설치 USB 드라이버 설치 SPL-Duino 보드를 PC에 연결 (USB 케이블 연결) 1) 설치가 끝나고 나면, 바탕화면에 SPL 이름의 폴더가 생성됨 폴더 안에 있는 파일중에서 “Install SPL-Duino USB Drive” 파일을 실행해 줌
1) 다음과 같은 과정으로 준비를 진행함 6. 아두이노를 사용하기 위한 준비 과정 SPL-Duino 개발툴 설치 USB 드라이버 설치 SPL-Duino 보드를 PC에 연결 (USB 케이블 연결) SPL-Duino 보드에 USB 케이블을 연결한 후, PC에도 케이블을 연결해 줌 2) 연결한 후, 1~2분 정도 기다리면 드라이버 설치가 완료됨 SPL-Duino 보드 컴퓨터
폴더 안에 있는 파일중에서 “SPL-Duino 블록 편집기” 파일을 실행해 줌 7. 아두이노 개발툴 실행하기 1) 바탕화면의 SPL 폴더에 있는 블럭 편집기를 실행함 폴더 안에 있는 파일중에서 “SPL-Duino 블록 편집기” 파일을 실행해 줌
2) USB 드라이버가 정상적으로 설치된 경우 3) USB 드라이버가 아직 설치중인 경우 7. 아두이노 개발툴 실행하기 프로그램 맨 위에 COM 포트번호가 표시됨 3) USB 드라이버가 아직 설치중인 경우 SPL-Duino 보드가 연결되지 않았다고 표시됨 편집기 프로그램을 종료한 후, 1~2분 후에 다시 실행해 주면 됩니다. 그 이후에도 연결이 되지 않을 경우에는, USB 드라이버 설치를 다시 진행한 한 후, 편집기 프로그램을 실행합니다. (USB 케이블이 정상적으로 연결되었는지도 확인 바랍니다)
8. SPL-Duino 보드 설명
8. SPL-Duino 보드 설명 디지털 핀은 2번~13번 이름으로 총 12개를 사용할 수 있음. 0 또는 1의 값을 가짐 0은 LOW, 1은 HIGH로 표시
8. SPL-Duino 보드 설명 아날로그 핀은 0번~5번 이름으로 총 6개를 사용할 수 있음. 0 ~ 1023 사이의 값을 읽거나 쓸 수 있음
8. SPL-Duino 보드 설명 조도 센서는 밝기를 측정하는 센서로서 아날로그 6번 핀에 연결되어 있음 값은 0 ~ 1023 사이로 표시됨
8. SPL-Duino 보드 설명 작은 디지털 LED가 연결되어 있으며 디지털 13번 핀에 연결되어 있음
8. SPL-Duino 보드 설명 선풍기를 작동시키거나 로봇을 작동시킬 때 연결하는 모터 단자임
1) 아두이노 프로그램을 작성하는 방법 9. 아두이노 프로그래밍 시작하기 왼쪽에 있는 명령어 블록을 마우스로 끌어다가 Loop 블록 안에 넣기만 하면 됨
이 LED를 켜기 위해서는 디지털 13번 핀에 HIGH 값을 설정해 주면 됨 마우스로 끌어다가 추가해 줌
3) 프로그램 메뉴 상단에 있는 실행(F5) 메뉴를 클릭하여 프로그램을 실행함 10. LED 켜기 3) 프로그램 메뉴 상단에 있는 실행(F5) 메뉴를 클릭하여 프로그램을 실행함
4) 저장 버튼을 클릭하여 기본 이름으로 저장한 후, 실행을 진행함 10. LED 켜기 4) 저장 버튼을 클릭하여 기본 이름으로 저장한 후, 실행을 진행함
5) 새로운 창이 표시된 후, 10초 ~ 30초 후에 다음과 같이 결과가 표시됨 10. LED 켜기 5) 새로운 창이 표시된 후, 10초 ~ 30초 후에 다음과 같이 결과가 표시됨
6) LED에 빨간색 불이 켜져 있는지 확인합니다.
1) 기다리기 명령어 블록을 디지털 쓰기 명령어 아래에 추가해 줍니다. 11. LED를 1초 간격으로 깜박이게 하기 1) 기다리기 명령어 블록을 디지털 쓰기 명령어 아래에 추가해 줍니다.
2) 기다리기 명령에서 1000 밀리초는 1초를 의미합니다. 3) 즉, 1초를 기다리고 다음 명령을 실행하라는 의미입니다. 11. LED를 1초 간격으로 깜박이게 하기 2) 기다리기 명령에서 1000 밀리초는 1초를 의미합니다. 3) 즉, 1초를 기다리고 다음 명령을 실행하라는 의미입니다.
4) 디지털 쓰기 (LOW) 명령어를 추가해 줍니다. 13번 핀에 LOW값을 설정해 주면 LED가 꺼지게 됩니다.
5) 마지막으로 다시 기다리기 명령어를 추가해 줍니다. 11. LED를 1초 간격으로 깜박이게 하기 5) 마지막으로 다시 기다리기 명령어를 추가해 줍니다.
6) 실행 버튼을 클릭하여 작성된 프로그램을 실행해 줍니다. 11. LED를 1초 간격으로 깜박이게 하기 6) 실행 버튼을 클릭하여 작성된 프로그램을 실행해 줍니다. 7) LED가 1초 간격으로 깜박이는지 확인합니다.
12. LED의 점멸 주기를 더 짧게 변경해 봅니다. 1) LED의 점멸 주기를 더 짧게 변경해 봅니다.
점은 짧게 LED를 켜고, 긴 막대는 길게 LED를 켜주면 됩니다. 1) 모르스 부호 (Morse Code)로 자신의 영문 이름을 만들어 봅니다. 점은 짧게 LED를 켜고, 긴 막대는 길게 LED를 켜주면 됩니다.
아날로그 명령어는 아날로그 읽기와 쓰기 명령어가 있습니다. 아날로그 값을 읽어 오려면 몇 번 핀에서 읽어 오는지 핀 번호를 14. 아두이노 아날로그 명령어 배우기 아날로그 명령어는 아날로그 읽기와 쓰기 명령어가 있습니다. 아날로그 값을 읽어 오려면 몇 번 핀에서 읽어 오는지 핀 번호를 입력해 주어야 합니다. 해당 번호의 핀에 아날로그 센서가 연결되어 있어야 합니다. 3) 그리고 읽어온 값을 저장하는 저장소 또는 변수 이름을 입력해 주어야 합니다. 변수 이름은 알파벳으로 시작해야 합니다.
아날로그 조도센서는 보드에 센서가 내장되어 있어, 별도로 센서를 연결할 필요가 없습니다. 15. 아날로그 조도 센서의 값을 읽어오기 아날로그 조도센서는 보드에 센서가 내장되어 있어, 별도로 센서를 연결할 필요가 없습니다. 2) 아날로그 조도센서는 아날로그 6번 핀에 연결되어 있습니다.
3) 메뉴에서 “새 파일”을 클릭하여 새로운 입력창을 열어줍니다. 15. 아날로그 조도 센서의 값을 읽어오기 3) 메뉴에서 “새 파일”을 클릭하여 새로운 입력창을 열어줍니다. 4) 편집기 명령어에서 아날로그 읽기 명령어를 추가해 줍니다.
15. 아날로그 조도 센서의 값을 읽어오기 5) 핀 번호를 6으로 변경해 줍니다.
한 줄씩 줄을 바꾸어서 출력해 주는 명령어 입니다. 15. 아날로그 조도 센서의 값을 읽어오기 6) 변수의 값을 화면에 출력하기 위해서 문자라인 출력 (PrintLine) 명령어를 이용합니다. 문자라인 출력은 출력하고자 하는 값을 한 줄씩 줄을 바꾸어서 출력해 주는 명령어 입니다. 반면, 문자출력 (Print) 명령어는 값을 옆으로 이어서 출력해 주는 명령어입니다.
7) 문자라인 출력 (PrintLine) 명령어를 다음 그림과 같이 추가해 줍니다. 15. 아날로그 조도 센서의 값을 읽어오기 7) 문자라인 출력 (PrintLine) 명령어를 다음 그림과 같이 추가해 줍니다.
8) 기다리기 명령어를 추가한 후, 숫자를 100으로 수정해 줍니다. 15. 아날로그 조도 센서의 값을 읽어오기 8) 기다리기 명령어를 추가한 후, 숫자를 100으로 수정해 줍니다.
9) 실행 버튼을 클릭하여 작성된 프로그램을 실행해 줍니다. 15. 아날로그 조도 센서의 값을 읽어오기 9) 실행 버튼을 클릭하여 작성된 프로그램을 실행해 줍니다.
10) 보드에 있는 조도 센서를 손으로 가려서 어둡게 하여 밝기 변화를 비교해 봅니다. 15. 아날로그 조도 센서의 값을 읽어오기 10) 보드에 있는 조도 센서를 손으로 가려서 어둡게 하여 밝기 변화를 비교해 봅니다.
11) 가장 밝을 때의 센서 값과 어두울 경우의 센서 값을 기록합니다. 15. 아날로그 조도 센서의 값을 읽어오기 11) 가장 밝을 때의 센서 값과 어두울 경우의 센서 값을 기록합니다. 밝을 때의 센서 값 (가장 큰 값) 어두울 때의 센서 값 (가장 작은 값) 12) 가장 큰 값과 작은 값의 중간 값을 계산합니다. 가장 큰 값과 작은 값의 중간 값: ________________
1) 조도 센서 값을 이용하여, 어두워 지면 저절로 LED가 켜지는 장치 만들기 16. 어두워지면 저절로 켜지는 장치 만들기 1) 조도 센서 값을 이용하여, 어두워 지면 저절로 LED가 켜지는 장치 만들기 만약 (if), 조도 센서의 중간 값 보다 작으면 LED를 켜준다 그렇지 않으면 LED를 꺼준다
2) 순서도를 작성해 봅니다. 16. 어두워지면 저절로 켜지는 장치 만들기 조도 센서의 값을 읽어 온다. 반복 센서 값이 ____보다 작은가? 아니오 예 13번 LED를 ______ 13번 LED를 ______ 100 밀리초를 기다린다.
3) 순서도를 작성해 봅니다. 16. 어두워지면 저절로 켜지는 장치 만들기 조도 센서의 값을 읽어 온다. 반복 센서 값이 600보다 작은가? 아니오 예 13번 LED를 켜줌 13번 LED를 꺼줌 100 밀리초를 기다린다.
16. 어두워지면 저절로 켜지는 장치 만들기 4) 조건 비교를 명령어로 표현하기
5) 아래의 순서도를 SPL 블록 다이어그램으로 작성해 봅니다. 16. 어두워지면 저절로 켜지는 장치 만들기 5) 아래의 순서도를 SPL 블록 다이어그램으로 작성해 봅니다. 조도 센서의 값을 읽어 온다. 반복 센서 값이 600보다 작은가? 아니오 예 13번 LED를 켜줌 13번 LED를 꺼줌 100 밀리초를 기다린다.
6) 아래 다이어그램과 본인의 다이어그램을 비교해 본 후, 실행해 봅니다. 16. 어두워지면 저절로 켜지는 장치 만들기 6) 아래 다이어그램과 본인의 다이어그램을 비교해 본 후, 실행해 봅니다. 7) 조도 센서를 어둡게 하였을 경우, LED가 저절로 켜지는 지 확인합니다.
8) 어두워지면 저절로 켜지는 장치를 응용할 수 있는 분야를 생각해 봅니다. 16. 어두워지면 저절로 켜지는 장치 만들기 8) 어두워지면 저절로 켜지는 장치를 응용할 수 있는 분야를 생각해 봅니다. - 거리의 가로등 - 책상의 독서등 - 아파트 현관등 - 자동차 헤드라이트
1) 프로그램에 설명을 추가하기 위해서는 설명(주석달기) 명령을 이용합니다. 17. 프로그램에 설명 추가하기 1) 프로그램에 설명을 추가하기 위해서는 설명(주석달기) 명령을 이용합니다.
프로그램을 보기 쉽게 하기 위해 줄 간격을 띄울 필요가 있을 경우에는 공백라인 추가 명령어를 이용합니다. 18. 프로그램에 공백 라인 추가하기 프로그램을 보기 쉽게 하기 위해 줄 간격을 띄울 필요가 있을 경우에는 공백라인 추가 명령어를 이용합니다.
프로그램이 복잡한 경우, 블록을 축소시킬 수 있습니다. 19. 프로그램 블록을 축소시키기 프로그램이 복잡한 경우, 블록을 축소시킬 수 있습니다.
명령어 맨 앞의 체크박스를 해제하면 해당 명령어가 실행되지 않습니다. 20. 특정 명령어 라인이 실행되지 않도록 하기 명령어 맨 앞의 체크박스를 해제하면 해당 명령어가 실행되지 않습니다.