스파이크 프라임(Spike Prime)_ 가을학기 3주차
SPIKE Prime으로 구현하는 크루즈 제어: 마이 블록(My Block)을 활용한 가속·감속·정지 알고리즘 구조화 레고 스파이크 프라임(LEGO® SPIKE™ Prime)을 활용해 스마트 차량의 핵심 제어 기능인 가속, 감속, 그리고 긴급 정지 메커니즘을 마이 블록(My Block) 기반 모듈식 프로그래밍으로 완전하게 구현했습니다. 블록 코딩 환경에서 프로젝트 프레임워크가 확장될수록 코드의 복잡도가 급격히 증가합니다. 동일한 제어 로직이 반복 호출되면 전체 스크립트의 길이가 길어져 디버깅이 어려워지고 가독성이 저하됩니다. 이번 프로젝트에서는 모듈화 객체 지향 접근 방식을 적용해 가속, 감속, 정지 기능을 마이 블록으로 캡슐화하고 메인 실행 루틴을 단순화했습니다.
![[마곡 코딩] 스파이크 프라임 9월 19일 토요일 9시 30분 수업_크루즈 제어2 사진 1](/blog/224426157879/001.png)
1. 핵심 마이 블록 알고리즘 설계 속도 제어 및 가감속 블록 (속도_제어): 속도 변수 관리: '속도' 변수를 선언하여 차량의 현재 이동 속도를 실시간으로 추적·갱신합니다. 가속 알고리즘: 입력 이벤트(블루 버튼/컬러 센서 입력) 감지 시 지정된 델타 값만큼 '속도' 변수를 증가시키며, 피드백을 위해 고음역대 비프음을 출력합니다. 감속 알고리즘: 입력 이벤트(자주색 버튼/컬러 센서 입력) 감지 시 지정된 델타 값만큼 '속도' 변수를 감소시키며, 저음역대 비프음을 출력하여 동작 상태를 청각적으로 반환합니다. 긴급 정지 블록 (정지_제어): 압력(힘) 센서 인터랙션: 힘 센서(Force Sensor) 누름 이벤트를 트리거로 지정합니다. 모터 제어: '속도' 변수를 0으로 초기화함과 동시에 모터 구동을 즉각 중단(Brake Mode)하여 안전성을 확보합니다.
2. 마이 블록 모듈화의 기술적 이점 재사용성 및 효율성 극대화: 동일한 동작 로직을 매번 재작성할 필요 없이, 이미 정의된 마이 블록을 호출하는 방식으로 개발 시간을 단축합니다. 코드 가독성 및 유지보수성 향상: 메인 루틴(프로그램이 시작될 때)에는 핵심 흐름만 남게 되므로, 제어 흐름 추적 및 특정 로직 수정(예: 가감속 간격 조정 등)이 용이해집니다. 디버깅 용이성: 개별 마이 블록 단위로 기능을 독립 테스트할 수 있어 예외 상황 발생 시 원인 규명이 신속합니다.
![[마곡 코딩] 스파이크 프라임 9월 19일 토요일 9시 30분 수업_크루즈 제어2 사진 2](/blog/224426157879/002.png)
3. 완성된 메인 루틴 구조 정의된 마이 블록을 바탕으로 구성된 메인 제어 루틴은 다음과 같은 직관적인 흐름을 가집니다.
이와 같은 구조적 프로그래밍 기법을 통해 스파이크 프라임 제어 코드는 단순한 작동을 넘어 확장성 높은 로보틱스 제어 프로그램의 틀을 갖추게 되었습니다.
[프로그램이 시작될 때] └── [초기화]: 속도 = 0 설정 └── [무한 반복 구문] ├── [마이 블록]: 속도_증가_제어() ├── [마이 블록]: 속도_감속_제어() └── [마이 블록]: 비상_정지_제어()
![[마곡 코딩] 스파이크 프라임 9월 19일 토요일 9시 30분 수업_크루즈 제어2 사진 3](/blog/224426157879/003.jpeg)
![[마곡 코딩] 스파이크 프라임 9월 19일 토요일 9시 30분 수업_크루즈 제어2 사진 4](/blog/224426157879/004.jpeg)
![[마곡 코딩] 스파이크 프라임 9월 19일 토요일 9시 30분 수업_크루즈 제어2 사진 5](/blog/224426157879/005.jpeg)
![[마곡 코딩] 스파이크 프라임 9월 19일 토요일 9시 30분 수업_크루즈 제어2 사진 6](/blog/224426157879/006.jpeg)
동영상은 블로그 원문에서 볼 수 있습니다.
#마곡역코딩학원 #신방화역코딩학원 #유아코딩 #초등코딩 #AI #신방화역학원 #코딩학원 #소프트웨어 #라온lc #laonlc #스파이크프라임 #코딩교육 #마곡코딩학원 #강서구코딩학원 #스파이크에센셜 #로봇코딩 #융합과학전문학원 #방화동코딩학원 #스크래치코딩