Blocket Förgrening

Blocket Förgrening är en behållare som kan innehålla två eller flera sekvenser av programmeringsblock. Varje sekvens kallas för ett fall. Ett test i början av förgreningen styr vilket fall som ska köras. Bara ett fall åt gången körs varje gång förgreningen körs.
Förgreningstestet som visas här kan avgöra vilket fall som ska köras baserat på ett sensordatavärde eller ett värde från en dataledning. När ett fall har valts och körts fortsätter programmet med eventuella block som följer efter förgreningen.

Exempel
Programmet nedan får en robot att säga ”Touch” (tryck). Sedan testar det om trycksensorn är intryckt. Om så är fallet körs Sant-fallet (överst), och texten ”Thumbs up” (tummen upp) visas på roboten samtidigt som den säger ”Yes” (ja). Om trycksensorn inte är intryckt körs Falskt-fallet (längst ned), och texten ”Thumbs down” (tummen ned) visas på roboten samtidigt som den säger ”No” (nej). Efter förgreningen säger roboten ”Thank you” (tack).
Exempel
Sant-fall
Falskt-fall

Trycksensorn testas så fort roboten har sagt ”Touch” (tryck). Om sensorn hålls nedtryckt i det ögonblicket kör förgreningen Sant-fallet. Annars kör den Falskt-fallet.
Tips och trick
En förgrening väntar inte på att ett sensordatavärde eller en dataledning ska nå ett visst värde. Testet körs så snart blocket Förgrening startat. Något av fallen väljs och körs omedelbart efter testet.
I programmet ovan kan du trycka på trycksensorn före testet (eller till och med innan programmet startar) och hålla den nedtryckt under testet för att se till att förgreningen kör Sant-fallet. Prova att se hur länge du kan vänta innan du trycker in sensorn och ändå få roboten att säga ”Yes” (ja).
Du kan lämna ett fall i en förgrening tomt om du inte vill att roboten ska göra något i just den situationen. Prova att ta bort de två blocken från Falskt-fallet i programmet ovan och se vad som händer.
Flikvy
En förgrening kan visas med platt vy, som i exemplet ovan, eller med flikvy, som i illustrationen nedan. Med platt vy visas samtliga fall på olika rader. Med flikvyn är bara ett av fallen synligt åt gången.

Du kan använda flikvyn om du vill att programmet ska ta mindre plats på skärmen. Vyn påverkar inte hur förgreningen körs.



Väljare för platt vy/flikvy
Sant-fall
Falskt-fall

Om du vill växla mellan platt vy och flikvy i en förgrening klickar du på väljaren för platt vy/flikvy.

Om du vill visa ett annat fall inuti en förgrening med flikvyn, klickar du på de olika flikarna högst upp på förgreningens kant.
Tips och trick
Blocken i samtliga fall hos en förgrening med flikar ingår som en del i ditt program, även om du bara kan se några av dem åt gången.
Välj förgreningstest


Lägesväljare
Portväljare
Indata

Om du vill bestämma vilken typ av test förgreningen ska använda för att avgöra vilket fall som ska köras använder du lägesväljaren. Du kan testa ett sensorvärde eller ett dataledningsvärde.

Om du väljer ett läge där en port används, använder du portväljaren för att kontrollera att porten motsvarar den EV3-enhetsport som sensorn eller motorn är ansluten till.

Vilka indata som är tillgängliga beror på vilket läge som har valts. I vissa lägen kan du jämföra ett sensorvärde med ett tröskelvärde, och i andra lägen kan du testa mot specifika sensorvärden. Lägena beskrivs nedan.
Testa ett sensortröskelvärde
Blocket Förgrening innehåller flera lägen som avläser ett numeriskt datavärde från sensorn och jämför det med ett tröskelvärde för att få fram ett Sant eller Falskt resultat. I läget Färgsensor – Jämför – Reflekterad ljusstyrka kan du till exempel testa om den reflekterade ljusstyrkan från färgsensorn är lägre än 50.

