Động cơ và Nhóm động cơ#

Giới thiệu#

Động cơ và nhóm động cơ điều khiển cách các bộ phận của robot di chuyển. Một đối tượng motor điều khiển một Động cơ Thông minh IQ được cấu hình, trong khi một đối tượng motor_group điều khiển nhiều Động cơ Thông minh IQ được cấu hình cùng nhau để chúng di chuyển đồng bộ. Động cơ và nhóm động cơ có thể được sử dụng để nâng cánh tay, xoay càng gắp, quay bánh xe hoặc di chuyển một bộ phận khác của cấu trúc. Hai động cơ có thể hoạt động cùng nhau như một hệ thống truyền động để di chuyển và xoay toàn bộ robot.

Mỗi động cơ hoặc nhóm động cơ được cấu hình trong cửa sổ Thiết bị. Tùy thuộc vào phiên bản, tên động cơ và nhóm động cơ có thể thay đổi. Trang này sử dụng Motor1 và MotorGroup1 làm ví dụ. Hãy thay thế chúng bằng tên do bạn tự cấu hình nếu cần.

Một động cơ VEX IQ (thế hệ thứ 2) hiển thị hướng quay về phía trước được chỉ định bằng dấu cộng và mũi tên cho biết nó đang quay sang trái, hay ngược chiều kim đồng hồ. Một động cơ VEX IQ (thế hệ thứ 2) hiển thị chiều quay ngược được biểu thị bằng dấu trừ và mũi tên, cho biết nó đang quay sang phải, hay theo chiều kim đồng hồ.

Mặc định, forward làm động cơ quay ngược chiều kim đồng hồ, và reverse làm động cơ quay theo chiều kim đồng hồ. Nếu động cơ được thiết lập để quay ngược chiều, các hướng quay này sẽ được đảo ngược.

Động cơ#

Class Constructors#

1 — Tạo một đối tượng motor cho Động cơ thông minh IQ được kết nối với Cổng thông minh được chỉ định. Động cơ tự động sử dụng cài đặt bánh răng gearSetting bên trong được phát hiện.

motor(
  int32_t index );

2 — Tạo một đối tượng motor trên Cổng thông minh được chỉ định và tùy chọn đảo chiều quay của nó. Động cơ tự động sử dụng cài đặt bánh răng nội bộ gearSetting được phát hiện.

motor(
 int32_t index,
 bool    reverse );

3 — Tạo một đối tượng motor trên Cổng thông minh được chỉ định với gearSetting được chỉ định.

motor(
 int32_t     index,
 gearSetting gears );

4 — Tạo một đối tượng motor trên Cổng thông minh được chỉ định với gearSetting được chỉ định và hướng đảo chiều tùy chọn.

motor(
 int32_t     index,
 gearSetting gears,
 bool        reverse );

Class Destructor#

Phá hủy đối tượng motor và giải phóng các tài nguyên liên quan.

~motor();

Parameters#

Tham số

Kiểu

Sự miêu tả

index

int32_t

Cổng thông minh mà động cơ được kết nối, được viết dưới dạng PORTx, trong đó x là số cổng (ví dụ: PORT1).

reverse

bool

Thiết lập xem hướng quay của động cơ có bị đảo ngược hay không:

  • false (mặc định) — Không đảo ngược hướng quay của động cơ.
  • true — Đảo ngược hướng quay của động cơ.

gears

gearSetting

Xác định tỷ số truyền của hộp bánh răng bên trong.

  • ratio1_1 — Tỷ số truyền 1:1
  • ratio2_1 — Tỷ số truyền 2:
  • ratio3_1 — Tỷ số truyền 3:1

Notes#

  • Cài đặt bánh răng phải phù hợp với hộp mực thực tế được lắp đặt trong động cơ.

Example#

// Create the motor instance in Smart Port 1
motor LeftMotor = motor(PORT1);

// Creates the motor instance with different settings
motor RightMotor = motor(
  PORT2,      // Smart Port 2
  ratio2_1,  // Gear ratio is 2:1
  true);

Nhóm vận động#

Class Constructors#

motor_group( motor &m1, Args&... m2 );

Class Destructor#

Hủy đối tượng motor_group và giải phóng các tài nguyên liên quan.

~motor_group();

Parameters#

Tham số

Kiểu

Sự miêu tả

m1

motor &

Động cơ đầu tiên được bổ sung vào nhóm.

m2

motor &

Thêm các động cơ bổ sung vào nhóm. Số lượng tối đa bốn động cơ trong một nhóm động cơ.

Example#

// Create individual motor instances
motor LeftMotor  = motor(PORT1);
motor RightMotor = motor(PORT2);

// Create a motor group with both motors
motor_group DriveMotors = motor_group(LeftMotor, RightMotor);

Chức năng thành viên#

There are many ways to code motors and motor groups. Below is a list of all motor and motor_group member functions:

Thao tác — Dừng và quay các động cơ và nhóm động cơ.

  • spin — Quay một động cơ hoặc nhóm động cơ về phía trước hoặc phía sau mãi mãi.

  • spinFor — Quay một động cơ hoặc nhóm động cơ trong một khoảng cách hoặc khoảng thời gian cụ thể.

  • spinToPosition — Quay một động cơ hoặc nhóm động cơ đến một vị trí cụ thể.

  • stop — Dừng một động cơ hoặc nhóm động cơ quay.

