Search Code

제10과 중 7과: 라인 트래킹, 절벽 감지 그레이스케일 센서 보정 라즈베리 파이 피코 자동차

이 수업은 일부입니다.: 라즈베리파이 피코 4WD 스마트카

제10과 중 7과: 라인 트래킹, 절벽 감지 그레이스케일 센서 보정 라즈베리 파이 피코 자동차

라즈베리 파이 피코 스마트 카 과정의 이번 수업에서는 서보 모터, 초음파 센서, 모터 제어를 결합하여 자동차가 장애물을 감지하고 회피할 수 있도록 하는 자율 주행의 흥미로운 세계를 탐구합니다. 이 프로젝트는 기본적인 4륜 구동 키트를 동적 환경을 탐색할 수 있는 지능형 로봇으로 변환하여 센서 융합 및 반응형 제어 알고리즘 학습에 훌륭한 기반을 제공합니다. 이 프로젝트의 실제 가치는 교실을 훨씬 넘어서며, 가구 주변을 탐색하는 로봇 청소기 제작, 안전 구역을 매핑하는 보안 순찰 로봇 생성, 혼잡한 공간을 탐색할 수 있는 자율 배송 차량 프로토타입 개발과 같은 실용적인 응용을 위한 플랫폼을 제공합니다.

이 프로젝트의 핵심은 서보 모터를 사용하여 초음파 센서를 회전시켜 간단한 레이더 시스템을 만드는 것입니다. 0도에서 180도까지 환경을 스캔함으로써 자동차는 장애물까지의 거리를 측정하고 가장 명확한 전방 경로를 식별할 수 있습니다. 이 수업에서는 이 센서 데이터를 해석하여 지능적인 주행 결정을 내리는 로직 구현에 대한 단계별 가이드를 제공합니다.

하드웨어/부품

이 프로젝트는 SunFounder 라즈베리 파이 피코 4륜 구동 자동차 키트를 기반으로 합니다. 정확한 모델은 다를 수 있지만 필요한 핵심 부품은 다음과 같습니다:

  • 라즈베리 파이 피코 마이크로컨트롤러 보드
  • SunFounder 4WD 스마트 카 섀시 키트(또는 유사 제품)
  • 초음파 거리 센서(예: HC-SR04)
  • 서보 모터(초음파 센서 회전용)
  • 모터 드라이버 보드(자동차 키트에 통합됨)
  • 전원 공급 장치(배터리)

배선 가이드

이 프로젝트의 배선은 일반적으로 SunFounder 자동차 키트의 확장 보드에 사전 구성되어 있습니다. 초음파 센서의 트리거 및 에코 핀과 서보 모터의 신호 핀은 라즈베리 파이 피코의 특정 GPIO 핀에 연결됩니다. 모터 드라이버도 피코에 연결되어 4개의 모터 방향과 속도를 제어합니다.

키트에 대한 자세한 배선 다이어그램은 SunFounder에서 제공하는 문서를 참조하십시오. 일반적인 회로도는 키트 매뉴얼이나 제조업체 웹사이트에 포함되어 있는 경우가 많습니다.

코드 설명

이 수업은 장애물 회피 프로그램 내의 로직과 사용자 구성 가능 매개변수에 중점을 둡니다. 코드는 초음파 센서의 입력에 따라 자동차의 동작을 제어하도록 구조화되어 있습니다. 자동차의 성능을 미세 조정하기 위해 조정할 수 있는 주요 변수는 일반적으로 스크립트 상단에 정의됩니다.

