Fís#

Réamhrá#

Braitheann agus rianaíonn an Braiteoir Fís don VEX V5 Sínithe Dathanna agus Cóid Dathanna. Ligeann sé seo don Braiteoir Fís a thimpeallacht a anailísiú agus freagairt bunaithe ar shonraí amhairc a braitheadh.

Úsáideann an leathanach seo vision_1, RED_BOX, agus BOX_CODE mar ainmneacha samplacha Braiteora Físe, Síniú Datha, agus Cód Datha faoi seach. Cuir d’ainmneacha cumraithe féin ina n-áit de réir mar is gá.

Seo thíos liosta de na modhanna uile:

Faighteoirí – Faigh sonraí ón Braiteoir Fís.

  • take_snapshot – Gabhann sé sonraí le haghaidh Síniú Dath nó Cód Dath ar leith.

  • largest_object – Roghnaigh an réad is mó ón ngrianghraf.

  • installed – Cibé an bhfuil an Braiteoir Fís ceangailte leis an V5 Brain.

Airíonna – Sonraí réada arna bhfilleadh ó take_snapshot.

  • .exists – Cibé acu an bhfuil an réad ann sa bhrath reatha mar Bhúlach.

  • .width – Leithead an réada braite i bpicteilíní.

  • .height – Airde an réada braite i bpicteilíní.

  • .centerX – Suíomh X lár an réada i bpicteilíní.

  • .centerY – Suíomh Y lár an réada i bpicteilíní.

  • .angle – Treoshuíomh an Chóid Datha i gcéimeanna.

  • .originX – Suíomh X chúinne uachtarach na láimhe clé den réada i bpicteilíní.

  • .originY – Suíomh Y chúinne uachtarach na láimhe clé den réada i bpicteilíní.

Tógálaithe – Déan an Braiteoir Fís agus a shínithe a thosú agus a chumrú de láimh.

  • Vision – Cruthaíonn sé Braiteoir Radharc.

  • Signature – Cruthaíonn sé Síniú Datha.

  • Code – Cruthaíonn sé Cód Datha.

Faighteoirí#

take_snapshot#

take_snapshot scagann sé sonraí ón bhfráma Braiteora Fís go síniú aonair — cur síos sábháilte ar rud is féidir leis an braiteoir a aithint, amhail Síniú Dathanna nó Cód Dathanna cumraithe — agus tugann sé tuple ar ais.

Ní mór Sínithe Datha agus Cóid Datha a chumrú ar dtús san Fhís-Uirlis sula bhféadfar iad a úsáid leis an modh seo.

Stórálann an tuple réada in ord ón gceann is mó go dtí an ceann is lú de réir leithead, ag tosú ag innéacs 0. Is féidir rochtain a fháil ar airíonna gach réada trína innéacs a úsáid. Seoltar tuple folamh ar ais mura mbraitear aon réada comhoiriúnacha.

Usage:
vision_1.take_snapshot(SIGNATURE)

Paraiméadair

Cur síos

SIGNATURE

Scagann sé an tacar sonraí chun sonraí an tsínithe tugtha amháin a áireamh. Is iad na sínithe atá ar fáil:

  • Sínithe Dathanna nó Cóid Dathanna - Ainm an Braiteora Fís, dhá líne faoi, agus ansin ainm an tSínithe Dathanna nó an Chóid Dathanna. Mar shampla: vision_1__RED_BOX.

# Move forward if a red object is detected
while True:
    red_box = vision_1.take_snapshot(vision_1__RED_BOX)
    if red_box[0].exists:
        drivetrain.drive_for(FORWARD, 10, MM)
    wait(5, MSEC)

Sínithe Dath#

Is dath uathúil é síniú datha is féidir leis an Braiteoir Fís a aithint. Ligeann na sínithe seo don braiteoir rudaí a bhrath agus a rianú bunaithe ar a ndath. Nuair a bheidh Síniú Datha cumraithe, is féidir leis an braiteoir rudaí leis an dath sonrach sin ina réimse radhairc a aithint. Úsáidtear sínithe datha le take_snapshot chun rudaí daite a phróiseáil agus a bhrath i bhfíor-am.

