어둠을 밝히는 로봇: 불빛 감지 로봇 만들기 > 초보자를 위한 로봇 프로젝트

본문 바로가기
사이트 내 전체검색

초보자를 위한 로봇 프로젝트

어둠을 밝히는 로봇: 불빛 감지 로봇 만들기

페이지 정보

profile_image
작성자 관리자
댓글 0건 조회 279회 작성일 25-11-20 12:40

본문

아주 좋은 프로젝트입니다! '어둠을 밝히는 로봇: 불빛 감지 로봇 만들기'는 로봇이 주변 환경을 **'인지(Perception)'**하고 그에 따라 **'행동(Action)'**하는 가장 기본적인 원리를 배우기에 최적화되어 있습니다. 주변이 어두워지면 스스로 불을 밝히는 로봇을 만들며, 로봇의 지능적인 행동이 어떻게 구현되는지 직접 경험해 볼 수 있습니다.


어둠을 밝히는 로봇: 불빛 감지 로봇 만들기

이 프로젝트는 빛의 유무를 감지하는 '조도 센서(Photoresistor)'를 핵심 부품으로 사용하여, 주변의 밝기에 따라 LED를 켜거나 끄는 로봇(또는 간단한 장치)을 만들어 볼 것입니다.


1단계: 불빛 감지 로봇의 '원리' 이해하기

불빛 감지 로봇은 다음과 같은 원리로 움직입니다.


인지 (조도 센서): 로봇에 달린 '조도 센서'가 주변의 '밝기'를 측정하여 아두이노에게 전기 신호로 전달합니다.

밝을 때: 조도 센서의 저항값이 낮아져, 아두이노가 읽는 아날로그 값이 높아집니다.

어두울 때: 조도 센서의 저항값이 높아져, 아두이노가 읽는 아날로그 값이 낮아집니다.

판단 (컨트롤러/코드): 아두이노가 조도 센서로부터 받은 값을 미리 정해놓은 '밝기 기준값(임계값)'과 비교하여, 현재 주변이 '밝은지' '어두운지'를 판단합니다.

현재 밝기 값 < 기준값: 어둡다고 판단. → LED 켜기.

현재 밝기 값 ≥ 기준값: 밝다고 판단. → LED 끄기.

행동 (LED): 아두이노의 판단에 따라 LED를 켜거나 끕니다.

2단계: 필수 준비물 확인 및 구매

컨트롤러:

아두이노 우노 R3 (Arduino Uno R3) 호환 보드: 1개

USB 케이블: 아두이노와 컴퓨터 연결용.

센서:

조도 센서 (CdS Cell / Photoresistor): 1개

저항 (10kΩ): 1개 (조도 센서와 함께 전압 분배 회로 구성용)

액추에이터:

LED (5mm 또는 3mm): 1개 또는 여러 개 (다양한 색깔로 준비하면 더 좋습니다.)

저항 (220Ω 또는 330Ω): 1개 (LED에 과전류가 흐르는 것을 방지)

전원:

(선택 사항) 9V 배터리 & 스냅 커넥터: 1개 (아두이노 독립 전원용)

연결 재료:

브레드보드: 1개 (필수)

점퍼 케이블 (수-수): 넉넉하게

공구:

니퍼: 전선 정리용.

양면테이프 또는 글루건: 부품 고정용.

팁: 아두이노 스타터 키트에 위 모든 부품들이 대부분 포함되어 있습니다.


3단계: 로봇의 '몸' 만들기 (기계적 조립 - 간단한 구조)

이 프로젝트에서는 복잡한 이동 로봇 몸체보다는, 브레드보드와 아두이노를 중심으로 조립합니다.


아두이노 고정: 아두이노 보드를 책상 위에 놓거나 작은 판에 고정합니다.

브레드보드 고정: 아두이노 옆에 브레드보드를 고정합니다 (양면테이프 이용).

조도 센서 부착: 조도 센서가 외부 빛을 잘 감지할 수 있는 방향으로 브레드보드에 꽂습니다.

LED 부착: LED를 조도 센서와 가깝거나 원하는 위치에 브레드보드에 꽂습니다.

전원 고정 (선택 사항): 9V 배터리를 사용한다면 아두이노 근처에 고정합니다.

4단계: 로봇의 '신경망' 연결하기 (전기 배선)

회로도를 정확히 따라 하는 것이 가장 중요합니다.


전원 및 접지 연결:

아두이노의 5V 핀을 브레드보드의 + 라인에 점퍼 케이블로 연결.

아두이노의 GND 핀을 브레드보드의 - 라인에 점퍼 케이블로 연결.

조도 센서 회로 연결 (전압 분배 회로):

브레드보드의 + 라인에서 조도 센서의 한쪽 다리에 연결.

조도 센서의 다른 쪽 다리와 10kΩ 저항 한쪽 다리를 함께 연결. 이 연결 지점(조도 센서 다리 + 10kΩ 저항 다리)을 아두이노의 A0 아날로그 핀에 연결.

10kΩ 저항의 다른 쪽 다리를 브레드보드의 - 라인에 연결.

팁: 조도 센서는 저항값이 빛에 따라 변하므로, 10kΩ 저항과 직렬로 연결하여 '전압 분배 회로'를 만들어야 아두이노가 읽을 수 있는 전압 값으로 변환됩니다.

LED 회로 연결:

LED의 긴 다리 (애노드, +)를 220Ω 저항 한쪽 다리에 연결.