Bộ điều chỉnh — Điều chỉnh cài đặt động cơ và nhóm động cơ.

  • setVelocity — Cho biết tốc độ quay của một động cơ hoặc nhóm động cơ.

  • setMaxTorque — Đặt lực đẩy tối đa mà một động cơ hoặc nhóm động cơ được phép thực hiện khi quay.

  • setPosition — Thay đổi vị trí hiện tại của động cơ hoặc nhóm động cơ thành một giá trị mới.

  • setStopping — Đặt cách một động cơ hoặc nhóm động cơ sẽ dừng chuyển động: bằng cách phanh, chạy trượt hoặc giữ.

  • setTimeout — Đặt khoảng thời gian mà một động cơ hoặc nhóm động cơ sẽ cố gắng hoàn thành một chuyển động.

Bộ phận vận động — Kiểm tra trạng thái động cơ và nhóm động cơ.

  • isDone — Trả về giá trị Boolean cho biết động cơ hoặc nhóm động cơ đã hoàn thành việc di chuyển hay chưa.

  • isSpinning — Trả về giá trị Boolean cho biết động cơ hoặc nhóm động cơ có đang quay hay không.

  • position — Trả về vị trí hiện tại của động cơ hoặc nhóm động cơ.

  • velocity — Trả về tốc độ quay của động cơ hoặc nhóm động cơ.

  • current — Trả về lượng dòng điện mà động cơ hoặc nhóm động cơ đang sử dụng.

  • power — Trả về lượng điện năng mà động cơ hoặc nhóm động cơ đang sử dụng.

  • torque — Trả về lượng mô-men xoắn mà động cơ hoặc nhóm động cơ đang sử dụng.

  • efficiency — Trả về mức độ hiệu quả mà động cơ hoặc nhóm động cơ đang sử dụng năng lượng.

  • temperature — Trả về nhiệt độ của động cơ hoặc nhóm động cơ.

  • voltage — Trả về điện áp được cung cấp cho động cơ hoặc nhóm động cơ.

  • direction — Trả về hướng quay của động cơ hoặc nhóm động cơ.

  • installed — Trả về xem động cơ hoặc nhóm động cơ có được kết nối với Não hay không.

  • count — Trả về số lượng động cơ trong một nhóm động cơ.

Trước khi gọi bất kỳ hàm thành viên nào motor hoặc motor_group , cần phải tạo một thể hiện, như được hiển thị bên dưới:

