Skip to main content
교사 포털

배경

화성 탐사차: 착륙 챌린지 단원에서는 학생들이 VEXcode GO 프로젝트를 구축하여 문제를 해결하도록 합니다. 이 단원에서는 학생들에게 코드 베이스 앞면의 눈 센서를 사용하여 과제를 수행하는 방법을 소개합니다. 이는 과학자들이 마스 2020 퍼서비어런스 로버와 같은 우주선을 착륙시키려고 시도할 때 사용하는 프로세스에서 영감을 얻었습니다. 학생들은 장애물을 감지하기 위해 코드 베이스에 코드를 입력한 다음, 착륙 지점에서 장애물을 발견하면 운전을 중단합니다.

NASA의 2020년 화성 탐사 임무

NASA의 2020년 화성 탐사 임무는 화성 탐사의 최우선 과학 목표인 생명, 기후, 지질, 인간에 대한 문제를 다룹니다. 하지만 퍼서비어런스 로버가 표면에서 암석과 토양 샘플을 수집하는 임무를 시작하기 전에 로버가 화성에 안전하게 착륙해야 합니다.

NASA에 따르면, 지금까지 화성에 보낸 임무 중(우주 기관이 보낸 임무 중) 성공한 것은 약 40%에 불과합니다. 진입, 하강, 착륙의 전체 과정은 몇 분밖에 걸리지 않지만, 퍼서비어런스 로버를 태운 우주선은 시속 20,000km(시속 약 12,500마일)에서 속도를 0으로 줄여야 하며, 착륙할 수 있는 넓고 평평한 지역을 찾아야 합니다. 화성 표면에는 거대한 충돌구, 절벽, 균열, 뾰족한 바위 등 장애물이 가득합니다. 예측할 수 없는 바람도 더 큰 문제를 야기할 수 있습니다.

우주에서 화성 대기권으로 진입하는 퍼서비어런스 로버.
출처: NASA/JPL-Caltech

안전한 착륙을 보장하기 위해, 퍼서비어런스 로버는 하강하는 동안 이미지를 촬영하고 해당 이미지를 지도와 비교합니다. 과학자들이 해당 지역이 위험하다고 판단했는지 신속하게 판단하고, 열린 지역에 착륙하기 위한 조정을 내릴 수 있습니다. 하강 사진을 사용하여 로버의 결정 과정을 더 잘 이해하려면 아래 애니메이션을 시청하세요.

비디오 파일
출처: NASA/JPL-Caltech

이 단원에서 학생들은 필드의 착륙 지점에서 장애물을 감지하여 로버의 안전한 착륙을 보장하는 코드 베이스를 코딩합니다.

센서란 무엇인가요?

센서는 본질적으로 로봇이 주변 세계를 이해하는 데 도움이 되는 장치입니다. 로봇은 주변 환경에 대한 데이터를 수집하고 보고하여, 이를 프로젝트에 적용해 로봇이 결정을 내리거나 특정 행동을 수행하도록 할 수 있습니다. 이 순서는 감각 → 생각 → 행동의 결정 루프로 생각할 수 있습니다.

감각-생각-행동-의사결정 루프의 다이어그램. 화살표는 루프가 순환하며 반복된다는 것을 보여줍니다. 이 주기는 '환경을 감지한다'는 의미의 '감각'으로 시작됩니다. 다음은 Think로, '환경에서 수집한 센서 데이터를 기반으로 결정을 내린다'고 설명되어 있습니다. 마지막으로 행동은 '결정을 실행하는 것'으로 설명됩니다.
감각 생각 행동 결정 루프

이 단원에서 코드 베이스는 눈 센서를 사용하여 필드의 물체를 감지하고 로버가 안전하게 착륙할 수 있도록 해당 구역을 정리하는 데 도움을 줍니다. 학생들이 만든 프로젝트는 코드 베이스의 눈 센서가 물체의 존재를 , VEX코드 GO가 눈 센서가 물체를 감지했는지 여부에 따라 결정을 내리도록 하는 루프 실행합니다. 그러면 코드 베이스는 Act 실행하고 객체의 존재 여부에 따라 운전을 중지합니다.

아이 센서란 무엇인가요?