I sådana lägen innehåller blocket Förgrening två fall. Om resultatet av testet är Sant körs Sant-fallet. Annars körs Falskt-fallet.
Tips och trick
Sant-fallet är det viktigaste fallet i platt vy och är märkt med ett bockmarkering. Falskt-fallet är det nedersta fallet och är märkt med ett kryss, ”X”.
Om du vill använda ett läge med ett sensortröskelvärde väljer du ett alternativ för Jämför typ (till exempel Mindre än) och anger det tröskelvärde (till exempel 50) som sensorns data ska jämföras med. Blocket Förgrening använder en enskild sensoravläsning och jämför den med tröskelvärdet för att få fram ett Sant eller Falskt resultat.
Exempel
I det här programmet använder blocket Förgrening läget Färgsensor – Jämför – Reflekterad ljusstyrka för att testa om den reflekterade ljusstyrkan är lägre än 50 %. Om så är fallet visas texten ”Low” (låg). Annars visas ”High” (hög). Förgreningen upprepas i en loop, så att displayen uppdateras fortlöpande baserat på nya sensortester.
Tips och trick
Sensortester utförs på mycket kort tid. Utan loopen i exemplet ovan skulle programmet bara testa sensorn en gång och bli färdigt så snabbt att du inte ens skulle märka det.
Testa utifrån specifika sensorvärden
Följande lägen tillåter att en förgrening testar utifrån specifika sensorvärden. Du kan skapa två eller flera fall i förgreningen som motsvarar olika värden som du vill testa mot, så att förgreningen kan välja det fall som stämmer.
LägeAnvändningSe
Enhetsknappar – mäta Välj mellan två eller flera fall, beroende på vilken enhetsknapp som trycks in.Se Använda enhetsknapparna
Enhetsknappar – jämför Välj mellan två fall beroende på vilken av de valda enhetsknapparna som trycks in, släpps eller snabbtrycks.Se Använda enhetsknapparna
Färgsensor – Mäta – Färg Välj mellan två eller flera fall, beroende på vilken färg som detekteras.Använda färgsensorn
Färgsensor – Jämför – Färg Välj mellan två olika fall beroende på om någon av de valda färgerna detekteras eller inte.Använda färgsensorn
IR-sensor – Mäta – Fjärr Välj mellan två eller flera fall beroende på vilken/vilka knappar som trycks in på IR-sändaren.Använda läget Fjärr på IR-sensorn
IR-sensor – Jämför – Fjärr Välj mellan två fall beroende på om en specifik knapp på IR-sändaren trycks in (eller om en knapp i en specifik uppsättning knappar trycks in).Använda läget Fjärr på IR-sensorn
Trycksensor Välj mellan två fall beroende på om trycksensorn trycks in, släpps, snabbtrycks eller inte.Använda trycksensorn
Ultraljudssensor - Jämför - Förekomst Välj mellan två fall beroende på om en ultraljudssignal detekteras i läget för enbart lyssning.Använda ultraljudssensorn
Meddelanden Välj mellan två fall utifrån ett meddelandevärde.Meddelanden
Testa utifrån flera värden
Mäta-lägena för sensorn i blocket Förgrening ger dig möjlighet att specificera flera (två eller flera) olika sensorvärden att testa mot. Du kan tilldela varje värde ett eget fall i förgreningen. Till exempel kan du i läget Färgsensor – Mäta – Färg testa mot färgerna svart, vit och röd och skapa tre olika fall, ett för varje färg.




Lägg till fall
Fallvärde
Standardfall
Ta bort fall

Om du vill använda flera fall i ett Mäta-sensorläge klickar du på knappen Lägg till fall och skapar så många fall du behöver. Klicka på fallvärdet för varje fall och välj ett värde för sensorn från listan. Om du vill ta bort ett fall kan du klicka på knappen Ta bort fall.

Klicka på knappen Standardfall om du vill markera något av fallen som standardfall. Standardfallet körs när sensorn detekterar ett värde som inte stämmer med något av fallen i förgreningen.

