인식한다거나 외부적인 요인을 마이크로컨트롤러에 전달하는 과정이지요. 반대로 ‘출력’은 마이크로컨트롤러가 여러분에게 어떤 결과를 전달하는 것이에요. LED를 반짝인다거나 소리를 내는 것이 출력에 해당하지요. 모든 프로그램에는 이러한 입력과 출력이 존재하니까 꼭 기억해 두세요.
_31쪽
센서란 열, 빛, 온도, 압력, 소리 등 일상에서 물리적인 변화를 감지하거나 구분하고, 계측할 수 있는 것을 구분하여 일정한 신호로 알려주는 부품을 말합니다. 사람이 보고, 듣고, 느끼는 오감을 기계로 만든 것이라고 생각하면 이해하기 쉽습니다. 센서의 종류로는 대표적으로 온도 센서, 압력 센서, 유량 센서, 자기 센서, 광 센서, 음향 센서, 미각 센서, 후각 센서 등이 있습니다. 실제로 이 센서들은 우리 생활에 많이 활용되고 있는데LED는 영어로 ‘light emitting diode’의 줄임말입니다. ‘발광 다이오드’라고 부르기도 합니다. ‘발광’은 ‘빛이 난다’는 뜻이므로 ‘빛이 나는 다이오드’라고 할 수 있어요. 발광 다이오드는 전류가 흐르면 빛을 내는 조명의 한 종류입니다. 열을 발생시켜 빛을 내는 일반적인 전구와는 달리 반도체를 통해 빛을 냅니다. 발광 다이오드는 길이가 다른 단자 2개를 가지고 있는데, 길이가 짧은 쪽이 -극, 긴 쪽이 +극입니다. 우리가 흔히 쓰는 건전지에 +, -극이 있는 것과 비슷하지요? 이렇게 극성이 존재하기 때문에 연결을 할 땐 방향을 맞추어야 합니다. 반대 방향으로 연결하면 불이 켜지지 않아요.
_19쪽
코딩을 배우면서 ‘입력’과 ‘출력’이라는 단어를 많이 사용할 거예요. ‘입력’이란, 여러분이 마이크로컨트롤러에 무언가를 요구하는 것이라고 생각하면 쉬워요. 버튼을 누른다거나 센서 값을
요. 가로등 주변이 어두워지면 자동으로 불이 켜지는 이유가 바로 광 선세가 장착되어 있기 때문입니다.
_41쪽
이번 프로젝트는 랜덤 블록을 사용하여 반응 속도 게임을 만들 거예요. 랜덤 블록을 다른 단어로 표현할 수 있다는 것을 알고 있나요? 바로 난수입니다. 난수는 영어로 ‘Random Number’라고 합니다. Random은 ‘무작위’라는 뜻을 가지고 있습니다. 난수는 특정한 순서나 규칙 없이 나열되는 숫자를 뜻합니다. 예를 들어, 우리가 주사위 게임을 할 때 주사위에서 어떤 수가 나올지 모르는 것처럼 말이죠. 이처럼 난수는 규칙적이지 않기 때문에 예상할 수 없습니다. 이런 난수의 특징 덕분에 주사위나 음악 랜덤 재생 등에 사용되고 있습니다.
_65쪽
가속도 센서는 말 그대로 가속도를 측정하는 센서입니다. 마이크로비트에서는 X, Y, Z 축의 가속도와 전체적인 가속도 측정이 가능해요. 가속도는 물체의 속도가 어느 정도로 빨라지고 있는지를 측정한답니다. 이 가속도 센서를 이용하면 기울기도 측정할 수 있어요. 세 축에서의 측정이 가능한 마이크로비트는 각 축에서 기울어지는 정도도 측정할 수 있답니다. 가속도 센서를 이용하면 여러 가지 활동적인 프로젝트들이 가능해요. 예를 들어, 마이크로비트를 움직이며 미로를 탈출하는 게임을 만들 수도 있고, 만보기를 만들 수도 있어요.
_93쪽
--- 본문 중에서
확장 꾸러미는 기본적으로 제공되는 블록 이외에도 다양한 부품을 편하게 사용할 수 있도록 해줍니다. 여기서 다운로드한 neopixel은 여러 색이 나오는 LED를 쉽게 사용할 수 있도록 다른 사용자가 만든 블록인 셈이죠! 이렇게 ‘확장 프로그램’을 사용하면 다른 부품을 사용할 때도 어렵게 코딩하지 않고 쉽게 사용할 수 있습니다.
--- p.55
토양 습도 센서의 값이 700보다 크다는 것은 거짓말을 해서 손에 땀이 난 상태를 의미합니다. 거짓말을 했다는 것을 다같이 알 수 있도록 LED 모듈과 디스플레이를 사용해 보겠습니다. 핀 꾸러미에서 ‘P0’에 디지털 값 ‘0’ 출력 블록을 가져와 LED 모듈을 배선한 ‘P2’로 변경하고, LED를 켜기(ON) 위해 출력을 1로 변경해 주세요.
--- p.79
이 프로젝트는 마이크로비트 두 개를 사용합니다. 하나는 ‘송신부’로, 다른 하나는 ‘수신부’로 사용하므로 코드도 송신부와 수신부 하나씩 총 두 개를 만들어야 합니다. 수신부는 송신부에서 보내는 값에 따라 LED를 켜고 끄는 역할을 하며, 송신부는 마치 리모콘처럼 수신부 마이크로비트에 신호를 보냅니다.
--- p.114
이 코드는 먼저 마이크로비트의 내장 버튼 A와 B를 눌러 원하는 숫자 두 개를 만들어 변수 A와 B에 저장합니다(버튼을 누를 때마다 각 변수 값이 1씩 증가). 그리고 ADKey의 A 버튼을 누르면 변수 A와 B를 합한 값을 출력하고, B 버튼을 누르면 변수 A와 B를 뺄셈한 값을 출력하고, C 버튼을 누르면 변수 A와 B를 곱한 값을 출력하고, D 버튼을 누르면 변수 A와 B를 나눈 값을 출력합니다. 마지막으로, E 버튼을 누르면 모든 변수에 저장된 값을 초기화합니다.
--- p.179
이 블록 코드는 아날로그 광센서를 통해 서보 모터를 동작하여 쓰레기통이 열리고 닫히는 동작을 구현합니다. 여기서 변수 ‘A’는 약 0.5초마다 빛 센서 값을 저장하며, 현재 측정되고 있는 빛 센서 값과 비교하여 0.5초 전보다 어두워졌다면, 즉 사람이 쓰레기통에 다가가 빛을 가려 어두워졌다면 서보 모터 동작을 통해 쓰레기통을 열고, 0.5초 전보다 어둡지 않다면 쓰레기통을 닫힌 상태로 지속합니다.
--- p.198