1
1. ArduBlock으로 ‘Blink’ 스케치 구현하기 이제까지 갈릴레오와 Scratch를 하면서, 둘의 장단점과 차이점을 생각할 수 있었어요. Scratch로, 게임과 같 은 화려한 기능을 쉽고 빠르게 구현할 수 있었어요. 그러나, 갈릴레오처럼 물리적으로 구현되는 것이 아니라 화 면상에서만 가능했어요. Scratch의 일반적인 Input Device는 Keyboard와 Mouse이고, Output Device는 Monitor에요. 그러나, 갈릴레오의 Input, Output Device는 무궁무진하다는 것을 알 수 있어요. 특히, sensor라는 Input Device는, 인간의 인지기능을 모방한다든지 주변 환경을 물리적으로 활용할 수 있게 해 줘요. Scratch를 사용하여 갈릴레오를 동작시킬 수 있을까요? ‘S4A’가 있어요. 그러나, 여기서는 ‘ArduBlock’을 이용하기로 해요. 블록을 쌓는 방식이라서 ‘Processing’보다는 훨씬 쉬워요.
갈릴레오 IDE의 ‘파일’ 메뉴에서 ‘환경설정(Preferences)’을 click하세요. Language는 English로 선 택하고,
화면위의 ‘스케치북 위치’를 ‘파일탐색기’로 정확히 확인하세요. 그 directory아래에 ‘\tools\ArduBlockTool\tool’ folder를 차례로 만들고,
2
그 안에는 홈페이지에서 download받은 ‘ardublock-all.jar’ file을 copy하세요.
이제, 갈릴레오 IDE의 ‘Tools’메뉴에 ‘ArduBlock’이 생겼어요. 이것을 click하면, 새로운 창이 나와요.
새 창의 왼편에 있는 ‘Control’과 ‘Pins’ 버튼 속에 있 는 블록들을 이용하여, LED를 켜는 프로그램을 완성해 요. 마지막으로, ‘Upload to Arduino’메뉴를 click하여 결과를 확인하세요.
3
2. ArduBlock으로 ‘Fade’ 스케치 구현하기 혹시 앞에서 ‘Upload’했을 때 LED가 반응하지 않았다면, ‘Control Panel’의 ‘Device Manager’에 있는 ‘Galileo COM’과 IDE의 ‘Tools’메뉴에 있는 ‘Serial Port COM’을 일치 시키면 될 거에요.
이제는, ‘Processing’ 언어로된 ‘Fade’ 스케치를 ArduBlock으로 구현하는 방법을 알아 볼까요? 참고하기 위해, IDE로 ‘Fade’ 스케치를 Open해 보 세요. Loop()안에 있는 analogWrite()명령어를 구 현하기 위해서, ArduBlock창에서 ‘program’ 블록 의 ‘loop’안으로 ‘set analog pin’ 블록을 가져 오세 요. 오른쪽 socket에는 ‘number variable name’ 블 록으로 채우고 변수명을 정하세요. 그런다음 ‘Upload to Arduino’메뉴를 click하여 새로 생긴 스케치 내용과 original을 비교하세요.
4
세 가지 변수를 정의하려면, ‘program’블록의 ‘setup’ 안으로 ‘set number variable’블록을 가져 오세요. 이 블록은 analogWrite()명령어 아래의 계산식인, ‘brightness = brightness + fadeAmount’를 구현할 때도 사용되요.
‘Fade’ 스케치의 if문은, ArduBlock에서도 ‘if’ 블록을 사 용하면 되요. 밝아지고 어두워지게 하는 ‘fadeAmount’변수는 항상 +5거나 -5여야 하는데,. ArduBlock상에서는, ‘fadeAmount = 0 – fadeAmount’로 구현해야 해요. ‘Upload to Arduino’메뉴를 click해서 breadboard위 의 LED 결과를 확인 하세요.
5
3. ArduBlock으로 Potentiometer’ 스케치를 ‘가변저항기’ 라고도하는 ‘Potentiometer’에 대한 스케치는, IDE의 ‘File’메뉴에서 ‘Analoginput’을 찾아서 불러오면 되요.
potentiometer의 손잡이를 돌렸을 때, 그 값들을 읽어내는 것을 ‘analogRead()’ 명령어가 했었는 데, ArduBlock에서는 어떻게 구현되는 지 살펴보아 요. ‘sensorPin’이 그 analog input에 해당되는 변수 로, 갈릴레오 보드의 A0에 연결되어 있어요. 그래서 ‘set number variable’과 ‘sensorPin’사 이에는 ‘analog pin #’블록이 꼭 있어야 해요.
‘sensorPin’과 ‘ledPin’변수에 대한 초기화를 위해, ‘program’블록의 ‘setup’소켓 안으로 ‘set number variable’블록을 가져 오세요. ‘Upload to Arduino’메뉴를 click하여 IDE상에서 변화된 스케치를 살펴보세요.
6
지난번에 배운 것처럼, 갈릴레오 보드안에는 ADC라 는 전자 소자가 있어, 0에서 5볼트 사이의 아날로그 전압 INPUT 값을, 0에서 1023까지의 디지털 값으로 바꿔줘요. 변환된 디지털 값만큼 깜빡거리게 ArduBlock을 완 성하여 upload하면, IDE 스케치가 original과는 다 른 내용처럼 보여요. 그러나, 문법적으로 문제 없고 논리적으로도 일치해서, 결과가 같게 됐어요. ArduBlock의 program은 바로 갈릴레오로 upload 되기 때문에, 굳이 IDE상의 sketch를 살펴볼 필요는 없어요. 그러나, debugging이나 program의 의도 를 파악하는데 도움이 많이 되요.
7
4. ArduBlock으로 ‘조광센서’ 스케치 구현하기 ‘조광센서’에는 ‘광소자’라는 ‘photo resistor’가 있어, 주변 빛의 밝기를 인식해요. 밝으면 저항값이 작아지 고, 어두우면 커져요. ‘Potentiometer’ 실험할 때 갈릴레오에 꽂혀있던 ‘점퍼선’들을 그대로 이용해서 브레드 보드 위에 ‘조광센서’를 꽂으세요. 대신, 갈릴레오의 5V 핀과 GND 핀에 연결된 ‘점퍼선’들을, 각각 ‘조광센서’ 의 VCC 핀과 GND 핀에 연결하세요. 갈릴레오의 A0 핀에 있는 ‘점퍼선’은, ‘조광 센서’의 OUT 핀에 연결하면 되요. ‘Upload’한뒤 두손으로 ‘조광센서’를 감싸고 풀어주면, 갈릴레오의 LED가 변하는 것을 확인할 수 있어 요. 밝기의 정도를 ‘Serial Monitor’를 통해 보는 방법을 ArduBlock으로 구현해 보기 로 해요. 우선, 왼편에 있는 ‘Communication’ component중 ‘serial println’블록을 끌 고 오세요.
함께 끌려온 ‘Text message’블록에는 ‘The lower the brighter’라고 입력하세 요.
‘Serial.println()’함수를 통해 숫자를 화면 에 print하려면 ‘glue’라는 블록을 오른쪽 socket에 붙여야해요.
8
‘Upload to Arduino’메뉴를 click하여 IDE창에 어떻게 sketch로 변환되었는지를 확인하세요. 그냥 ‘Serial.print()’함수는 문자나 숫자를 연속 해서 화면에 print해 줘요. ‘Serial.println()’함수를 써야지 다음줄로 넘어갈 수 있어요. ‘Serial Monitor’메뉴를 click하면 새 화면으로, 변화되는 값을 확인할 수 있어요.
9