എൻകോഡർ#

ആമുഖം#

ഒരു ഷാഫ്റ്റിന്റെ ഭ്രമണ സ്ഥാനവും വേഗതയും അളക്കുന്ന ഒപ്റ്റിക്കൽ ഷാഫ്റ്റ് എൻകോഡറിനൊപ്പം encoder ക്ലാസ് ഉപയോഗിക്കുന്നു. ഷാഫ്റ്റ് എത്ര ദൂരം, എത്ര വേഗത്തിൽ തിരിയുന്നുവെന്ന് കണ്ടെത്താൻ ഇത് ആന്തരിക ഒപ്റ്റിക്കൽ സെൻസറുകൾ ഉപയോഗിക്കുന്നു, ഇത് വീൽ റൊട്ടേഷൻ, ഭുജ സ്ഥാനം അല്ലെങ്കിൽ മറ്റ് സംവിധാനങ്ങൾ ട്രാക്ക് ചെയ്യുന്നതിന് ഉപയോഗപ്രദമാക്കുന്നു.

VEX ഒപ്റ്റിക്കൽ ഷാഫ്റ്റ് എൻകോഡർ.

ക്ലാസ് കൺസ്ട്രക്റ്റർ#

encoder(
  triport::port &port );

ക്ലാസ് ഡിസ്ട്രക്റ്റർ#

encoder ഒബ്‌ജക്റ്റ് നശിപ്പിക്കുകയും അനുബന്ധ ഉറവിടങ്ങൾ പുറത്തുവിടുകയും ചെയ്യുന്നു.

virtual ~encoder();

പാരാമീറ്ററുകൾ#

പാരാമീറ്റർ

ടൈപ്പ് ചെയ്യുക

വിവരണം

port

triport::port &

ഒപ്റ്റിക്കൽ ഷാഫ്റ്റ് എൻകോഡർ ഉപയോഗിക്കുന്ന ആവശ്യമായ രണ്ട്-പോർട്ട് ഗ്രൂപ്പിന്റെ ആദ്യ 3-വയർ പോർട്ട്. ബ്രെയിൻ അല്ലെങ്കിൽ 3-വയർ എക്സ്പാൻഡറിൽ എൻകോഡർ രണ്ട് അടുത്തുള്ള പോർട്ടുകൾ (A–B, C–D, E–F, അല്ലെങ്കിൽ G–H) ഉൾക്കൊള്ളുന്നു. Brain.ThreeWirePort.X അല്ലെങ്കിൽ ExpanderName.X എന്ന് എഴുതിയിരിക്കുന്ന ജോഡിയിലെ ആദ്യ പോർട്ട് (A, C, E, അല്ലെങ്കിൽ G) വ്യക്തമാക്കുക, ഇവിടെ X പോർട്ട് അക്ഷരമാണ് (ഉദാഹരണത്തിന്, Brain.ThreeWirePort.A അല്ലെങ്കിൽ Expander1.C).

ഉദാഹരണങ്ങൾ#

// Create an encoder instance in Ports A and B
encoder EncoderA = encoder(Brain.ThreeWirePort.A);

അംഗ പ്രവർത്തനങ്ങൾ#

encoder ക്ലാസ്സിൽ ഇനിപ്പറയുന്ന അംഗ ഫംഗ്ഷനുകൾ ഉൾപ്പെടുന്നു:

  • setPosition — എൻകോഡറിന്റെ നിലവിലെ സ്ഥാനം ഒരു നിർദ്ദിഷ്ട മൂല്യത്തിലേക്ക് സജ്ജമാക്കുന്നു.

  • position — എൻകോഡർ എത്ര ദൂരം കറങ്ങി എന്ന് നൽകുന്നു.

  • velocity — എൻകോഡറിന്റെ നിലവിലെ ഭ്രമണ പ്രവേഗം നൽകുന്നു.

ഏതെങ്കിലും encoder അംഗ ഫംഗ്ഷനുകൾ വിളിക്കുന്നതിന് മുമ്പ്, താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു encoder ഉദാഹരണം സൃഷ്ടിക്കണം:

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

// Create an encoder instance in Ports A and B
encoder EncoderA = encoder(Brain.ThreeWirePort.A);

setPosition#

എൻകോഡറിന്റെ നിലവിലെ സ്ഥാനം ഒരു നിർദ്ദിഷ്ട മൂല്യത്തിലേക്ക് സജ്ജമാക്കുന്നു. ഒരു മോട്ടോറോ മറ്റ് മെക്കാനിസമോ തിരിക്കാതെ തന്നെ ട്രാക്ക് ചെയ്ത സ്ഥാനം സ്വമേധയാ സജ്ജമാക്കാൻ ഇത് ഉപയോഗിക്കാം.

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

Parameters

പാരാമീറ്ററുകൾ

ടൈപ്പ് ചെയ്യുക

വിവരണം

value

double

സജ്ജീകരിക്കേണ്ട ഭ്രമണ സ്ഥാനം.

units

rotationUnits

സ്ഥാനത്തെ പ്രതിനിധീകരിക്കുന്ന യൂണിറ്റ്:

  • deg / degrees — ഡിഗ്രി
  • turns / rev — പരിക്രമണങ്ങൾ

Return Values

ഈ ഫംഗ്ഷൻ ഒരു മൂല്യം തിരികെ നൽകുന്നില്ല.

position#

എൻകോഡറുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന ഷാഫ്റ്റ് എത്ര ദൂരം കറങ്ങി എന്ന് തിരികെ നൽകുന്നു.

Available Functions
double position(
  rotationUnits units );

Parameters

പാരാമീറ്ററുകൾ

ടൈപ്പ് ചെയ്യുക

വിവരണം

units

rotationUnits

സ്ഥാനത്തെ പ്രതിനിധീകരിക്കുന്ന യൂണിറ്റ്:

  • deg / degrees — ഡിഗ്രി
  • turns / rev — പരിക്രമണങ്ങൾ

Return Values

നിർദ്ദിഷ്ട യൂണിറ്റുകളിലെ ഭ്രമണത്തെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.

velocity#

എൻകോഡറിന്റെ ഭ്രമണ പ്രവേഗം നൽകുന്നു.

Available Functions
double velocity(
  velocityUnits units );

Parameters

പാരാമീറ്ററുകൾ

ടൈപ്പ് ചെയ്യുക

വിവരണം

units

velocityUnits

പ്രവേഗം പ്രതിനിധീകരിക്കാൻ ഉപയോഗിക്കുന്ന യൂണിറ്റ്:

  • percent / pct — ശതമാനം
  • rpm — മിനിറ്റിൽ ഭ്രമണങ്ങൾ
  • dps — സെക്കൻഡിൽ ഡിഗ്രി

Return Values

നിർദ്ദിഷ്ട യൂണിറ്റുകളിലെ പ്രവേഗത്തെ പ്രതിനിധീകരിക്കുന്ന double നൽകുന്നു.