STEM+I 생각교실 > 해시태그 검색
해시태그 검색

총 : 1건 PAGE : 1/1

나도 자율주행자동차 개발자 photo

  • 0
전체공개
중학/공통/정보/정보
인천대학교 과학영재교육원T,E
STEM+I 생각교실 운영 사업 교육 프로그램 2022 자율주행자동차 인천대학교 과학영재교육원 2022년 STEM+I 생각교실 운영 사업 교육 프로그램 프로그램 개요 기관명 구분 인천대 과학영재교육원 프로그램명 E 주요 단원 관련 과목 과학 관련 단원 E, T 적용 지역 요소 주 개발자명 신규 주요 적용 학년 개발차시 나도 자율주행자동차 개발자 주요 과목 STEM+I (신규/수정보 완) 중학교 1~2학년 12 정보 (문제해결과 프로그래밍/프로그래밍, 알고리즘) 물리 (빛과 물질) 보조 개발자 본 프로그램은 자율주행을 보조해 줄 수 있는 적외선 센서를 이용해 검 은색 선을 기준 삼아 도로가 맞는지 아닌지를 구분해 자율적으로 움직이 는 자율주행 자동차와 초음파 센서를 이용해 자동차가 들어오는지를 인식 해 개폐기를 열어주는 자동 개폐장치를 제작하는 프로그램이다. 제작한 것을 모두 합쳐 자율적으로 움직이다 개폐기를 만나면 정지하고, 개폐기 주요 수업 개요 가 올라가면 다시 출발하는 것이 목표이다. 창조활동에서 가장 중요한 것은 완성을 했다는 자부심, 한번 만들어 봤 다는 자신감이다. 본 활동으로 4차 산업혁명 중 하나인 자율주행 자동차 를 직접 제작해 봄으로써 설계 능력과 알고리즘 구성 능력, 문제해결능력 을 키울 수 있다. 또한, 메이커 활동과 코딩이 먼 얘기 또는 어려운 것이 아니고 내가 직 접 할 수 있고 재밌는 것이라는 인식을 심어줄 수 있도록 하려 한다. 1~4차시: 아두이노 기초 - 아두이노의 보드 구성을 학습한다 - 아두이노 디지털핀과 5V와 GND핀 - 마이크로 콘트롤러에 대해 공부하고, 아두이노 통합개발환경인 아두이 노IDE에서 코딩을 한뒤 파일을 업로드 해주면 콘트롤러에 업로드가 되 차시별 주요내용 (키워드 위주) 어 일정한 움직임으로 작동을 확인한다. 5~8차시: 통합환경에서의 코딩 순서 및 진행 - 변수지정→사용할 핀의 이름과 번호 지정→사용할 핀의 역할 지정→ loop문에 동작 설정 - 서브모터의 구성과 작동 - 초음파센서 및 적외선센서에 대해 학습한다 9~12차시: 만들기 및 적용 - 손을 따라 움직이는 자동차 만들기 - 라인트레이서 만들기 ※ 이 교재의 내용에 대한 무단 복제 및 전재를 금하며, 인천대학교 과학영재교육원의 허락 없이는 어떠한 방식으로든 2차적 저작물을 출판 하거나 유포할 수 없습니다. ※ 이 교재는 2021년도 정부(미래창조과학부/과학기술진흥기금/복권기금)의 재원으로 한국과학창의재단의 지원을 받아 수행된 성과물입니다. 인천대학교 과학영재교육원 ※ 이 교재의 내용에 대한 무단 복제 및 전재를 금하며, 인천대학교 과학영재교육원의 허락 없이는 어떠한 방식으로든 2차적 저작물을 출판 하거나 유포할 수 없습니다. ※ 이 교재는 2021년도 정부(미래창조과학부/과학기술진흥기금/복권기금)의 재원으로 한국과학창의재단의 지원을 받아 수행된 성과물입니다. 창조활동에서 가장 중요한 것은 완성을 했다는 자부심, 한번 만들어 봤다는 자신감이다. 본 활동 Incheon Science Elite Program 으로 4차 산업혁명 중 하나인 자율주행 자동차를 직접 제작해 봄으로써 설계 능력과 알고리즘 구 Tel: 032-835-4971~2, Fax: 032-835-4976 성 능력, 문제해결능력을 키울 수 있다. [융합교재] - 교사용 - 또한, 메이커 활동과 코딩이 먼 얘기 또는 어려운 것이 아니고 내가 직접 할 수 있고 재밌는 것 이라는 인식을 심어줄 수 있도록 하려 한다. { 자율주행자동차 } 교재개발자: 인천대학교 이정훈 개발년도: 2022학년도 - 아두이노의 기초 및 서보모터와 초음파센서를 사용해 자동 개폐기 제작 - 자동차 조립 및 적외선 센서로 자동 정지하는 자동차 제작 - 적외선 센서를 이용해 손을 따라오는 자동차 제작 - 적외선 센서를 이용한 라인트레이서 제작 < 교재 요약 > 아두이노를 완전히 이해하기보다는 한 번 끝까지 직접 타자를 쳐서 코딩을 하 고 자동차가 움직이는것에 초점을 둔 교재이다. 1. 주 의 ▢ 관련 분야 및 내용 공학 IT 내용 자동차 차체 및 하드웨어 조립 직접 코딩한 코드로 아두이노 제작품 작동 위 한 도 입 프로젝트 성공시 작동하는 자동개폐기, 라인트레이서 동영상으로 목표인식 및 흥미 유발 ※ 해당 교과 내용 및 STEM요소 기재, 칸이 부족할 경우 추가하여 작성 교과 분야 집 중 을 STEM요소 E T 2. 수 업 의 목 표 설 명 완벽한 이해보다는 중간에 포기하지않고 끝까지 자율주행자동차를 제작하고 작동시킨다. 3. 기 초 학 습 아두이노의 기초 * STEM: Science, Technology, Engineering, Mathmatics 약자 아두이노의 보드는 다음과 같이 구성되어있다. 이때 주의깊게 봐야할 곳은 맨 위에 위치한 디지털핀과 아래 위치한 5V 와 GND핀이다. ▢ 융합교과의 개요 및 목적 5V와 GND를 반대로 꽂게 되면 아두이노 보드가 고장날 수 있으니 주의한다. 아두이노보드에 위치한 마이크로 콘트롤러는 컴퓨터의 CPU와 같은 역할을 한다. 아두이노 통합개 발환경인 아두이노IDE에서 코딩을 한뒤 파일을 업로드 해주면 콘트롤러에 업로드가 되어 일정한 4차 산업혁명이 시작되고 코딩에 대한 중요도가 날로 높아져 가고 있다. 기존 산업 군에서는 유형적인 가치를 생성하는 것이 큰 비중을 차지했지만 현재 발전하는 산업 움직임으로 작동하게 된다. 군에서 가장 비중을 차지하는 것은 인공지능, Ai, 앱 등 코딩을 통한 무형적가치 창출이다. 앞으로 다가올 시대에는 직접 코딩해서 프로그램 또는 앱 또는 기계 작동을 할 일이 많아질 것이 다. 본 프로그램은 자율주행을 보조해 줄 수 있는 적외선 센서를 이용해 검은색 선을 기준 삼아 도 로가 맞는지 아닌지를 구분해 자율적으로 움직이는 자율주행 자동차와 초음파 센서를 이용해 자 동차가 들어오는지를 인식해 개폐기를 열어주는 자동 개폐장치를 제작하는 프로그램이다. 제작한 것을 모두 합쳐 자율적으로 움직이다 개폐기를 만나면 정지하고, 개폐기가 올라가면 다시 출발하 는 것이 목표이다. - 1 - 융합교실 - 2 - 융합교실 ※ 이 교재의 내용에 대한 무단 복제 및 전재를 금하며, 인천대학교 과학영재교육원의 허락 없이는 어떠한 방식으로든 2차적 저작물을 출판 하거나 유포할 수 없습니다. ※ 이 교재는 2021년도 정부(미래창조과학부/과학기술진흥기금/복권기금)의 재원으로 한국과학창의재단의 지원을 받아 수행된 성과물입니다. ※ 이 교재의 내용에 대한 무단 복제 및 전재를 금하며, 인천대학교 과학영재교육원의 허락 없이는 어떠한 방식으로든 2차적 저작물을 출판 하거나 유포할 수 없습니다. ※ 이 교재는 2021년도 정부(미래창조과학부/과학기술진흥기금/복권기금)의 재원으로 한국과학창의재단의 지원을 받아 수행된 성과물입니다. - 변수지정 - 사용할 핀의 이름과 번호 지정 - 사용할 핀의 역할 지정 - loop문에 동작 설정 서보 모터 다루기 아두이노 통합개발환경의 구성 서보 모터는 총 3가지의 선으로 구성되어있다. 1.갈색 – GND (접지) 2.주황색 – 5V (전원) 3.노랑색 – 신호 아두이노에 갈색은 GND에 주황색은 5V에 꽂은뒤 노랑색선은 아두이노의 디지털핀에 꽂는다. 이때 아두이노 IDE상에서 몇 번 핀에 꽂아주었는지 지정해주어야 한다. 서보 모터는 아두이노상에 다루기 쉽게 코딩을 해둔 헤더파일이 존재한다. #include 로 서보모터의 헤더파일을 불러와준다. 위에서 말한 코딩 순서대로 1. 핀의 이름을 지정해준다. < Servo 이름 >과 같이 지정해준다. ex) Servo motor2 라고 해주면 motor2 라는 이름으로 서보모터의 이름을 설정해준다. 2. 신호를 다룰 디지털 핀의 번호를 지정해준다. servo 헤더파일에서는 attach라는 함수를 쓴다. ex) motor2.attach(7) 라고 하면 디지털 7번핀으로 모터를 조작한다는 얘기다. 3. 핀의 역할 즉 pinMode에서 OUTPUT 인지 INPUT인지 지정해주어야 하는데 헤더파일 상에서는 IDE는 setup 과 loop 문으로 구성되어 있다. 지정해줄 필요가 없다. set up : 말 그대로 기초단계 또는 한번만 작동할 코드를 작성하는 곳이다. 4. 서보모터의 작동은 motor2.write(각도)의 형식으로 조절한다. loop : 반복되어 작동할 코드를 작성하는 곳이다. ex) motor2.write(20); 서보모터를 20도로 움직인다 그 외에 변수를 지정해주거나 헤더 파일을 불러오거나 할때는 set up 위에 적어준다. ex) motor2.write(120); 서보모터를 120도로 움직인다. 라는 뜻이다. 이 통합환경에서 코딩은 다음과 같은 순서대로 진행된다. 초음파 센서 - 3 - 융합교실 - 4 - 융합교실 ※ 이 교재의 내용에 대한 무단 복제 및 전재를 금하며, 인천대학교 과학영재교육원의 허락 없이는 어떠한 방식으로든 2차적 저작물을 출판 하거나 유포할 수 없습니다. ※ 이 교재는 2021년도 정부(미래창조과학부/과학기술진흥기금/복권기금)의 재원으로 한국과학창의재단의 지원을 받아 수행된 성과물입니다. 초음파 센서는 초음파를 내보내고 돌아오는 시간을 계산하여 거리를 측정하는 센서이다. ※ 이 교재의 내용에 대한 무단 복제 및 전재를 금하며, 인천대학교 과학영재교육원의 허락 없이는 어떠한 방식으로든 2차적 저작물을 출판 하거나 유포할 수 없습니다. ※ 이 교재는 2021년도 정부(미래창조과학부/과학기술진흥기금/복권기금)의 재원으로 한국과학창의재단의 지원을 받아 수행된 성과물입니다. Serial.println("cm"); 원리는 아래 사진과 같다. 라는 식으로 계산하게 된다. 이때 distance에서 나갔다 돌아오기 때문에 2로 나눠주고 시간초의 단위는 ms이므로 cm로 변환하기 위해 10000으로 나눠준다. 적외선 센서 float duration,distance; // duration 과 distance 라는 변수를설정 해준다 digitalWrite(trig,HIGH); /// 초음파를 내보냄 delay(10); // 0.01초 보내고 digitalWrite(trig,LOW); //초음파를 끔 duration = pulseIn(echo,HIGH);// in 에서 i 는 대문자!, 초음파가 HIGH 였던 시간 즉, 초음파가 적외선 센서는 발광부에서 적외선이 나와 수광부로 적외선이 들어가는 것을 감지해 앞에 장애물 이 있는지 없는지를 판단한다. 보냈다가 다시 들어온 시간으로 거리 계산 만약 장애물이 있다면 빛이 반사되어 수광부로 들어가 디지털값이 0이된다. distance=((float)(340*duration)/10000)/2; 만약 장애물이 없다면 빛이 반사되지 않아 수광부로 들어가는 빛이 없어 디지털값이 1 이된다. Serial.print(distance); - 5 - 융합교실 - 6 - 융합교실 ※ 이 교재의 내용에 대한 무단 복제 및 전재를 금하며, 인천대학교 과학영재교육원의 허락 없이는 어떠한 방식으로든 2차적 저작물을 출판 하거나 유포할 수 없습니다. ※ 이 교재는 2021년도 정부(미래창조과학부/과학기술진흥기금/복권기금)의 재원으로 한국과학창의재단의 지원을 받아 수행된 성과물입니다. ※ 이 교재의 내용에 대한 무단 복제 및 전재를 금하며, 인천대학교 과학영재교육원의 허락 없이는 어떠한 방식으로든 2차적 저작물을 출판 하거나 유포할 수 없습니다. ※ 이 교재는 2021년도 정부(미래창조과학부/과학기술진흥기금/복권기금)의 재원으로 한국과학창의재단의 지원을 받아 수행된 성과물입니다. 검정색은 빛을 흡수하는 성질을 갖고 있다. 2. 라인트레이서 만들기 만약 검정색 테이프에 적외선을 쏘면 빛이 흡수되어 앞에 장애물이 없는 것으로 판단한다. 적외선 센서 2개를 이용해서 선을 따라가는 자동차 만들기 이것을 이용해 검정색 라인을 인식하는 라인트레이싱을 할 수 있고 장애물을 만나면 튕겨져 나오는 성질을 이용해 앞에 물체를 따라다니는 자동차도 제작할 수 있다. 4. 심 화 학 습 – 대 면 다음과 같은 위치에서 선을 따라 가는 자동차를 만든다. 4시 간 1. 손을 따라 움직이는 자동차 만들기. 적외선 센서의 장애물이 있으면 LOW , digitalRead()= 0 장애물이 없으면 HIGH, digitalRead() =1 인 것을 이용하고 왼쪽에 손이 있으면 따라가야 할 물체 가 왼쪽에 있다고 판단해 차가 왼쪽으로 회전해야 따라갈 물체를 정면으로 바라볼 수 있다. 오른쪽도 마찬가지이므로 이것을 이용해 다음과 같은 알고리즘을 이용해 작성한다. 1) 적외선 센서는 총 3개를 사용한다. 편의상 L(왼쪽) M(중간) R(오른쪽) 센서로 지정한다. 2) 자동차는 기본 디폴트 값이 직진이다. 좌회전 할 때 있을 수 있는 경우들 3) 가운데 M센서에 손이 닿으면 정지한다. if(digitalRead(M)==0){ stop; } 4) 왼쪽 센서에 손이 닿으면 왼쪽으로 회전한다. if(digitalRead(L)==0){ left; } 5) 왼쪽 센서와 가운데 센서에 손이 닿으면 왼쪽으로 회전한다. ( 손이 센서 2개를 다 덮을 수 있 으므로 일단 왼쪽 센서에 물체가 있다고 판단되면 기준 보다 왼쪽에 있는 것 이므로 왼쪽으로 회 전한다. if(digitalRead(M)==0 && digitalRead(L)){ left; } 6) 오른쪽 센서에 손이 닿으면 왼쪽으로 회전한다. if(digitalRead(R)==0){ right; } 7) 오른쪽 센서와 가운데 센서에 손이 닿으면 오른쪽으로 회전한다. if(digitalRead(M)==0 && digitalRead(R)){ Right; } - 7 - 융합교실 - 8 - 융합교실