2026_AI창의융합코딩연구반

AI Creative Convergence Coding Club AI창의융합코딩연구반

목차

깃헙 링크

명렬표

학번
이름
조번호
10217
윤아윤
2
10509
신건희
1
10519
장희수
2
20222
이효윤
1
20705
김현아
1
20801
권도윤
1
20802
권지원
1
20810
온지민
1
20902
김서율
2
20905
노지은
2
20907
박소정
2
20908
박수아
2
30817
최수아
3
31004
김보빈
3
31012
양유빈
3
연락처

AI 비트런 프로젝트

[중·고등 권장] 마이크로비트로 시작하는 AI X 로봇공학(텍스트형) : 교육자료
세부 커리큘럼 및 교육자료(교안) 입니다. 📁세부 커리큘럼.📢 커리큘럼 중 인공지능(9~12차시) 실습의 경우,파이썬 내 마이크로비트와 블루투스 연결 기능이 지원되지 않는 관계로 해당 부분의 실습만 메이크코드(블록형)으로 진행됩니다.해당 기능 지원을 위해 개발사에 요청 중이며, 추후 블루투스 연결이 가능해지면 자료 수정 후 업데이트 될 예정입니다.차시구분SW쳅터명세부내용교육자료1차시(40~45분)파이썬마이크로비트 수업 준비하기· 마이크로비트 기초 이해· 마이크로비트 실습 준비자료 보기(click)2차시(40~45분) 파이썬로봇 산업의 변화,곧 다가올 로봇의 시대· 진로 및 직업 변화 인식· 로봇 산업의 변화와 미래자료 보기(click)3차시(40~45분)파이썬마이크로비트와 서보모터 제어· 로봇의 기본 구조 이해· 순차구조를 통한 서보모터 제어자료 보기(click)4차시(40~45분) 파이썬이족보행로봇 '비트런' 제작· 캠 기반 기계 구조 이해· 캠 기반 이족 보행 로봇 제작자료 보기(click)5차시(40~45분)파이썬SW 코딩을 활용한 이족보행로봇 제어· 이족보행로봇 방향 및 속도 제어· 사용자 정의 함수 이해자료 보기(click)6차시(40~45분)파이썬장애물 회피 로봇 프로젝트· 로봇에 활용되는 다양한 센서 이해· 조도센서를 활용한 로봇 프로젝트자료 보기(click)7차시(40~45분)파이썬라인 트래킹 모바일 로봇 프로젝트· 모바일 보소의 개념, AMR과 AGV· 라인센서를 활용한 로봇 프로젝트자료 보기(click)8차시(40~45분)-(이론)인공지능과 로봇의 만남,피지컬 AI· 로봇 지능의 시대, 피지컬 AI· 로봇에 인공지능이 필요한 이유자료 보기(click)9차시(40~45분)메이크코드[데이터 수집과 훈련]나의 제스처로 움직이는 AI 로봇· 지도학습과 모델의 개념 이해· Create AI를 활용한 로봇 프로젝트자료 보기(click)10차시(40~45분)11차시(40~45분)메이크코드[시각지능] 나와 함께 운동하는 AI 헬스케어 로봇· Teachable machine을 활용한 모델 학습· 비전 분류 모델을 활용한 로봇 프로젝트자료 보기(click)12차시(40~45분)메이크코드[음성지능] 나의 말을 듣고 이해하는 AI 반려 로봇· 음성인식기술의 원리· 음성인식을 활용한 로봇 프로젝트자료 보기(click)📢 본 교육 자료는 바운더리엑스(boundary X)가 자체 제작한 콘텐츠로 저작권의 보호를 받습니다.동의 없는 무단 수정 및 재배포는 금지하고 있으며, 강의 및 자료 활용 시에는 반드시 출처를 함께 표기해 주시길 부탁드립니다. 제품 상세보기.👉제품 상세 보러가기(클릭)

관련 자료@구글드라이브

비트런 실습 파일 다운로드

마이크로비트 파이썬 에디터

bitlearn 파일

