교육자료

마르시스에듀는 창의적인 미래 인재 양성을 목표로 누구나 쉽고 재미있게
코딩을 배울 수 있는 STEAM(융합인재교육) 솔루션을 제공합니다.

마르시스에듀의 다양한 코딩 교구와 교육 콘텐츠를 만나보세요.

 

샘랩

[샘랩] 코딩정음의 FUN MAIKING_자율 주행 자동차

샘랩 FUN MAKING
#초등 고 #중등 #출처 표기 2019-11-30 12:59:09

 

 

 



 

  • 자율주행차에 대해서 아는 것들에는 어떤 것들이 있나요?

           - 자동차가 스스로 주변화 환경을 인식해서 움직입니다.

           - AI의 적용 정도에 따라 다양한 등급으로 나누어 분류합니다.


  • 자율주행을 하기 위해서는 어떤 센서들이 필요할까요? 실제 자동차를 떠올려보며 생각해 봅시다.

        - 주변환경을 인식할 수 있는 센서들이 필요합니다.

        - 주차할 때 사용되는 거리감지 센서가 필요합니다.

        - 어두울 떄 라이트가 자동으로 들어올 수 있도록 빛 감지센서가 필요합니다.


  • 자율주행차를 만들기 위해 SAM Labs로 구현해야 하는 부분은 어디일까요?

        - 바퀴를 작동시킬 DC모터가 필요합니다.

        - 거리를 감지할 근접센서가 필요합니다.


 

  • 정밀한 자율주행차라는 것은 어떤 것을 의미할까요? 센서의 측면에서 생각해 봅시다.

        - 센서의 값이 정밀해야 합니다.

        - 측정된 센서값에 따라 다양하게 동작할 수 있도록 세밀한 코딩이 되어있는 자동차를 의미합니다.


 


  

 

 



  • SAM Labs : DC모터 2개, 근접 센서 1개
  • 준비물 : 플라스틱 음료수 병, 바퀴 2개, 아이스크림 막대 3개, 양면테이프, 칼

 

1. 준비물을 준비합니다.

 

 

2. 플라스틱 병에 아이스크림 막대 3개를 꽂아넣을 자리를 만들어주어 햡니다. 3.5cm 정도 펜으로 표시한 후 칼로 잘라줍니다.

   

 

 3. 자른 부분에 아이스크림 막대를 3개 끼워넣어 줍니다.

 

 

4. 음료수병 뚜껑에 근접센서를 양면테이프로 붙여 줍니다.

 

5. 나무막대기 아래쪽에 DC모터를 양면테이프를 사용하여 부착시켜 줍니다.

 

 

6. DC모터에 바퀴를 부착해줍니다.

 

7. 본인의 취향에 맞게 눈을 달거나 이쁘게 꾸며주세요.

 

 

 

 

 

​1. Google workbench에서 근접센서와(Proximity Sensor) DC모터 2개를 페어링해줍니다.

 

 

2. [General]에서 {program start} 블록을 가지고 옵니다.

 

3. 프로그램이 시작후 계속해서 동작을 반복하도록 [Loop]에서 {repeat forever / do} 블록을 가지고 옵니다.

 

4. 센서의 값을 입력받을 변수를 만들어 주어야 합니다. [Variables]에서 Create variable을 클릭하여 변수의 이름을 설정합니다.

 

5. 변수 proximity에 값을 저장하기 위하여 [Variables]에서 {set 'proximity' to }블록을 가지고 와 반복 문 {repeat forever do}에 연결시켜 줍니다.

 

6. 변수 proximity에 저장할 값을 센서 값으로 정해야 합니다. [Proximity Sensor] - [Values] - {get 'proximity' value}를 오른쪽에 놓여진 보라색 블록 {set 'proximity' to} 블록에 비어있는 변수 값 칸으로 위치시킵니다.

 

7. 자율주행차의 움직임을 세가지 단계로 구분하여 작동하도록 코딩하기 위해서 [Logic]에서 {if do / else if do / else} 블록을 가지고 옵니다.

 

8. 모두 주어진 2가지의 조건을 모두 충족할 경우의 움직임을 코딩하기 위해서 [Logic]에서 { and } 블록을 끌고와 if 옆에 붙여줍니다. 

 

9. 센서값이 특정한 조건일 때 반응하도록 코딩하기 위하여 등호 / 부등호 블록이 필요합니다 [Logic]에서 { = } 블록을 { and } 블록의 양쪽에 각각 조립해주세요.

 

10. [Valuables]에서 {proximity(새로 만든 변수블록)}을 { = }블록의 왼쪽에 각각 연결시켜 주고,

 오른쪽에는 [Math]에서 [ 0 ]블록을 { = } 블록의 오른쪽에 각각 연결시켜 줍니다.

 

 

11. [DC Motor] - [Actions]에서 조건에 따라 작동할 동작을 { do } 블록 옆에 붙여줍니다.

  {set DC Motor motor speed to } 블록은 DC모터의 속도를 조절해줍니다. +는 시계방향, -는 반시계방향으로 회전하게 됩니다.

 

    1) 자율주행차에 무엇인가가 가까이 위치할경우( 80< 근접센서의 값 < 95)에는 빠르게 앞으로 전진하도록 { do } 에 코딩을

    2) 자율주행차에 너무 가까울경우(근접센서의 값 ≥ 95) 자동차가 뒤로 가도록 { else if / do } 에 코딩을

    3) 자율주행차 앞에 무엇인가 감지가 안되는 경우(근접센서의 값 ≤ 80)인 경우에는 천천히 앞으로 전진하도록 { else }에 코딩을 해주세요. 

 

 

 

  (※ 모터가 서로 반대방향으로 연결되어 있다는 점 잊지 마세요. 같은 방향으로 회전시키면 자동차가 제자리에서 빙글빙글 돌게 됩니다)

  (※ if else 블록을 사용하여 센서 값을 더욱 세분화할수록 더욱 정밀한 자율주행차를 만들 수 있습니다. 도전해보세요)

 

 

샘랩 FUN MAKING 목록

마르시스에듀는 누구나 21세기 필수 기술을 쉽고 재미있게 익혀 창의적이고 논리적인 사고력을 바탕으로 문제 해결을 할 수 있도록 돕는 에듀테크 회사입니다. 아이디어를 현실화할 수 있는 제품과 콘텐츠를 개발하고 서비스를 제공함으로써 미래 사회를 능동적으로 살아갈 수 있는 방법을 제시할 것입니다.

    

PRODUCT