220Ω 저항의 다른 쪽 다리를 아두이노의 핀 13 (또는 원하는 디지털 핀)에 연결.

LED의 짧은 다리 (캐소드, -)를 브레드보드의 - 라인 (GND)에 연결.

배선 시 주의사항:


LED 극성: LED는 긴 다리(+)와 짧은 다리(-)가 있습니다. 극성을 반대로 연결하면 불이 들어오지 않습니다.

저항 사용: LED와 직렬로 저항(220Ω 또는 330Ω)을 반드시 연결해야 합니다. 저항 없이 연결하면 LED가 타버릴 수 있습니다.

모든 GND 연결: 아두이노, 조도 센서, LED의 GND는 모두 동일한 GND 라인에 연결되어야 합니다.

5단계: 로봇의 '명령' 프로그래밍하기 (아두이노 코딩)

이제 로봇에게 어두워지면 불을 켜도록 명령할 차례입니다.


5.1. 아두이노 IDE 설정 (이전 프로젝트와 동일)

5.2. 불빛 감지 로봇 기본 코드 예시

cpp



// 핀 정의

const int lightSensorPin = A0; // 조도 센서를 아두이노 A0 아날로그 핀에 연결

const int ledPin = 13;         // LED를 아두이노 13번 디지털 핀에 연결 (보드 자체 내장 LED도 13번)


// 밝기 기준값 (임계값)

// 이 값보다 작으면 어둡다고 판단하여 LED를 켭니다.

// 주변 환경에 따라 이 값을 조정해야 합니다.

int threshold = 500; // 초기값 설정. 시리얼 모니터로 값 확인 후 조정


void setup() {

  pinMode(ledPin, OUTPUT);      // LED 핀을 출력으로 설정

  Serial.begin(9600);           // 시리얼 통신 시작 (조도 센서 값 확인용)

}


void loop() {

  int lightValue = analogRead(lightSensorPin); // A0 핀으로부터 조도 센서 값 읽기 (0-1023)


  Serial.print("Light Value: ");

  Serial.print(lightValue);

  Serial.print(" / Threshold: ");

  Serial.println(threshold);


  // 현재 밝기 값이 기준값보다 작으면 어둡다고 판단

  if (lightValue < threshold) {

    digitalWrite(ledPin, HIGH); // LED 켜기

    Serial.println(" -> Dark! LED ON");

  } else {

    digitalWrite(ledPin, LOW);  // LED 끄기

    Serial.println(" -> Bright! LED OFF");

  }


  delay(100); // 0.1초마다 반복 (측정 주기가 너무 빠르면 시리얼 모니터 보기 힘듦)

}

5.3. 코드 업로드 및 밝기 기준값(threshold) 조정

위 코드를 아두이노 IDE에 복사하여 붙여넣기 합니다.

스케치(Sketch) → 컴파일/업로드(Upload)를 클릭하여 코드를 아두이노 보드에 업로드합니다.

툴(Tools) → 시리얼 모니터(Serial Monitor)를 열어 Light Value를 확인합니다.

주변이 밝을 때의 Light Value

조도 센서를 손으로 가려 어둡게 만들었을 때의 Light Value

이 두 값을 보고, LED가 켜지고 꺼지는 기준이 될 threshold 값을 코드에서 적절히 조정합니다. (예: 밝을 때 700, 어두울 때 300이라면 500 정도로 설정). 값을 조정한 후 다시 업로드합니다.

6단계: 로봇 테스트 및 최적화

시험 운행: 로봇에 전원을 공급하고, 조도 센서에 빛을 비추거나 손으로 가려 어둡게 만들어봅니다.

밝을 때는 LED가 꺼지고, 어두워지면 LED가 켜지는지 확인합니다.

디버깅 및 조정:

LED가 항상 켜져 있거나 꺼져 있다면: threshold 값이 현재 환경에 맞지 않을 수 있습니다. 시리얼 모니터를 통해 Light Value를 확인하며 값을 다시 조정하세요.

조도 센서 감지 불량: 조도 센서의 배치나 빛을 받는 면적이 적절한지 확인합니다.

LED 밝기: LED 저항값을 바꾸어 LED의 밝기를 조절할 수 있습니다.

반응 속도: delay(100) 값을 조절하여 로봇이 빛 변화에 반응하는 속도를 조절할 수 있습니다.

축하합니다! 이제 당신만의 불빛 감지 로봇이 완성되었습니다!


이 로봇은 로봇에게 '환경 인지' 능력을 부여하고 스스로 '판단'하여 '행동'하는 기본 원리를 배우는 좋은 프로젝트입니다. 여기서 더 나아가:


LED 대신 서보 모터를 연결하여, 어두워지면 창문을 닫거나 커튼을 여는 동작을 하게 할 수도 있습니다.

로봇 카에 조도 센서를 달아, 어두운 곳으로 이동하면 불을 켜고, 밝은 곳으로 이동하면 불을 끄도록 만들 수도 있습니다.

자신이 만든 로봇이 주변 환경에 반응하는 모습을 보며 즐거운 시간을 보내시길 바랍니다!

[이 게시물은 관리자님에 의해 2025-11-22 10:15:07 초보자를 위한 로봇 프로젝트에서 이동 됨]
[이 게시물은 관리자님에 의해 2025-11-29 13:01:12 18에서 이동 됨]

댓글목록

등록된 댓글이 없습니다.


회사소개 개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

작크와콩나무
대표:이강복 등록번호:129-30-34337 개인정보관리책임자:이경영

Copyright © https://roboman.co.kr/ All rights reserved.