e_drive for python / Drone

Modified : 2019.4.25


Command Line 명령어를 소개합니다.



Command Line 명령어

e_drive 라이브러리는 소스 코드 작성없이 원하는 명령을 실행하거나 데이터를 확인할 수 있는 command line 명령어를 지원하고 있습니다. 아래에서 소개하는 명령어를 실행하여 간단하게 데이터를 확인하거나 작동해보시기 바랍니다.

일부 명령은 데이터의 길이가 길어 USB로 연결한 상태에서만 동작합니다. BLE로 전송 가능한 데이터 길이는 헤더 4바이트 + 데이터 16바이트를 포함하여 모두 20바이트입니다. 이를 초과하는 데이터는 USB로 연결했을 때에만 송수신 가능합니다. 편의를 위해 아래의 명령어 중 USB와 BLE 송수신 가능 여부를 제목 옆에 표기하였습니다.

실행 가능한 명령 리스트


1. control

조종


1.1. accel, wheel

최대 속도의 40% 속도로 3초간 전진하는 명령은 다음과 같습니다.

> python -m e_drive control 40 0 3000


1.2. Position

자동차를 특정 위치로 이동하는 명령입니다.

차례대로 x축(앞뒤, +가 앞)으로 0.1m, y축(좌우, +가 왼쪽)으로 0.1m 위치로 0.2m/s의 속도로 이동하는 명령은 다음과 같습니다.

> python -m e_drive position 0.1 0.1 0.2


1.3. Heading

자동차를 지정한 방향으로 회전 시킬 때 사용합니다.

왼쪽으로 30도를 10deg/sec 속도로 회전하는 명령은 다음과 같습니다.

> python -m e_drive heading 30 10



2. request

데이터 요청


2.1. State 데이터 요청(USB/BLE)

State 데이터를 10회 0.5초 주기로 요청하는 명령은 다음과 같습니다.

> python -m e_drive request State 10 0.5

State 요청 실행 결과


2.2. Motion 데이터 요청(USB)

Motion 데이터를 10회 0.2초 주기로 요청하는 명령은 다음과 같습니다.

> python -m e_drive request Motion 10 0.2

Motion 요청 실행 결과


2.3. RawLineTracer 데이터 요청(USB)

RawLineTracer 데이터를 10회 0.5초 주기로 요청하는 명령은 다음과 같습니다.

> python -m e_drive request RawLineTracer 10 0.2

RawLineTracer 요청 실행 결과


2.4. RawCard 데이터 요청(USB)

RawCard 데이터를 10회 0.5초 주기로 요청하는 명령은 다음과 같습니다.

> python -m e_drive request RawCard 10 0.5

RawCard 요청 실행 결과


2.5. RawCard 데이터 중 색상 인식 범위 출력 요청(USB)

RawCard 데이터 중 색상 인식 범위 데이터를 10회 0.5초 주기로 요청하는 명령은 다음과 같습니다.

> python -m e_drive request RawCardRange 10 0.5

RawCardRange 요청 실행 결과



3. light

LED 제어


3.1. RGB LED 제어(USB/BLE)

RGB LED 제어 시 아래와 같은 순서로 명령을 내리면 됩니다.

python -m e_drive light body [hold, flicker, flickerdouble, dimming, sunrise, sunset, rainbow, rainbow2] [interval] [R] [G] [B]

hold 상태일 때 interval은 밝기를 의미합니다. 값의 범위는 0 ~ 255입니다.

R, G, B 모두 값의 범위는 0 ~ 255입니다.

> python -m e_drive light body hold 100 50 50 10
> python -m e_drive light body flicker 100 50 50 10
> python -m e_drive light body flickerdouble 100 50 50 10
> python -m e_drive light body dimming 3 50 50 10
> python -m e_drive light body sunrise 5 50 50 10
> python -m e_drive light body sunset 5 50 50 10
> python -m e_drive light body rainbow 8 50 50 10
> python -m e_drive light body rainbow2 8 50 50 10


3.2. 단색 LED 제어(USB/BLE)

단색 LED 제어 시 아래와 같은 순서로 명령을 내리면 됩니다.

python -m e_drive light [front, head, tail, left, right] [hold, flicker, flickerdouble, dimming, sunrise, sunset] [interval]

hold 상태일 때 interval은 밝기를 의미합니다. 값의 범위는 0 ~ 255입니다.

> python -m e_drive light front hold 100
> python -m e_drive light head hold 100
> python -m e_drive light tail hold 100
> python -m e_drive light left hold 100
> python -m e_drive light right hold 100



4. buzzer

버저


4.1. 버저 작동(USB/BLE)

1000Hz의 소리를 500ms 동안 내게 합니다.

> python -m e_drive buzzer 1000 500

Buzzer 테스트



5. Bluetooth Low Energy

Bluetooth Low Energy 연결을 지원하는 Link 모듈을 통해 E-Drive 장치에 연결하는 기능을 지원합니다.



5.1. 장치 연결(USB)

마지막으로 연결한 시리얼 통신 장치에 연결한 후 가장 신호가 센 E-Drive 장치에 BLE 연결을 시도합니다.

> python -m e_drive connect


5.2. 장치 연결 해제(USB)

BLE 연결된 장치가 있으면 해제합니다.

> python -m e_drive disconnect



6. GUI

e_drive 라이브러리에서는 시험적으로 kivy 라이브러리를 사용한 응용프로그램을 제공합니다.

e_drive 라이브러리에 의존성을 포함하지 않은 상태이기 때문에 직접 설치가 필요합니다.


kivy 라이브러리 설치는 아래의 링크를 참고하시기 바랍니다.

Kivy Installation


윈도우 버전의 설치는 아래의 링크를 참고하시기 바랍니다.

Installation on Windows



6.1. 카드 읽기 테스트(USB)

센서를 통해 읽은 카드의 색상을 GUI로 표시합니다.

> python -m e_drive card

카드 읽기 테스트



6.2. 카드 목록 읽기 테스트(USB)

센서를 통해 읽은 카드와 카드 목록을 GUI로 표시합니다.

> python -m e_drive cards

카드 목록 읽기 테스트



e_drive for python

  1. Intro
  2. Command Line
  3. System
  4. Protocol
  5. Drone
  6. Examples - Ping
  7. Examples - Information
  8. Examples - Control
  9. Examples - Sensor
  10. Examples - Motor
  11. Examples - Setup
  12. Examples - Buzzer
  13. Examples - Light
  14. Examples - Error


Index