프로그래밍 복잡성
로봇은 다양한 작업을 수행하도록 설계될 수 있습니다. 이러한 작업 중 일부는 자동문을 여는 것과 같이 매우 간단합니다. 도시 환경을 탐색하는 자율주행 자동차처럼 다른 것들은 훨씬 더 복잡할 수 있습니다. 아무리 복잡한 작업이라도 더 간단한 작업으로 나눌 수 있습니다. 이러한 작업을 동작이라고 하며 로봇 프로그래밍의 구성 요소입니다.
행동은 로봇이 행동하는 방식이며, 로봇이 구축되거나 프로그래밍되는 방식에 따라 복잡도가 달라질 수 있습니다. VEX V5 Speedbot과 같은 간단한 모바일 로봇에는 모터가 2개만 있는 반면, Clawbot에는 Arm과 Claw용 추가 모터 2개를 포함하여 4개의 모터가 있습니다. 두 로봇의 동작에는 설정된 목표를 달성하기 위해 모터를 돌리는 작업이 포함됩니다. 더 많은 디자인과 프로그래밍을 통해 이 간단한 동작에서 시작하여 더 복잡한 동작을 수행할 수 있습니다.
다음은 Speedbot과 Clawbot 모두에 대해 단순한 것에서 복잡한 것으로 증가하는 로봇 동작 목록입니다. 괄호 안에는 각각을 구성하는 더 간단한 동작이 표시됩니다.
-
특정 포트에 할당된 모터를 회전시킵니다.
-
전진(드라이브트레인을 사용하여 왼쪽과 오른쪽 모터를 모두 회전)
-
5미터 이동(앞으로 주행한 후 정지)
-
멀리 있는 물체 잡기(2미터 이동, 클로 모터를 회전하여 잡기)
-
물건을 회수하여 높은 선반에 올려놓기(멀리 있는 물건을 잡고, 돌아서 2미터 이동하고, 팔과 클로 모터를 사용하여 물건을 들어올리고 놓음)
더 복잡한 동작을 더 간단한 동작으로 분해하는 방법을 확인할 수 있습니다. 이는 복잡한 작업의 구성 요소가 됩니다.
교사 팁
-
학생들에게 복잡한 로봇 동작을 더 작고 간단한 단계로 분해하도록 지시하십시오. 이 과정을 분해라고 합니다.
-
복잡한 행동을 더 간단한 작업으로 분해(분해)하는 것은 계획과 프로그래밍의 중요한 부분임을 학생들에게 설명합니다.
-
수업 시간이 충분하다면 학생들이 자율적인 프로젝트를 실행할 수 있도록 허용합니다.
학습을 확장하세요
이 활동을 컴퓨팅 사고 및 분해와 연결하려면 학생들에게 아래 활동을 완료하기 위해 로봇이 수행할 행동 단계를 계획하거나 나열하도록 요청하세요.
-
활동 1: 1미터를 이동한 후 시작 지점으로 돌아갑니다.
-
활동 2: 로봇 앞에 60cm 떨어진 상자를 뒤집습니다.
-
활동 3: 물체를 집어 흔들어 30cm 이동한 다음 물체를 바닥에 내려놓고 시작점으로 돌아옵니다.
토론에 동기를 부여
학생들은 위의 학습 확장 활동에 대해 나열한 행동 단계를 공유해야 합니다. 다음 각 질문은 활동의 일부 또는 전부 후에 물어볼 수 있습니다.
Q: 이 활동을 성공적으로 완료하기 위해 각 그룹은 어떤 단계나 행동을 나열했습니까?
A: 학생들은 활동이나 작업(전진, 후진, 좌회전)을 완료하는 데 필요한 간단한 로봇 동작을 나열하는 것 외에도 로봇이 이동해야 하는 길이, 팔의 움직임 및 속도를 고려해야 합니다. 아니면 맞다). 학생들은 각 단계가 표현되도록 행동 목록을 작성해야 합니다.
Q: 이 활동에 대한 솔루션(단계 목록) 간의 유사점과 차이점은 무엇입니까?
A: 학생들은 자신의 해법을 바탕으로 비교를 하게 됩니다. 벤 다이어그램은 학생들이 공유하는 단계를 구성하는 좋은 방법일 수 있습니다. 대다수의 학생들이 특정 단계를 언급하는 경우 원이 겹치는 중앙에 단계를 추가합니다. 한 명 또는 소수의 학생만이 특정 단계를 언급하는 경우 이를 하나의 원이나 다른 원에 추가합니다. 완료되면 중앙의 단계는 확실히 단순하고 더 이상 나눌 수 없어야 하지만, 원 중 하나만 나열된 단계는 그렇게 간단하지 않을 가능성이 높습니다. 그러나 이 패턴은 복잡한 동작을 가장 간단한 단계로 분해하는 학급의 경험에 따라 반전될 수 있습니다.
Q: 성공적인 솔루션과 유사점이 있었나요? 그렇다면 그들은 무엇이었는가?
A: 가장 성공적인 솔루션은 가장 세부적이고 구체적인 내용을 포함하는 솔루션이었습니다. 로봇은 가장 작은 구성 요소로 세분화된 매우 구체적인 동작을 갖춘 언어로 프로그래밍됩니다. 예를 들어, 로봇이 "1미터를 이동하고 시작 지점으로 돌아간다"라고 말하는 것이 일반적일 수 있지만 프로그래밍할 때 이러한 고급 설명은 쉽게 번역되지 않습니다. 더 세분화해야합니다. 1 미터 앞으로 이동하고 180도 회전하고 1 미터 앞으로 이동합니다. 그러나 그것조차도 충분히 정확하지 않을 수 있으며 프로그래밍 준비가 되려면 다음과 같은 세부 수준이 필요합니다. 주행 및 회전 속도를 40%로 설정하고, 1미터 앞으로 이동하고, 3초를 기다리고, 180도 왼쪽으로 회전하고, 1초를 기다립니다. , 그리고 1미터 앞으로 나아갑니다. 복잡한 동작을 더욱 세분화하여 프로그래밍 가능한 로봇 동작으로 만들수록 프로젝트를 완료할 준비가 더 잘 됩니다.