다운로드 교육자료 문제해결 레퍼런스 구입방법

교육 자료 : 확장 키트 : 어두우면 LED불이 켜져요

개요
햄스터 로봇의 밝기 센서를 사용하여 어두우면 빨간색 LED의 불이 켜지고 밝으면 꺼지도록 해봅시다.
필요한 부품
220 오옴(Ω) 저항 빨간색 LED
x 1
x 1
부품 연결

   

코드 작성
설명

스크래치
엔트리
프로세싱
import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
    // 포트 A를 디지털 출력으로 설정한다.
    hamster.ioModeA(Hamster.IO_MODE_DIGITAL_OUTPUT);
}

void draw() {
}

void run() {
    while(true) {
        if(hamster.light() < 10) { // 어두우면
            hamster.outputA(1); // 포트 A의 출력을 1로 하여 LED를 켠다.
        } else {
            hamster.outputA(0); // 포트 A의 출력을 0으로 하여 LED를 끈다.
        }
        delay(20); // 너무 빨리 반복하지 않도록 한다.
    }
}
파이썬
from roboid import *

hamster = Hamster()

# 포트 A를 디지털 출력으로 설정한다.
hamster.io_mode_a(Hamster.IO_MODE_DIGITAL_OUTPUT)

while True:
    if hamster.light() < 10: # 어두우면
        hamster.output_a(1) # 포트 A의 출력을 1로 하여 LED를 켠다.
    else:
        hamster.output_a(0) # 포트 A의 출력을 0으로 하여 LED를 끈다.

    wait(20) # 너무 빨리 반복하지 않도록 한다.
자바스크립트
var hamster = Hamster.create();

// 포트 A를 디지털 출력으로 설정한다.
hamster.ioModeA(Hamster.IO_MODE_DIGITAL_OUTPUT);

function execute() {
    if(hamster.light() < 10) { // 어두우면
        hamster.outputA(1); // 포트 A의 출력을 1로 하여 LED를 켠다.
    } else {
        hamster.outputA(0); // 포트 A의 출력을 0으로 하여 LED를 끈다.
    }
}
C 언어
#include "roboid.h"

int main(int argc, char *argv[]) {
    hamster_create();

    // 포트 A를 디지털 출력으로 설정한다.
    hamster_io_mode_a("digital output");

    while(1) {
        if(hamster_light() < 10) { // 어두우면
            hamster_output_a(1); // 포트 A의 출력을 1로 하여 LED를 켠다.
        } else {
            hamster_output_a(0); // 포트 A의 출력을 0으로 하여 LED를 끈다.
        }
        wait(20); // 너무 빨리 반복하지 않도록 한다.
    }

    return 0;
}
자바 언어
import org.roboid.hamster.Hamster;
import org.roboid.runtime.Runner;

public class Controller {
    public static void main(String[] args) {

        Hamster hamster = new Hamster();

        // 포트 A를 디지털 출력으로 설정한다.
        hamster.ioModeA(Hamster.IO_MODE_DIGITAL_OUTPUT);

        while(true) {
            if(hamster.light() < 10) { // 어두우면
                hamster.outputA(1); // 포트 A의 출력을 1로 하여 LED를 켠다.
            } else {
                hamster.outputA(0); // 포트 A의 출력을 0으로 하여 LED를 끈다.
            }
            Runner.wait(20); // 너무 빨리 반복하지 않도록 한다.
        }
    }
}
추가 활동
포트 B에 연결하는 방법

   
다른 방법으로 LED 켜기 (Active Low)
개요
값이 HIGH(1)일 때 동작하는(LED가 켜지는) 것을 Active High라고 하였습니다.
이번에는 값이 LOW(0)일 때 동작하는(LED가 켜지는) Active Low 방식으로 LED를 켜봅시다.
부품 연결

   

코드 작성
설명

스크래치
엔트리
프로세싱
import org.roboid.runtime.*;
import org.roboid.hamster.*;
import org.roboid.robot.*;

Hamster hamster;

