미래 수송기기 문제 정의
자동차 문제를 찾고 우리 팀 콘셉트를 고릅니다.
수업 열기 →6-Lesson Roadmap
정규 4차시로 들어가고, 시간이 있으면 Python과 자율주행까지 넓힙니다.
자동차 문제를 찾고 우리 팀 콘셉트를 고릅니다.
수업 열기 →스케치하고 골판지 차체와 바퀴를 만듭니다.
수업 열기 →모터, 서보, LED 블록을 코드와 연결해 봅니다.
수업 열기 →변수와 반복으로 주행 순서를 직접 씁니다.
수업 열기 →초음파나 적외선 값을 보고 스스로 움직입니다.
수업 열기 →장애물, 오르막, 박스 운송을 시험하고 발표합니다.
수업 열기 →Mission Choice
센서 미션을 고르고, 마지막에는 수행평가 코스로 확인합니다.
초음파 거리가 가까우면 멈추고 방향을 바꿉니다.
적외선 line1, line2 값을 보고 좌우를 보정합니다.
장애물+오르막 또는 박스 운송을 3분 안에 도전합니다.
Teacher Detail
준비물, OS·드라이버, 지도안 원문, 워크시트, 루브릭은 닫아 두었습니다.
학교 정규 수업·수행평가 흐름에 맞춘 엘리오 교육 콘텐츠입니다. B2B 패키지로 공급/이관합니다.
중3 기술·가정 「미래수송기기(친환경 전기자동차) 만들기」 4차시(2019 수행평가) 원자료가 출발점입니다. 정규 교과에는 4차시 핵심안으로 진입합니다. 운영 시간이 있으면 mBlock 코드생성, Python 텍스트 코딩(신설), 자율주행까지 6차시로 확장합니다.
스마트폰 앱(개념 복습) → mBlock(블록 + Arduino 코드생성·텍스트 코드 관찰) → Python BLE SDK elio / Python UART SDK elio-uart(센서 상태 읽기) + Entry(블록 대안·저학년 하향 호환).
3인 1모둠 · 1작품. 평가는 25점(개인 활동지 10 + 모둠 활동 15)입니다. 성취기준 코드 [9정…] 및 [9기가…]는 NCIC 실제 대조 전 예시로 (대조필요) 표기입니다.
mBlock·Python 텍스트 코딩 전용 수업 영상은 공개채널에 없어 관련 개념은 앱·블럭리 영상으로 대체하거나 교사 라이브 코딩으로 진행합니다.
mBlock 차시는 PC + USB 시리얼 케이블, Python 차시는 Python 3와 pyserial, BLE 동글 또는 USB-UART 어댑터 경로를 선택합니다. 세부 준비물은 차시별 지도안에 보존했습니다.
| 차시 | 제목 | 핵심 활동 | 주도구 |
|---|---|---|---|
| 1 | 미래 수송기기 문제 정의 | 내연기관차 문제점 분석, 개선 아이디어·콘셉트 선정(IDEA 노트) | 워크시트·토의 |
| 2 | 차체 설계와 제작 | 스케치·부품도·치수 계획, 골판지 차체 제작(벨크로 탈부착) | 설계·제작 |
| 3 | mBlock으로 제어하기 | DC·서보·LED 블록 제어, Upload 모드 Arduino 코드 관찰 | mBlock |
| 4 | Python으로 확장하기 | SDK로 모터 제어, 변수·for/while·time.sleep 주행 시퀀스 |
Python(BLE/UART) |
| 5 | 센서 자율주행 (초음파·적외선) | 센서 값 조건 분기, 장애물 회피 또는 라인 트레이싱 | mBlock / Python UART |
| 6 | 미션 수행·발표·평가 | 장애물+오르막 / 박스 운송 미션, 발표·상호평가·성찰 | 발표·평가 |
각 차시는 6칸 지도안입니다. 영상 출처 = 박스파이터 공개채널.
▶ DC모터 영상으로 모터·바퀴 배치 개념을 참고합니다.
elio.s2e. (참고) 시리얼 115200 bps.sendDC/sendServo/sendIO 블록, Live vs Upload 모드 차이) · 실습25(전진·정지·좌/우회전·서보 조향·LED, Upload 생성 Arduino 코드 캡처·대응 표시) · 정리5(시퀀스 시연·다음 차시 예고).▶ mBlock 전용 영상은 공개채널에 없어 블록 제어 개념을 앱·블럭리 영상으로 대체합니다.
for/while)·time.sleep으로 주행 시퀀스를 구현한다.elio(pip install elio) + Nordic USB 동글(필수), (B) UART SDK elio-uart + USB-UART 어댑터(세대3 ELIO_52810). ⚠ 두 SDK는 프로토콜이 달라 호환 안 됨.for 사각형 주행, 변수 power 속도 조절) · 정리5(포트·동글 오류 해결 공유·다음 차시 예고). 회전은 좌/우 모터 부호 반대(dc1=100, dc2=-100).while True 코드에는 반드시 정지 조건·Ctrl+C 안내.Python 텍스트 코딩 전용 수업 영상은 공개채널에 없습니다. 영상을 생략하고 교사 시연으로 대체합니다. 시연 기본형(BLE SDK):
import elio, time
e = elio.Elio()
e.open() # 동글 포트 자동 검색
e.sendInit()
e.sendPower(dc1=100, dc2=100) # 전진
time.sleep(1)
e.sendPower(dc1=0, dc2=0) # 정지
e.close()
워크시트 코드란: ① 전진 2초→정지 ② for로 사각형 주행(전진→회전 4회) ③ 변수 power로 속도 조절.
decideToUseSensor + 초음파 거리 reporter) 또는 Python UART SDK(ch.sensorConfig(...) → ch.readStatus()로 sonic_cm/line1/line2 읽기).▶ Python UART 자율주행 예시는 워크시트 코드 작성란에서 sonic_cm 임계값·속도를 채워 구현합니다.
▶ 마무리 감상용(선택).
| # | 평가 요소 | 배점 | 상 (만점) | 연계 차시 |
|---|---|---|---|---|
| 1 | 기존 자동차 분석·대안 | 2 | 문제점 3+ 구체적, 개선안 타당 | 1 |
| 2 | 설계·디자인 | 2 | 스케치·부품도 치수까지 명확 | 2 |
| 3 | 타이어(바퀴) 제작 계획 | 2 | 창의 바퀴 아이디어·근거 제시 | 2 |
| 4 | 제작·발표 참여 | 2 | 제작·코딩·발표 적극 기여 | 3~6 |
| 5 | 자율주행 상용화 영향 예측 | 2 | 긍정·우려 균형 있게 예측 | 1·5·6 |
| — | 소계 | 10 |
| # | 평가 요소 | 배점 | 상 (만점) | 연계 차시 |
|---|---|---|---|---|
| 1 | 동력 전달·구동 | 3 | 전진·회전·정지 안정적 구동 | 3·4 |
| 2 | 디자인·바퀴 표현 | 3 | 콘셉트 일관·창의 바퀴 완성도 高 | 2 |
| 3 | 문제 발견·개선 | 3 | 오류·실패를 분석해 개선 반영 | 4·5 |
| 4 | 발표 | 3 | 설계·코드·문제해결 논리적 발표 | 6 |
| 5 | 미션 통과 | 3 | Mission 1(또는 2) 성공 | 6 |
| — | 소계 | 15 |
Mission 1 (장애물 + 오르막): 폭 30cm 도로, 장애물1 회피, 오르막(장애물2) 통과. 라인 이탈 3회당 1점 감점. 옆으로 떨어지면 라인오버 1회 → 장애물 앞으로 이동 후 재도전. 3분 초과 시 실패.
Mission 2 (이삿짐 박스 운송 · 선택): 3분 내 운송. 박스 부착·적재 금지, 이동 중 떨어지면 라인오버 1회. 미션 해결 위해 구조 개조 가능.
⚠ 성취기준 코드는 NCIC 실제 대조 전 예시 (대조필요)이며, mBlock·Python 텍스트 코딩 전용 영상은 공개채널 미제공(교사 라이브 코딩 대체)입니다. 상세 배점·채점표는 루브릭.md를 따릅니다.
트랙 M 학생용 워크시트를 차시별 활동지로 옮겼습니다. 개인 기록과 모둠 기록을 함께 남깁니다.
| 학교/학년/반 | 모둠명 | ||
|---|---|---|---|
| 모둠원(3인) | 나의 이름 | ||
| 나의 역할 | |||
| # | 문제점 | 왜 문제인가 |
|---|---|---|
| 1 | ||
| 2 | ||
| 3 |
| 부품 | 모양 | 가로(mm) | 세로(mm) | 개수 | 비고 |
|---|---|---|---|---|---|
| 차체(바닥) | 골판지 | ||||
| 앞바퀴 | 창의 제작 세트 | ||||
| 뒷바퀴 | 창의 제작 세트 | ||||
| 엘리오 자리 | 벨크로 부착 | ||||
| DC모터 자리 | 벨크로 부착 |
| 목표 동작 | 사용 블록 | 값(예) |
|---|---|---|
| 전진 | DC1로 정하기 / DC2로 정하기 | dc1=100, dc2=100 |
| 정지 | DC로 정하기 | 0, 0 |
| 좌회전 | DC로 정하기(한쪽 반전) | dc1=100, dc2=-100 |
| 우회전 | DC로 정하기 | dc1=-100, dc2=100 |
| 서보 조향 | SV로 정하기 | 각도= |
| LED 켜기 | IO로 정하기 | 포트=, 값= |
sendDC 블록과 대응하는 코드 줄을 표시합니다.전진 값, 시간, 반복 횟수, 회전 방향을 채워 주행 코드를 완성합니다.
import elio, time
e = elio.Elio()
e.open()
e.sendInit()
e.sendPower(dc1=____, dc2=____)
time.sleep(____)
e.sendPower(dc1=0, dc2=0)
e.close()
for 반복으로 전진→회전을 4번 수행해 사각형 주행을 만듭니다.power 변수에 0~100 값을 넣어 속도를 조절합니다.sonic_cm 임계값과 회피·직진 모터 값을 채웁니다.| 시도 | 임계값(cm) | 속도 | 결과(성공/실패·이유) |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 |
| 미션 | 시도 | 소요시간 | 라인오버 횟수 | 성공? | 문제·개선 |
|---|---|---|---|---|---|
| Mission 1 (장애물+오르막) | 1 | ||||
| Mission 1 | 2 | ||||
| Mission 2 (박스 운송·선택) | 1 |
운영 시간과 하드웨어(BLE 동글 / UART 어댑터)에 맞춰 차시·SDK 경로를 조율합니다. 지도안·워크시트·루브릭·영상을 제공합니다.