News Download Tutorial FAQ Reference Buy

자바 언어 : 클라우드 PC 환경에서 작업하기

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

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

import org.roboid.hamster.Hamster;
import org.roboid.runtime.Runner;

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

        Hamster hamster = new Hamster();

        hamster.wheels(30, 30);
        Runner.wait(1000);
        hamster.stop();
    }
}

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

Hamster hamster = new Hamster();

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

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

포트 스캐너 플러그인이 설치되어 있어야 합니다. (소프트웨어 설치 참고)

  1. 이클립스를 실행합니다.
  2. Window 메뉴의 Show View 메뉴의 Other... 메뉴를 선택합니다. Show View 대화상자가 나타나면 로보이드 아래의 포트 스캐너를 선택하고 OK 버튼을 클릭합니다.
  3. 화면 아래쪽에 포트 스캐너 뷰가 표시되면, 자신의 단말 장치에 USB 동글을 꽂지 않은 상태에서 시리얼 포트 목록을 확인합니다.
  4. 이번에는 자신의 단말 장치에 USB 동글을 꽂은 상태에서 시리얼 포트 목록을 확인합니다. 시리얼 포트 목록은 일정한 주기(약 1초)로 자동 갱신되기 때문에 USB 동글을 꽂기만 하면 됩니다. 이전의 목록과 비교하여 새로 추가된 시리얼 포트가 자신의 단말 장치에 꽂혀 있는 USB 동글의 시리얼 포트입니다.
  5. 예를 들어 새로 추가된 시리얼 포트가 "COM70"이라고 했을 때 예시 코드를 다음과 같이 수정합니다. 즉, new Hamster()를 호출할 때 자신의 시리얼 포트를 지정해 주면 됩니다.
  6. import org.roboid.hamster.Hamster;
    import org.roboid.runtime.Runner;
    
    public class Controller {
        public static void main(String[] args) {
    
            Hamster hamster = new Hamster("COM70");
    
            hamster.wheels(30, 30);
            Runner.wait(1000);
            hamster.stop();
        }
    }
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초)로 자동 갱신됩니다. 자동 갱신을 중지하려면 포트 스캐너 뷰의 오른쪽에 있는 역삼각형 모양의 버튼을 눌러 중지 메뉴를 선택하면 됩니다. 중지된 자동 갱신을 다시 시작하려면 시작 메뉴를 선택하면 됩니다. 현재 상태, 즉 자동 갱신이 시작되어 있는지, 중지되어 있는지의 상태는 체크로 표시되어 있습니다.
목차
Hardware
  1. Hamster robot
  2. USB dongle
Preparation for Class
  1. Software installation
  2. Robot to PC connection
  3. Run example files
Basic
  1. Create a new project
  2. Work in the cloud PC environment (optional)
  3. Move on a board #1 (sequence, repetition)
  4. Move and turn
  5. Turn on LEDs and make a sound
  6. Command in order repeatedly
  7. Use proximity sensors
  8. Move on a board #2 (repeat while)
  9. Use floor sensors
  10. Use light and acceleration sensors
  11. Braitenberg's robot
Advanced
  1. Create a board game
  2. Keyboard events
  3. Graphical interface
  4. Line following with one sensor
  5. Line following with two sensors
  6. Follow hamster friends (2 people 1 pair)
  7. Follow a wall
  8. Imitating a robot cleaner
  9. Line following at intersection
  10. Escape a maze
Extension Kit
  1. Assembling
  2. Pin/socket layout
  3. Digital input - Press button to beep
  4. Digital output - LED is on when it is dark
  5. Digital output - flashing twinkling LED
  6. Digital output - LED is on in tilting direction
  7. Analog input - Rotating the potentiometer changes the pitch.
  8. Analog input - please do not let it get hot
  9. Analog Input - Move along the light
  10. PWM output - LED light gently brighter and darker
  11. PWM output - LED candle shakes in the wind
  12. Analog servo output - hamster robot has tail
More Advanced
  1. Behavior based robot control
  2. Path navigation
  3. Swap
Copyright Robot Software Education Institute. All rights reserved.
Please contact prof. Kwang-Hyun Park (akaii@kw.ac.kr) if you have any problem.