1. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
2018 부산광역시 미래 신직업군 전문인력 양성사업
코딩 고급 교육
프로그래밍 기초
동의과학대학교 컴퓨터정보과
김 종 현 교수
jhkim@dit.ac.kr
2. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
1. 마이크로비트 시작하기
2. 심장 두근두근(Blink Heart)
3. 문자열(String) 출력하기
4. 나침반 만들기
5. 온도계 만들기
6. 가속도 센서 활용하기
7. 카운터 만들기
8. 가위바위보 게임 만들기
9. 주사위 만들기
10. 라디오 통신
11. PINs 명령어(LED 활용하기)
12. PINs 명령어(서브 모터 활용하기)
13. IoT 확장 블록 활용하기
14. Serial 통신 활용하기
15. 밝기 감지 하기(조도 센서)
16. 팀 프로젝트(프로젝트 수행 및 데모)
2
목차
4. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로 비트 시작하기
4
마이크로 비트로 무엇을 만들 수 있을까!
• Introducing the BBC micro:bit - BBC Make It Digital :
https://youtu.be/Wuza5WXiMkc
• The winners of our 1st birthday challenge :
http://microbit.org/en/2017-12-18-birthday-challenge-
winners/#working
• 나도 메이커 :
http://blog.naver.com/PostList.nhn?blogId=icbanq&from=pos
tList&categoryNo=93
5. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로 비트 시작하기
각 부분별 명칭 및 역할
6. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로 비트 시작하기
6
LED, Button, Pin
LED
s
5x5 LED display
display text, numbers, and
images.
Button
s
양쪽의 버튼 입력으로 외부 입력을
통한 장치 제어 가능
Pins
25개 외부핀.
전자회로부품 등을 연결하여 제어할
수 있음.
7. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기?
센서
Light
Sensor
조도센서
Accelerometer
가속도센서(기울기센서) Compass
방위센서
Temperature
Sensor
온도센서
7
8. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
통신
Radio
마이크로비트와 마이크로비트 간의 무선
통신
그룹간 메시지를 보내거나 멀티플레이어
게임 등 구현 가능
Bluetoo
th
BLE(Bluetooth Low Energy) 내장되어 있
음
스마트폰, 태블릿 등 블루투스 연결 가능한 모
든 기기와 통신 가능
8
9. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
GPIO(General Purpose Input Output)
9
10. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
마이크로비트 확장 보드(Breakout Board)
10
11. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로 비트 시작하기
11
마이크로 비트 사이트 탐색하기 : http://microbit/org
12. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로 비트 시작하기
12
마이크로 비트 사이트 탐색하기 : http://microbit/org
13. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로 비트 시작하기
13
마이크로 비트 사이트 탐색하기 : http://microbit/org
14. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
14
마이크로 비트 개발 환경
15. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로 비트 시작하기
15
마이크로 비트 + Scratch 3.0 beta
16. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
https://makecode.microbit.or
g
마이크로비트 시작하기
JavaScript 블록 에디터
16
17. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로 비트 시작하기
코딩하고 실행하기
17
시뮬레이터
시뮬레이터
보이기/숨기기
프로그램을
마이크로비트
로 다운로드
프로그램 이름
지정, PC에 저장
새 프로젝트 및
기존 프로젝트
열기 도움 자료
블록 도구
박스
프로그래밍
작업공간
18. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로 비트 시작하기
예제 프로그램 다운로드 및 실행
18
19. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로 비트 시작하기
예제 프로그램 다운로드 및 실행 : Blinky
19
20. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
다운로드 폴더
이동
마이크로비트 시작하기
다운로드 하기
20
21. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
블록 에디터 명령어 그룹
21
22. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
컴퓨터 프로그래밍의 기본 구조
22
23. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
기본 명령어(Basic)
23
24. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
기본 명령어(Basic)
24
25. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
입력 명령어(Input)
25
26. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
음악 명령어(Music)
26
27. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
LED 명령어(Led)
27
28. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
통신 명령어(Radio)
28
29. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
논리 명령어(Logic)
29
30. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
변수(Variable)
30
31. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
수학 명령어(Math)
31
32. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
고급 명령어(Advanced)
32
33. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
마이크로비트 시작하기
• 마이크로 비트는 무엇인가?
• 마이크로 비트로 만들 수 있는 것은?
• 마이크로 비트 개발 환경은?
• 마이크로 비트 내부의 센서 종류와 역할은?
• 마이크로 비트 내부의 LED 개수는?
• 마이크로 비트 내부의 버튼 수와 위치는?
• 블록 에디터의 그룹 및 역할은?
• 블록 에디터 -> 프로젝트 찾아보기 -> 예시 -> “Name Tag” 다
운로드 및 실행하기
33
생각해 보기
34. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 1 : 심장 두근두근(Blink Heart)
• A 버튼을 누르면 LED 매트릭스에 “웃는 모양”을 출력한다.
• B 버튼을 누르면 LED 매트릭스에 “Hello World” 메시지를 출력한다.
• A와 B 버튼을 함께(A+B) 누르면 스크린을 지운다.
34
이벤트 핸들러, 순차(sequence), 반복(repeat)
35. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 1 : 심장 두근두근(Blink Heart)
35
순차, 반복
36. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 1 : 심장 두근두근(Blink Heart)
36
이벤트 핸들러(Event Handler)
37. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 2 : 문자열 출력하기
• A 버튼을 누르면 LED 매트릭스에 웃는 모양을 출력한다.
• B 버튼을 누르면 LED 매트릭스에 “Hello World” 메시지를 출력한다.
• A와 B 버튼을 함께(A+B) 누르면 스크린을 지운다.
37
코딩하고 시뮬레이터와 마이크로 비트에서 각각 실행해 봅시다.
39. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 3 : 나침반 만들기
• 캠파스 헤딩을 찾아 변수(degree)에 저장한다.
• 저장된 각도(degree) 값을 방향 값(N, S, E, W)로 변환한다.
• LED 매트릭스에 방향을 출력한다.
• 마이크로 비트가 움직임에 따라 출력 값이 변화됨을 확인한다.
39
자기 센서(magnetometer), 조건문, 루프, 변수
40. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 3 : 나침반 만들기
40
변수(degree) 만들기
41. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 3 : 나침반 만들기
41
조건(logic) 만들기
42. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 3 : 나침반 만들기
42
방위를 숫자로 출력하기
43. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 3 : 나침반 만들기
43
방위를 숫자로 출력하기
44. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 4 : 온도계 만들기
44
LED bar graph, 온도 센서
45. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 4 : 온도계 만들기
45
A 버튼을 누르면 온도를 LED bar graph로 출력, B 버튼을 누르면 숫자로
출력
46. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 4 : 온도계 만들기
46
표정 온도계 만들기 : 논리(if-then-else)
47. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 4 : 온도계 만들기
47
표정 온도계 만들기 : 논리(if-then-else)
48. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 5 : 가속도 센서 활용 하기
48
가속도 센서 원리
• X : 왼쪽(+) 오른쪽(-)으로 기울기
• Y : 위쪽(+), 아래쪽(-) 기울기
• Z : 앞면(+), 뒷면(-) 움직이지
• pitch : x 축에 대한 회전 각(up, down/-90~90)
• roll : y 축에 대한 회전 각(left, light/-180~180)
• yaw : z 축에 대한 회전 각
49. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 5 : 가속도 센서 활용 하기
49
제스쳐(Gesture)
50. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 5 : 가속도 센서 활용 하기
50
제스쳐(Gesture)
51. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 5 : 가속도 센서 활용 하기
51
Pitch/ Roll 테스트
52. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 5 : 가속도 센서 활용 하기
52
제스쳐 테스트
53. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 5 : 가속도 센서 활용 하기
53
{ } 자바스크립트
54. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 6 : 카운트 만들기
54
변수 설정
• Counter 변수가 10을 초과하지 않는다 .
• Counter 변수가 0보다 같거나 크다.
• Counter 변수가 10이면 LED 매트릭스에 “X” 출력
59. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 8 : 주사위 만들기
59
흔들기(shake) 이벤트, 변수(Roll), 난수(random) 발생
60. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 8 : 주사위 만들기
60
흔들기(shake) 이벤트, 변수(Roll), 난수(random) 발생
61. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 문제 1
• 마이크로 비트를 흔들면(shake) 숫
자가 1씩 증가 하도록 만드시오.
• A 버튼을 누르면 숫자가 0으로 초기
화 된다.
• 숫자가 5가 되면 그다음 숫자는 0으
로 바뀐다(1~5).
62. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 문제 2
• 마이크로 비트를 흔들면(shake)
1~6 사이의 난수(random number)
가 출력 하도록 만드시오.
• A 버튼을 누르면 숫자가 스크린이 초
기화(clear screen) 된다.
63. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 문제 3
• A 버튼을 누르면 1~10 까지 숫자가 차
례로 출력하도록 하시오(Loop 사용).
• B 버튼을 누르면 1~10까지 숫자에서
홀수가 차례로 출력하도록 하시오(계산
-> 나머지(%) 사용)
64. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 문제 4
• A 버튼을 누르면 1~10 의 합(sum)이 출
력되도록 하시오(Loop).
• B 버튼을 누르면 1~10 에서 홀수의 합이
출력 되도록 하시오(Loop, if-else).
• A+B 버튼을 누르면 1~10 에서 짝수의 합
이 출력 되도록 하시오(Loop, if-else).
65. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 9 : 함수(function)의 활용
65
인자(argument)가 없는 함수
66. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 9 : 함수(function)의 활용
66
인자(argument)가 있는 함수
• 함수에 인자(argument)가 필요한 경우는 블록 에디터의
{ }JavaScript 텍스트 코딩을 통하여 구현해야 함
67. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 10 : 배열(array)의 활용
67
“문자열” 배열 생성, 크기 구하기
68. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 10 : 배열(array)의 활용
68
“문자열” 배열 생성, 내용 출력
69. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 10 : 배열(array)의 활용
69
“문자열” 배열 최대값 구하기
70. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 10 : 배열(array)의 활용
70
문자열의 정수형 변환 : parse to integer
71. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 11 : 라디오 통신
• 라디오 그룹은 그룹 간의 통신 방법(broadcasting)
• 라디오 그룹 숫자는 0~255 까지 설정
71
라디오 그룹으로 숫자, 문자 받아 보기
< Sender> < Receiver>
72. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 11 : 라디오 통신
72
빛 센서 값을 보내고 바 그래프(bar graph)로 받아 보기
< Sender> < Receiver>
73. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(외부 연결 )
73
디지털(digital)과 아날로그(analog)
• 디지털(digital)
어떤 양 또는 데이터를 0과 1로
표현
전류가 흐르는 상태(1)와 흐르지
않는 상태(0)의 2가지 조합으로
전달
• 아날로그(analog)
어떤 양 또는 데이터를 연속적으
로 변환하는 물리량(전압, 전류 등)
으로 표현
전류의 주파수나 진폭 등 연속적
으로 변화하는 형태로 전류를 전
달
• 입력(read), 출력(write)
74. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(외부 연결 )
74
디지털, 아날로그 입출력 장치
75. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(LED)
75
LED 란? 다이오드의 일종, 전류가 흐르면 빛을 발하는 소자
76. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(LED)
76
LED ON/OFF
77. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(LED)
77
LED ON/OFF
78. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(LED)
78
LED ON/OFF
79. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(LED)
79
저항 알고 가기 : 저항값 계산(옴의 법칙)
• 아래 회로의 전류가 LED에 필요한 20mA해야 되도록 저항을 선택해야
한다.
R = V / I
R = 1(V) / 0.02(A)
R = 50 Ω
80. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(LED)
80
저항 알고 가기 : 저항 값 읽기
220 Ω
81. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(LED)
81
LED ON/OFF : 50 Ω 저항 추가
50 Ω
저항 추가
82. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(LED)
82
LED 2개 순차적 점멸
83. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(LED)
83
LED 2개 순차적 점멸
84. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : 외부 연결 : LED
84
LED 3개 점멸 순서(1-2-3-2-1-2-3)
85. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(LED)
85
LED 3개 점멸 순서(1-2-3-1-2-3-1)
86. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(LED)
86
LED 3개 점멸 순서(1-2-3-1-2-3-1)
87. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(LED)
87
빵판(Bread Board)를 이용한 3 LED 점멸 : 220 옴 저항 사용
88. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 12 : PINs 명령어(LED)
88
라디오 통신을 이용한 LED 점멸 원격 제어
< Sender > < Receiver >
89. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 13 : PINs 명령어 : 서보 모터 활용
89
서보 모터 작동
90. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 13 : PINs 명령어 : 서보 모터 활용
90
서보 모터 핀 맵
91. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 13 : PINs 명령어 : 서보 모터 활용
91
서보 모터 작동 : 디지털 출력
92. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 13 : PINs 명령어 : 서보 모터 활용
92
서브 모터를 이용한 자벌레 로봇 제작
<부산대 SW교육센터 “찾아가는 SW교육” 자료 참고>
93. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 13 : PINs 명령어 : 서보 모터 활용
93
준비물
• 두꺼운 종이
• 글루건 또는 테이프
• 가위
• 마이크로비트, AAA 건전지 2개,
배터리 팩
• 악어 케이블
• 서보 모터 1개 9g SG90
• 종이 클립 1개
94. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 13 : PINs 명령어 : 서보 모터 활용
94
서보 모터
95. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 13 : PINs 명령어 : 서보 모터 활용
95
서보 모터
96. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 13 : PINs 명령어 : 서보 모터 활용
96
서보 모터
97. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 13 : PINs 명령어 : 서보 모터 활용
97
서보 모터
98. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 13 : PINs 명령어 : 서보 모터 활용
98
프로젝트 수행하기 : 창의적인 자발레 로봇 기능 추가
• 라디오 통신을 이용한 자발레 원격 제어
Start/ Stop 동작
• LED 매트릭스 기능 활용
자벌레가 움직일때
정지할때 LED 에니메이션
• 음향 기능 활용
피에조 부조
• 기타 등등
99. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 14 : IoT 확장 블록 활용
99
온습도 센서(DHT11) 값 읽기
100. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 14 : IoT 확장 블록 활용
100
IoT 확장 블록(Package) : 온습도, 미세먼지, 토양센서, 기타 등등
101. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 14 : IoT 확장 블록 활용
101
Environment_IoT, ESP8266_IoT : Package
102. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 14 : IoT 확장 블록 활용
102
온습도 센서(DHT11) : Package
103. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 15 : Serial 통신(DHT11)
103
온습도 센서(DHT11) 값 Serial 통신
• Serial 통신 라이브러리 다운로드 및 설치 : https://www.microbit.co.uk/td/serial-library
104. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
코딩 16 : 밝기 감지 하기
104
조도 센서(Photo Register, CDS)
https://www.youtube.com/watch?time_continue=1&v=hgtBtfFR3
Wg
105. 코딩 고급
2018 미래 신직업군 전문인력 양성사업
105
참고한 자료
1. http://microbit.org/ko/
2. Train the Trainer Resources, http://microbit.org/ko/teach/
3. THE PARENT’S COMPLETE GUIDE TO THE BBC micro:bit, Kitronik
4. 찾아가는 SW교실, 부산대학교 SW교육센터
5. SOFTWARE MAKER, 메가솔루션
Editor's Notes
업로드하는 방법 알려줘야
USB잭 연결 하시고
이 코딩을 한번 해보자
A를 누르면~ (입력부에 있음)
업로드하는 방법 알려줘야
USB잭 연결 하시고
이 코딩을 한번 해보자
A를 누르면~ (입력부에 있음)
업로드하는 방법 알려줘야
USB잭 연결 하시고
이 코딩을 한번 해보자
A를 누르면~ (입력부에 있음)
업로드하는 방법 알려줘야
USB잭 연결 하시고
이 코딩을 한번 해보자
A를 누르면~ (입력부에 있음)
업로드하는 방법 알려줘야