Eye Sensor물체의 존재 여부, 색상, 물체 또는 표면의 밝기 등 세 가지를 판별할 수 있는 센서입니다. 이 장치에서는 눈 센서를 사용하여 물체를 감지하여 착륙 구역에서 치울 수 있습니다. 눈 센서에서 보고된 데이터는 모니터 콘솔에서 볼 수 있습니다. 모니터 콘솔은 학생들에게 로봇이 '보는' 내용을 시각적으로 보여주며, 센서와 로봇의 동작 간의 연관성을 파악하는 데 도움이 됩니다. VEXcode GO에서 Monitor Console을 사용하는 방법에 대한 자세한 내용은 이 VEX 라이브러리 문서를 참조하세요.

Code Base - Eye Forward 빌드의 Eye Sensor는 아래 이미지에서 볼 수 있듯이 앞면을 향하고 있습니다. 눈 센서는 물체의 존재 여부, 색상이나 밝기 수준을 감지하는 데 사용할 수 있습니다. 

VEX GO 코드 베이스 2.0 - Eye Forward 빌드.
 

눈 센서는 적외선을 사용하여 물체를 감지합니다. 밝은 색상의 물체는 적외선을 반사하므로 눈 센서가 더 쉽게 감지합니다. 어두운 색상의 물체는 적외선을 흡수하므로 눈 센서도 이를 감지하지 못합니다. 단원 학습 중 장애물에는 흰색이나 밝은 색 종이를 사용하여 눈 센서가 해당 물체를 감지할 수 있도록 하세요.

이 단원에서는 Eye Sensor를 사용하여 코드 베이스 경로에 객체가 존재하는지 감지합니다. 코드 베이스에서 Eye Sensor의 위치는 바로 앞에 있는 물체만 감지할 수 있다는 것을 의미합니다. 학생들에게 코드 베이스와 장애물을 제공할 때 이 점을 염두에 두십시오. 이렇게 하면 학생들이 성공할 수 있도록 자료를 준비할 수 있습니다. 

Eye Sensor와 그 작동 방식에 대한 자세한 내용은VEX GO Eye Sensor를 사용한 코딩VEX 라이브러리 문서를 참조하세요.

VEXcode GO란 무엇인가요?

VEXcode GO는 VEX GO 로봇과 통신하는 데 사용되는 코딩 환경입니다. 학생들은 드래그 앤 드롭 인터페이스를 사용하여 로봇의 동작을 제어하는 VEXcode GO 프로젝트를 만듭니다. 각 블록의 용도는 모양, 색상, 라벨과 같은 시각적 단서를 사용하여 식별할 수 있습니다. VEXcode GO를 사용하는 방법에 대한 자세한 내용 VEX 라이브러리의 VEXcode GO 섹션을 참조하세요.

VEXcode GO의 블록은 VEXcode GO에서 프로젝트를 생성하는 데 사용되는 로봇 명령을 나타냅니다. 이 단원에서 사용되는 주요 블록 목록은 다음과 같습니다.

VEX코드 GO 블록 행동
VEXcode GO 시작 시 블록. {When started} 블록은 프로젝트가 시작될 때 첨부된 블록 스택을 실행하기 시작합니다.
VEXcode GO Drive Until 블록에는 '객체까지 전진'이라는 문구가 있습니다. [Drive] 블록은 Drivetrain을 영원히 전진 또는 후진시킵니다.
VEXcode GO Turn For 블록에는 '90도 우회전'이라고 적혀 있습니다. [회전] 블록은 드라이브트레인을 지정된 거리만큼 회전시킵니다.
다른 블록을 포함할 수 있는 VEXcode GO Forever 블록입니다. [Forever] 블록은 'C' 안에 포함된 모든 블록을 영원히 반복합니다.
VEXcode GO 대기 블록에는 '1초간 기다리세요'라는 문구가 적혀 있습니다. [대기] 블록은 프로젝트의 다음 블록으로 이동하기 전에 특정 시간 동안 기다립니다.
부울 매개변수가 true를 반환할 때까지 기다리는 VEXcode GO Wait Until 블록입니다. [Wait until] 블록은 다음 블록으로 이동하기 전에 블록 내부의 조건이 TRUE로 보고될 때까지 기다립니다. 
VEXcode GO Found Object 블록에는 'eye가 객체를 찾았나요?'라는 문구가 적혀 있습니다. <Found object> 블록은 Eye Sensor가 물체를 감지했는지 보고합니다.
VEX코드 GO 운전 정지 블록. [운전 정지] 블록은 드라이브트레인을 정지시킵니다.
VEX코드 GO 범퍼 색상 블록 설정 '범퍼를 빨간색으로 설정'이라고 적혀 있습니다. [범퍼 색상 설정] 블록은 LED 범퍼의 색상을 설정합니다.