Se programmeringsexempel: Säg ”Red” (röd), ”Green” (grön) och ”Blue” (blå) när färgerna detekteras i Använda färgsensorn.

Se programmeringsexempel: En kontrollpanel för enhetsknappar i Använda enhetsknapparna.
Testa ett värde från en dataledning
I lägena Logik, Text och Numerisk kan förgreningen välja vilket fall som ska köras baserat på ett indatavärde från en dataledning.
Lägen
Läget Logik
I läget Logik väljer en förgrening mellan ett Sant-fall och ett Falskt-fall baserat på värdet i indataparametern Logik. Du kan ansluta en logikutgång från valfritt programmeringsblock till logikingången med hjälp av en dataledning.

Programmeringsexempel: Se Blocket Jämför.
Läget Text
I läget Text jämför förgreningen värdet i indataparametern Text med två eller flera Text-värden som du anger, där varje värde motsvarar ett fall. Det fall vars värde stämmer med Text-indatavärdet körs. Om inga värden stämmer körs standardvärdet.

Information om hur du skapar flera fall finns under Testa utifrån flera värden. Varje fall i läget Text har ett Text-värde som du kan skriva direkt i fallvärdet.
Exempel
I det här exemplet använder en förgrening i Text-läget utdata från ett block av typen Meddelanden för att välja mellan tre olika fall, beroende på vilket meddelande som tas emot.
Läget Numerisk
I läget Numerisk jämför förgreningen värdet i indataparametern Siffra med två eller flera numeriska värden som du anger, där varje värde motsvarar ett fall. Det fall vars värde stämmer med indatavärdet Siffra körs. Om inga värden stämmer körs standardvärdet.

Information om hur du skapar flera fall finns under Testa utifrån flera värden. Varje fall i läget Numerisk har ett numeriskt värde som du kan skriva direkt i fallvärdet.
Exempel
I det här exemplet använder en förgrening i läget Numerisk utdata från ett block av typen Variabel för att välja mellan tre olika fall. Standardfallet för förgreningen är tomt, vilket innebär att förgreningen inte gör någonting om variabeln ”Action” (åtgärd) har något annat värde än 1, 2 eller 3.
Ändra storlek på en förgrening
Blocket Förgrening utökas oftast automatiskt för att ge plats åt nya programmeringsblock som du drar till de fall som ingår. Du kan också ändra storlek på ett fall manuellt om du behöver det. Om du vill ändra storlek på ett fall med platt vy klickar du på den vänstra eller högra kanten av förgreningen vid det fall som du vill ändra storlek på. Sedan drar du i handtagen för storleksändring som visas kring ytterkanterna.

Tips och trick
I flikvyn visas alla fall med samma storlek. Om du ändrar storlek på ett fall för att göra det större visas alla fall i samma förstorade område.
Indata
Vilka indatavärden som är tillgängliga för blocket Förgrening beror på vilket läge som har valts. Du kan fylla i indatavärdena direkt i blocket. Det går också att ange indatavärdena med hjälp av dataledningar från utgångarna för andra programmeringsblock.
IndataTypAnteckningar
Logik LogikAnvänds för att välja ett fall i läget Logik
Siffra NumeriskAnvänds för att välja ett fall i läget Numerisk.
Text TextAnvänds för att välja ett fall i läget Text.
Jämför typ NumeriskJämförelsetyp för ett läge med ett tröskelvärde som indata.
0: = (lika med)
1: ≠ (inte lika med)
2: > (större än)
3: ≥ (större än eller lika med)
4: < (mindre än)
5: ≤ (mindre än eller lika med)
Tröskelvärde NumeriskVärde att jämföra sensordata med för att välja ett Sant- eller Falskt-fall utifrån ett numeriskt sensorvärde.
(Indata för enstaka sensortyper)Mer information om sensordata finns i hjälpavsnitten för de olika typerna av sensorer.
Förgrening
Snabblänkar