Motors un motoru grupa#
Ievads#
Motori un motoru grupas kontrolē robota daļu kustību. Motor kontrolē vienu konfigurētu viedmotoru, savukārt MotorGroup kontrolē vairākus konfigurētus viedmotorus kopā, lai tie pārvietotos tandēmā. Motorus un motoru grupas var izmantot, lai paceltu roku, pagrieztu spīli, pagrieztu riteni vai pārvietotu citu konstrukcijas daļu. Divi vai četri motori var darboties kopā kā piedziņas ķēde, lai pārvietotu un pagrieztu visu robotu.
Katrs motors vai motoru grupa ir konfigurēta logā “Ierīces”. Atkarībā no konstrukcijas motoru un motoru grupu nosaukumi var mainīties. Šajā lapā kā nosaukumu piemēri tiek izmantoti motor_1 un motor_group_1 Ja nepieciešams, nomainiet tos ar saviem konfigurētajiem nosaukumiem.
Pēc noklusējuma FORWARD griež motoru pretēji pulksteņrādītāja virzienam, bet REVERSE griež motoru pulksteņrādītāja virzienā. Ja motors ir iestatīts atpakaļgaitā, šie virzieni tiks apmainīti.
Motorus un motoru grupas var kodēt dažādos veidos. Zemāk ir saraksts ar visām motoru un motoru grupu metodēm:
Darbības — Apturēt un pagriezt motorus un motoru grupas.
spin— Griež motoru vai motoru grupu uz priekšu vai atpakaļ uz visiem laikiem.spin_for— Griež motoru vai motoru grupu noteiktā attālumā.spin_to_position— Pagriež motoru vai motoru grupu uz noteiktu pozīciju.stop— Aptur motora vai motoru grupas griešanos.
Mutatori — pielāgojiet motoru un motoru grupu iestatījumus.
set_position— Maina motora vai motoru grupas pašreizējo pozīciju uz jaunu vērtību.set_velocity— Norāda motoram vai motoru grupai, cik ātri griezties.set_stopping— Iestata, kā motors vai motoru grupa apturēs kustību: bremzējot, braucot brīvgaitā vai turot.set_max_torque— Nosaka, cik stipri motors vai motoru grupa drīkst spiest griešanās laikā.set_timeout— Iestata, cik daudz laika motors vai motoru grupa mēģinās pabeigt kustību.set_reversed— Maina, vai motora griešanās virziens tiek mainīts.reset_position— Maina motora vai motoru grupas pašreizējo pozīciju uz 0.
Getteri — Pārbaudiet motora un motoru grupas statusu.
is_done— Atgriež, vai motors vai motoru grupa ir pabeigusi kustību, kā Būla vērtību.is_spinning— Atgriež, vai griežas motors vai motoru grupa, kā Būla vērtību.position— Atgriež motora vai motoru grupas pašreizējo pozīciju.velocity— Atgriež motora vai motoru grupas griešanās ātrumu.current— Atgriež motora vai motoru grupas patērēto elektriskās strāvas daudzumu.power— Atgriež motora vai motoru grupas patērēto jaudu.torque— Atgriež motora vai motoru grupas izmantoto griezes momentu.efficiency— Atgriež, cik efektīvi motors vai motoru grupa izmanto jaudu.temperature— Atgriež motora vai motoru grupas temperatūru.count— Atgriež motoru skaitu motoru grupā.get_timeout— Atgriež motora vai motoru grupas pašreizējo taimauta ilgumu.
Konstruktori — Manuāli inicializējiet un konfigurējiet motorus un motoru grupas.
Motor— Izveido motoru.MotorGroup— Izveido motoru grupu.
Darbības#
spin#
spin griež motoru vai motoru grupu uz priekšu vai atpakaļ uz visiem laikiem. Motors vai motoru grupa turpinās griezties, līdz tam tiks dota cita darbība, piemēram, griešanās citā virzienā vai apstāšanās.
Usage:
motor_1.spin(direction, velocity, units)
Parametri |
Apraksts |
|---|---|
|
Motora vai motoru grupas griešanās virziens: |
|
Neobligāti. Griešanās ātrums no 0% līdz 100%, izmantojot |
|
Pēc izvēles. Ātruma mērvienība:
|
# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
spin_for#
spin_for griež motoru vai motoru grupu noteiktā attālumā. Griešanās ātrums ir relatīvs attiecībā pret motora vai motoru grupas pašreizējo pozīciju. Projekts gaidīs, līdz motors vai motoru grupa būs pabeigusi griešanos, pirms tiks palaista nākamā koda rinda.
Usage:
motor_1.spin_for(direction, angle, units, velocity, units_v, wait)
Parametri |
Apraksts |
|---|---|
|
Motora vai motoru grupas griešanās virziens: |
|
Attālums, kādā griežas motors vai motoru grupa. Tas var būt vesels skaitlis |
|
Pēc izvēles. Attāluma mērvienība: |
|
Neobligāti. Griešanās ātrums no 0% līdz 100%, izmantojot |
|
Pēc izvēles. Ātruma mērvienība:
|
|
Neobligāti.
|
# Spin the motor forward once, then reset
motor_1.spin_for(FORWARD, 90, DEGREES)
wait(1, SECONDS)
motor_1.spin_for(REVERSE, 90, DEGREES)
spin_to_position#
spin_to_position griež motoru vai motoru grupu uz noteiktu pozīciju.
Motora vai motoru grupas pozīcija ir tas, cik tālu tas ir pagriezies, mērot DEGREES vai TURNSViens pagrieziens ir vienāds ar 360 grādiem. Projekta sākumā motora vai motoru grupas pozīcija ir iestatīta uz 0 grādiem. Motora vai motoru grupas pozīciju var iestatīt arī, izmantojot metodi set_position.
Pozīcijas vērtības ir absolūtas. Tas nozīmē, ka griešanās virziens ir atkarīgs no motora vai motoru grupas pašreizējās pozīcijas.
Usage:
motor_1.spin_to_position(rotation, units, velocity, units_v, wait)
Parametri |
Apraksts |
|---|---|
|
Pozīcijas vērtība, līdz kurai griezīsies motors vai motoru grupa. Tā var būt vesels skaitlis |
|
Pozīcijas mērvienība: |
|
Neobligāti. Griešanās ātrums no 0% līdz 100%, izmantojot |
|
Pēc izvēles. Ātruma mērvienība:
|
|
Neobligāti.
|
# Spin the motor to the new 0 position
motor_1.set_position(180, DEGREES)
motor_1.spin_to_position(0, DEGREES)
stop#
stop aptur motora vai motoru grupas griešanos.
Usage:
motor_1.stop(mode)
Parametri |
Apraksts |
|---|---|
|
Pēc izvēles. Kā motors vai motoru grupa apstāsies:
|
# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
Mutatori#
set_position#
Motora vai motoru grupas pozīcija norāda, cik tālu tas ir pagriezies, mērot DEGREES vai TURNSViens pagrieziens ir vienāds ar 360 grādiem. set_position maina motora vai motoru grupas pašreizējo pozīciju uz jaunu vērtību.
Piemēram, ja motors vai motoru grupa ir pagriezusies līdz 180 grādiem, pozīcijas iestatīšana uz 0 grādiem atiestatīs šo pozīciju no 180 uz 0 grādiem. Pēc tam motors vai motoru grupa var griezties pozīcijās, pamatojoties uz šo jauno vērtību.
Usage:
motor_1.set_position(position, units)
Parametri |
Apraksts |
|---|---|
|
Pozīcijas vērtība, kas jāiestata motoram vai motoru grupai. Tā var būt vesels skaitlis |
|
Pēc izvēles. Pozīcijas mērvienība: |
# Spin the motor to the new 0 position
motor_1.set_position(180, DEGREES)
motor_1.spin_to_position(0, DEGREES)
set_velocity#
set_velocity norāda motoram vai motoru grupai, cik ātri griezties. Augstāka procentuālā vērtība liek motoram vai motoru grupai griezties ātrāk, bet zemāka procentuālā vērtība liek motoram vai motoru grupai griezties lēnāk.
Katrs projekts sākas ar to, ka katrs motors vai motoru grupa pēc noklusējuma griežas ar 50% ātrumu.
Piezīme: Lielāks ātrums liek motoram vai motoru grupai griezties ātrāk, bet tas var būt mazāk precīzs. Mazāks ātrums liek motoram vai motoru grupai griezties lēnāk, bet tas var būt precīzāks.
Usage:
motor_1.set_velocity(velocity, units)
Parametri |
Apraksts |
|---|---|
|
Ātrums, ar kādu griezīsies motors vai motoru grupa. |
|
Pēc izvēles. Ātruma mērvienība:
|
# Spin forward at the default velocity
motor_1.spin_for(FORWARD, 100)
wait(1, SECONDS)
# Spin slower
motor_1.set_velocity(20, PERCENT)
motor_1.spin_for(FORWARD, 100)
wait(1, SECONDS)
# Spin faster
motor_1.set_velocity(100, PERCENT)
motor_1.spin_for(FORWARD, 100)
wait(1, SECONDS)
set_stopping#
set_stopping nosaka, kā motors vai motoru grupa apturēs kustību: bremzējot, braucot brīvgaitā vai turot.
Usage:
motor_1.set_stopping(mode)
Parametri |
Apraksts |
|---|---|
|
Kā motors vai motoru grupa apstāsies:
|
set_max_torque#
Griezes moments parāda, cik stipri motors vai motoru grupa var stumt vai vilkt, kamēr tā griežas.
set_max_torque iestata maksimālo griezes momentu, ko motors vai motoru grupa drīkst izmantot.
Augstāka procentuālā vērtība ļauj motoram vai motoru grupai spiest spēcīgāk, piemēram, paceļot smagu priekšmetu. Zemāka procentuālā vērtība ierobežo, cik spēcīgi motors vai motoru grupa var spiest. Tas var palīdzēt aizsargāt robotu, ja motors vai motoru grupa iesprūst vai sasniedz kustības robežas.
Katrs projekts sākas ar katra motora vai motoru grupas griezes momentu pēc noklusējuma 50% apmērā.
Usage:
motor_1.set_max_torque(value, units)
Parametri |
Apraksts |
|---|---|
|
Maksimālais griezes moments, ko var izmantot motors vai motoru grupa. |
|
Pēc izvēles. Griezes momenta mērvienība:
|
set_timeout#
set_timeout nosaka, cik ilgi motors vai motoru grupa mēģinās pabeigt kustību. Ja motors vai motoru grupa nevar pabeigt šajā laikā, tā pārtrauks mēģinājumu un pāries uz nākamo koda rindiņu. Tas neļauj motoram vai motoru grupai iestrēgt kustībā.
Usage:
motor_1.set_timeout(value, units)
Parametri |
Apraksts |
|---|---|
|
Laiks, kurā motors vai motoru grupa var mēģināt pabeigt kustību. Tas var būt pozitīvs vesels skaitlis |
|
Neobligāti. Laika mērvienība:
|
set_reversed#
set_reversed maina, vai motora griešanās virziens tiek apgriezts. Šī metode darbojas tāpat kā parametra reverse iestatīšana uz True , konstruējot Motor.
Piezīme: Šī metode darbosies tikai ar motoru, nevis motoru grupu.
Usage:
motor_1.set_reversed(value)
Parametri |
Apraksts |
|---|---|
|
Vai motora griešanās virziens ir apgriezts:
|
reset_position#
reset_position maina motora vai motoru grupas pašreizējo pozīciju uz 0.
Usage:
motor_1.reset_position()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
Getteri#
is_done#
is_done atgriež, vai motors vai motoru grupa ir pabeigusi kustību, kā Būla vērtību. To var izmantot, lai kontrolētu citu darbību laiku, pamatojoties uz motora kustību.
True— Motors vai motoru grupa ir pabeigusi kustību.False— Motors vai motoru grupa joprojām kustas.
Šī metode darbojas kopā ar šādām kustības metodēm, kurām ir parametrs wait : spin_for un spin_to_position.
Usage:
motor_1.is_done()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
# Drive forward until the motor is done spinning
motor_1.spin_for(FORWARD, 200, wait=False)
while True:
if motor_1.is_done():
drivetrain.stop()
else:
drivetrain.drive(FORWARD)
is_spinning#
is_spinning atgriež, vai griežas motors vai motoru grupa, kā Būla vērtību. To var izmantot, lai kontrolētu citu darbību laiku, pamatojoties uz motora kustību.
True— Motors vai motoru grupa griežas.False— Motors vai motoru grupa negriežas.
Šī metode darbojas kopā ar šādām kustības metodēm, kurām ir parametrs wait : spin_for un spin_to_position.
Usage:
motor_1.is_spinning()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
# Drive forward until the motor is done spinning
motor_1.spin_for(FORWARD, 200, wait=False)
while True:
if motor_1.is_spinning():
drivetrain.drive(FORWARD)
else:
drivetrain.stop()
position#
Motora vai motoru grupas pozīcija norāda, cik tālu tas ir pagriezies, mērot DEGREES vai TURNSViens pagrieziens ir vienāds ar 360 grādiem. position atgriež motora vai motoru grupas pašreizējo pozīciju.
Projekta sākumā motora vai motoru grupas pozīcija ir iestatīta uz 0 grādiem. Ja motors vai motoru grupa griežas vienu apgriezienu uz priekšu, pozīcija būs 360 grādi jeb 1 apgrieziens. Ja motors vai motoru grupa griežas pretējā virzienā, pozīcija būs negatīva.
Usage:
motor_1.position(units)
Parametri |
Apraksts |
|---|---|
|
Neobligāti. Vienība, kas atgriež motora vai motoru grupas pozīciju: |
# Display the motor's position after spinning
brain.screen.print(motor_1.position())
brain.screen.next_row()
motor_1.spin(FORWARD)
wait(1, SECONDS)
brain.screen.print(motor_1.position())
motor_1.stop()
velocity#
velocity atgriež motora vai motoru grupas griešanās ātrumu procentos no -100% līdz 100% vai apgriezienos minūtē no -127 apgr./min līdz 127 apgr./min.
Pozitīva vērtība nozīmē, ka motors vai motoru grupa griežas uz priekšu. Negatīva vērtība nozīmē, ka tā griežas atpakaļgaitā.
Usage:
motor_1.velocity(units)
Parametri |
Apraksts |
|---|---|
|
Neobligāti. Atgriežamā ātruma mērvienība:
|
current#
current atgriež motora vai motoru grupas patērēto elektriskās strāvas daudzumu, mērot ampēros no 0,0 līdz 1,2 A. Strāva ir elektrības daudzums, kas plūst caur motoru vai motoru grupu.
Augstāka strāvas vērtība nozīmē, ka motors vai motoru grupa patērē lielāku elektrisko strāvu. Tas var notikt, ja motors vai motoru grupa ceļ kaut ko smagu, spiežas pret priekšmetu vai mēģina kustēties, kad ir iestrēdzis.
To var izmantot, lai pārbaudītu, vai motoram vai motoru grupai ir grūtības kustības laikā. Ja strāva saglabājas augsta, motors var sakarst vai mazāk efektīvi izmantot jaudu.
Usage:
motor_1.current(units)
Parametri |
Apraksts |
|---|---|
|
Neobligāti. Pašreizējā vienība, kas jāatgriež:
|
power#
power atgriež motora vai motoru grupas patērēto jaudu, mērot vatos no 0,0 līdz 11,0 W. Jauda parāda, cik ātri motors vai motoru grupa patērē enerģiju.
Augstāka jaudas vērtība nozīmē, ka motors vai motoru grupa patērē enerģiju ātrāk. Tas var notikt, ja motors vai motoru grupa ceļ kaut ko smagu, spiežas pret priekšmetu vai mēģina kustēties, kad ir iestrēdzis.
To var izmantot, lai salīdzinātu kustības vai pārbaudītu, vai motoram vai motoru grupai ir problēmas. Ja jauda saglabājas augsta, motors var sakarst vai mazāk efektīvi izmantot enerģiju.
Usage:
motor_1.power(units)
Parametri |
Apraksts |
|---|---|
|
Neobligāti. Jaudas mērvienība, kas jāatgriež:
|
torque#
Griezes moments parāda, cik spēcīgi motors vai motoru grupa griežas, stumj vai velk, kamēr tā griežas.
torque atgriež motora vai motoru grupas izmantoto griezes momentu, mērot collās-mārciņās (InLb) no 0,0 līdz 22,0 vai ņūtonmetros (Nm) no 0,0 līdz 2,1.
Augstāka griezes momenta vērtība nozīmē, ka motors vai motoru grupa stumj vai velk spēcīgāk. Tas var notikt, ja motors vai motoru grupa ceļ kaut ko smagu, spiežas pret priekšmetu vai mēģina kustēties, kad ir iestrēdzis.
To var izmantot, lai pārbaudītu, vai motoram vai motoro grupai ir grūtības, vai lai salīdzinātu, cik liels grūdiens nepieciešams dažādām kustībām.
Lai iestatītu motora vai motoru grupas griezes momentu, izmantojiet set_max_torque.
Usage:
motor_1.torque(units)
Parametri |
Apraksts |
|---|---|
|
Atgriežamā griezes momenta mērvienība:
|
efficiency#
efficiency atgriež motora vai motoru grupas enerģijas patēriņa efektivitāti procentos no 0% līdz 100%.
Efektivitāte parāda, cik liela daļa motora vai motoru grupas jaudas tiek izmantota kustībai. Augstāka efektivitātes vērtība nozīmē, ka kustībai tiek izmantota lielāka motora vai motoru grupas jauda. Zemāka efektivitātes vērtība var rasties, ja motors vai motoru grupa strādā intensīvi, bet nekustas daudz, piemēram, ja tā ir iestrēgusi vai spiežas pret kādu objektu.
To var izmantot, lai salīdzinātu kustības vai pārbaudītu, vai motors vai motoru grupa tērē enerģiju, nevis izmanto to kustībai.
Usage:
motor_1.efficiency(units)
Parametri |
Apraksts |
|---|---|
|
Neobligāti. Atgriežamā efektivitātes mērvienība:
|
temperature#
temperature atgriež motora vai motoru grupas temperatūru.
Motora temperatūra parāda, cik silts ir motors vai motoru grupa. Augstāka temperatūra nozīmē, ka motors vai motoru grupa darbības laikā kļūst siltāka. Lai motors darbotos ar pilnu jaudu, tā temperatūrai jābūt zem 55 °C.
Ja motors vai motoru grupa kļūst pārāk karsta, tā samazinās maksimālo strāvu, lai sevi pasargātu. Sasniedzot 70 °C temperatūru, motors pārstās darboties, līdz tas atdzisīs.
To var izmantot, lai pārbaudītu, vai motors vai motoru grupa nekļūst pārāk karsta atkārtotu kustību, ilgstošu skrējienu laikā vai spiežot pret kādu objektu.
Usage:
motor_1.temperature(units)
Parametri |
Apraksts |
|---|---|
|
Neobligāti. Atgriežamā temperatūras mērvienība:
|
count#
count atgriež motoru skaitu motoru grupā.
Piezīme: Šī metode darbosies tikai ar motoru grupu.
Usage:
motor_group_1.count()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
get_timeout#
get_timeout atgriež motora vai motoru grupas pašreizējo timeout milisekundēs.
Usage:
motor_1.get_timeout()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
Konstruktori#
Konstruktori tiek izmantoti, lai manuāli izveidotu Motor un MotorGroup objektus ārpus Devices loga.
Motor#
Motor motors izveido motoru.
Usage:
Motor(port, gears, reverse)
Parametrs |
Apraksts |
|---|---|
|
Viedā pieslēgvieta, kurai motors ir pievienots, tiek pierakstīta kā |
|
Pēc izvēles. Motora pārnesumskaitlis:
|
|
Neobligāti. Nosaka, vai motora griešanās virziens ir apgriezts:
|
# Create a Motor in Port 1 with default values
motor_1 = Motor(Ports.PORT1)
"""
Create a motor with the following values:
- In Port 1
- 36:1 ratio
- Reversed
"""
motor_1 = Motor(Ports.PORT1, GearSetting.RATIO_36_1, True)
MotorGroup#
MotorGroup izveido motoru grupu.
Usage:
MotorGroup(motors)
Parametrs |
Apraksts |
|---|---|
|
Iepriekš izveidoto |
# Create the Motors
motor_1 = Motor(Ports.PORT1)
motor_2 = Motor(Ports.PORT2)
# Create a Motor Group
motor_group_1 = MotorGroup(motor_1, motor_2)