Chun Síniú Datha cumraithe a úsáid i dtionscadal, ní mór a ainm a bheith mar ainm an Braiteora Fís, dhá líne faoi, agus ansin ainm an tSínithe Datha. Mar shampla: vision_1__RED_BOX.

# Display if any objects match the RED_BOX signature
while True:
    brain.screen.set_cursor(1, 1)
    brain.screen.clear_row(1)
    # Change to any configured Color Signature
    red_box = vision_1.take_snapshot(vision_1__RED_BOX)
    if red_box[0].exists:
        brain.screen.print("Color signature detected!")
        wait(100, MSEC)

Cóid Dathanna#

Is patrún struchtúrtha é cód datha atá comhdhéanta de shínithe datha atá eagraithe in ord sonrach. Ligeann na cóid seo don Braiteoir Fís patrúin réamhshainithe dathanna a aithint. Tá cóid datha úsáideach chun rudaí casta a aithint nó marcóirí uathúla a chruthú le haghaidh loingseoireachta uathrialach.

Chun Cód Dathanna cumraithe a úsáid i dtionscadal, ní mór a ainm a bheith mar ainm an Braiteora Fís, dhá líne faoi, agus ansin ainm an Chóid Dathanna. Mar shampla: vision_1__BOX_CODE.

# Display if any objects match the BOX_CODE code
while True:
    brain.screen.set_cursor(1, 1)
    brain.screen.clear_row(1)
    # Change to any configured Color Code
    box_code = vision_1.take_snapshot(vision_1__BOX_CODE)
    if box_code[0].exists:
        brain.screen.print("Color code detected!")
        wait(100, MSEC)

largest_object#

Aisghabhann largest_object an réad braite is mó chun sonraí a fháil uaidh sa tuple a tugadh ar ais ón úsáid is déanaí de take_snapshot.

Is féidir an modh seo a úsáid chun an réad is mó a fháil ó thupla i gcónaí gan innéacs a shonrú.

Usage:
vision_1.largest_object()

# Turn slowly until the largest object is centered in
# front of the Vision Sensor
drivetrain.set_turn_velocity(10, PERCENT)
drivetrain.turn(RIGHT)

while True:
    red_box = vision_1.take_snapshot(vision_1__RED_BOX)

    if red_box[0].exists:
        if 140 < vision_1.largest_object().centerX < 180: 
            drivetrain.stop()

    wait(10,MSEC)

installed#

installed seolann sé luach Boolean ar ais a léiríonn an bhfuil an Braiteoir Fís ceangailte leis an V5 Brain faoi láthair.

  • True – Tá an Braiteoir Fís ceangailte leis an V5 Brain.

  • False – Níl an Braiteoir Radhairc ceangailte leis an V5 Brain.

Usage:
vision_1.installed()

Paraiméadair

Cur síos

Níl aon pharaiméadair ag an modh seo.

# Display a message if the Vision Sensor is connected
if vision_1.installed():
    brain.screen.print("Vision Sensor Installed!")

Airíonna#

Tá ocht n-airíonna san áireamh le gach réad atá stóráilte i dtuple tar éis take_snapshot a úsáid.

Déanann na luachanna maoine go léir cur síos ar shuíomh agus méid an réada braite i radharc an Braiteora Fís tráth a úsáideadh take_snapshot Tomhaistear na luachanna seo i bpicteilíní, bunaithe ar réiteach 316 faoi 212 picteilín an braiteora.

.exists#

.exists tugann sé luach Booleach ar ais a léiríonn an bhfuil an t-innéacs sa tuple nó nach bhfuil.

  • True: Tá an t-innéacs ann.

  • False: Níl an t-innéacs ann.

# Check if at least one red object is detected
# You will receive an error if no objects are detected

while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    red_objects = vision_1.take_snapshot(vision_1__RED_BOX)

    if red_objects[0].exists:
        brain.screen.print("At least 1")
            
    else:
        brain.screen.print("No red objects")

    wait(0.5, SECONDS)

