Robotiem specifisks Python#
Ievads#
Varoņa robotam Flex ir iekļauts spīļu motors, rokas motors, mākslīgā intelekta redzes sensors, attāluma sensors un spēles pozicionēšanas sistēmas (GPS) sensors.
Visas standarta VEXcode VR metodes ir pieejamas lietošanai V5 26-27 Override rotaļu laukumā.
Zemāk ir saraksts ar visām pieejamajām robotam specifiskajām metodēm:
Piedziņa — pārvietojiet un pagrieziet robotu.
Darbības
drive— Pārvieto robotu uz priekšu vai atpakaļ uz visiem laikiem.drive_for— Pārvieto robotu uz priekšu vai atpakaļ noteiktu attālumu.turn— Pagriež robotu pa kreisi vai pa labi uz visiem laikiem.turn_for— Pagriež robotu pa kreisi vai pa labi par noteiktu grādu skaitu.turn_to_heading— Pagriež robotu noteiktā virzienā no -359 līdz 359 grādiem.turn_to_rotation— Pagriež robotu noteiktā rotācijā.stop— Aptur robota kustību.
Mutatori
set_heading— Maina robota pašreizējo virzienu uz jaunu virzienu.set_rotation— Maina robota pašreizējo rotāciju uz jaunu rotāciju.set_timeout— Iestata, cik daudz laika robots mēģinās pabeigt kustību.set_drive_velocity— Norāda robotam, cik ātri braukt.set_turn_velocity— Norāda robotam, cik ātri griezties.
Geters
Kustība — pārvietojiet un izsekojiet robota motorus.
Darbības
spin— Griež motoru uz priekšu vai atpakaļ bezgalīgi.spin_for— Griež motoru noteiktu attālumu.spin_to_position— Pagriež motoru uz noteiktu pozīciju.stop— Aptur motora griešanos.
Mutatori
set_position— Maina motora pašreizējo pozīciju uz jaunu vērtību.set_velocity— Norāda motoram, cik ātri griezties.set_timeout— Iestata, cik daudz laika motors mēģinās pabeigt kustību.
Geters
is_done— Atgriež, vai motors ir beidzis kustību, kā Būla vērtību.is_spinning— Atgriež, vai motors griežas, kā Būla vērtību.position— Atgriež motora pašreizējo pozīciju.velocity— Atgriež motora griešanās ātrumu.
AI redze — uztveriet un analizējiet objektus, izmantojot AI redzes sensoru.
Geters
take_snapshot– Atgriež noteikta paraksta noteikto objektu sarakstu.
Īpašumi
.width– Noteiktā objekta platums pikseļos..height– Height of the detected object in pixels..centerX– X position of the object’s center in pixels..centerY– objekta centra Y pozīcija pikseļos..originX– objekta augšējā kreisā stūra X pozīcija pikseļos..originY– objekta augšējā kreisā stūra Y pozīcija pikseļos..id– Classification ID of the detected object.
Konsole — izdrukājiet vērtības konsolē un uzraugiet tās.
Drukāt
brain.screen.print— Konsolē parāda tekstu, skaitļus vai mainīgo vērtības.brain.screen.next_row— Pārvieto konsoles kursoru uz nākamās rindas sākumu.brain.screen.clear_screen— Notīra visas rindas no konsoles.
Monitors
monitor_variable— Pievieno cilnei Monitor vienu vai vairākus iepriekš definētus mainīgos.monitor_sensor— Pievieno vienu vai vairākas sensora vērtības cilnei Monitor.
Sensēšana — izmantojiet robota dažādos sensorus.
Attālums
found_object– Atgriež, vai attāluma sensors uztver objektu diapazonā.object_distance– Atgriež attālumu starp attāluma sensoru un tuvāko noteikto objektu.
GPS
x_position– Atgriež GPS sensora pašreizējo x koordinātu laukā.y_position– Atgriež GPS sensora pašreizējo y koordinātu laukā.heading– Atgriež robota pašreizējo virzienu, pamatojoties uz GPS sensoru.
Šajā lapā redzamajos piemēros tiek izmantota sākuma atrašanās vieta C no Rotaļu laukuma pirmsspēles kontrolsaraksta.
Piedziņa#
Piedziņa kontrolē VR robota braukšanu un pagriezienus. Piedziņa var pārvietoties uz priekšu vai atpakaļ, pagriezties pa kreisi vai pa labi, mainīt virzienu un izsekot rotācijai.
Darbības#
braukt#
drive pārvieto robotu uz priekšu vai atpakaļ bezgalīgi. Robots turpinās kustēties, līdz tam tiks dota cita darbība, piemēram, pagriešana vai apstāšanās.
Usage:
drivetrain.drive(direction)
Parametri |
Apraksts |
|---|---|
|
Robota kustības virziens: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
wait(0.5, SECONDS)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
braukt_pēc#
drive_for pārvieto robotu uz priekšu vai atpakaļ noteiktu attālumu. Projekts gaidīs, līdz robots būs pabeidzis kustību, pirms tiks palaista nākamā koda rinda.
Usage:
drivetrain.drive_for(direction, distance, units, wait)
Parametri |
Apraksts |
|---|---|
|
Robota kustības virziens: |
|
Robota nobrauktais attālums. Tas var būt vesels skaitlis |
|
Neobligāti. Attāluma mērvienība: |
|
Neobligāti. |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
pagrieziens#
turn pagriež robotu pa kreisi vai pa labi uz visiem laikiem. Robots turpinās griezties, līdz tam tiks dota cita darbība, piemēram, braukšana vai apstāšanās.
Usage:
drivetrain.turn(direction)
Parametri |
Apraksts |
|---|---|
|
Robota griešanās virziens: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
pagrieziens_par#
turn_for pagriež robotu pa kreisi vai pa labi par noteiktu grādu skaitu. Pagrieziens ir relatīvs attiecībā pret robota pašreizējo pozīciju. Projekts gaidīs, līdz robots būs pabeidzis pagriešanos, pirms tiks palaista nākamā koda rinda.
Usage:
drivetrain.turn_for(direction, angle, units, wait)
Parametri |
Apraksts |
|---|---|
|
Robota griešanās virziens: |
|
Robota pagrieziena grādu skaits. Tas var būt vesels skaitlis |
|
Neobligāti. Leņķa mērvienība: |
|
Neobligāti. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
pagrieziena_uz_virzienu#
Virziens ir virziens, kurā robots ir pagriezies, mērot grādos. turn_to_heading pagriež robotu noteiktā virzienā no -359 līdz 359 grādiem. Robots pagriezīsies īsākajā virzienā, lai sasniegtu mērķa virzienu.
Sākuma kurss ir 0 grādi.
Usage:
drivetrain.turn_to_heading(heading, units, wait)
Parametri |
Apraksts |
|---|---|
|
Robota virziens no -359 līdz 359 grādiem. |
|
Neobligāti. Leņķa mērvienība: |
|
Neobligāti. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_heading(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
pagrieziena_līdz_rotācijai#
turn_to_rotation pagriež robotu noteiktā rotācijā.
Rotācija ir robota pagrieziena lielums, mērot grādos. Projekta sākumā rotācijas vērtība ir iestatīta uz 0 grādiem. Pagriežot pa labi, rotācija palielinās, bet pagriežot pa kreisi, tā samazinās.
Piemēram, ja robots sāk braukt no 0 grādiem un pagriežas par 720 grādiem, tas divas reizes pagriezīsies pa labi. Ja tas pēc tam pagriezīsies par 360 grādiem, tas vienu reizi pagriezīsies pa kreisi, jo 360 grādi ir mazāki par 720 grādiem.
Usage:
drivetrain.turn_to_rotation(rotation, units, wait)
Parametri |
Apraksts |
|---|---|
|
Rotācijas vērtība grādos, kādā robots pagriezīsies. Tā var būt vesels skaitlis |
|
Neobligāti. Leņķa mērvienība: |
|
Neobligāti. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_rotation(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
apstāties#
stop aptur robota kustību.
Usage:
drivetrain.stop()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Mutatori#
set_header#
Virziens ir virziens, kurā robots ir pagriezies, mērot grādos. set_heading maina robota pašreizējo virzienu uz jaunu virziena vērtību.
Piemēram, ja robots ir pagriezies pa labi, iestatot virzienu uz 0 grādiem, šī pozīcija, kas vērsta pa labi, kļūst par jauno 0 grādu pozīciju. Pēc tam robots var pagriezties uz citām pozīcijām, pamatojoties uz šo jauno virzienu.
Usage:
drivetrain.set_heading(heading, units)
Parametri |
Apraksts |
|---|---|
|
Robota virziena vērtība grādos, kas jāiestata. |
|
Neobligāti. Leņķa mērvienība: |
def main():
# Make facing the Neutral Goal the new heading
drivetrain.set_heading(110, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
set_rotation#
Rotācija ir robota pagrieziena lielums, mērīts grādos. set_rotation maina robota pašreizējo rotāciju uz jaunu vērtību.
Usage:
drivetrain.set_rotation(rotation, units)
Parametri |
Apraksts |
|---|---|
|
Robota iestatāmā rotācijas vērtība grādos. Tā var būt vesels skaitlis |
|
Neobligāti. Leņķa mērvienība: |
def main():
# Make facing the Neutral Goal the new rotation
drivetrain.set_rotation(110, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
iestatīts_laika_izslēgums#
set_timeout nosaka, cik sekundes robots mēģinās pabeigt kustību. Ja robots nevar pabeigt šajā laikā, tas pārtrauks mēģinājumu un pāries uz nākamo koda rindiņu. Tas neļauj robotam iestrēgt kustībā.
Usage:
drivetrain.set_timeout(time, units)
Parametri |
Apraksts |
|---|---|
|
Sekunžu skaits, kurā robots var mēģināt pabeigt kustību. Tas var būt pozitīvs skaitlis |
|
Neobligāti. Laika mērvienība: |
def main():
# Turn to face the Neutral Goal
drivetrain.set_timeout(0.8, SECONDS)
drivetrain.turn_for(LEFT, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
iestatīt_piedziņas_ātrumu#
set_drive_velocity norāda robotam, cik ātri jābrauc. Augstāka procentuālā vērtība liek robotam braukt ātrāk, bet zemāka procentuālā vērtība liek robotam braukt lēnāk.
Katrs projekts sākas ar robota kustību ar noklusējuma ātrumu 50%.
Piezīme: Lielāks ātrums padara robotu ātrāku, bet tas var būt mazāk precīzs. Mazāks ātrums padara robotu lēnāku, bet tas var būt precīzāks.
Usage:
drivetrain.set_drive_velocity(velocity, units)
Parametri |
Apraksts |
|---|---|
|
Braukšanas ātrums no 0% līdz 100%. Tas var būt vesels skaitlis |
|
Pēc izvēles. Ātruma mērvienība: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
iestatīts_pagrieziena_ātrums#
set_turn_velocity norāda robotam, cik ātri griezties. Augstāka procentuālā vērtība liek robotam griezties ātrāk, bet zemāka procentuālā vērtība liek robotam griezties lēnāk.
Katrs projekts sākas ar robota griešanos ar noklusējuma ātrumu 50%.
Piezīme: Lielāks ātrums liek robotam griezties ātrāk, bet tas var būt mazāk precīzs. Mazāks ātrums liek robotam griezties lēnāk, bet tas var būt precīzāks.
Usage:
drivetrain.set_turn_velocity(velocity, units)
Parametri |
Apraksts |
|---|---|
|
Griešanās ātrums no 0% līdz 100%. Tas var būt vesels skaitlis |
|
Pēc izvēles. Ātruma mērvienība: |
def main():
# Turn to face the Neutral Goal faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(LEFT, 110, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Getteri#
virsraksts#
Virziens ir virziens, kurā robots ir pagriezies, mērot grādos. heading atgriež robota pašreizējo virzienu no 0 līdz 359,99 grādiem.
Robota sākuma virziens ir 0 grādi.
Usage:
drivetrain.heading(units)
Parametri |
Apraksts |
|---|---|
|
Neobligāti. Virziena mērvienība: |
def main():
# Turn to the Goal, then show heading
drivetrain.turn_for(LEFT, 110, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading(DEGREES))
# VR threads — Do not delete
vr_thread(main)
rotācija#
Rotācija ir robota pagrieziena lielums, mērot grādos. Projekta sākumā rotācijas vērtība ir iestatīta uz 0 grādiem. rotation atgriež robota pašreizējo rotāciju.
Pagriežoties pa labi, rotācija palielinās, bet pagriežoties pa kreisi, tā samazinās. Piemēram, veicot divus pilnus pagriezienus pa labi, rotācija būs 720 grādi.
Usage:
drivetrain.rotation(units)
Parametri |
Apraksts |
|---|---|
|
Neobligāti. Rotācijas vienība: |
def main():
# Spin to find a Pin, then show rotation
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation(DEGREES))
# VR threads — Do not delete
vr_thread(main)
ir_pabeigts#
is_done atgriež, vai robots ir pabeidzis kustību, kā Būla vērtību. To var izmantot, lai kontrolētu citu darbību laiku, pamatojoties uz robota kustību.
True— Robots ir pabeidzis kustību.False— Robots joprojām kustas.
Šī metode darbojas kopā ar šādām Drivetrain metodēm, kurām ir parametrs wait : drive_for, turn_for, turn_to_heading un turn_to_rotation.
Usage:
drivetrain.is_done()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait(0.5, SECONDS)
while not drivetrain.is_done():
wait(5, MSEC)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
pārvietojas#
is_moving atgriež, vai robots kustas, kā Būla vērtību. To var izmantot, lai kontrolētu citu darbību laiku, pamatojoties uz robota kustību.
True— Robots kustas.False— Robots nekustas.
Usage:
drivetrain.is_moving()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
def main():
# Raise the Arm once stopped near the Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait (0.5, SEC)
while drivetrain.is_moving():
wait(5, MSEC)
arm_motor.spin_for(FORWARD, 800, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ātrums#
velocity atgriež robota braukšanas ātrumu procentos no -100% līdz 100%.
Usage:
drivetrain.velocity(units)
Parametri |
Apraksts |
|---|---|
|
Pēc izvēles. Ātruma mērvienība: |
def main():
# Show speed while driving to the Goal
drivetrain.drive_for(FORWARD, 150, MM)
brain.screen.print("Velocity: ")
brain.screen.print(drivetrain.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Kustība#
Flex izmanto rokas motoru, lai paceltu un nolaistu roku, un spīļu motoru, lai atvērtu un aizvērtu spīli.
Katram motoram ir sava virziena uzvedība. Virzienu aprakstos ir paskaidrots, kā katrs virziens pārvieto motoru uz Flex.
Darbības#
grieziens#
spin griež motoru vienā no diviem virzieniem mūžīgi. Motors turpinās griezties, līdz tam tiks dota cita darbība, piemēram, griezties citā virzienā vai apstāties.
Lietojums:
Ar šo metodi var izmantot vienu no diviem pieejamajiem motora objektiem, kā parādīts tālāk:
motors |
Komanda |
|---|---|
|
|
|
|
Parametri |
Apraksts |
|---|---|
|
Motora griešanās virziens:
|
def main():
# Raise the Arm before driving toward a Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
# VR threads — Do not delete
vr_thread(main)
grieziena_priekšmets#
spin_for griež motoru noteiktu attālumu. Griešanās ātrums ir relatīvs attiecībā pret motora pašreizējo pozīciju. Projekts gaidīs, līdz motors būs beidzis griezties, pirms tiks palaista nākamā koda rinda.
Lietojums:
Ar šo metodi var izmantot vienu no diviem pieejamajiem motora objektiem, kā parādīts tālāk:
motors |
Komanda |
|---|---|
|
|
|
|
Parametri |
Apraksts |
|---|---|
|
Motora griešanās virziens:
|
|
Attālums, kādā griežas motors. |
|
Neobligāti. Attāluma mērvienība: |
|
Neobligāti.
|
def main():
# Raise the Arm to carry the Pin to the Goal
arm_motor.spin_for(FORWARD, 800, DEGREES)
# VR threads — Do not delete
vr_thread(main)
griezt_līdz_pozīcijai#
spin_to_position griež motoru uz noteiktu pozīciju.
Motora pozīcija norāda, cik tālu tas ir pagriezies, mērot DEGREES vai TURNSViens pagrieziens ir vienāds ar 360 grādiem. Projekta sākumā rokas motora pozīcija ir iestatīta uz 0 grādiem. Nažveida motors ir izņēmums — tas sāk darboties ar 467 grādiem (pilnībā aizvērts). Motora 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 pašreizējās pozīcijas.
Piemēram, ja motors iedarbojas pie 0 grādiem un griežas līdz 720 grādu pozīcijai, tas griezīsies divus apgriezienus uz priekšu. Ja tas pēc tam griežas līdz 360 grādu pozīcijai, tas griezīsies atpakaļ par vienu apgriezienu, jo 360 grādi ir mazāki par 720.
Lietojums:
Ar šo metodi var izmantot vienu no diviem pieejamajiem motora objektiem, kā parādīts tālāk:
motors |
Komanda |
|---|---|
|
|
|
|
Parametri |
Apraksts |
|---|---|
|
Pozīcijas vērtība, līdz kurai motors griezīsies. |
|
Pēc izvēles. Pozīcijas mērvienība: |
|
Neobligāti.
|
def main():
# Raise the Arm, then release the Pin
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
apstāties#
stop aptur motora griešanos.
Lietojums:
Ar šo metodi var izmantot vienu no diviem pieejamajiem motora objektiem, kā parādīts tālāk:
motors |
Komanda |
|---|---|
|
|
|
|
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
def main():
# Raise the Arm partway to hold the Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
# VR threads — Do not delete
vr_thread(main)
Mutatori#
iestatītā_pozīcija#
Motora pozīcija norāda, cik tālu tas ir pagriezies, mērot DEGREES vai TURNSViens apgrieziens ir vienāds ar 360 grādiem. set_position maina motora pašreizējo pozīciju uz jaunu vērtību.
Piemēram, ja motors ir pagriezies 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 var griezties pozīcijās, pamatojoties uz šo jauno vērtību.
Lietojums:
Ar šo metodi var izmantot vienu no diviem pieejamajiem motora objektiem, kā parādīts tālāk:
motors |
Komanda |
|---|---|
|
|
|
|
Parametri |
Apraksts |
|---|---|
|
Motora pozīcijas vērtība, kas jāiestata. |
|
Pēc izvēles. Pozīcijas mērvienība: |
def main():
# Reset encoder, raise Arm, place Pin
arm_motor.set_position(0, DEGREES)
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
iestatīt_ātrumu#
set_velocity norāda motoram, cik ātri griezties. Augstāka procentuālā vērtība liek motoram griezties ātrāk, bet zemāka procentuālā vērtība liek motoram griezties lēnāk.
Katrs projekts sākas ar to, ka katrs motors pēc noklusējuma griežas ar 50% ātrumu.
Piezīme: Lielāks ātrums liek motoram griezties ātrāk, bet tas var būt mazāk precīzs. Mazāks ātrums liek motoram griezties lēnāk, bet tas var būt precīzāks.
Lietojums:
Ar šo metodi var izmantot vienu no diviem pieejamajiem motora objektiem, kā parādīts tālāk:
motors |
Komanda |
|---|---|
|
|
|
|
Parametri |
Apraksts |
|---|---|
|
Griešanās ātrums no 0% līdz 100%. Tas var būt vesels skaitlis |
|
Ātruma mērvienība: |
def main():
# Raise the Arm fast to release the Pin
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_for(FORWARD, 800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
iestatīts_laika_izslēgums#
set_timeout nosaka, cik ilgi motors mēģinās pabeigt kustību. Ja motors nevar pabeigt šajā laikā, tas pārtrauks mēģinājumu un pāries uz nākamo koda rindiņu. Tas neļauj motoram iestrēgt kustībā.
Lietojums:
Ar šo metodi var izmantot vienu no diviem pieejamajiem motora objektiem, kā parādīts tālāk:
motors |
Komanda |
|---|---|
|
|
|
|
Parametri |
Apraksts |
|---|---|
|
Laiks, kurā motors var mēģināt pabeigt kustību. Tas var būt pozitīvs skaitlis |
|
Laika mērvienība: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.set_timeout(1, SECONDS)
arm_motor.spin_for(FORWARD, 1800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Getteri#
ir_pabeigts#
is_done atgriež, vai motors ir beidzis 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 ir beidzis kustību.False— Motors joprojām kustas.
Šī metode darbojas kopā ar šādām kustības metodēm, kurām ir parametrs wait : spin_for un spin_to_position.
Lietojums:
Ar šo metodi var izmantot vienu no diviem pieejamajiem motora objektiem, kā parādīts tālāk:
motors |
Komanda |
|---|---|
|
|
|
|
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
def main():
# Raise the Arm while driving to the Goal
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while not arm_motor.is_done():
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
griežas#
is_spinning atgriež, vai motors griežas, kā Būla vērtību. To var izmantot, lai kontrolētu citu darbību laiku, pamatojoties uz motora kustību.
True— Motors griežas.False— Motors negriežas.
Šī metode darbojas kopā ar šādām kustības metodēm, kurām ir parametrs wait : spin_for un spin_to_position.
Lietojums:
Ar šo metodi var izmantot vienu no diviem pieejamajiem motora objektiem, kā parādīts tālāk:
motors |
Komanda |
|---|---|
|
|
|
|
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
def main():
# Raise the Arm while driving to the Goal, then release the Pin
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while arm_motor.is_spinning():
drivetrain.drive_for(FORWARD, 25, MM)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
pozīcija#
Motora 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 pašreizējo pozīciju.
Projekta sākumā rokas motora pozīcija ir iestatīta uz 0 grādiem. Izņēmums ir spīļu motors — tas sāk darboties 467 grādos (pilnībā aizvērts). Ja motors griežas vienu pilnu apgriezienu uz priekšu, pozīcija palielinās. Ja motors griežas pretējā virzienā, pozīcija samazinās.
Lietojums:
Ar šo metodi var izmantot vienu no diviem pieejamajiem motora objektiem, kā parādīts tālāk:
motors |
Komanda |
|---|---|
|
|
|
|
Parametri |
Apraksts |
|---|---|
|
Bloks, kas atgriež motora pozīciju: |
def main():
# Raise the Arm, then release the Pin
while arm_motor.position(DEGREES) < 800:
arm_motor.spin(FORWARD)
wait(2, MSEC)
arm_motor.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
ātrums#
velocity atgriež motora griešanās ātrumu.
Pozitīva vērtība nozīmē, ka motors griežas uz priekšu. Negatīva vērtība nozīmē, ka motors griežas atpakaļgaitā.
Lietojums:
Ar šo metodi var izmantot vienu no diviem pieejamajiem motora objektiem, kā parādīts tālāk:
motors |
Komanda |
|---|---|
|
|
|
|
Parametri |
Apraksts |
|---|---|
|
Atgriežamā ātruma mērvienība: |
def main():
# Show Arm Motor velocity while raising
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.2, SECONDS)
brain.screen.print(arm_motor.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Mākslīgā intelekta vīzija#
Getteri#
uzņemt_momentuzņēmumu#
take_snapshot filtrē datus no AI redzes sensora kadra līdz vienam parakstam — saglabātam aprakstam par kaut ko, ko sensors var atpazīt, piemēram, spēles elementu laukumā — un atgriež kortežu.
Kortežs saglabā objektus, kas sakārtoti no lielākā līdz mazākajam pēc platuma, sākot ar indeksu 0. Katra objekta īpašībām var piekļūt, izmantojot tā indeksu. Ja netiek atrasti atbilstoši objekti, tiek atgriezts tukšs kortežs.
Usage:
ai_vision.take_snapshot(signature)
Parametri |
Apraksts |
|---|---|
|
Filtrē datu kopu, lai iekļautu tikai dotā paraksta datus. Pieejamie paraksti ir:
|
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn to face the Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn(LEFT)
elif ai_objects[0].centerX > 180:
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
break
# VR threads — Do not delete
vr_thread(main)
Īpašumi#
Pēc take_snapshot izmantošanas katrā objektā, kas tiek glabāts kortežā, ir iekļautas septiņas īpašības.
Visas rekvizītu vērtības, izņemot .id apraksta noteiktā objekta pozīciju un izmēru AI redzes sensora skatā brīdī, kad tika izmantots take_snapshot Šīs vērtības tiek mērītas pikseļos, pamatojoties uz sensora 320 x 240 pikseļu izšķirtspēju.
.platums#
.width atgriež noteiktā objekta platumu pikseļos, kas ir vesels skaitlis no 1 līdz 320.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].width > 140:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.augstums#
.height atgriež noteiktā objekta augstumu pikseļos, kas ir vesels skaitlis no 1 līdz 240.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].height > 200:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.centerX#
.centerX atgriež noteiktā objekta centra x koordinātu pikseļos, kas ir vesels skaitlis no 0 līdz 320.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# VR threads — Do not delete
vr_thread(main)
.centerY#
.centerY atgriež noteiktā objekta centra y koordinātu pikseļos, kas ir vesels skaitlis no 0 līdz 240.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerY > 230:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.originX#
.originX atgriež noteiktā objekta ierobežojošā lodziņa augšējā kreisā stūra x koordinātu pikseļos, kas ir vesels skaitlis no 0 līdz 320.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originX < 100:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# VR threads — Do not delete
vr_thread(main)
.originY#
.originY atgriež noteiktā objekta ierobežojošā lodziņa augšējā kreisā stūra y koordinātu pikseļos, kas ir vesels skaitlis no 0 līdz 240.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originY > 140:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.id#
.id atgriež noteiktās AI klasifikācijas ID kā veselu skaitli.
AI klasifikācija |
id |
Paraksts |
|---|---|---|
RedBluePin |
0 |
|
ZilaDzeltenaPiespraude |
1 |
|
SarkansDzeltensPiespraude |
2 |
|
Dzeltenā piespraude |
3 |
|
Kauss |
4 |
|
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Display the ID of the next closest object
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
brain.screen.print(ai_objects[0].id)
break
# VR threads — Do not delete
vr_thread(main)
Konsole#
Kamēr projekts darbojas, konsolē tiek parādīts teksts, skaitļi un mainīgo vērtības. Konsoles metodes var arī pārvietot kursoru uz jaunu rindu, notīrīt konsoli un pievienot mainīgos vai sensoru vērtības cilnei Monitor.
Drukāt#
smadzeņu.ekrāna.izdruka#
brain.screen.print konsolē parāda tekstu, skaitļus vai mainīgo vērtības, izmantojot pašreizējo kursora pozīciju.
Izmantojiet brain.screen.next_row, ja vēlaties, lai nākamā drukātā vērtība sāktos jaunā rindā.
Usage:
brain.screen.print(value)
Parametri |
Apraksts |
|---|---|
|
Teksts, skaitlis vai mainīgā vērtība, kas jāparāda konsolē. |
def main():
# Display a message in the Console
brain.screen.print("Hello, robot!")
# VR threads — Do not delete
vr_thread(main)
smadzeņu.ekrāns.nākamā_rinda#
brain.screen.next_row pārvieto kursoru uz 1. kolonnu nākamajā konsoles rindā. Nākamā izdrukātā vērtība parādīsies šajā rindā.
Usage:
brain.screen.next_row()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
def main():
# Print on two rows
brain.screen.print("Row 1")
brain.screen.next_row()
brain.screen.print("Row 2")
# VR threads — Do not delete
vr_thread(main)
smadzeņu.screen.clear_screen#
brain.screen.clear_screen notīra visas rindas no konsoles un pārvieto kursoru atpakaļ uz 1. rindu.
Usage:
brain.screen.clear_screen()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
def main():
# Display text, then clear it after two seconds
brain.screen.print("This will disappear...")
wait(2, SECONDS)
brain.screen.clear_screen()
# VR threads — Do not delete
vr_thread(main)
Monitors#
monitora_mainīgais#
monitor_variable pievieno vienu vai vairākus iepriekš definētus mainīgos VEXcode cilnei Monitor. Tas ļauj vērot mainīgā vērtības izmaiņas projekta darbības laikā.
Mainīgajiem jābūt globāliem monitor_variable varētu veiksmīgi uzraudzīt. Norādiet katra mainīgā nosaukumu kā virkni.
Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)
Parametri |
Apraksts |
|---|---|
|
Iepriekš definēta globālā mainīgā nosaukums, kas jāuzrauga, norādot kā virkni. Lai uzraudzītu vairākus mainīgos, atdaliet katru mainīgā nosaukumu ar komatu. |
def main():
# Monitor the number of loops
global loops
monitor_variable("loops")
# Turn in a full circle 3 times
for loops in range(12):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# VR threads — Do not delete
vr_thread(main)
monitora_sensors#
monitor_sensor pievieno vienu vai vairākas sensoru vērtības cilnei “Monitor” programmā VEXcode. Tas ļauj vērot sensoru vērtību izmaiņas projekta darbības laikā.
Norādiet katra sensora vērtību kā virkni.
Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)
Parametri |
Apraksts |
|---|---|
|
Sensora vērtība, kas jāuzrauga, norādīta kā virkne. Lai uzraudzītu vairākas sensora vērtības, atdaliet katru sensora vērtību ar komatu. Atbalstītie sensoru identifikatori ietver:
|
def main():
# Monitor the robot's heading
monitor_sensor("drivetrain.heading")
drivetrain.turn_for(RIGHT, 450, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Sensori#
Attālums#
atrastais_objekts#
found_object atgriež, vai attāluma sensors pašlaik nosaka objektu 2000 mm attālumā.
True— Attāluma sensors nosaka objektu.False— Attāluma sensors neuztver objektu.
Usage:
distance.found_object()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
def main():
# Turn until something is detected, then release the Pin
drivetrain.turn(RIGHT)
while True:
wait(5, MSEC)
if distance.found_object():
drivetrain.stop()
break
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
objekta_attālums#
object_distance atgriež attālumu starp attāluma sensoru un tuvāko noteikto objektu.
Usage:
distance.object_distance(units)
Parametri |
Apraksts |
|---|---|
|
Attāluma mērvienība: |
def main():
# Drive until 200 mm from the Goal, then release the Pin
while distance.object_distance(MM) > 200:
wait(5, MSEC)
drivetrain.drive(FORWARD)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
GPS#
x_pozīcija#
x_position atgriež GPS (Game Positioning System™) sensora pašreizējo x koordinātu laukumā.
Usage:
gps.x_position(units)
Parametri |
Apraksts |
|---|---|
vienības |
Nobīdes vērtības mērvienība: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.x_position(MM) > -1370:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
y_pozīcija#
y_position atgriež GPS (Game Positioning System™) sensora pašreizējo y koordinātu laukā.
Usage:
gps.y_position(units)
Parametri |
Apraksts |
|---|---|
vienības |
Nobīdes vērtības mērvienība: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.y_position(MM) < -450:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
virsraksts#
heading atgriež robota pašreizējo virzienu, pamatojoties uz GPS (Game Positioning System™) sensora rādījumiem no 0 līdz 359 grādiem.
Usage:
gps.heading()
Parametri |
Apraksts |
|---|---|
Šai metodei nav parametru. |
def main():
# Raise the Arm, drive to the Goal, release the Pin
monitor_sensor("gps.heading")
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# Turn left to face the Neutral Goal
drivetrain.set_turn_velocity(30, PERCENT)
drivetrain.turn(LEFT)
while not gps.heading() < 18:
wait(2, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)