[대기까지] 블록은 Eye Sensor와 어떻게 작동합니까? 

이 단원에서 학생들은 코드 베이스의 눈 센서를 사용하여 화성 탐사선의 착륙 구역에 있는 장애물을 감지합니다. 이를 코딩하려면 프로젝트에서 [Wait until] 블록을 사용합니다. [Wait until] 블록은 프로젝트의 흐름을 제어하기 위해 반복적으로 조건을 확인하는 제어 블록입니다. [대기까지] 블록의 조건이 참으로 보고될 때까지 프로젝트는 다음 블록으로 이동하지 않습니다. 이 단원에서는 [대기] 블록을 조건으로<Found object> 블록과 함께 사용합니다. 즉, 눈 센서가 물체를 감지하고 <Found object> 블록의 조건이 참이 될 때까지 기다렸다가 프로젝트의 다음 블록으로 넘어갑니다. 

[대기까지] 블록은 이 단원의 [구동] 블록과 같이 대기하지 않는 블록과 함께 사용할 수 있습니다. 이를 통해 코드 베이스는 눈 센서가 객체를 감지할 때까지에서까지 앞으로 구동할 수 있습니다. 로봇이 장애물에 부딪히는 것을 막기 위해 [대기] 블록을 사용하는 모습을 아래 애니메이션에서 확인하세요.

비디오 파일

로봇이 실행되는 동안 프로젝트 흐름을 실시간으로 확인하려면 VEXcode GO의 하이라이트 기능을 시청하세요. 프로젝트가 시작되면 조건이 참이 될 때까지 [대기] 블록 주위에 녹색 강조 표시가 나타납니다. 녹색 강조 표시는 대기하지 않는 블록(이 경우 [드라이브] 블록)을 건너뛰도록 나타나며, 이러한 명령은 빠르게 실행됩니다. 

이 단원에서 학생들은 [대기] 블록과 같은 대기 블록과 [운전] 블록과 같은 대기하지 않는 블록을 조합하여 프로젝트에서 랩 활동과 과제를 완료합니다. VEXcode GO의 대기 및 비대기 블록에 대해 자세히 알아보려면 이 VEX 라이브러리 문서를 읽어보세요. 

 

이 단원에서 개방형 챌린지 준비하기

이 단원에서 학생들은 이전에 배운 내용을 활용하여 과제를 해결하기 위한 프로젝트를 만들어야 합니다. 학생들에게 문제 해결 능력을 정기적으로 도전시키고, 그들이 배운 기술을 새로운 방식으로 적용하도록 하는 것이 중요하므로, 학생들에게 도전 과제를 부여하고 이러한 전략을 사용하여 회복력을 키우고 도전을 헤쳐나가도록 안내하는 것이 좋습니다. 학생들이 프로젝트를 실험할 때 도움이 되는 몇 가지 제안은 다음과 같습니다. 

해결책을 제공하지 않고 피드백을 제공합니다.과제를 해결하는 동안 실수를 하는 것은 예상되고 장려됩니다. "학습 과정에서의 오류는 기회를 만들어내고, 연관성을 깨닫는 데 도움이 될 수 있습니다."1 학생들에게 익숙한 문제 해결 과정을 만들어 주면, 학생들이 문제를 식별하고 실수했을 때 앞으로 나아가는 방법을 배우는 데 도움이 되므로 방해와 좌절을 최소화할 수 있습니다. 학생들이 프로젝트의 문제를 해결하고 스스로 해결책을 찾을 수 있도록 다음의 문제 해결 주기를 활용해 보세요. 