.width#

Tugann .width leithead an réada braite i bpicteilíní ar ais, ar slánuimhir é idir 1 agus 316.

# Move towards a blue object until its width is
# larger than 100 pixels
while True:
    blue_box = vision_1.take_snapshot(vision_1__BLUE_BOX)

    if blue_box[0].exists:
        if blue_box[0].width < 100:
            drivetrain.drive_for(FORWARD, 10, MM)
    else:
        drivetrain.stop()

    wait(50, MSEC)

.height#

.height tugann sé airde an réada braite i bpicteilíní ar ais, ar slánuimhir é idir 1 agus 212.

# Move towards a blue object until its height is
# larger than 100 pixels
while True:
    blue_box = vision_1.take_snapshot(vision_1__BLUE_BOX)

    if blue_box[0].exists:
        if blue_box[0].height < 100:
            drivetrain.drive_for(FORWARD, 10, MM)
    else:
        drivetrain.stop()

    wait(50, MSEC)

.centerX#

.centerX seolann sé comhordanáid-x lár an réada braite i bpicteilíní ar ais, ar slánuimhir idir 0 agus 316 é.

# Turn slowly until the largest blue object is centered
# in front of the Vision Sensor.
drivetrain.set_turn_velocity(10, PERCENT)
drivetrain.turn(RIGHT)

while True:
    blue_box = vision_1.take_snapshot(vision_1__BLUE_BOX)

    if blue_box[0].exists:
        if 140 < vision_1.largest_object().centerX < 180: 
            drivetrain.stop()

    wait(10,MSEC)

.centerY#

.centerY seolann sé comhordanáid-y lár an réada braite i bpicteilíní ar ais, ar slánuimhir é idir 0 agus 212.

# Move towards a blue object until its
# center y-coordinate is more than 140 pixels
while True:
    blue_box = vision_1.take_snapshot(vision_1__BLUE_BOX)

    if blue_box[0].exists:
        if blue_box[0].centerY < 140:
            drivetrain.drive(FORWARD)
    else:
        drivetrain.stop()

    wait(50, MSEC)

.angle#

Tugann .angle treoshuíomh an réada braite ar ais i gcéimeanna, ar slánuimhir é idir 0 agus 359.

# Turn left or right depending on how a
# configured box code is rotated
while True: 
    box_code = vision_1.take_snapshot(vision_1__BOX_CODE)

    if box_code[0].exists: 
        if 70 < box_code[0].angle < 110:
            drivetrain.turn_for(RIGHT, 45, DEGREES)
            
        elif 250 < box_code[0].angle < 290:
            drivetrain.turn_for(LEFT, 45, DEGREES)
        
        else:
            drivetrain.stop()

    wait(50, MSEC)

.originX#

.originX seolann sé comhordanáid-x chúinne uachtarach na láimhe clé de bhosca teorann an réada braite i bpicteilíní, ar slánuimhir idir 0 agus 316 í.

# Display if a red object is to the
# left or the right
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1,1)
    
    red_box = vision_1.take_snapshot(vision_1__RED_BOX)
    
    if red_box[0].exists:
        if red_box[0].originX < 160:
            brain.screen.print("To the left!")
        else: 
            brain.screen.print("To the right!")

    wait(50, MSEC)

.originY#

Tugann .originY comhordanáid-y chúinne uachtarach na láimhe clé de bhosca teorann an réada braite ar ais i bpicteilíní, ar slánuimhir idir 0 agus 212 í.

# Display if a red object is close or far
# from the robot
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1,1)
    
    red_box = vision_1.take_snapshot(vision_1__RED_BOX)

    if red_box[0].exists:
        if red_box[0].originY < 80:
            brain.screen.print("Far")
        else: 
            brain.screen.print("Close")

    wait(50, MSEC)

Tógálaithe#

Úsáidtear tógálaithe chun réada Vision, Signature, agus Code a chruthú de láimh, atá riachtanach chun an Braiteoir Fís a chumrú lasmuigh de VEXcode.