/* This constructor is required when using VS Code.
Motor and Motor Group configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create the motor instance in Smart Port 1
motor Motor1 = motor(PORT1);

Hành động#

spin#

spin sẽ làm cho một động cơ hoặc nhóm động cơ quay tiến hoặc lùi liên tục. Động cơ hoặc nhóm động cơ sẽ tiếp tục quay cho đến khi nhận được một lệnh khác, chẳng hạn như quay theo hướng khác hoặc dừng lại.

Available Functions

1 — Quay động cơ hoặc nhóm động cơ bằng tốc độ động cơ hiện đang được cấu hình.

void spin(
 directionType dir );

2 — Quay động cơ hoặc nhóm động cơ với vận tốc được chỉ định.

void spin(
 directionType dir,
 double        velocity,
 velocityUnits units );

3 — Khởi động động cơ hoặc nhóm động cơ bằng điện áp đã chỉ định.

void spin(
 directionType dir,
 double        voltage,
 voltageUnits  units );

Parameters

Tham số

Kiểu

Sự miêu tả

dir

directionType

Hướng quay của động cơ hoặc nhóm động cơ: forward hoặc reverse.

velocity

double

Tốc độ quay từ 0% đến 100% khi sử dụng percent.

units

velocityUnits

The unit used to represent velocity:

  • percent / pct — percent
  • rpm — rotations per minute
  • dps — degrees per second

voltage

double

Điện áp để quay. Giá trị âm sẽ làm cho máy quay quay ngược chiều kim đồng hồ dir.

units

voltageUnits

Đơn vị dùng để biểu thị điện áp:

  • volt vôn
  • voltageUnits::mV milivôn

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Chức năng này không cần chờ đợi và dự án sẽ tiếp tục thực thi ngay sau khi được gọi.

  • Động cơ hoặc nhóm động cơ sẽ tiếp tục quay cho đến khi stop được gọi hoặc một chức năng chuyển động khác được thực hiện.

  • Các hàm như isDone và isSpinning không áp dụng cho spin, vì nó không sử dụng chuyển động dựa trên mục tiêu (không có tham số rotation hoặc time).

Examples
// Spin forward, then stop
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();

spinFor#

Lệnh spinFor quay một động cơ hoặc nhóm động cơ trong một khoảng cách hoặc khoảng thời gian cụ thể. Việc quay dựa trên chuyển động quay là tương đối so với vị trí hiện tại của động cơ hoặc nhóm động cơ. Theo mặc định, dự án sẽ đợi cho đến khi động cơ hoặc nhóm động cơ quay xong trước khi dòng mã tiếp theo được thực thi.

Available Functions

1 — Quay một khoảng cách cụ thể với vận tốc được cung cấp trong lời gọi hàm.

bool spinFor(
 double        rotation,
 rotationUnits units,
 double        velocity,
 velocityUnits units_v,
 bool          waitForCompletion = true );

2 — Chấp nhận tham số hướng và quay một khoảng cách cụ thể với vận tốc được cung cấp trong lời gọi hàm.

bool spinFor(
 directionType dir,
 double        rotation,
 rotationUnits units,
 double        velocity,
 velocityUnits units_v,
 bool          waitForCompletion = true );

3 — Quay một khoảng cách cụ thể bằng cách sử dụng vận tốc động cơ được cấu hình hiện tại.

bool spinFor(
 double        rotation,
 rotationUnits units,
 bool          waitForCompletion = true );

4 — Chấp nhận tham số hướng và quay một khoảng cách cụ thể bằng cách sử dụng vận tốc động cơ được cấu hình hiện tại.

bool spinFor(
 directionType dir,
 double        rotation,
 rotationUnits units,
 bool          waitForCompletion = true );

5 — Quay trong một khoảng thời gian cụ thể với vận tốc được cung cấp trong lời gọi hàm.

bool spinFor(
 double        time,
 timeUnits     units,
 double        velocity,
 velocityUnits units_v );

6 — Chấp nhận tham số hướng và quay trong một khoảng thời gian cụ thể với vận tốc được cung cấp trong lời gọi hàm.

bool spinFor(
 directionType dir,
 double        time,
 timeUnits     units,
 double        velocity,
 velocityUnits units_v );

7 — Quay trong một khoảng thời gian cụ thể bằng cách sử dụng vận tốc động cơ được cấu hình hiện tại.

bool spinFor(
 double    time,
 timeUnits units );

8 — Chấp nhận tham số hướng và quay trong một khoảng thời gian cụ thể bằng cách sử dụng vận tốc động cơ được cấu hình hiện tại.

bool spinFor(
 directionType dir,
 double        time,
 timeUnits     units );

Parameters

Tham số

Kiểu

Sự miêu tả

dir

directionType

Hướng quay của động cơ hoặc nhóm động cơ: forward hoặc reverse.

rotation

double

Quãng đường quay của động cơ hoặc nhóm động cơ.

units

rotationUnits

The rotation unit:

  • deg / degrees — degrees
  • turns / rev — revolutions

time

double

Khoảng thời gian động cơ hoặc nhóm động cơ quay.

units

timeUnits

Đơn vị thời gian:

  • seconds sec — giây
  • msec — mili giây

velocity

double

Tốc độ quay từ 0% đến 100% khi sử dụng percent.

units_v

velocityUnits

Đơn vị dùng để biểu thị vận tốc velocity:

  • percent / pct — phần trăm
  • rpm — vòng/phút
  • dps — độ/giây

waitForCompletion

bool

​

  • true (mặc định) — Cho phép dự án chờ cho đến khi động cơ hoặc nhóm động cơ quay xong trước khi dòng mã tiếp theo được thực thi.
  • false — Cho phép dòng mã tiếp theo chạy ngay lập tức.

Return Values

Trả về giá trị Boolean cho biết liệu động cơ hoặc nhóm động cơ có đạt được giá trị mục tiêu hay không.

  • true — The motor or motor group reached the target value.
  • false — The motor or motor group was not able to reach the target value or waitForCompletion is set to false.
Notes
  • Việc thực hiện một chức năng chuyển động cơ khác (chẳng hạn như spin hoặc stop) trong khi spinFor đang diễn ra sẽ làm gián đoạn chuyển động hiện tại.

  • Vì spinFor dựa trên mục tiêu (sử dụng tham số rotation hoặc time ), các hàm như isDone và isSpinning hoạt động với spinFor.

Examples
// Spin 1 turn fast, then 1 turn slow
Motor1.spinFor(forward, 1, turns, true);
Motor1.spinFor(reverse, 1, turns, 20, velocityUnits::pct, true);

spinToPosition#

spinToPosition xoay một động cơ hoặc nhóm động cơ đến một vị trí cụ thể.

Vị trí của động cơ hoặc nhóm động cơ là khoảng cách nó đã quay, được đo bằng degrees hoặc turnsMột vòng quay bằng 360 độ. Khi bắt đầu một dự án, vị trí của động cơ hoặc nhóm động cơ được đặt thành 0 độ. Vị trí của động cơ hoặc nhóm động cơ cũng có thể được đặt bằng cách sử dụng hàm setPosition.

Các giá trị vị trí là tuyệt đối. Điều này có nghĩa là hướng quay phụ thuộc vào vị trí hiện tại của động cơ hoặc nhóm động cơ.

Ví dụ, nếu động cơ hoặc nhóm động cơ bắt đầu ở 0 độ và quay đến vị trí 720 độ, nó sẽ quay thuận hai vòng. Nếu sau đó nó quay đến vị trí 360 độ, nó sẽ quay ngược một vòng, vì 360 nhỏ hơn 720.

Available Functions

1 — Quay đến một vị trí cụ thể với vận tốc được cung cấp trong lời gọi hàm.

bool spinToPosition(
 double        rotation,
 rotationUnits units,
 double        velocity,
 velocityUnits units_v,
 bool          waitForCompletion = true );

2 — Quay đến vị trí cụ thể bằng cách sử dụng vận tốc động cơ được cấu hình hiện tại.

bool spinToPosition(
 double        rotation,
 rotationUnits units,
 bool          waitForCompletion = true );

Parameters

Tham số

Kiểu

Sự miêu tả

rotation

double

Giá trị vị trí mà động cơ hoặc nhóm động cơ sẽ quay tới.

units

rotationUnits

The rotation unit:

  • deg / degrees — degrees
  • turns / rev — revolutions

velocity

double

Tốc độ quay từ 0% đến 100% khi sử dụng percent.

units_v

velocityUnits

Đơn vị dùng để biểu thị vận tốc velocity:

  • pct — phần trăm
  • rpm — vòng/phút
  • dps — độ/giây

waitForCompletion

bool

​

  • true (mặc định) — Cho phép dự án chờ cho đến khi động cơ hoặc nhóm động cơ quay xong trước khi dòng mã tiếp theo được thực thi.
  • false — Cho phép dòng mã tiếp theo chạy ngay lập tức.

Return Values

Trả về giá trị Boolean cho biết liệu động cơ hoặc nhóm động cơ có bắt đầu chuyển động dựa trên mục tiêu được yêu cầu hay không.

  • true — The motor or motor group begins the requested target-based movement.
  • false — The call fails or waitForCompletion is set to false.
Notes
  • Việc thực hiện một chức năng chuyển động cơ khác (chẳng hạn như spin hoặc spinFor) trong khi spinToPosition đang diễn ra sẽ làm gián đoạn chuyển động hiện tại.

  • Vì spinToPosition dựa trên mục tiêu (sử dụng tham số xoay rotation ), nên các hàm như isDone và isSpinning hoạt động với spinToPosition.

Examples
// Spin forward, then go to 90°
Motor1.spin(forward);
wait(1, seconds);
Motor1.spinToPosition(90, degrees);

stop#

stop dừng một động cơ hoặc nhóm động cơ đang quay.

Available Functions

1 — Dừng động cơ hoặc nhóm động cơ bằng cách sử dụng chế độ phanh hiện đang được cấu hình.

void stop();

2 — Dừng động cơ hoặc nhóm động cơ bằng chế độ phanh được cung cấp trong lệnh gọi hàm.

void stop(
  brakeType mode );

Parameters

Tham số

Kiểu

Sự miêu tả

mode

brakeType

Tùy chọn. Cách động cơ hoặc nhóm động cơ sẽ dừng:

  • coast — Giảm tốc độ đến khi dừng hẳn.
  • brake — Dừng ngay lập tức.
  • hold — Dừng ngay lập tức và giữ nguyên vị trí của động cơ hoặc nhóm động cơ.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Việc gọi lệnh stop sẽ ngay lập tức dừng mọi chuyển động hiện tại của động cơ hoặc nhóm động cơ.

  • Nếu không có chế độ phanh nào được chỉ định, động cơ hoặc nhóm động cơ sẽ sử dụng chế độ phanh hiện đang được cấu hình.

  • stop làm gián đoạn bất kỳ chuyển động dựa trên mục tiêu đang hoạt động nào (chẳng hạn như spinFor hoặc spinToPosition).

Examples
// Spin and coast to a stop
Motor1.setVelocity(100, percent);
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop(coast);

Biến đổi#

setVelocity#

Tham số setVelocity cho biết tốc độ quay của một động cơ hoặc nhóm động cơ. Tỷ lệ phần trăm càng cao thì động cơ hoặc nhóm động cơ quay càng nhanh, và tỷ lệ phần trăm càng thấp thì động cơ hoặc nhóm động cơ quay càng chậm.

Mỗi dự án đều bắt đầu với mỗi động cơ hoặc nhóm động cơ quay ở tốc độ 50% theo mặc định.

Lưu ý: Tốc độ cao hơn làm cho động cơ hoặc nhóm động cơ quay nhanh hơn, nhưng có thể kém chính xác hơn. Tốc độ thấp hơn làm cho động cơ hoặc nhóm động cơ quay chậm hơn, nhưng có thể chính xác hơn.

Available Functions
void setVelocity(
    double        velocity,
    velocityUnits units );

Parameters

Tham số

Kiểu

Sự miêu tả

velocity

double

Tốc độ quay từ 0% đến 100% khi sử dụng percent.

units

velocityUnits

Đơn vị dùng để biểu thị vận tốc velocity:

  • percent / pct — phần trăm
  • rpm — vòng/phút
  • dps — độ/giây

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Bất kỳ chức năng chuyển động cơ tiếp theo nào (chẳng hạn như spin, spinFor, hoặc spinToPosition) mà không chỉ định rõ vận tốc sẽ sử dụng giá trị này.

Examples
// Try default, then slow, then fast
Motor1.spinFor(forward, 180, degrees);
wait(1, seconds);
Motor1.setVelocity(20, percent);
Motor1.spinFor(reverse, 180, degrees);
wait(1, seconds);
Motor1.setVelocity(100, percent);
Motor1.spinFor(forward, 180, degrees);

setMaxTorque#

Mô-men xoắn thể hiện lực đẩy hoặc lực kéo mà một động cơ hoặc nhóm động cơ có thể tạo ra khi quay.

setMaxTorque thiết lập mô-men xoắn tối đa mà một động cơ hoặc nhóm động cơ được phép sử dụng.

Tỷ lệ phần trăm cao hơn cho phép động cơ hoặc nhóm động cơ đẩy mạnh hơn, ví dụ như khi nâng vật nặng. Tỷ lệ phần trăm thấp hơn giới hạn lực đẩy tối đa mà động cơ hoặc nhóm động cơ có thể thực hiện. Điều này giúp bảo vệ robot nếu động cơ hoặc nhóm động cơ bị kẹt hoặc đạt đến giới hạn chuyển động tối đa.

Mỗi dự án đều bắt đầu với mô-men xoắn của mỗi động cơ hoặc nhóm động cơ ở mức 50% theo mặc định.

Available Functions

1 — Đặt mô-men xoắn tối đa dưới dạng phần trăm mô-men xoắn định mức của động cơ hoặc nhóm động cơ.

void setMaxTorque(
 double       value,
 percentUnits units );

2 — Đặt mô-men xoắn tối đa bằng cách sử dụng các đơn vị mô-men xoắn vật lý.

void setMaxTorque(
 double      value,
 torqueUnits units );

3 — Đặt mô-men xoắn tối đa bằng cách giới hạn dòng điện của động cơ.

void setMaxTorque(
 double       value,
 currentUnits units );

Parameters

Tham số

Kiểu

Sự miêu tả

value

double

Mô-men xoắn cực đại mà động cơ hoặc nhóm động cơ có thể sử dụng.

units

percentUnits

Biểu thị mô-men xoắn dưới dạng phần trăm: percent phần pct phần trăm

units

torqueUnits

Chỉ định mô-men xoắn theo đơn vị vật lý như:

  • Nm — Newton-mét
  • InLb — inch-pound

units

currentUnits

Xác định mô-men xoắn bằng cách giới hạn dòng điện động cơ:

  • amp

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Khi sử dụng currentUnits, mô-men xoắn bị giới hạn bằng cách hạn chế lượng dòng điện mà động cơ hoặc nhóm động cơ có thể sử dụng.

setPosition#

Vị trí của một động cơ hoặc nhóm động cơ được xác định bằng khoảng cách quay, tính bằng degrees hoặc turnsMột vòng quay tương đương với 360 độ. setPosition thay đổi vị trí hiện tại của động cơ hoặc nhóm động cơ thành một giá trị mới.

Ví dụ, nếu một động cơ hoặc nhóm động cơ đã quay đến 180 độ, việc đặt vị trí về 0 độ sẽ thiết lập lại vị trí đó từ 180 độ về 0 độ. Sau đó, động cơ hoặc nhóm động cơ có thể quay đến các vị trí dựa trên giá trị mới đó.

Available Functions
void setPosition(
    double        value,
    rotationUnits units );

Parameters

Tham số

Kiểu

Sự miêu tả

value

double

Giá trị vị trí cần thiết lập cho động cơ hoặc nhóm động cơ.

units

rotationUnits

The position unit:

  • deg / degrees — degrees
  • turns / rev — revolutions

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Sau khi gọi setPosition, các lần gọi tiếp theo tới spinToPosition sẽ sử dụng vị trí được cập nhật làm tham chiếu.

setStopping#

setStopping thiết lập cách một động cơ hoặc nhóm động cơ sẽ dừng chuyển động: bằng cách phanh, chạy tự do hoặc giữ nguyên vị trí.

Available Functions
void setStopping(
  brakeType mode );

Parameters

Tham số

Kiểu

Sự miêu tả

mode

brakeType

Cách động cơ hoặc nhóm động cơ sẽ dừng:

  • brake — Dừng ngay lập tức.
  • coast — Giảm tốc độ đến khi dừng hẳn.
  • hold — Dừng ngay lập tức và giữ nguyên vị trí của động cơ hoặc nhóm động cơ.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Bất kỳ cuộc gọi tiếp theo nào tới stop mà không có chế độ phanh được chỉ định sẽ sử dụng giá trị này.

setTimeout#

setTimeout thiết lập khoảng thời gian mà một động cơ hoặc nhóm động cơ sẽ cố gắng hoàn thành một chuyển động. Nếu động cơ hoặc nhóm động cơ không thể hoàn thành trong thời gian đó, nó sẽ ngừng cố gắng và chuyển sang dòng mã tiếp theo. Điều này giúp ngăn động cơ hoặc nhóm động cơ bị kẹt trong một chuyển động.

Available Functions
void setTimeout(
    int32_t   time,
    timeUnits units );

Parameters

Tham số

Kiểu

Sự miêu tả

time

int32_t

Khoảng thời gian tối đa mà động cơ hoặc nhóm động cơ có thể cố gắng hoàn thành một chuyển động. Giá trị này phải là một số nguyên dương.

units

timeUnits

Đơn vị thời gian:

  • msec — mili giây
  • seconds / sec — giây

Giá trị trả về

Hàm này không trả về giá trị nào.

Notes
  • Thời gian chờ của động cơ hoặc nhóm động cơ được sử dụng để ngăn chặn việc dừng thực thi các lệnh khác trong ngăn xếp nếu các chuyển động không đạt đến vị trí mục tiêu.

  • Nếu động cơ hoặc nhóm động cơ không đạt đến vị trí mục tiêu trước khi hết thời gian chờ, nó sẽ ngừng cố gắng và chuyển sang dòng mã tiếp theo.

  • Thời gian chờ áp dụng cho các hàm có giá trị mục tiêu như spinFor và spinToPosition.

Examples
// Stop a long move after 1 second
Motor1.setTimeout(1, seconds);
Motor1.spinFor(forward, 2, turns);
Motor1.spinToPosition(0, degrees);

Người nhận#

isDone#

isDone trả về giá trị Boolean cho biết động cơ hoặc nhóm động cơ đã hoàn thành chuyển động hay chưa. Điều này có thể được sử dụng để kiểm soát thời gian của các hành vi khác dựa trên chuyển động của động cơ hoặc nhóm động cơ.

  • true — Động cơ hoặc nhóm động cơ đã ngừng chuyển động.

  • false — Động cơ hoặc nhóm động cơ vẫn đang hoạt động.

Chức năng này hoạt động cùng với các chức năng Chuyển động sau có tham số waitForCompletion : spinFor và spinToPosition.

Available Functions
bool isDone();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Trả về giá trị Boolean cho biết động cơ hoặc nhóm động cơ đã ngừng chuyển động hay chưa.

  • true — The motor or motor group is finished moving.
  • false — The motor or motor group is still moving.
Notes
  • isDone hoạt động cùng với các chức năng Chuyển động sau có tham số waitForCompletion : spinFor và spinToPosition.

Examples
// Spin forward until the motor is done spinning
Motor1.spinFor(forward, 200, degrees, false);
while (true) {
  if (Motor1.isDone()) {
    Drivetrain.stop();
  } else {
    Drivetrain.drive(forward);
  }
}

isSpinning#

isSpinning trả về giá trị Boolean cho biết động cơ hoặc nhóm động cơ có đang quay hay không. Điều này có thể được sử dụng để điều khiển thời gian của các hành vi khác dựa trên chuyển động của động cơ hoặc nhóm động cơ.

  • true — Động cơ hoặc nhóm động cơ đang quay.

  • false — Động cơ hoặc nhóm động cơ không quay.

Chức năng này hoạt động cùng với các chức năng chuyển động Motion như spin, spinFor và spinToPosition.

Available Functions
bool isSpinning();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Trả về giá trị Boolean cho biết động cơ hoặc nhóm động cơ có đang quay hay không.

  • true — The motor or motor group is spinning.
  • false — The motor or motor group is not spinning.
Notes Examples
// Spin forward until the motor is done spinning
Motor1.spinFor(forward, 200, degrees, false);
while (true) {
  if (Motor1.isSpinning()) {
    Drivetrain.drive(forward);
  } else {
    Drivetrain.stop();
  }
}

position#

Vị trí của một động cơ hoặc nhóm động cơ được xác định bằng khoảng cách quay, tính bằng degrees hoặc turnsMột vòng quay tương đương với 360 độ. position trả về vị trí hiện tại của động cơ hoặc nhóm động cơ.

Khi bắt đầu một dự án, vị trí của động cơ hoặc nhóm động cơ được đặt ở 0 độ. Nếu động cơ hoặc nhóm động cơ quay một vòng về phía trước, vị trí sẽ là 360 độ hoặc 1 vòng. Nếu động cơ hoặc nhóm động cơ quay theo hướng ngược lại, vị trí sẽ là số âm.

Available Functions
double position(
  rotationUnits units );

Parameters

Tham số

Kiểu

Sự miêu tả

units

rotationUnits

The unit to return the motor or motor group position in:

  • deg / degrees — degrees
  • turns / rev — revolutions

Return Values

Trả về giá trị double , biểu thị vị trí hiện tại của động cơ hoặc nhóm động cơ theo đơn vị được chỉ định.

Notes
  • Gọi setPosition thay đổi điểm tham chiếu cho giá trị này.

  • Giá trị trả về phản ánh giá trị đọc hiện tại của bộ mã hóa và không cho biết động cơ hoặc nhóm động cơ có đang hoạt động hay không.

  • Khi được gọi trên một nhóm động cơ motor_group, hàm này sẽ trả về vị trí của động cơ đầu tiên trong nhóm.

Examples
// Spin, then show the final position
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();
Brain.Screen.print("Pos: %f", Motor1.position(degrees));

velocity#

velocity trả về tốc độ quay của động cơ hoặc nhóm động cơ.

Giá trị dương có nghĩa là động cơ hoặc nhóm động cơ đang quay thuận chiều. Giá trị âm có nghĩa là nó đang quay ngược chiều.

Available Functions
double velocity(
    velocityUnits units );

Parameters

Tham số

Kiểu

Sự miêu tả

units

velocityUnits

The unit used to represent velocity:

  • percent / pct — percent
  • rpm — rotations per minute
  • dps — degrees per second

Return Values

Trả về giá trị double , biểu thị tốc độ quay của động cơ hoặc nhóm động cơ theo đơn vị đã chỉ định.

Ghi chú

  • Khi được gọi trên một motor_group 1 motor_group, hàm này sẽ trả về vận tốc của động cơ đầu tiên trong nhóm.

current#

Giá trị current cho biết lượng dòng điện mà động cơ hoặc nhóm động cơ đang sử dụng. Dòng điện là lượng điện năng chạy qua động cơ hoặc nhóm động cơ. Khi được trả về dưới dạng ampe, dòng điện được báo cáo từ 0,0 đến 1,2 A.

Giá trị dòng điện cao hơn có nghĩa là động cơ hoặc nhóm động cơ đang sử dụng nhiều dòng điện hơn. Điều này có thể xảy ra khi động cơ hoặc nhóm động cơ đang nâng vật nặng, đẩy vào vật thể hoặc cố gắng di chuyển khi bị kẹt.

Chức năng này có thể được sử dụng để kiểm tra xem động cơ hoặc nhóm động cơ có gặp khó khăn trong quá trình vận hành hay không. Nếu dòng điện vẫn cao, động cơ có thể bị nóng lên hoặc sử dụng năng lượng kém hiệu quả hơn.

Available Functions

1 — Trả về dòng điện của động cơ hoặc nhóm động cơ tính bằng ampe.

double current(
  currentUnits units = amp );

2 — Trả về dòng điện của động cơ hoặc nhóm động cơ dưới dạng phần trăm dòng điện định mức tối đa.

double current(
  percentUnits units );

Parameters

Tham số

Kiểu

Sự miêu tả

units

currentUnits

Đơn vị dùng để biểu thị dòng điện:amp (mặc định) — ampe

units

percentUnits

Represents the current as a percentage of the motor’s maximum rated current:percent / pct — percent

Return Values

Hàm trả về giá trị double biểu thị lượng dòng điện mà động cơ hoặc nhóm động cơ đang tiêu thụ, được đo bằng đơn vị đã chỉ định.

Ghi chú

  • Khi được gọi trên một nhóm động cơ motor_group, hàm này sẽ trả về tổng dòng điện cho tất cả các động cơ trong nhóm.

power#

power trả về công suất mà động cơ hoặc nhóm động cơ đang sử dụng tính bằng watt. Power cho biết tốc độ tiêu thụ năng lượng của động cơ hoặc nhóm động cơ.

Giá trị công suất cao hơn có nghĩa là động cơ hoặc nhóm động cơ đang tiêu thụ năng lượng nhanh hơn. Điều này có thể xảy ra khi động cơ hoặc nhóm động cơ đang nâng vật nặng, đẩy vào vật thể hoặc cố gắng di chuyển khi bị kẹt.

Chức năng này có thể được sử dụng để so sánh các chuyển động hoặc kiểm tra xem động cơ hoặc nhóm động cơ có đang gặp khó khăn hay không. Nếu công suất vẫn cao, động cơ có thể bị nóng lên hoặc sử dụng năng lượng kém hiệu quả hơn.

Available Functions
double power(
  powerUnits units = watt );

Tham số

Tham số

Kiểu

Sự miêu tả

units

powerUnits

Đơn vị dùng để biểu thị công suất động cơ:

  • watt (mặc định) — watt

Giá trị trả về

Trả về giá trị double , biểu thị công suất mà động cơ hoặc nhóm động cơ đang sử dụng tính bằng watt.

Ghi chú

  • Khi được gọi trên một nhóm động cơ motor_group, hàm này sẽ trả về công suất điện của động cơ đầu tiên trong nhóm.

torque#

Mô-men xoắn thể hiện lực mà một động cơ hoặc nhóm động cơ tạo ra khi quay.

torque trả về lượng mô-men xoắn mà động cơ hoặc nhóm động cơ đang sử dụng.

Giá trị mô-men xoắn cao hơn có nghĩa là động cơ hoặc nhóm động cơ đang đẩy hoặc kéo mạnh hơn. Điều này có thể xảy ra khi động cơ hoặc nhóm động cơ đang nâng vật nặng, đẩy vào vật thể hoặc cố gắng di chuyển khi bị kẹt.

Điều này có thể được sử dụng để kiểm tra xem động cơ hoặc nhóm động cơ có đang gặp khó khăn hay không, hoặc để so sánh lực đẩy cần thiết cho các chuyển động khác nhau.

Để đặt mô-men xoắn của một động cơ hoặc nhóm động cơ, hãy sử dụng setMaxTorque.

Available Functions
double torque(
  torqueUnits units = Nm );

Tham số

Tham số

Kiểu

Sự miêu tả

units

torqueUnits

Đơn vị dùng để biểu thị mô-men xoắn của động cơ:

  • Nm (mặc định) — Newton-mét
  • InLb — inch-pound

Giá trị trả về

Trả về giá trị double , biểu thị mô-men xoắn mà động cơ hoặc nhóm động cơ đang sử dụng, tính bằng đơn vị đã chỉ định.

Ghi chú

  • Khi được gọi trên một nhóm động cơ motor_group, hàm này sẽ trả về mô-men xoắn cơ học đầu ra của động cơ đầu tiên trong nhóm.

efficiency#

Hiệu suất efficiency thể hiện mức độ hiệu quả sử dụng năng lượng của động cơ hoặc nhóm động cơ, được biểu thị bằng phần trăm từ 0% đến 100%.

Hiệu suất cho biết bao nhiêu phần trăm công suất của động cơ hoặc nhóm động cơ được sử dụng để tạo chuyển động. Giá trị hiệu suất càng cao nghĩa là càng nhiều công suất của động cơ hoặc nhóm động cơ được sử dụng để tạo chuyển động. Giá trị hiệu suất thấp có thể xảy ra khi động cơ hoặc nhóm động cơ hoạt động hết công suất nhưng không tạo ra nhiều chuyển động, ví dụ như khi bị kẹt hoặc đang đẩy vào vật cản.

Điều này có thể được sử dụng để so sánh các chuyển động hoặc kiểm tra xem động cơ hoặc nhóm động cơ có đang lãng phí năng lượng thay vì sử dụng nó để tạo ra chuyển động hay không.

Available Functions
double efficiency(
  percentUnits units = percent );

Tham số

Tham số

Kiểu

Sự miêu tả

units

percentUnits

Đơn vị dùng để biểu thị hiệu suất động cơ:

  • percent / percentUnits::pct (mặc định) — phần trăm

Giá trị trả về

Trả về giá trị double thể hiện hiệu quả sử dụng năng lượng của động cơ hoặc nhóm động cơ dưới dạng phần trăm.

Ghi chú

  • Khi được gọi trên một nhóm động cơ motor_group, hàm này sẽ trả về hiệu suất của động cơ đầu tiên trong nhóm.

temperature#

temperature trả về nhiệt độ của động cơ hoặc nhóm động cơ.

Motor temperature shows how warm the motor or motor group is. A higher temperature means the motor or motor group is getting warmer while it works. The motor should stay below 55°C to keep working at full performance.

Nếu động cơ hoặc nhóm động cơ quá nóng, nó sẽ giảm dòng điện tối đa để tự bảo vệ. Ở 70°C°C, động cơ sẽ ngừng hoạt động cho đến khi nguội đi.

Chức năng này có thể được sử dụng để kiểm tra xem động cơ hoặc nhóm động cơ có bị quá nóng trong quá trình chuyển động lặp đi lặp lại, hoạt động liên tục trong thời gian dài hoặc khi nó tác động lên vật thể hay không.

Available Functions

1 — Trả về nhiệt độ của động cơ hoặc nhóm động cơ dưới dạng phần trăm so với nhiệt độ hoạt động tối đa.

double temperature(
  percentUnits units = percent );

2 — Trả về nhiệt độ của động cơ hoặc nhóm động cơ theo đơn vị nhiệt độ vật lý.

double temperature(
  temperatureUnits units );

Tham số

Tham số

Kiểu

Sự miêu tả

units

percentUnits

Đơn vị dùng để biểu thị nhiệt độ động cơ hoặc nhóm động cơ dưới dạng phần trăm:

  • percent phần percentUnits::pct (mặc định) — phần trăm

units

temperatureUnits

Đơn vị dùng để biểu thị nhiệt độ của động cơ hoặc nhóm động cơ theo độ:

  • celsius độ C
  • fahrenheit độ F

Giá trị trả về

Trả về giá trị double , biểu thị nhiệt độ của động cơ hoặc nhóm động cơ theo đơn vị đã chỉ định.

Ghi chú

  • Phạm vi nhiệt độ hoạt động của động cơ xấp xỉ 20°C (68°F) đến 70°C (158°F).

  • Khi được gọi trên một motor_group 1 motor_group, hàm này sẽ trả về nhiệt độ của động cơ đầu tiên trong nhóm.

voltage#

Điện áp voltage trả về điện áp cung cấp cho động cơ hoặc nhóm động cơ.

Available Functions
double voltage(
  voltageUnits units = volt );

Tham số

Tham số

Kiểu

Sự miêu tả

units

voltageUnits

Đơn vị biểu thị điện áp:

  • volt (mặc định)
  • voltageUnits::mV — milivolt

Giá trị trả về

Hàm trả về giá trị double biểu thị điện áp cung cấp cho động cơ hoặc nhóm động cơ theo đơn vị đã chỉ định.

Ghi chú

  • Khi được gọi trên một nhóm động cơ motor_group, hàm này sẽ trả về điện áp của động cơ đầu tiên trong nhóm.

direction#

direction trả về hướng quay của động cơ hoặc nhóm động cơ.

Available Functions
directionType direction();

Tham số

Hàm này không nhận tham số nào.

Giá trị trả về

Trả về giá trị directionType cho biết hướng hiện tại của động cơ hoặc nhóm động cơ:

  • forward — The motor or motor group is spinning forward.
  • reverse — The motor or motor group is spinning in reverse.

installed#

installed trả về trạng thái liệu động cơ hoặc nhóm động cơ có được kết nối với bộ xử lý IQ (thế hệ thứ 2) hay không.

Available Functions
bool installed();

Tham số

Hàm này không nhận tham số nào.

Giá trị trả về

Trả về giá trị boolean bool cho biết động cơ hoặc nhóm động cơ có được kết nối hay không.

  • true — The motor or motor group is connected.
  • false — The motor or motor group is not connected.

count#

count trả về số lượng động cơ trong một nhóm động cơ.

Available Functions
int32_t count();

Tham số

Hàm này không nhận tham số nào.

Giá trị trả về

Trả về một giá trị int32_t biểu thị số lượng động cơ trong nhóm động cơ.