배경
화성 탐사차: 화성 지질학 탐험 단원에서는 VEXcode GO 프로젝트를 구축하여 문제를 해결하는 방법에 대해 학습합니다. 퍼서비어런스 로버와 2020년 화성 탐사선의 활동은 학생들이 VEXcode GO와 Code Base 로봇을 사용하여 해결할 과제에 대한 영감으로 사용됩니다. 이들이 만드는 프로젝트에서는 디스크를 수집하고 센서 데이터를 사용하여 색상별로 정렬해야 합니다.
NASA의 2020년 화성 탐사 임무
NASA의 2020년 화성 탐사 임무는 화성 탐사의 최우선 과학 목표인 생명, 기후, 지질, 인간에 대한 문제를 다룹니다. 마스 2020 퍼서비어런스 로버는 화성의 지질학적 특징을 더 잘 이해하고 고대 생명체의 흔적을 찾기 위해 설계되었습니다. 이 임무는 지질학적으로 다양한 착륙 지점인 제제로 분화구 주변 지역을 탐사할 예정이며, 특히이 지나도 생명의 흔적을 보존하는 것으로 알려진 특수한 암석을 찾을 것입니다.
과학자들은 하제로 분화구 지역이 한때 물에 잠겼으며 고대 강 삼각주가 있었다고 믿고 있습니다. 과학자들은 물이 주변 지역의 점토 광물을 분화구 호수로 운반했다는 증거를 발견했습니다. 아마도 미생물 생명체가 이러한 습한 시기 중 하나 이상 동안 제제로에 살았을 수 있습니다. 그렇다면 호수 바닥이나 해안 퇴적물에서 그들의 유해 흔적을 발견할 수도 있습니다. 과학자들은 이 지역이 어떻게 형성되고 진화했는지 연구하고, 과거 생명의 흔적을 찾고, 이러한 흔적을 보존했을 가능성이 있는 화성 암석과 토양 샘플을 수집할 것입니다.
행성 지질학자란?
행성 지질학자는 천체(행성, 위성, 소행성, 혜성, 운석)가 시간이 지남에 따라 어떻게 형성되고 진화하는지 연구하는 사람입니다. 그들은 지구에 대해 배운 내용을 활용해 다른 천체가 어떻게 작동하는지 이해하려고 노력합니다. 행성 지질학자들은 행성의 내부 구조를 결정하는 것과 같은 주제를 연구하고, 행성 화산 활동과 같은 표면 과정도 살펴봅니다. 행성 지질학자들은 지구 지질학자들보다 훨씬 적은 데이터로 만족해야 합니다. 그들은 현장으로 나가서 직접 정보를 수집할 수 없기 때문에 주로 원격 데이터에 의존해야 합니다.
로버란 무엇인가?
행성 지질학자들은 탐사선을 이용해 지형에 대한 정보를 수집하고 암석, 흙, 토양, 심지어 액체의 샘플을 수집합니다. 로버는 행성이나 다른 천체(화성과 같은)의 단단한 표면을 이동하도록 설계된 장치입니다. 현재로서는 과학자들이 직접 화성에 갈 수 없기 때문에 로봇 지질학자(로버)에 의존해 암석과 토양을 분석하고 데이터를 수집해야 합니다.
현재 퍼서비어런스 로버는 NASA의 2020년 화성 탐사 임무를 완료하고 있으며, 지구로 귀환하기 위해 암석과 토양 샘플을 수집할 예정입니다. 퍼서비어런스 로버는 임무를 수행하기 위해 화성 표면의 암석과 토양을 분석하고 다른 중요한 작업과 연구를 수행할 여러 개의 센서와 과학 장비를 탑재합니다. 2020년 화성 탐사 임무에 대한 자세한 내용과 퍼서비어런스 로버의 기능에 대한 자세한 내용 NASA의 2020년 화성 탐사 임무 개요 웹사이트참조하세요.
센서란 무엇인가?
센서는 본질적으로 로봇이 주변 세계를 이해하는 데 도움이 되는 장치입니다. 로봇은 주변 환경에 대한 데이터를 수집하고 보고하여, 이를 프로젝트에 적용해 로봇이 결정을 내리거나 특정 행동을 수행하도록 할 수 있습니다. 이 시퀀스는 "감각-사고-행동" 결정 루프로 생각할 수 있습니다.
이 단원에서 코드 베이스는 눈 센서를 사용하여 전자석이 수집한 디스크의 색상을 감지합니다. 눈 센서와 전자석은 모두 코드베이스가 주변 환경과 상호 작용하고 감지-생각-행동 결정 루프를 수행할 수 있게 해주는 센서입니다. 학생들이 만드는 프로젝트에서 전자석은 디스크를 감지하고 눈 센서는 디스크의 색상을 감지한 다음 VEXcode GO는 감지된 디스크의 색상에 따라 결정을 내리도록 Think에 명령합니다. 그러면 코드 베이스는 지정된 위치로 이동하여 감지된 색상에 따라 디스크를 놓습니다.
전자석이란 무엇인가?
전자석은 전류에 의해 자기장이 생성되는 자석의 한 종류입니다. VEX GO 전자석은 금속 코어가 포함된 디스크를 집어 올리고 내려놓을 수 있습니다. 코드 베이스 - 눈 + 전자석 빌드에는 로봇 전면에 전자석이 있습니다.
[전자석 활성화] 블록은 VEXcode GO에서 디스크를 '증폭'하고 '드롭'하는 데 사용됩니다.
'부스트' 설정을 사용하면 디스크를 집을 수 있습니다.
'드롭' 설정을 사용하면 디스크를 해제할 수 있습니다.
전자석 사용에 대한 자세한 내용 VEX GO 전자석 VEX 라이브러리 기사참조하세요.
아이 센서란 무엇인가요?
눈 센서는 물체의 존재 여부, 물체의 색상, 물체나 표면의 밝기 등 세 가지를 판별할 수 있는 센서입니다. 코드 베이스 - 눈 + 전자석 빌드에서는 눈 센서가 전자석 뒤에 위치하고 아래쪽을 향하고 있습니다. 이를 통해 Eye Sensor가 디스크의 색상을 감지하여 색상에 따라 정렬할 수 있습니다. Eye Sensor의 다양한 용도에 대한 자세한 내용은 VEX GO Eye Sensor를 사용한 VEX 라이브러리 기사참조하세요.
눈 센서에서 보고된 데이터는 모니터 콘솔에서 볼 수 있습니다. 모니터 콘솔은 학생들에게 로봇이 '보는' 내용을 시각적으로 보여주며, 센서와 로봇의 동작 간의 연관성을 파악하는 데 도움이 됩니다. VEXcode GO에서 Monitor Console을 사용하는 방법에 대한 자세한 내용은 이 VEX 라이브러리 문서를 참조하세요.
VEX GO 디스크
이 단원에서 사용되는 디스크는 녹색, 빨간색, 파란색의 세 가지 색상으로 제공됩니다. 디스크에는 금속 코어가 있어 전자석과 함께 사용할 수 있습니다. 디스크는 눈 센서와 함께 사용하여 색상 및 물체 감지에도 사용할 수 있습니다. 전자석이나 디스크에 대한 자세한 내용은 VEX 라이브러리에 링크된 대화형 부품 포스터를 하세요.
분해
분해는 복잡한 문제를 더 관리하기 쉽고 이해하기 쉬운 행동으로 분해하는 것을 의미합니다. 문제를 더 작은 부분으로 나누면 각 부분을 더 자세히 검토하고 더 쉽게 해결할 수 있습니다. 예를 들어, 학생이 로봇을 정사각형 모양으로 움직이게 하려면 로봇을 더 작은 명령으로 나누어야 합니다. 학생들이 명령을 더 작은 구성 요소로 분해하지 못할 수 있으므로, 분해 과정을 세부적으로 연습하는 것이 중요합니다.
| 정사각형 분해 1로 이동 | 정사각형 분해 2로 이동 | 정사각형 분해 3으로 이동 |
|---|---|---|
|
|
|
의사코드
의사코드는 코드에 대한 구두 및 서면 설명을 결합한 코딩의 약식 표기법입니다.
학생들은 종종 "추측하고 확인"하여 해결책을 찾을 수 있습니다. 하지만 이로 인해 코딩 개념에 대한 개념적 이해가 구축되지는 않습니다. 의사코드를 작성하면 학생들이 코딩에 대한 표면적 이해를 넘어 보다 개념적 이해로 나아갈 수 있습니다. 의사코드는 학생들이 코딩을 시작하기 전에 코딩 솔루션에 대해 개념적으로 생각하도록 요구합니다. 교사는 학생들에게 다음과 같은 질문을 하여 학생들과 의사코드에 대해 논의해야 합니다.
- 그들은 프로젝트를 통해 무엇을 성취하고 싶어하는가?
- 프로젝트의 의도나 목표를 짧고 구체적인 진술로 어떻게 표현할 것인가?
이 예에서 학생들에게 로봇이 앞으로 이동하고, 벽을 감지하고, 오른쪽으로 회전한 후 다시 앞으로 이동하도록 하는 의사코드를 만들라고 하면 다음과 같습니다.
- 로봇을 벽에서 50mm 떨어질 때까지 앞으로 밀어 넣으세요.
- 로봇을 멈추세요
- 로봇을 90도 회전시키세요
- 로봇을 멈추세요
- 600mm 전진
의사코드가 만들어지면 학생들은 로봇에게 의사코드의 각 단계를 성공적으로 완료하는 방법을 지시하는 코드를 만듭니다. 의사코드를 사용하는 방법에 대한 자세한 내용은 VEXcode GO의 의사코드 튜토리얼을 참조하세요.
VEXcode GO란 무엇인가요?
VEXcode GO는 VEX GO 로봇과 통신하는 데 사용되는 코딩 환경입니다. 학생들은 드래그 앤 드롭 인터페이스를 사용하여 로봇의 동작을 제어하는 VEXcode GO 프로젝트를 만듭니다. 각 블록의 용도는 모양, 색상, 라벨과 같은 시각적 단서를 사용하여 식별할 수 있습니다. VEXcode GO를 사용하는 방법에 대한 자세한 내용 VEX 라이브러리의 VEXcode GO 섹션을 참조하세요.
VEXcode GO의 블록은 VEXcode GO에서 프로젝트를 생성하는 데 사용되는 로봇 명령을 나타냅니다. 이 단원에서 사용되는 주요 블록 목록은 다음과 같습니다. 블록 모양과 그 의미에 대한 자세한 내용 VEXcode GO VEX 라이브러리 문서의 블록 모양 이해를 참조하세요. 내 블록에 대한 추가 정보와 프로젝트에서 내 블록을 사용하는 방법은 VEXcode GO VEX 라이브러리 문서에서 확인할 수 있습니다.
| VEX코드 GO 블록 | 행동 |
|---|---|
![]() |
{When started} 블록은 프로젝트가 시작될 때 첨부된 블록 스택을 실행하기 시작합니다. |
![]() |
[Drive] 블록은 Drivetrain을 지정된 거리만큼 이동합니다. |
![]() |
[회전] 블록은 드라이브트레인을 지정된 거리만큼 회전시킵니다. |
![]() |
[If then] 블록은 부울 조건이 TRUE로 보고되면 내부 블록을 실행하는 'C' 블록입니다. |
![]() |
[전자석 활성화] 블록은 VEX GO 전자석을 부스트 또는 드롭의 두 가지 모드로 설정합니다. |
| <Detects color> 블록은 눈 센서가 지정된 색상의 물체를 감지했는지 보고합니다. | |
![]() |
My Blocks(정의)는 블록 스택을 정의하는 데 사용됩니다. |
![]() |
My Blocks(명령) 블록은 정의된 블록을 실행하는 데 사용됩니다. |
![]() |
[코멘트] 블록을 사용하면 프로젝트에서 어떤 일이 일어나기를 원하는지 설명하는 데 도움이 되는 정보를 작성할 수 있습니다. |
My Blocks는 어떻게 작동하나요?
내 블록은 프로젝트 전체에서 여러 번 사용할 수 있는 블록 시퀀스를 만드는 데 사용됩니다. 매번 같은 시퀀스를 다시 만드는 대신, 블록 시퀀스를 하나의 블록으로 그룹화하는 것이 더 쉽습니다. 내 블록을 만들면 시퀀스를 한 번만 만들면 되고, 이후에는 다시 사용할 수 있습니다. 이를 통해 긴 프로젝트를 나누어 작업하기 쉽게 만들 수 있습니다. 아래 영상을 시청하여 프로젝트에서 My Blocks를 사용하는 방법을 알아보세요. 다음 튜토리얼 영상은 VEXcode GO에서 찾을 수 있으며, 프로젝트에서 My Blocks를 사용하는 방법을 보여줍니다. 이 영상은 랩 4에도 포함되어 있으므로 학생들과 공유할 수 있습니다. (귀하와 귀하의 학생들은 언제든지 VEXcode GO에서 이 비디오와 모든 VEXcode GO 튜토리얼에 접속할 수 있습니다.)
내 블록 사용에 대한 자세한 내용은 VEXcode GO VEX 라이브러리에서 내 블록 사용 문서를 참조하십시오.
이 단원에서의 오픈 엔드 챌린지 준비
이 단원에서는 학생들에게 이전에 배운 내용을 사용하여 과제를 해결하기 위한 프로젝트를 생성하도록 요청합니다. 학생들에게 정기적으로 문제 해결에 도전하고 학습한 기술을 새로운 방식으로 적용하는 것이 중요하기 때문에 학생들에게 도전하고 이러한 전략을 사용하여 회복탄력성을 키우고 랩 활동을 안내하는 데 도움을 주는 것이 좋습니다. 학생들이 프로젝트를 실험할 때 도움이 되는 몇 가지 제안은 다음과 같습니다.
해결책을 제시하지 않고 피드백 제공 - 문제를 해결하는 동안 오류를 범하는 것은 예상되고 권장됩니다. “학습의 오류는 기회를 창출할 수 있으며, [그리고] 연결을 실현하는 데 도움이 될 수 있습니다.”2 학생들과 친숙한 문제 해결 프로세스를 만들면 문제를 식별하고 오류를 범할 때 앞으로 나아가는 방법을 배우는 데 도움이 될 수 있으며, 이를 통해 혼란과 좌절을 최소화할 수 있습니다. 학생들과 함께 다음 문제 해결 주기를 사용하여 프로젝트 문제를 해결하고 자신만의 해결책을 생각해 본다.
- 문제 설명
- 학생에게 무엇이 잘못되었는지 설명해 달라고 한다. 학생들은 오류를 공유된 목표 또는 당면 과제와 다시 연관시킬 수 있어야 합니다.
- Code Base는 프로젝트에서 어떻게 움직이고 있습니까? 로봇은 어떻게 움직여야 할까?
- 학생에게 무엇이 잘못되었는지 설명해 달라고 한다. 학생들은 오류를 공유된 목표 또는 당면 과제와 다시 연관시킬 수 있어야 합니다.
- 문제가 언제 어디서 시작되었는지 식별합니다.
- 학생이 문제를 처음 발견했을 때 물어본다.
- 프로젝트의 어떤 부분이 실행되고 있었습니까?
- 학생들이 프로젝트에서 오류가 있는 위치를 확인하는 데 어려움이 있는 경우, VEXcode GO에서 Project Stepping 기능을 사용하도록 권장하십시오. 프로젝트 스테핑 기능과 함께 제공되는 시각적 단서는 학생들이 한 번에 하나씩 실행되는 블록을 볼 수 있어 프로젝트 문제를 해결하는 데 도움이 될 수 있습니다. 이를 통해 오류가 발생하는 블록을 더 잘 파악할 수 있으므로 디버깅을 보다 집중적이고 효율적으로 진행할 수 있습니다. 프로젝트 스테핑 기능을 사용하는 방법에 대한 자세한 내용은 VEXcode GO VEX 라이브러리 문서에서 프로젝트 스테핑을 참조하세요.
- 학생이 문제를 처음 발견했을 때 물어본다.
- & 테스트 수정하기
- 학생들이 오류를 발견하면 프로젝트를 수정해야 합니다. 학생들은 각 편집을 통해 프로젝트를 테스트할 수 있습니다. 프로젝트가 성공하면 문제 해결 주기의 다음 단계로 넘어갈 수 있습니다. 프로젝트가 성공적이지 않으면 프로세스의 시작 부분으로 돌아가서 다시 시도할 수 있습니다.
- 반영
- 학생들에게 그 과정에서 저지르고 극복한 오류에 대해 생각해 보라고 한다.
- 어떤 오류가 있었나요? 이 실수에서 무엇을 배웠는가? 다음 번에 코드 베이스를 코딩할 때 어떻게 도움이 될 수 있습니까?
- 학생들이 자신의 실수와 그 과정에서 배운 것을 인식하여 성장 사고 방식을 장려하도록 격려한다. 성장 사고 방식을 강조하면 학생들이 언제, 어떻게 지속해야 하는지, 언제 도움을 요청해야 하는지를 배우는 데 도움이 될 수 있다.3 학생들이 자신의 과정을 새로운 학습의 전조로 볼 수 있다면, 여기의 단계를 사용하여 자신의 학습을 진전시키고 반 친구들의 학습을 진전시킬 수 있다. 학생들이 이러한 문제를 접하고 자신의 오류를 숙고할 때, 자신의 오류와 과정을 동료 학생들과 공유하도록 격려한다. 이렇게 함으로써 학생들은 “서로를 위한 학습 자료” 가 될 수 있다.4
- 학생들에게 그 과정에서 저지르고 극복한 오류에 대해 생각해 보라고 한다.
학생들이 추측과 확인을 넘어설 수 있도록 돕기 - 처음에는 학생들이 프로젝트에서 다른 블록을 실험하기 위해 추측하고 확인하지만, 프로젝트의 목표에 따라 선택을 시작하도록 합니다. 학생들에게 프로젝트의 목표를 설명하게 한 다음, 프로젝트에서 그 목표를 향해 무엇을 하고 있는지, 무엇이 부족한지, 왜 그런지 물어본다. 학생들이 로봇이 무엇을 하기를 원하는지, 그리고 그 이유는 무엇인지에 대한 개념적 수준에서 프로젝트를 구축하도록 장려하면 추측과 확인을 거치고 의도적으로 코딩을 시작하는 데 도움이 될 것입니다.
이 단원의 실험실 3과 4에는 탐색을 위해 고안된 활동이 포함되어 있으며 학생들에게 도전 과제를 해결하기 위해 인내심을 갖도록 요청할 것입니다. 학생들은 드라이브 트레인 블록의 매개 변수를 변경하고 내 블록을 만들어 디스크를 수집하여 색상에 따라 다른 영역에 배포해야 합니다. 디스크를 수집하고 정렬하는 데 여러 번의 프로젝트 반복이 필요할 수 있습니다. 이 섹션에 요약된 제안을 사용하여 학생들이 시행착오 과정을 준비하고 도전의 목표를 달성하기 위해 프로젝트를 해결하도록 돕는다. 플레이 파트 1과 2의 퍼실리테이션 섹션에는 이러한 실험실 과제를 통해 학생들을 안내하기 위한 추가적인 교육 지원이 포함되어 있습니다. 이 실습에서 요구되는 문제 해결 및 시행착오에 대한 지원을 제공하는 방법에 대한 계획을 세우면 학생들의 개별 요구 사항을 충족하는 데 도움이 될 수 있습니다.
1 NASA, 2020년 화성 탐사 임무 개요, https://mars.nasa.gov/mars2020/mission/overview/, 2021.
2 해티, 존, 셜리 클라크. 가시적 학습: 피드백. Routledge, Taylor & Francis Group, 2019.
3 Ibid.
4 Ibid, p. 121