코드에서 찾을 수 있는 주요 사용자 구성 가능 설정은 다음과 같습니다:

  • 레이더 기준 거리: 장애물이 "위험"으로 간주되는지 결정하는 임계 거리(예: 20cm)입니다. 센서가 이 값보다 작은 거리를 읽으면 자동차는 회피 기동을 시작합니다.
  • 스텝 각도: 환경을 스캔할 때 서보 모터가 회전하는 증분(예: 10도)입니다. 더 작은 스텝 각도는 더 상세한 스캔을 제공하지만 시간이 더 걸립니다.
  • 전진 속도: 이 변수(예: 30)는 자동차가 전진할 때 모터의 출력 레벨을 설정합니다.
  • 회전 속도: 이 변수(예: 50)는 자동차가 회전할 때 모터의 출력 레벨을 설정하며, 일반적으로 확실한 회전을 보장하기 위해 전진 속도보다 높습니다.
  • 전방 스캔 각도: 이 값(예: 50도)은 자동차가 전진할 때 서보가 스캔할 각도 범위를 설정합니다. 더 좁은 스캔은 더 빠르고 경로 바로 앞의 장애물을 감지하는 데 충분합니다.

이러한 변수를 사용하는 방법을 이해하려면 자동차가 더 신중하게 행동하기를 원한다고 가정해 보십시오. RADAR_REFERENCE를 25cm로 늘리면 더 먼 거리에서 장애물을 감지하고 회피할 수 있습니다. 반대로 더 빠르고 공격적인 자동차를 원한다면 이 값을 15cm로 줄일 수 있습니다.

주요 로직은 get_direction() 함수를 사용하여 센서 데이터를 분석합니다. 이 함수는 거리 판독값 배열을 '1'(빈 공간)과 '0'(장애물)의 문자열로 변환합니다. 그런 다음 이 문자열을 0에서 분할하여 가장 넓은 연속 경로를 찾습니다. 이 가장 넓은 경로의 위치에 따라 함수는 'left', 'right' 또는 'forward' 방향을 반환합니다. 메인 루프는 그에 해당하는 기동을 실행합니다.

라이브 프로젝트/시연

(비디오 02:47에서) 강사는 장애물 회피 기능을 시연하는 것으로 시작합니다. 자동차는 서보를 사용하여 초음파 센서를 회전시켜 레이더 역할을 합니다. 자동차가 움직이면서 주변을 스캔하여 빈 경로를 찾습니다.

(비디오 03:34에서) 코드가 실행되고 자동차가 개방된 공간에서 테스트됩니다. 강사는 sonar 모듈의 get_distance() 함수가 거리 측정에 어떻게 사용되는지 보여주며 코드 구조를 설명합니다. 센서의 판독값이 셸에 표시되어 정확성과 한계를 보여줍니다.

(비디오 07:45에서) 강사는 "obstacle_avoid" 예제를 열고 흐름도를 살펴봅니다. 이 시각적 보조 자료는 의사 결정 과정을 설명합니다: 자동차가 스캔하고, 위험을 확인하고, 경로가 막혀 있으면 가장 넓은 열린 경로를 기준으로 회전할 최적의 방향을 결정합니다.

(비디오 16:02에서) 라이브 테스트가 수행됩니다. 자동차는 장애물(상자)을 성공적으로 감지하고 그 주위를 기동하여 왼쪽으로 회전해 명확한 경로를 찾습니다. 강사는 셸에 출력되는 실시간 데이터를 설명하며 장애물은 '0', 빈 공간은 '1'로 표시됩니다.

(영상 22:53) 마지막으로, 여러 장애물이 설치된 더 복잡한 시연이 진행됩니다. 자동차는 코스를 주행하며 충돌을 피하고 명확한 경로를 찾기 위해 좌회전 또는 우회전을 결정하며, 더 까다로운 환경에서 알고리즘의 효과를 보여줍니다.

목차

  • [00:00] 강의 소개
  • [01:31] 코스 및 키트 개요
  • [02:47] 장애물 회피 기능 시연
  • [03:34] 초음파 센서 테스트
  • [07:45] 장애물 회피 알고리즘 이해
  • [12:49] 코드 분석: 메인 루프 및 로직
  • [16:02] 실시간 테스트 및 데이터 분석
  • [22:53] 복잡한 장애물 코스 시연
코드가 첨부되지 않았습니다.

자원 및 참고자료

아직 자원이 없습니다.

파일📁

파일이 없습니다.