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

교육 자료 : C 언어 : 클라우드 컴퓨터 환경에서 작업하기

클라우드 컴퓨터 환경
컴퓨터실이 클라우드 컴퓨터 환경으로 구성된 경우에는 각 단말 장치에 USB 동글을 하나씩 꽂더라도 장치 관리자에 여러 개의 시리얼 포트 장치가 표시될 수 있습니다. 이는 하나의 컴퓨터에 여러 개의 USB 동글을 꽂은 것과 같습니다.

이 경우에는 시리얼 포트를 스캔하여 자동으로 연결하는 것은 불가능하고 어떤 시리얼 포트를 사용할지 직접 지정해 주어야 합니다.
아래의 예시 코드를 살펴 봅시다.

#include "roboid.h"

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

    hamster_wheels(30, 30);
    wait(1000);
    hamster_stop();

    dispose_all();

    return 0;
}

여기서 살펴봐야 하는 코드는 아래의 코드 부분입니다.

hamster_create();

hamster_create() 함수를 호출하면 컴퓨터의 시리얼 포트를 스캔하여 USB 동글의 시리얼 포트를 자동으로 찾고 해당 USB 동글과 페어링된 햄스터 로봇에게 명령을 전달합니다.

클라우드 컴퓨터 환경에서는 여러 개의 USB 동글이 꽂혀 있는 것과 같기 때문에 그 중에서 가장 먼저 발견되는 시리얼 포트와 연결됩니다. 즉, 자신의 단말 장치에 꽂혀 있는 USB 동글이 아니라 다른 사람의 단말 장치에 꽂혀 있는 USB 동글과 연결될 수도 있습니다.
시리얼 포트 지정하기
클라우드 컴퓨터 환경에서는 시리얼 포트를 지정해 주면 됩니다. 이를 위해서는 자신의 단말 장치에 꽂혀 있는 USB 동글의 시리얼 포트 이름을 알아야 합니다.

윈도우의 경우에는 장치 관리자의 "포트(COM & LPT)"에 표시되는 시리얼 포트 목록을 살펴 보는 것이 더 편리할 수도 있습니다.

  1. 자신의 단말 장치에 USB 동글을 꽂지 않은 상태에서 아래의 코드를 실행합니다.
  2. #include "roboid.h"
    
    int main(int argc, char *argv[]) {
        scan();
        return 0;
    }

  3. 화면에 표시되는 시리얼 포트 목록을 기록해 둡니다.
    예시 화면
    Serial ports:
    COM1
    COM2
    COM57
  4. 이번에는 자신의 단말 장치에 USB 동글을 꽂은 상태에서 앞서 실행한 코드를 다시 실행합니다.
  5. #include "roboid.h"
    
    int main(int argc, char *argv[]) {
        scan();
        return 0;
    }

  6. 이전의 목록과 비교하여 새로 추가된 시리얼 포트가 자신의 단말 장치에 꽂혀 있는 USB 동글의 시리얼 포트입니다.
    예시 화면
    Serial ports:
    COM1
    COM2
    COM57
    COM70
  7. 예를 들어 새로 추가된 시리얼 포트가 "COM70"이라고 했을 때 예시 코드를 다음과 같이 수정합니다. 즉, hamster_create_port() 함수를 호출할 때 자신의 시리얼 포트를 지정해 주면 됩니다.
  8. #include "roboid.h"
    
    int main(int argc, char *argv[]) {
        hamster_create_port("COM70");
    
        hamster_wheels(30, 30);
        wait(1000);
        hamster_stop();
    
        dispose_all();
    
        return 0;
    }
OS별 시리얼 포트 이름
OS에 따라 시리얼 포트의 이름은 다른 형태를 가집니다.

윈도우:
"COM57", "COM70"과 같이 COM 다음에 숫자가 있는 형태입니다.

맥OS:
"/dev/cu.SLAB_USBtoUART", "/dev/cu.SLAB_USBtoUART9"와 같이 /dev/cu.SLAB_USBtoUART 또는 /dev/cu.SLAB_USBtoUART 다음에 숫자가 있는 형태입니다.

리눅스:
"/dev/ttyUSB0", "/dev/ttyUSB1"과 같이 /dev/ttyUSB 다음에 숫자가 있는 형태입니다.
목차
수업 준비
  1. 하드웨어 살펴보기
  2. 햄스터 · 햄스터S · USB 동글 PDF · PPT
  3. 소프트웨어 설치
  4. PDF · PPT
  5. 로봇과 컴퓨터 연결
  6. PDF · PPT
  7. 예제 프로젝트 실행
  8. PDF · PPT
기초
  1. 새 프로젝트 만들기
  2. 클라우드 컴퓨터 환경에서 작업하기 (선택 사항)
  3. 말판 이동하기 #1 (순차, 횟수 반복)
  4. 이동하고 회전하기
  5. LED 켜고 소리 내기
  6. 순서대로, 반복하여 명령하기
  7. 키보드 이벤트
  8. 근접 센서 사용하기
  9. 말판 이동하기 #2 (~인 동안 반복)
  10. 바닥 센서 사용하기
  11. 밝기 센서와 가속도 센서 사용하기
  12. 브레이튼버그의 로봇
심화
  1. 보드 게임 만들기
  2. 센서 한 개를 사용한 라인 트레이서
  3. 센서 두 개를 사용한 라인 트레이서
  4. 햄스터 친구 따라가기 (2인 1조)
  5. 여러 대의 햄스터 로봇 제어하기 (선택 사항)
  6. 벽 따라가기
  7. 로봇 청소기 흉내 내기
  8. 라인 트레이서 교차로 주행하기
  9. 미로 탈출
확장 키트
  1. 조립하기
  2. 핀/소켓 배치 살펴보기
  3. 디지털 입력 - 버튼을 누르면 삐 소리가 나요
  4. 디지털 출력 - 어두우면 LED 불이 켜져요
  5. 디지털 출력 - 반짝반짝 LED를 깜박여요
  6. 디지털 출력 - 기울이는 방향으로 LED가 켜져요
  7. 아날로그 입력 - 포텐셔미터를 돌리면 음 높이가 달라져요
  8. 아날로그 입력 - 뜨겁지 않게 해주세요
  9. 아날로그 입력 - 빛을 따라 움직여요
  10. PWM 출력 - LED 불이 부드럽게 밝아졌다 어두워져요
  11. PWM 출력 - LED 촛불이 바람에 흔들려요
  12. 아날로그 서보 출력 - 햄스터 로봇에게 꼬리가 생겼어요
고급
  1. 행위 기반의 로봇 제어
  2. 경로 탐색
  3. 자리 바꾸기
Copyright 로봇SW교육원 All rights reserved.
어려운 일이 있으면 광운대학교 로봇학부 박광현 교수(akaii@kw.ac.kr)에게 연락하세요.