학생 문제 해결 주기를 나타낸 다이어그램입니다. 화살표는 주기가 반복됨을 보여줍니다. 이 사이클은 '문제 설명'으로 시작하여, '문제가 시작된 시기와 장소 파악', '편집 및 테스트', 마지막으로 '반성'으로 이어지고, 마지막으로 반복됩니다.
학생 문제 해결 사이클
  • 문제를 설명하세요
    • 학생에게 무엇이 잘못되었는지 설명해 보라고 하세요. 학생들은 오류를 공유된 목표나 당면 과제와 연관시킬 수 있어야 합니다.
      • 해당 프로젝트의 코드베이스는 어떻게 진행되고 있나요? 로봇 움직여야 합니까? 
  • 문제가 시작된 시기와 장소를 파악하세요
  • 테스트 편집 & 만들기
    • 학생들이 오류를 발견하면 프로젝트를 편집해야 합니다. 학생들은 편집한 각 내용을 가지고 프로젝트를 테스트할 수 있습니다. 프로젝트가 성공적이면 문제 해결 주기의 다음 단계로 넘어갈 수 있습니다. 프로젝트가 성공적이지 않으면 프로세스의 처음으로 돌아가 다시 시도할 수 있습니다.
  • 반영하다
    • 학생들에게 이 과정에서 자신이 저지른 실수와 극복한 실수에 대해 생각해 보라고 합니다.
      • 무슨 실수였나요? 이 실수로부터 무엇을 배웠나요? 다음에 코드베이스를 코딩할 때 어떻게 도움이 될까요?
    • 학생들이 자신의 실수를 인식하고 그 과정에서 무엇을 배웠는지 격려하여 성장하는 사고방식을 갖도록 돕습니다. 성장적 사고방식을 강조하면 학생들이 언제 어떻게 끈기를 발휘해야 하는지, 그리고 언제 도움을 요청해야 하는지 배우는 데 도움이 될 수 있습니다.2학생들이 자신의 학습 과정을 새로운 학습의 전조로 볼 수 있다면, 여기에 제시된 단계를 활용하여 자신의 학습뿐만 아니라 반 친구들의 학습도 촉진할 수 있습니다. 학생들이 이러한 문제에 직면하고 자신의 실수를 되돌아볼 때, 자신의 실수와 그 과정을 다른 학생들과 공유하도록 격려하세요. 이런 식으로 학생들은 “서로에게 학습 자료”가 될 수 있습니다.3
학생들이 추측과 확인을 넘어설 수 있도록 돕기 - 처음에는 학생들이 프로젝트에서 다양한 블록을 실험하기 위해 추측과 확인을 하게 되지만, 프로젝트의 목표에 따라 선택을 시작하도록 해야 합니다. 학생들에게 프로젝트의 목표를 설명하게 한 다음, 프로젝트에서 그 목표를 달성하기 위해 무엇이 필요한지, 무엇이 부족한지, 그리고 그 이유는 무엇인지 물어보세요. 학생들이 로봇이 무엇을 하기를 원하는지, 그리고 그 이유가 무엇인지 개념적 수준에서 프로젝트를 구축하도록 격려하면, 추측과 확인을 넘어 의도를 가지고 코딩을 시작하는 데 도움이 됩니다.

착륙 구역 청소(실험실 2)는 학생들에게 과제를 해결하기 위해 끈기 있게 노력하도록 요구하는 개방형 탐구 활동으로 설계되었습니다. 이 랩에서 우리는 [Forever] 블록을 사용하여 루프를 소개하고 학생들에게 프로젝트에서 루프를 사용하여 코드 베이스가 착륙 영역(GO 필드)에 있는 모든 장애물을 감지하도록 실험해 보도록 요청합니다. 학생들에게 프로젝트에서 루프를 사용하는 것이 처음이라면, 루프를 효과적으로 사용하려면 프로젝트를 여러 번 반복해야 할 수도 있습니다. 이 섹션에 설명된 제안을 사용하여 학생들이 시행착오 과정에 대비하고, 과제의 목표를 달성하기 위해 프로젝트의 문제를 해결하도록 돕습니다. 연극 1부와 2부의 진행 섹션에는 학생들이 랩 2 과제를 진행할 수 있도록 안내하는 추가적인 교육 지원 내용이 들어 있습니다. 이 랩에서 필요한 문제 해결과 시행착오에 대한 지원을 어떻게 제공할 것인지에 대한 계획을 세우면 학생들의 개별적인 요구를 충족하는 데 도움이 될 수 있습니다.

STEM 랩을 진행하는 동안 학생들이 회복력과 성장적 사고방식을 키우는 데 효과적인 피드백이 어떻게 도움이 될 수 있는지에 대한 자세한 내용은 STEM 랩에서 회복력 구축 VEX 라이브러리 기사 참조하세요.


1 해티, 존, 셜리 클라크. 눈에 보이는 학습: 피드백. 라우틀리지, 테일러 & 프랜시스 그룹, 2019.

2 위와 같음.

3 위와 같음, 121쪽