bitlearn_python.hex
1.8 MiB
# main.py from microbit import * from bitlearn import bitlearn # bitlearn 인스턴스 생성 (왼쪽: pin1, 오른쪽: pin2) robot = bitlearn(left_wheel_pin=pin1, right_wheel_pin=pin2) def forward(): print("forward") display.show(Image.HEART) audio.play(Sound.HAPPY) robot.set_motors_speed(50, 50) sleep(5000) robot.set_motors_speed(0, 0) sleep(500) def backward(): print("backward") display.show(Image.SAD) audio.play(Sound.SAD) robot.set_motors_speed(-50, -50) sleep(5000) robot.set_motors_speed(0, 0) sleep(500) def right(): print("right") display.show(Image.CONFUSED) audio.play(Sound.TWINKLE) robot.set_motors_speed(50, -50) sleep(5000) robot.set_motors_speed(0, 0) sleep(500) def left(): print("left") display.show(Image.ANGRY) audio.play(Sound.GIGGLE) robot.set_motors_speed(-50,50) sleep(10000) robot.set_motors_speed(0, 0) sleep(500) forward() right() left() backward()
Python
복사
# bitlearn.py # 코드 출처 : elecfreaks ringbit # https://github.com/elecfreaks/EF_Produce_MicroPython/blob/master/Ringbit.py from microbit import * from time import sleep_us from machine import time_pulse_us class bitlearn(object): """기본 설명 Ring:bit (bitlearn) 제어용 마이크로비트 확장 보드 """ def __init__(self, left_wheel_pin=pin1, right_wheel_pin=pin2): """ bitlearn 로봇 초기화 :param left_wheel_pin: 왼쪽 다리에 연결된 핀 :param right_wheel_pin: 오른쪽 다리에 연결된 핀 """ i2c.init() self.__left_wheel_pin = left_wheel_pin self.__right_wheel_pin = right_wheel_pin self.__right_wheel_pin.set_analog_period(10) self.__left_wheel_pin.set_analog_period(10) self.__module_pin = pin0 if self.__left_wheel_pin != pin1 and self.__right_wheel_pin != pin1: self.__module_pin = pin1 if self.__left_wheel_pin != pin2 and self.__right_wheel_pin != pin2: self.__module_pin = pin2 def set_motors_speed(self, left_wheel_speed: int, right_wheel_speed: int): """ 좌우 바퀴 속도 설정 :param left_wheel_speed: 왼쪽 다리 속도 -100~100 :param right_wheel_speed: 오른쪽 다리 속도 -100~100 """ if left_wheel_speed > 100 or left_wheel_speed < -100: raise ValueError('speed error, -100~100') if right_wheel_speed > 100 or right_wheel_speed < -100: raise ValueError('speed error, -100~100') if left_wheel_speed > 0: pwm = ((left_wheel_speed * (256 - 153.6)) / 100) + 153.6 self.__left_wheel_pin.write_analog(int(pwm)) elif left_wheel_speed < 0: pwm = ((left_wheel_speed * (51.2 - 153.6)) / -100) + 153.6 self.__left_wheel_pin.write_analog(int(pwm)) else: self.__left_wheel_pin.write_analog(int(153.6)) right_wheel_speed = -right_wheel_speed if right_wheel_speed > 0: pwm = ((right_wheel_speed * (256 - 153.6)) / 100) + 153.6 self.__right_wheel_pin.write_analog(int(pwm)) elif right_wheel_speed < 0: pwm = ((right_wheel_speed * (51.2 - 153.6)) / -100) + 153.6 self.__right_wheel_pin.write_analog(int(pwm)) else: self.__right_wheel_pin.write_analog(int(153.6)) def get_distance(self, unit: int = 0): """ 초음파 센서를 사용하여 거리 측정 :param unit: 단위 선택 (0: 센티미터, 1: 인치) :return: 거리 값 """ self.__module_pin.read_digital() self.__module_pin.write_digital(1) sleep_us(10) self.__module_pin.write_digital(0) ts = time_pulse_us(self.__module_pin, 1, 25000) if ts <= 0: return -1 # 오류 처리 distance = ts / 38.6 # cm 기준 계산 if unit == 0: return distance elif unit == 1: return distance / 2.54 # cm -> inch 변환 def get_tracking(self): """ 라인트레이서 상태 읽기 :return: 00 - 둘 다 흰색 10 - 왼쪽 검정, 오른쪽 흰색 01 - 왼쪽 흰색, 오른쪽 검정 11 - 둘 다 검정 """ val = self.__module_pin.read_analog() if val < 150: return 11 elif 150 <= val < 235: return 10 elif 235 <= val < 300: return 1 elif 300 <= val < 600: return 0 else: print("Unknown ERROR") return -1 if __name__ == '__main__': rb = bitlearn(pin1, pin2) while True: rb.set_motors_speed(50, 50) sleep(1000) rb.set_motors_speed(0, 0) sleep(1000)
Python
복사

servo_control 파일

servo_control.hex
1.8 MiB
# servo_control mail.py from microbit import * from servo import * # servo 인스턴스 생성 (왼쪽: pin0, 오른쪽: pin2) robot = servo(left_servo_pin=pin0, right_servo_pin=pin2) while True : robot.set_motors_angle(0, 0) sleep(1000) robot.set_motors_angle(0, 90) sleep(1000) robot.set_motors_angle(0, 180) sleep(1000)
Python
복사
# servo.py from microbit import * from servo import * # servo 인스턴스 생성 (왼쪽: pin0, 오른쪽: pin2) robot = servo(left_servo_pin=pin0, right_servo_pin=pin2) while True : robot.set_motors_angle(0, 0) sleep(1000) robot.set_motors_angle(0, 90) sleep(1000) robot.set_motors_angle(0, 180) sleep(1000)
Python
복사