void setup() {
    hamster = Hamster.create(this);
    // 포트 A를 디지털 출력으로 설정한다.
    hamster.ioModeA(Hamster.IO_MODE_DIGITAL_OUTPUT);
}

void draw() {
}

void run() {
    while(true) {
        if(hamster.light() < 10) { // 어두우면
            hamster.outputA(0); // 포트 A의 출력을 0으로력 하여 LED를 켠다.
        } else {
            hamster.outputA(1); // 포트 A의 출력을 1로 하여 LED를 끈다.
        }
        delay(20); // 너무 빨리 반복하지 않도록 한다.
    }
}
파이썬
from roboid import *

hamster = Hamster()

# 포트 A를 디지털 출력으로 설정한다.
hamster.io_mode_a(Hamster.IO_MODE_DIGITAL_OUTPUT)

while True:
    if hamster.light() < 10: # 어두우면
        hamster.output_a(0) # 포트 A의 출력을 0으로력 하여 LED를 켠다.
    else:
        hamster.output_a(1) # 포트 A의 출력을 1로 하여 LED를 끈다.

    wait(20) # 너무 빨리 반복하지 않도록 한다.
자바스크립트
var hamster = Hamster.create();

// 포트 A를 디지털 출력으로 설정한다.
hamster.ioModeA(Hamster.IO_MODE_DIGITAL_OUTPUT);

function execute() {
    if(hamster.light() < 10) { // 어두우면
        hamster.outputA(0); // 포트 A의 출력을 0으로력 하여 LED를 켠다.
    } else {
        hamster.outputA(1); // 포트 A의 출력을 1로 하여 LED를 끈다.
    }
}
C 언어
#include "roboid.h"

int main(int argc, char *argv[]) {
    hamster_create();

    // 포트 A를 디지털 출력으로 설정한다.
    hamster_io_mode_a("digital output");

    while(1) {
        if(hamster_light() < 10) { // 어두우면
            hamster_output_a(0); // 포트 A의 출력을 0으로력 하여 LED를 켠다.
        } else {
            hamster_output_a(1); // 포트 A의 출력을 1로 하여 LED를 끈다.
        }
        wait(20); // 너무 빨리 반복하지 않도록 한다.
    }

    return 0;
}
자바 언어
import org.roboid.hamster.Hamster;
import org.roboid.runtime.Runner;

public class Controller {
    public static void main(String[] args) {

        Hamster hamster = new Hamster();

        // 포트 A를 디지털 출력으로 설정한다.
        hamster.ioModeA(Hamster.IO_MODE_DIGITAL_OUTPUT);

        while(true) {
            if(hamster.light() < 10) { // 어두우면
                hamster.outputA(0); // 포트 A의 출력을 0으로력 하여 LED를 켠다.
            } else {
                hamster.outputA(1); // 포트 A의 출력을 1로 하여 LED를 끈다.
            }
            Runner.wait(20); // 너무 빨리 반복하지 않도록 한다.
        }
    }
}
추가 활동
포트 B에 연결하는 방법

   
목차
수업 준비
  1. 조립하기
  2. 핀/소켓 배치 살펴보기
기초
  1. 디지털 입력 - 버튼을 누르면 삐 소리가 나요
  2. 디지털 출력 - 어두우면 LED 불이 켜져요
  3. 디지털 출력 - 반짝반짝 LED를 깜박여요
  4. 디지털 출력 - 기울이는 방향으로 LED가 켜져요
  5. 아날로그 입력 - 포텐셔미터를 돌리면 음 높이가 달라져요
  6. 아날로그 입력 - 뜨겁지 않게 해주세요
  7. 아날로그 입력 - 빛을 따라 움직여요
  8. PWM 출력 - LED 불이 부드럽게 밝아졌다 어두워져요
  9. PWM 출력 - LED 촛불이 바람에 흔들려요
  10. 아날로그 서보 출력 - 햄스터 로봇에게 꼬리가 생겼어요
응용
Copyright 로봇SW교육원 All rights reserved.
어려운 일이 있으면 광운대학교 로봇학부 박광현 교수(akaii@kw.ac.kr)에게 연락하세요.