tiomáint chliste#
Réamhrá#
Rialaíonn an rang smartdrive conas a thiomáineann agus a chasann róbat ag baint úsáide as mótair, rothaí, agus Braiteoir Gyro. Úsáideann smartdrive Braiteoir Gyro ceangailte chun treo agus rothlú a rianú.
Úsáideann tiomáint chliste smartdrive an Braiteoir Gyro chun cabhrú leis an róbat bogadh agus casadh go beacht. Ag tús gach tionscadail, déanann an traein tiomána an Braiteoir Gyro a chalabrú go huathoibríoch. Coinnigh an róbat socair ar feadh thart ar 2 shoicind le linn an chalabrúcháin, ionas gur féidir leis an róbat bogadh agus casadh i gceart.
Tá an rang smartdrive bunaithe ar an rang drivetrain. Is féidir le smartdrive na feidhmeanna tiomána agus casadh céanna a úsáid agus a úsáideann drivetrain, agus cuireann sé feidhmeanna bunaithe ar braiteoirí leis freisin cosúil le turnToHeading agus turnToRotation.
Úsáideann an leathanach seo myDrivetrain mar shampla ainm an tiomána chliste. Cuir d’ainm cumraithe féin ina áit de réir mar is gá.
Tógálaithe Ranga#
1 — Cruthaíonn sé tiomáint chliste ag baint úsáide as réad
motor_groupatá ann cheana féin don taobh clé agus deas, mar aon le Braiteoir Giróiseach.smartdrive( motor_group &l, motor_group &r, gyro &g, double wheelTravel = 320, double trackWidth = 320, double wheelBase = 130, distanceUnits unit = mm, double externalGearRatio = 1.0 );
2 — Cruthaíonn sé tiomáint chliste ag baint úsáide as réada mótair
motoratá ann cheana féin don taobh clé agus deas, mar aon le Braiteoir Giróiseach.smartdrive( motor &l, motor &r, gyro &g, double wheelTravel = 320, double trackWidth = 320, double wheelBase = 130, distanceUnits unit = mm, double externalGearRatio = 1.0 );
Scriostóir Ranga#
Scriosann sé an réad smartdrive agus scaoileann sé acmhainní gaolmhara.
~smartdrive();
Paraiméadair#
Paraiméadar |
Cineál |
Cur síos |
|---|---|---|
|
|
Na mótair nó na grúpaí mótair ar chlé agus ar dheis. Ní mór don dá pharaiméadar an cineál céanna a úsáid: dhá réad |
|
|
An Braiteoir Gyro a úsáideann an tiomántán cliste. |
|
|
Imlíne rothaí an tiomána. Is é |
|
|
An fad idir na rotha clé agus deas. Is é |
|
|
An fad idir na rothaí tosaigh agus cúil. Is é |
|
|
An t-aonad do Thaisteal |
|
|
An cóimheas giaranna a úsáidtear chun achair tiomána a choigeartú má úsáidtear giaranna. Is é |
Sampla#
/* This constructor is required when using VS Code.
Drivetrain configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create the left and right motor objects.
motor leftMotor = motor(PORT1, false);
motor rightMotor = motor(PORT9, true);
// Create the Gyro Sensor object.
gyro myGyro = gyro(PORT3);
// Create the smartdrive object.
smartdrive myDrivetrain = smartdrive(
leftMotor, // left motor
rightMotor, // right motor
myGyro, // Gyro Sensor
259.34, // wheelTravel
320, // trackWidth
40, // wheelBase
mm, // unit
1.0 ); // externalGearRatio
Feidhmeanna na mBall#
Áirítear leis an rang smartdrive na feidhmeanna ball seo a leanas:
Gníomhartha — Cas an róbat trí cheanntóireacht nó rothlú.
turnToHeading— Casann sé an róbat chun aghaidh a thabhairt ar threo ar leith ó -359 go 359 céim. Casfaidh an róbat an treo is giorra chun an treo sprice a bhaint amach.turnToRotation— Casann sé an róbat go rothlú ar leith.calibrateDrivetrain— Calabraíonn sé an Braiteoir Gíro atá cumraithe leis an tiomáint chliste.
Socruithe — Coigeartaigh luachanna ceannteidil agus rothlaithe.
setHeading— Athraíonn sé seo ceannteideal reatha an róbait go ceannteideal nua.setRotation— Athraíonn sé rothlú reatha an róbait go rothlú nua.
Luachanna — Seiceáil an ceannteideal agus an rothlú.
heading— Tugann sé seo ceannteideal reatha an róbait ar ais ó 0 go 359 céim.rotation— Tugann sé seo rothlú reatha an róbait ar ais.
Is féidir le tiomántán cliste smartdrive na feidhmeanna comhalta oidhreachta ó drivetrain a úsáid freisin, amhail drive, driveFor, turn, turnFor, stop, isDone, agus isMoving.
Sula ndéantar aon fheidhmeanna smartdrive a ghlaoch, ní mór réad smartdrive a chruthú.
/* This constructor is required when using VS Code.
Drivetrain configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create the left and right motor objects.
motor leftMotor = motor(PORT1, false);
motor rightMotor = motor(PORT9, true);
// Create the Gyro Sensor object.
gyro myGyro = gyro(PORT3);
// Create the smartdrive object.
smartdrive myDrivetrain = smartdrive(
leftMotor, // left motor
rightMotor, // right motor
myGyro, // Gyro Sensor
259.34, // wheelTravel
320, // trackWidth
40, // wheelBase
mm, // unit
1.0 ); // externalGearRatio
turnToHeading#
Is éard atá i dtreo an róbait ná an treo atá os comhair an róbait, a thomhaistear i gcéimeanna. turnToHeading casann an róbat chun aghaidh a thabhairt ar threo ar leith ó -359 go 359 céim. Casfaidh an róbat an treo is giorra chun an treo sprice a bhaint amach.
Is é 0 céim treo tosaigh an róbait.
Fanfaidh an tionscadal go dtí go mbeidh an róbat críochnaithe ag casadh sula rithfidh an chéad líne eile de chód.
Available Functions1 — Casann sé an róbat chuig an treo sonraithe ag baint úsáide as an luas casaidh reatha.
bool turnToHeading( double angle, rotationUnits units, bool waitForCompletion = true );
Parameters2 — Casann sé an róbat chuig an treo sonraithe ag an luas sonraithe.
bool turnToHeading( double angle, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
Paraiméadar |
Cineál |
Cur síos |
|---|---|---|
|
|
An treo ba chóir don róbat aghaidh a thabhairt air, i gcéimeanna. Is féidir é seo a bheith ó -359 go 359 nuair a úsáidtear |
|
|
An t-aonad ceannteidil: |
|
|
An luas le casadh leis ó 0% go 100% nuair a úsáidtear |
|
|
An t-aonad luais: |
|
|
|
Tugann sé seo ar ais an sroich an róbat an treo sprice, mar luach Booleanach.
true— Shroich an róbat an treo sprice.false— Níor chríochnaigh an róbat an casadh, nó tugadh an fheidhm ar ais sular críochnaíodh an casadh mar gur socraíodhwaitForCompletiongofalse.
Má ritheann tú feidhm ghluaiseachta tiomána eile agus
turnToHeadingag rith, cuirfidh sé sin isteach ar an ngluaiseacht reatha.Úsáideann
turnToHeadingceannteideal sprice, mar sin is féidirisDoneagusisMovinga úsáid leis.
// Face the new 0 degrees.
myDrivetrain.setHeading(90, degrees);
myDrivetrain.turnToHeading(0, degrees);
turnToRotation#
turnToRotation Casann an róbat go rothlú ar leith.
Is é rothlú an méid atá casta ag an róbat, arna thomhas i gcéimeanna nó i réabhlóidí. Ag tús tionscadail, socraítear an luach rothlaithe go 0 céim. Is féidir rothlú a shocrú freisin ag baint úsáide as an bhfeidhm setRotation.
Is luachanna absalóideacha iad luachanna rothlaithe. Ciallaíonn sé seo go mbraitheann treo an chasadh ar rothlú reatha an róbait. Méadaíonn casadh ar dheis an rothlú, agus laghdaíonn casadh ar chlé an rothlú.
Mar shampla, má thosaíonn an róbat ag 0 céim agus má chasann tú go rothlú 720 céim, casfaidh sé ar dheis faoi dhó. Má chasann tú ansin go rothlú 360 céim, casfaidh sé ar chlé uair amháin, mar go bhfuil 360 níos lú ná 720.
Fanfaidh an tionscadal go dtí go mbeidh an róbat críochnaithe ag casadh sula rithfidh an chéad líne eile de chód.
Available Functions1 — Casann sé an róbat go dtí an rothlú sonraithe ag baint úsáide as an luas casaidh reatha.
bool turnToRotation( double angle, rotationUnits units, bool waitForCompletion = true );
Parameters2 — Casann sé an róbat chuig an rothlú sonraithe ag an luas sonraithe.
bool turnToRotation( double angle, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
Paraiméadar |
Cineál |
Cur síos |
|---|---|---|
|
|
An luach rothlaithe a chasfaidh an róbat chuige. |
|
|
An t-aonad rothlaithe: |
|
|
An luas le casadh leis ó 0% go 100% nuair a úsáidtear |
|
|
An t-aonad luais: |
|
|
|
Tugann sé seo ar ais an sroich an róbat an rothlú sprice, mar luach Booleanach.
true— Shroich an róbat an rothlú sprice.false— Níor chríochnaigh an róbat an casadh, nó tugadh an fheidhm ar ais sular críochnaíodh an casadh mar gur socraíodhwaitForCompletiongofalse.
Má ritheann tú feidhm ghluaiseachta tiomána eile agus
turnToRotationag rith, cuirfidh sé sin isteach ar an ngluaiseacht reatha.Úsáideann
turnToRotationrothlú sprice, mar sin is féidirisDoneagusisMovinga úsáid leis.
// Spin counterclockwise for 2 turns, then face forward.
myDrivetrain.setRotation(720, degrees);
myDrivetrain.turnToRotation(0, degrees);
calibrateDrivetrain#
calibrateDrivetrain déanann sé an Braiteoir Gyro atá cumraithe leis an smartdrive a chalabrú.
Cuidíonn calabrú leis an Braiteoir Gíro gluaiseacht a thomhas i gceart. Coinnigh an róbat socair ar feadh thart ar 2 shoicind le linn an chalabrúcháin. Má ghluaiseann an róbat le linn an chalabrúcháin, b’fhéidir nach dtomhaisfidh an Braiteoir Gíro gluaiseacht i gceart.
Fanfaidh an tionscadal go dtí go mbeidh an calabrú déanta sula rithfidh an chéad líne eile de chód.
calibrateDrivetrain go huathoibríoch ag VEXcode nuair a chumraítear tiomáint le Braiteoir Gyro. Cuirtear ar fáil é mar chuid den fhoinse tionscadail agus níl sé mar chuid den VEX IQ C++ API.
void calibrateDrivetrain();
Ní ghlacann an fheidhm seo le haon pharaiméadair.
Return ValuesNí thugann an fheidhm seo luach ar ais.
NotesDéanann an róbat calabrú go huathoibríoch ag tús gach tionscadail nuair a chumraítear tiomántán cliste i VEXcode.
Coinnigh an róbat socair ar feadh thart ar 2 shoicind le linn an chalabrúcháin.
Seo a leanas sampla den chur i bhfeidhm uathoibríoch de calibrateDrivetrain a chruthaigh VEXcode:
bool vexcode_initial_drivetrain_calibration_completed = false;
void calibrateDrivetrain() {
wait(200, msec);
Brain.Screen.print("Calibrating");
Brain.Screen.newLine();
Brain.Screen.print("Gyro");
DrivetrainGyro.calibrate();
while (DrivetrainGyro.isCalibrating()) {
wait(25, msec);
}
vexcode_initial_drivetrain_calibration_completed = true;
// Clears the screen and returns the cursor to row 1, column 1.
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
}
setHeading#
Is éard atá i gceannteideal ná an treo ina bhfuil an róbat ag tabhairt aghaidh, arna thomhas i gcéimeanna. Athraíonn setHeading ceannteideal reatha an róbait go luach ceannteidil nua.
Mar shampla, má tá an róbat casadh chun aghaidh a thabhairt ar dheis, má shocraítear an treo go 0 céim, déantar an suíomh sin atá ag tabhairt aghaidh ar dheis a athrú go dtí an 0 céim nua. Ansin is féidir leis an róbat casadh chuig suíomhanna eile bunaithe ar an treo nua sin.
Available Functionsvoid setHeading(
double value,
rotationUnits units);
Paraiméadar |
Cineál |
Cur síos |
|---|---|---|
|
|
An luach treorach le socrú don róbat. Is féidir é seo a bheith ó -359 go 359 nuair a úsáidtear |
|
|
An t-aonad ceannteidil: |
Ní thugann an fheidhm seo luach ar ais.
Examples// Face the new 0 degrees.
myDrivetrain.setHeading(90, degrees);
myDrivetrain.turnToHeading(0, degrees);
setRotation#
Is é rothlú an méid atá casta ag an róbat, arna thomhas i gcéimeanna nó i réabhlóidí. Ag tús tionscadail, socraítear an luach rothlaithe go 0 céim. Athraíonn setRotation rothlú reatha an róbait go luach nua.
Mar shampla, má tá dhá chasadh iomlána déanta ag an róbat ar dheis, beidh a luach rothlaithe 720 céim. Má shocraítear an rothlú go 0 céim, athshocrófar an rothlú sin ó 720 go 0 céim. Ansin is féidir leis an róbat casadh go rothluithe bunaithe ar an luach nua sin.
Available Functionsvoid setRotation(
double value,
rotationUnits units);
Paraiméadar |
Cineál |
Cur síos |
|---|---|---|
|
|
An luach rothlaithe le socrú don róbat. |
|
|
An t-aonad rothlaithe: |
Ní thugann an fheidhm seo luach ar ais.
Examples// Spin counterclockwise for 2 turns, then face forward.
myDrivetrain.setRotation(720, degrees);
myDrivetrain.turnToRotation(0, degrees);
heading#
Is é treo an róbait ná treo atá os comhair an róbait, arna thomhas i gcéimeanna. Tugann heading treo reatha an róbait ar ais ó 0 go 359 céim.
Is é 0 céim treo tosaigh an róbait.
Available Functionsdouble heading( rotationUnits units = rotationUnits::deg );
Paraiméadar |
Cineál |
Cur síos |
|---|---|---|
|
|
Roghnach. An t-aonad le tabhairt ar ais sa treo: |
Tugann sé seo treo reatha an róbait ar ais mar double san aonad roghnaithe.
// Show heading before and after turning.
Brain.Screen.print("Before: %f", myDrivetrain.heading(degrees));
myDrivetrain.turnFor(right, 90, degrees);
wait(1, seconds);
Brain.Screen.newLine();
Brain.Screen.print("After: %f", myDrivetrain.heading(degrees));
myDrivetrain.stop();
rotation#
Is é rothlú an méid atá casta ag an róbat, arna thomhas i gcéimeanna nó i réabhlóidí. Ag tús tionscadail, socraítear an luach rothlaithe go 0 céim. Tugann rotation rothlú reatha an róbait ar ais.
Méadaíonn casadh ar dheis an rothlú, agus laghdaíonn casadh ar chlé an rothlú. Mar shampla, má dhéantar dhá chasadh iomlána ar dheis, beidh rothlú 720 céim ann.
Available Functionsdouble rotation( rotationUnits units = rotationUnits::deg );
Paraiméadar |
Cineál |
Cur síos |
|---|---|---|
|
|
Roghnach. An t-aonad le rothlú a thabhairt ar ais ann: |
Tugann sé rothlú reatha an róbait ar ais mar double san aonad roghnaithe.
// Show rotation before and after turning.
Brain.Screen.print("Before: %f", myDrivetrain.rotation(degrees));
myDrivetrain.turnFor(right, 90, degrees);
wait(1, seconds);
Brain.Screen.newLine();
Brain.Screen.print("After: %f", myDrivetrain.rotation(degrees));
myDrivetrain.stop();