Độ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ặ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
motorcho Độ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ănggearSettingbên trong được phát hiện.motor( int32_t index );
2 — Tạo một đối tượng
motortrê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ănggearSettingbên trong được phát hiện.motor( int32_t index, bool reverse );
3 — Tạo một đối tượng
motortrên Cổng thông minh được chỉ định vớigearSettingđược chỉ định.motor( int32_t index, gearSetting gears );
4 — Tạo một đối tượng
motortrên Cổng thông minh được chỉ định vớigearSettingđượ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ả |
|---|---|---|
|
|
Cổng thông minh mà động cơ được kết nối, được viết dưới dạng |
|
|
Thiết lập xem hướng quay của động cơ có bị đảo ngược hay không:
|
|
|
Xác định tỷ số truyền của hộp bánh răng bên trong.
|
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ả |
|---|---|---|
|
|
Động cơ đầu tiên được bổ sung vào nhóm. |
|
|
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.
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 );
Parameters3 — 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 );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Hướng quay của động cơ hoặc nhóm động cơ: |
|
|
Tốc độ quay từ 0% đến 100% khi sử dụng |
|
|
The unit used to represent velocity:
|
|
|
Điện áp để quay. Giá trị âm sẽ làm cho máy quay quay ngược chiều kim đồng hồ |
|
|
Đơn vị dùng để biểu thị điện áp:
|
Hàm này không trả về giá trị nào.
NotesChứ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ư
isDonevàisSpinningkhông áp dụng chospin, vì nó không sử dụng chuyển động dựa trên mục tiêu (không có tham sốrotationhoặctime).
// 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.
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 );
Parameters8 — 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 );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Hướng quay của động cơ hoặc nhóm động cơ: |
|
|
Quãng đường quay của động cơ hoặc nhóm động cơ. |
|
|
The rotation unit:
|
|
|
Khoảng thời gian động cơ hoặc nhóm động cơ quay. |
|
|
Đơn vị thời gian:
|
|
|
Tốc độ quay từ 0% đến 100% khi sử dụng |
|
|
Đơn vị dùng để biểu thị vận tốc
|
|
|
|
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 orwaitForCompletionis set tofalse.
Việc thực hiện một chức năng chuyển động cơ khác (chẳng hạn như
spinhoặcstop) trong khispinForđang diễn ra sẽ làm gián đoạn chuyển động hiện tại.Vì
spinFordựa trên mục tiêu (sử dụng tham sốrotationhoặctime), các hàm nhưisDonevàisSpinninghoạt động vớispinFor.
// 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 Functions1 — 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 );
Parameters2 — 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 );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Giá trị vị trí mà động cơ hoặc nhóm động cơ sẽ quay tới. |
|
|
The rotation unit:
|
|
|
Tốc độ quay từ 0% đến 100% khi sử dụng |
|
|
Đơn vị dùng để biểu thị vận tốc
|
|
|
|
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 orwaitForCompletionis set tofalse.
Việc thực hiện một chức năng chuyển động cơ khác (chẳng hạn như
spinhoặcspinFor) trong khispinToPositionđang diễn ra sẽ làm gián đoạn chuyển động hiện tại.Vì
spinToPositiondựa trên mục tiêu (sử dụng tham số xoayrotation), nên các hàm nhưisDonevàisSpinninghoạt động vớispinToPosition.
// 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.
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();
Parameters2 — 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 );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Tùy chọn. Cách động cơ hoặc nhóm động cơ sẽ dừng:
|
Hàm này không trả về giá trị nào.
NotesViệc gọi lệnh
stopsẽ 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.
stoplà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ưspinForhoặcspinToPosition).
// 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 Functionsvoid setVelocity(
double velocity,
velocityUnits units );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Tốc độ quay từ 0% đến 100% khi sử dụng |
|
|
Đơn vị dùng để biểu thị vận tốc
|
Hàm này không trả về giá trị nào.
NotesBất kỳ chức năng chuyển động cơ tiếp theo nào (chẳng hạn như
spin,spinFor, hoặcspinToPosition) mà không chỉ định rõ vận tốc sẽ sử dụng giá trị này.
// 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 Functions1 — Đặ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 );
Parameters3 — Đặ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 );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Mô-men xoắn cực đại mà động cơ hoặc nhóm động cơ có thể sử dụng. |
|
|
Biểu thị mô-men xoắn dưới dạng phần trăm: |
|
|
Chỉ định mô-men xoắn theo đơn vị vật lý như:
|
|
|
Xác định mô-men xoắn bằng cách giới hạn dòng điện động cơ:
|
Hàm này không trả về giá trị nào.
NotesKhi 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 Functionsvoid setPosition(
double value,
rotationUnits units );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Giá trị vị trí cần thiết lập cho động cơ hoặc nhóm động cơ. |
|
|
The position unit:
|
Hàm này không trả về giá trị nào.
NotesSau khi gọi
setPosition, các lần gọi tiếp theo tớispinToPositionsẽ 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í.
void setStopping(
brakeType mode );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Cách động cơ hoặc nhóm động cơ sẽ dừng:
|
Hàm này không trả về giá trị nào.
NotesBất kỳ cuộc gọi tiếp theo nào tới
stopmà 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.
void setTimeout(
int32_t time,
timeUnits units );
Tham số |
Kiểu |
Sự miêu 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. |
|
|
Đơn vị thời gian:
|
Giá trị trả về
Hàm này không trả về giá trị nào.
NotesThờ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ư
spinForvàspinToPosition.
// 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.
bool isDone();
Hàm này không chấp nhận bất kỳ tham số nào.
Return ValuesTrả 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.
isDonehoạt động cùng với các chức năng Chuyển động sau có tham sốwaitForCompletion:spinForvàspinToPosition.
// 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. Giá trị 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.
bool isSpinning();
Hàm này không chấp nhận bất kỳ tham số nào.
Return ValuesTrả 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.
isSpinninghoạt động với các chức năng chuyển động Motion nhưspin,spinForvàspinToPosition.
// 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 Functionsdouble position(
rotationUnits units );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
The unit to return the motor or motor group position in:
|
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.
Gọi
setPositionthay đổ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.
// 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 Functionsdouble velocity(
velocityUnits units );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
The unit used to represent velocity:
|
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 Functions1 — 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 );
Parameters2 — 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 );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Đơn vị dùng để biểu thị dòng điện: |
|
|
Represents the current as a percentage of the motor’s maximum rated current: |
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 Functionsdouble power(
powerUnits units = watt );
Tham số
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Đơn vị dùng để biểu thị công suất động cơ:
|
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.
double torque(
torqueUnits units = Nm );
Tham số
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Đơn vị dùng để biểu thị mô-men xoắn của động cơ:
|
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 Functionsdouble efficiency(
percentUnits units = percent );
Tham số
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Đơn vị dùng để biểu thị hiệu suất động cơ:
|
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 Functions1 — 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ả |
|---|---|---|
|
|
Đơ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:
|
|
|
Đơn vị dùng để biểu thị nhiệt độ của động cơ hoặc nhóm động cơ theo độ:
|
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) đến70°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ơ.
double voltage(
voltageUnits units = volt );
Tham số
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Đơn vị biểu thị điện áp:
|
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ơ.
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ứ nhất) hay không.
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ơ.
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ơ.