Vision#

Cruthaíonn Vision Braiteoir Fís.

Úsáid

Vision(smartport, brightness, sigs)

Paraiméadair

Cur síos

smartport

An Port Cliste a bhfuil an Braiteoir Fís ceangailte leis, scríofa mar Ports.PORTx áit a seasann x do uimhir an phoirt.

brightness

Roghnach. An luach gile don Braiteoir Fís, ó 1 go 100.

sigs

Roghnach. Ainm réad amháin nó níos mó Síniú Datha nó Cód Datha scartha le camóga (,).

# Create the Color Signatures
RED_BOX = Signature(1, 10121, 10757, 10439,-1657, -1223, -1440, 2.5, 1)
BLUE_BOX = Signature(2, -4443, -3373, -3908,6253, 7741, 6997, 2.5, 1)

# Create the Color Code
BOX_CODE = Code(RED_BOX, BLUE_BOX)

"""
Create a Vision Sensor with the following values:
- Port 1
- brightness: 80
- RED_BOX and BOX_CODE signatures
"""
vision_1 = Vision(Ports.PORT1, 80, RED_BOX, BOX_CODE)

Signature#

Cruthaíonn Signature Síniú Datha. Is féidir suas le seacht Síniú Datha éagsúla a stóráil ar Braiteoir Fís ag an am céanna.

Úsáid:

Signature(index, uMin, uMax, uMean, vMin, vMax, vMean, rgb, type)

Paraiméadar

Cur síos

index

Innéacs an réada Signature , ó 1 - 7. Nóta: Má chruthaítear dhá réad Signature leis an uimhir innéacs chéanna, cuirfidh an dara réad cruthaithe sárú ar an gcéad cheann.

uMin

An luach ó uMin san Fhóntas Fís.

uMax

An luach ó uMax san Fhóntas Fís.

uMean

An luach ó uMean san Fhóntas Fís.

vMin

An luach ó vMin san Fhóntas Fís.

vMax

An luach ó vMax san Fhóntas Fís.

vMean

An luach ó vMean san Fhís-Uirlis.

rgb

An luach ó rgb san Fhóntas Fís.

type

An luach ó type san Fhóntas Fís.

Chun na luachanna a fháil chun Síniú Datha a chruthú, téigh go dtí an Fís-Fhóntais. Nuair a bheidh Síniú Datha cumraithe, cóipeáil na luachanna paraiméadair ón bhfuinneog Cumraíochta.

"""
Create a Color Signature with the following values:
- index: 1
- uMin: 10121
- uMax: 10757
- uMean: 10439
- vMin: -1657
- vMax: -1223
- vMean: -1440
- rgb: 2.5
- type: 1
"""
RED_BOX = Signature(1, 10121, 10757, 10439,-1657, -1223, -1440,2.5, 1)

Code#

Cruthaíonn Cód Code Cód Dathanna. Éilíonn sé dhá Shíniú Dathanna ar a laghad atá sainithe cheana féin chun go n-úsáidfear é. Is féidir suas le hocht gCód Dathanna éagsúla a stóráil ar Braiteoir Fís ag an am céanna.

Úsáid:

Code(sig1, sig2, sig3, sig4, sig5)

Paraiméadar

Cur síos

sig1

Síniú Datha a cruthaíodh roimhe seo.

sig2

Síniú Datha a cruthaíodh roimhe seo.

sig3

Roghnach. Síniú Datha a cruthaíodh roimhe seo.

sig4

Roghnach. Síniú Datha a cruthaíodh roimhe seo.

sig5

Roghnach. Síniú Datha a cruthaíodh roimhe seo.

# Create the Color Signatures
RED_BOX = Signature(1, 10121, 10757, 10439,-1657, -1223, -1440, 2.5, 1)
BLUE_BOX = Signature(2, -4443, -3373, -3908,6253, 7741, 6997, 2.5, 1)

# Create a Color Code with the Color Signatures
BOX_CODE = Code(RED_BOX, BLUE_BOX)