ROBO Pro Coding (NL) Algemeen gebruik Algemeen gebruik ROBO Pro Coding is een ontwikkelingsplatform voor het programmeren van de nieuwe TXT 4.0 Controller en daarmee voor het programmeren van fischertechnik-modellen. ROBO Pro Coding is beschikbaar voor Windows, macOS, Linux, iOS en Android en kan vanuit onderstaande bronnen worden gedownload.       De afgebeelde code kan voor dit model (links) worden gebruikt.Het webplatform van ROBO Pro Coding heeft de volgende opbouw (de ciijfers verwijzen naar de aangegeven bereiken in de afbeelding): Hier staat dat, wat in blokken is geprogrammeerd, in Python Dat is het veld waarin de blokken worden getrokken om te programmeren. In de console wordt het verloop van het programma vastgelegd. Stoppunten worden voor het debuggen van programma’s gebruikt. Deze definiëren bepaalde plaatsen in de code, waarbij het programma wordt gestopt. Ze worden met de Editor geplaatst en bestaan uit de bestandsnaam + het nummer van de regel. Onder afdruk kan de inhoud van de variabelen worden bekeken. De openingsstapel laat de gecompliceerdheid van het openen zien. In het bijzonder bij het gebruik van functies kan dat helpen. Hier vindt je alle blokken voor het programmeren gesorteerd aan de hand van de categorieën actuators, sensoren en verwerking Deze regel wordt afzonderlijk onder de kopregel uitgelegd. Hier kan het leerniveau aan de gebruiker worden aangepast. Afhankelijk van het niveau worden bijv. alleen de allerbelangrijkste blokken getoond. Kopregel In de kopregel staan (v.l.n.r.) de bedieningselementen voor het starten van het programma, het stoppen van het programma, het starten van de debugger, het openen van de interfacetest, het uploaden van het actuele programma en het verbinden met de controller. Starten van programma's Wanneer jij jou programma vanuit ROBO Pro Coding wilt starten, moet je op dit symbool klikken. Programma’s stoppen Wanneer je een programma wilt stoppen voordat het uit zichzelf wordt beëindigd, moet je dit symbool aanraken. De debugger De debugger moet het opsporen van fouten in het programma vergemakkelijken. Via het menu in de rechter bovenhoek kun je stap voor stap door de code lopen en zo een programmadoorloop simuleren. Het programma reageert daarbij desondanks op de interactie met de sensoren, zoals bijv. het indrukken van een toets. Terwijl het programma wordt doorlopen kun je links in het grote veld zien in welk blok je bent en rechts op welke plaats in de Python-code. De interfacetest Wanneer je op het symbool met de drie regelaars klikt, wordt dit venster geopend: Hier kun je alle aangesloten apparaten zien. Bij actuators kun je met schuifregelaars controleren of deze werken. Bij de sensoren wordt de gemeten waarde aangegeven (bij de toets staat bijv. een 1, omdat deze ingedrukt is). Via het dropdown-menu (klein driehoekje) kan worden aangegeven, wat is aangesloten. Uploaden van programma's Heb je een programma geschreven en wil je dat het zelfstandig op de controller draait, dan kun je het met behulp van dit symbool naar de controller uploaden. Het duikt dan op onder de bestanden op de controller. Wanneer je daar op de programmanaam tikt, kom je in de submap van het programma terecht. Hier staat een bestand dat "main.py" heet. Klik hierop en de "open"-knop rechtsonder moet groen gaan branden. Druk op de "open"-knop en er wordt nog een menu met vier opties geopend: Laden: laad het programma en dan kun je het vanuit het homescherm opstarten. Auto load: de volgende keer dat de controller wordt opgestart wordt het programma automatisch weer geladen. Auto start: de volgende keer dat de controller wordt opgestart wordt het programma automatisch weer geladen en direct gestart. Delete project: het programma wordt door de controller gewist. Met de controller verbinden Hier wordt uitgelegd hoe je met de controller wordt verbonden. Configuratie van de controller Om componenten, zoals sensoren en actuators, in het programma te kunnen gebruiken, moet je deze op de controller aansluiten en dan niet alleen fysiek, maar ook in de software. De configuratie van de controller is altijd automatisch geopend en kan bovenin direct naast het hoofdprogramma worden bereikt. Aan de linker kant wordt nu de controller en alle mogelijke componenten, die op de controller kunnen worden aangesloten, weergegeven. Je ziet de controller op het programmeervlak. Aansluitend kun je de gewenste componenten met drag and drop (verslepen en neerzetten) op de controller aansluiten. Opslaan van programma's Wanneer je een programma op wilt slaan, moet je op de drie streepjes linksboven op de ROBO Pro Coding-website klikken. Tik hier op de optie "Exporteren". Nu kun je kiezen of je een programma lokaal op je eigen apparaat of bij GitLab op wilt slaan. Lokaal: Nadat je de naam van jou programma hebt ingevoerd hoef je alleen maar op "Exporteren" te klikken en het programmabestand is op jou eigen apparaat opgeslagen. GitLab: Nadat je de naam van jou programma hebt ingevoerd en de aangegeven stappen hebt gevolgd om de persoonlijke toegangstoken in te voeren, hoef je alleen maar op "Exporteren" te klikken en het programmabestand is op je eigen GitLab-account opgeslagen. Actuators Uitgangen Het blok Start elke keer Het blok Start elke keer biedt de mogelijkheid om een programma te laten draaien, wanneer aan een voorwaarde is voldaan. Dit werkt dus net als een verschil tussen gevallen, maar wordt tijdens het gehele verloop van het programma niet slechts eenmaal doorlopen, maar elke keer wanneer aan de voorwaarde wordt voldaan. Het blok Start elke keer: is een afkorting voor onderstaande constructie: Je kunt in het blok Start elke keer van de categorie Uitgangen alle voorwaarden uit juist deze categorie gebruiken. Aanwijzing: Het programmagedeelte van het blok Start elke keer moet kort worden gehouden en mag geen blokkerende openingshandelingen of eindeloze loops bevatten, zodat dit deel van het programma snel kan worden afgewerkt. LED’s Instellen Met de blokken stel LED … in en stel LED-helderheid … in kun je de LED aan- en uitzetten respectievelijk hun helderheid op een bepaalde waarde (van 0 tot 512) instellen. Openen Met het blok haal LED-helderheid kan de helderheid van een LED geopend en als waarde verder verwerkt worden. Opvragen Met de blokken is LED ... en is LED-helderheid ... kun je de activiteit respectievelijk de helderheid van een LED als voorwaarde gebruiken. In het voorbeeld hebben wij de helderheid van de LED op 512 ingesteld, voor zover zij deze helderheid niet al heeft. Motoren Het symbool op de motorblokken is plaatsvervangend voor alle motoren, die geen encoder- of servomotoren zijn. Instellen Met het blok stel motortoerental in op [] … kun je het toerental van een motor op een bepaalde waarde (van 0 tot 512) instellen. Openen Met het blok haal motortoerental kan het toerental van een motor geopend en als waarde verder verwerkt worden. Opvragen Met de blokken draait motor en is motortoerental ... kun je de activiteit respectievelijk het toerental van een motor als voorwaarde gebruiken. Stoppen Met het blok stop motor … is het mogelijk om een motor te stoppen. Compressor Instellen Met het blok stel compressor [] in kun je de compressor in- of uitschakelen. Opvragen Met het blok is compressor [] kun je de activiteit van een compressor als voorwaarde gebruiken. Magneetklep Instellen Met het blok stel magneetklep [] in kun je de magneetklep in- of uitschakelen. Hier betekent "aan” dat de klep open staat en "uit", dat de klep gesloten is. Opvragen Met het blok is magneetklep [] kun je de activiteit van een magneetklep als voorwaarde gebruiken.Geluid De TXT 4.0 Controller heeft een ingebouwde luidspreker en biedt daarmee de mogelijkheid om audiobestanden af te spelen. Het blok Start elke keer Het blok Start elke keer biedt de mogelijkheid om een programma te laten draaien, wanneer aan een voorwaarde is voldaan. Dit werkt dus net als een verschil tussen gevallen, maar wordt tijdens het gehele verloop van het programma niet slechts eenmaal doorlopen, maar elke keer wanneer aan de voorwaarde wordt voldaan. Het blok Start elke keer: is een afkorting voor onderstaande constructie: Je kunt in het blok Start elke keer van de categorie Geluid alle voorwaarden uit juist deze categorie gebruiken. Aanwijzing: Het programmagedeelte van het blok Start elke keer moet kort worden gehouden en mag geen blokkerende openingshandelingen of eindeloze loops bevatten, zodat dit deel van het programma snel kan worden afgewerkt. Afspelen Vooraf geïnstalleerde audiobestanden Met het onderstaande blok kun je een van de 29 vooraf geïnstalleerde audiobestanden afspelen. Het gewenste audiobestand kun je via het dropdown-menu (klein driehoekje) kiezen. Het is bovendien mogelijk om het geluid in een permanente loop af te spelen. Daarvoor moet je een vinkje achter het symbool voor de permanente loop zetten. Eigen audiobestanden Wanneer je een eigen geluidsfragment wilt afspelen kun je het blok gebruiken. Om je eigen geluidsfragmenten in het blok in te bedden moet je: met de controller verbonden zijn. het IP-adres van de controller in de browser invoeren (hierbij moet het IP-adres worden gekozen dat ook voor het verbinden met de controller is gebruikt). op de geopende pagina USER: ft, PASSWORD: fischertechnik invoeren. de map geluidsfragmenten openen en daar via het plusteken het gewenste audiobestand naar de controller uploaden (belangrijk: het audiobestand moet beschikbaar zijn in het wav-formaat). In het ROBO Pro Coding-blok onder het pad "./bestandsnaam.wav" aangeven. Ook hier heb je de optie op het geluidsfragment in een permanente loop af te spelen. Opvragen Om op te vragen of een audiobestand moet worden afgespeeld maak je gebruik van het blok geef geluidsfragment weer. Dit kan als voorwaarde in het programma worden gebruikt. Stoppen Om een geluidsfragment te stoppen wordt eenvoudig het blok stop geluidsfragment in het programma gebruikt.Weergave Met de blokken Categorie display kan het beeldscherm van de TXT 4.0 Controller vorm gegeven en bruikbaar gemaakt worden. Dit gebeurt in twee stappen: Configureren, hetgeen wil zeggen dat een nieuw bestand uit de Categorie display openen en via de pagina’s Symbool met behulp van het plusteken linksboven de gewenste elementen naar het raster trekken (dit geeft het configureerbare gedeelte van het display weer) en zo nodig de specificaties aanpassen. Programmeren, wil zeggen in het hoofdprogramma met behulp van de blokken Categorie display de werking van interacties met het display programmeren. Blokken Opvragen van gebeurtenissen Het blok Gebeurtenis [] vraagt de weergavewaarde van een element op. Dit blok kan alleen in de gebeurtenisprogramma’s worden gebruikt. In deze gebeurtenisprogramma’s heeft het blok automatisch betrekking op de gebeurtenis in het programma waarin het wordt gebruikt. Het geschikte type voor de weergavewaarden kan via het dropdown-menu (klein driehoekje) worden gekozen: Tekstveld Met het element Tekstveld kun je een tekst op het beeldscherm plaatsen. Het symbool in de weergaveconfigurator is het etiket. Wanneer je dit symbool in het raster trekt, wordt rechts een venster geopend. Hier kan onder Inspecteur de grootte van het tekstveld in pixels, de positie van het tekstveld in pixels (de hoek van het tekstveld linksboven ligt op het aangegeven punt), de naam van het tekstveld en de inhoud van het tekstveld (deze tekst wordt bij het starten van het display weergegeven) worden vastgelegd. Met het blok stel tekstveld Tekst ... in kan de afgebeelde tekst in de loop van het programma worden gewijzigd. Invoeren Het element Invoer maakt het mogelijk dat gebruikers via de controller tekst invoeren. Het bijbehorende symbool in de weergaveconfigurator is het “T”-teken. Wanneer je dit symbool in het raster trekt, wordt rechts een venster geopend. Hier kan onder Inspecteur de grootte van het invoerveld in pixels, de positie van het invoerveld in pixels (de hoek van het invoerveld linksboven ligt op het aangegeven punt), de naam van het invoerveld en de inhoud van het invoerveld (deze tekst wordt bij het starten van het display weergegeven) worden vastgelegd. Met het blok stel invoerveld Tekst ... in kan de afgebeelde tekst in de loop van het programma worden gewijzigd. Invoerprogramma Het invoerprogramma draait wanneer een invoer is beëindigd. Dit wordt afzonderlijk van het hoofdprogramma geschreven. Variabelen werken over het geheel genomen via beide programma's. Het invoerprogramma draait in het blok wanneer een invoer is beëindigd. Het blok Gebeurtenis [] wordt in het invoerprogramma op "Tekst" gezet. In dit voorbeeld wordt de variabele Naam op de ingevoerde tekst gezet, en wordt dan in het hoofdprogramma gebruikt om de ingevoerde tekst weer te geven: Meetinstrument De meetinstrument-functie kan waarden (geen waarden lager dan 1) weergeven. Het bijbehorende symbool in de displayconfigurator is de schaalverdeling. Wanneer je dit symbool in het raster trekt, wordt rechts een venster geopend. Hier kan onder Inspecteur de grootte van het meetinstrument in pixels, de positie van het meetinstrument in pixels (de hoek van het meetkaliber linksboven ligt op het aangegeven punt), de naam van het meetinstrument, de uitlijning van het meetinstrument, het waardegebied dat door het meetinstrument wordt weergegeven, en de waarde van het meetinstrument, die bij het starten van het display wordt weergegeven worden vastgelegd. Met het blok stel meetinstrument in op waarde ... kan het meetinstrument op de ingevoerde waarden worden ingesteld. Deze waarde moet binnen het vooraf gedefinieerde waardebereik liggen. Wanneer de waarde buiten het waardebereik ligt wordt, afhankelijk van het feit of de waarde te hoog of te laag is, een van de grenzen van het waardebereik weergegeven. Statusregel De statusindicator geeft de activiteit van iets aan. Afhankelijk van de status brandt deze ("actief") of doet dat niet ("niet actief"). Het symbool in de displayconfigurator is een brandende diode. Wanneer je dit symbool in het raster trekt, wordt rechts een venster geopend. Hier kan onder Inspecteur de grootte van de statusregel in pixels, de positie van de statusregel in pixels (de hoek van de statusindicator linksboven ligt op het aangegeven punt), de naam van de statusregel, de kleur van de statusregel en of de statusregel aan het begin “actief” of “niet actief” moet zijn, worden vastgelegd. Met het blok stel statusregel actief [] in kan de statusregel geactiveerd respectievelijk uitgeschakeld worden. In het dropdown-menu (klein driehoekje) kan worden gekozen of de statusregel op “actief” of “niet actief” moet worden ingesteld. Schuifregelaar De schuifregelaar retourneert de waarden afhankelijk van zijn positie. De positie kan daarbij door de gebruiker met het touchscreen worden veranderd. De waarde kan met het blok Gebeurtenis [] worden opgevraagd, zodra de schuifregelaar niet meer wordt bewogen. De opgevraagde waarde is een decimaal getal. Wil je dat de waarde van de schuifregelaar als heel getal wordt weergegeven, dan moet je het afronden-blok gebruiken. Het bijbehorende symbool voor de schuifregelaar is de streep met de cirkel. Wanneer je dit symbool in het raster trekt, wordt rechts een venster geopend. Hier kan onder Inspecteur de grootte van de schuifregelaar in pixels, de positie van de schuifregelaar in pixels (de hoek van de schuifregelaar linksboven ligt op het aangegeven punt) de naam van de schuifregelaar, de activiteit van de schuifregelaar, de uitlijning van de schuifregelaar, het waardebereik dat door de schuifregelaar wordt afgedekt en de waarde waarop de regelaar bij het starten van het display staat worden vastgelegd. Met het blok stel de schuifregelaarwaarde … in kun je de schuifregelaar naar een andere waarde verschuiven. Met stel schuifregelaar geactiveerd [] in kun je de activiteit via het dropdown-menu (klein driehoekje) omwisselen. Schuifregelaarprogramma Het schuifregelaarprogramma draait, nadat de schuifregelaar werd verschoven. Dit wordt afzonderlijk van het hoofdprogramma geschreven. Variabelen werken over het geheel genomen via beide programma's. Het schuifregelaarprogramma draait in het blok wanneer de schuifregelaar beweegt. Het blok Gebeurtenis [] wordt in schuifregelaarprogramma "value" gezet. In dit voorbeeld wordt het toerental van de motor met de schuifregelaar geregeld. De waarde van de schuifregelaar moet afgerond zijn, aangezien de motor alleen hele getallen als toerental accepteert: Button De button is een veld met tekst, die kan worden ingedrukt. Wanneer je op de button drukt begint het buttonprogramma te draaien, zodra deze weer wordt losgelaten. Het bijbehorende symbool voor de button is het vierkant met daarop de tekst "OK". Wanneer je dit symbool in het raster trekt, wordt rechts een venster geopend. Hier kan onder Inspecteur de grootte van de button in pixels, de positie van de button in pixels (de hoek van de button linksboven ligt op het aangegeven punt), de naam van de button, de tekst die op de button staat en de activiteit van de button worden vastgelegd. Met stel button geactiveerd [] in kun je de activiteit via het dropdown-menu (klein driehoekje) omwisselen. Buttonprogramma Het buttonprogramma begint te draaien zodra de button niet meer wordt ingedrukt. Dit wordt afzonderlijk van het hoofdprogramma geschreven. Variabelen werken over het geheel genomen via beide programma's. Het buttonprogramma draait in het blok wanneer de button is ingedrukt. Het blok Gebeurtenis [] kan niet in het buttonprogramma worden gebruikt, aangezien de button geen retourneringswaarde heeft. In dit voorbeeld wordt de LED geactiveerd wanneer de button wordt ingedrukt. Schakelaar De schakelaar kan twee standen aannemen en staat altijd in precies een van deze beide standen. Afhankelijk van de stand geef deze waar of onwaar weer. Het bijbehorende symbool voor de schakelaar is het ovaal met de punt. Wanneer je dit symbool in het raster trekt, wordt rechts een venster geopend. Hier kan onder Inspecteur de grootte van de schakelaar in pixels, de positie van de schakelaar in pixels (de hoek van de schakelaar linksboven ligt op het aangegeven punt), de naam van de schakelaar, de tekst die naast de schakelaar staat, de activiteit van de schakelaar en de toestand waarin de schakelaar bij het starten van het programma moet staan aangepast worden. Het blok neemt twee functies voor zijn rekening. Je kunt of de activiteit (enabled in het dropdown-menu selecteren) of de toestand (checked in het dropdown-menu selecteren) op waar of onwaar instellen. Schakelaarprogramma Het schakelaarprogramma gaat elke keer draaien wanneer de schakelaar wordt omgezet. Dit wordt afzonderlijk van het hoofdprogramma geschreven. Variabelen werken over het geheel genomen via beide programma's. Het schakelaarprogramma draait in het blok wanneer de schakelaar is omgezet. Het blok Gebeurtenis [] wordt in het schakelaarprogramma op "checked" ingesteld en geeft waar of onwaar weer. Dit voorbeeldprogramma schakelt de LED in wanneer de schakelaar is omgezet, in het andere geval wordt de LED uitgeschakeld: Selectievakje Het selectievakje kan twee standen aannemen en staat altijd in precies een van deze beide standen. Afhankelijk van de stand geeft deze waar of onwaar weer. Het symbool voor het selectievakje is het vierkant met het vinkje. Wanneer je dit symbool in het raster trekt, wordt rechts een venster geopend. Hier kan onder Inspecteur de grootte van het selectievakje in pixels, de positie van het selectievakje in pixels (de hoek van de schakelaar linksboven ligt op het aangegeven punt), de naam van het selectievakje, de tekst die naast het selectievakje staat, de activiteit van het selectievakje en de toestand waarin het selectievakje bij het starten van het programma moet staan worden vastgelegd. Het volgende blok neemt twee functies voor zijn rekening. Via het dropdown-menu (klein driehoekje) kan worden aangegeven, welke je gebruikt. Je kunt of de activiteit (enabled in het dropdown-menu selecteren) of de toestand (checked in het dropdown-menu selecteren) op waar of onwaar instellen. Selectievakjeprogramma Het selectievakjeprogramma gaat elke keer draaien wanneer het selectievakje wordt aangeklikt. Dit wordt afzonderlijk van het hoofdprogramma geschreven. Variabelen werken over beide programma's. Het selectievakjeprogramma draait in het blok wanneer het selectievakje wordt omgezet. Het blok Gebeurtenis [] wordt in het schakelaarprogramma op "checked" ingesteld en geeft waar of onwaar weer. Dit voorbeeldprogramma schakelt de LED in wanneer een vinkje in het selectievakje wordt gezet, in het andere geval wordt de LED uitgeschakeld. Motor Het blok Start elke keer Het blok Start elke keer biedt de mogelijkheid om een programma te laten draaien, wanneer aan een voorwaarde is voldaan. Dit werkt dus net als een verschil tussen gevallen, maar wordt tijdens het gehele verloop van het programma niet slechts eenmaal doorlopen, maar elke keer wanneer aan de voorwaarde wordt voldaan. Het blok Start elke keer: is een afkorting voor onderstaande constructie: Je kunt in het blok Start elke keer van de categorie Motor alle voorwaarden uit juist deze categorie gebruiken. Aanwijzing: Het programmagedeelte van het blok Start elke keer moet kort worden gehouden en mag geen blokkerende openingshandelingen of eindeloze loops bevatten, zodat dit deel van het programma snel kan worden afgewerkt. Motor Het symbool op de motorblokken is plaatsvervangend voor alle motoren, die geen encoder- of servomotoren zijn. Instellen Met het blok stel motortoerental in op [] … kun je het toerental van een motor op een bepaalde waarde (van 0 tot 512) instellen. Via het dropdown-menu (klein driehoekje) kan de draairichting worden geselecteerd. Openen Met het blok haal motortoerental kan het toerental van een motor geopend en als waarde verder verwerkt worden. Opvragen Met de blokken draait motor en is motortoerental ... kun je de activiteit respectievelijk het toerental van een motor als voorwaarde gebruiken. Stoppen Met het blok stop motor [] is het mogelijk om een motor te stoppen. Daarbij biedt het blok stop motor [] de opties om een motor direct of geleidelijk tot stilstand te brengen. De gewenste optie kun je via het dropdown-menu (klein driehoekje) kiezen: Servomotor Instellen Met het blok stel stand op … in kun je de stand van een motor op een bepaalde waarde (van 0 tot 512) instellen. 0 en 512 zijn de waarden voor de maximale uitslag naar rechts en links. Bij de waarde 256 staat de servomotor dienovereenkomstig in het midden. Openen Met het blok open stand kan de stand van een servomotor geopend en als waarde verder verwerkt worden. Encodermotor De encodermotor heeft dezelfde functie als een normale motor, maar heeft bovendien de mogelijkheid om het aantal omwentelingen te tellen en meerdere motoren synchroon aan te sturen. Een omwenteling wordt daarbij in ~64 stappen onderverdeeld. Instellen Met het blok kan het toerental van een motor op een bepaalde waarde (van 0-512) worden ingesteld. Via het dropdown-menu (klein driehoekje) kan de draairichting worden geselecteerd. Bovendien kan het aantal stappen worden ingevoerd, die de motor moet afleggen. In dit voorbeeld draait de motor 100 stappen, dus één en een derde omwenteling. Zoals in het voorbeeld is te zien heeft dit blok een plusteken, met behulp waarvan meerdere motoren synchroon kunnen worden aangestuurd. Het is mogelijk om motoren aan de hand van een master of een extensie te synchroniseren, een overkoepelende synchronisatie bijv. tussen motoren van de master en een extensie is niet mogelijk. Aanwijzing: Snel opeenvolgende synchronisatieprocessen, zoals bijv. door een loop mogelijk zijn (zie voorbeeld), kunnen de synchroniteit beïnvloeden of zelfs compleet verhinderen. Stoppen Met het blok stop motor … wordt een motor gestopt. Wil je meerdere motoren gelijktijdig stoppen, dan kun je met het linker plusteken in het blok maximaal drie andere motoren toevoegen. Opvragen Het blok heeft de positie bereikt wordt gebruikt om het bereiken van de positie als voorwaarde te gebruiken. Met positie wordt hier de eindpositie van een encodermotor na een volledig beëindigde stap bedoeld.Sensoren Invoeren Het blok Start elke keer Het blok Start elke keer biedt de mogelijkheid om een programma te laten draaien, wanneer aan een voorwaarde is voldaan. Dit werkt dus net als een verschil tussen gevallen, maar wordt tijdens het gehele verloop van het programma niet slechts eenmaal doorlopen, maar elke keer wanneer aan de voorwaarde wordt voldaan. Het blok Start elke keer: is een afkorting voor onderstaande constructie: Je kunt in het blok Start elke keer van de categorie Invoeren alle voorwaarden uit juist deze categorie gebruiken. Aanwijzing: Het programmagedeelte van het blok Start elke keer moet kort worden gehouden en mag geen blokkerende openingshandelingen of eindeloze loops bevatten, zodat dit deel van het programma snel kan worden afgewerkt. Knop De toets is een digitale sensor, die het onderscheid ziet tussen "Er vloeit stroom" en "Er vloeit geen stroom". Of er stroom vloeit is daarbij afhankelijk van de bedrading en of de toets is ingedrukt. Je kunt de toets dus op twee verschillende manier gebruiken: Als „Normally open-contact“:de contacten 1 en 3 worden aangesloten. Toets ingedrukt: er vloeit stroom.                                                                                                             Toets niet ingedrukt: er vloeit geen stroom Als „Normally closed-contact“: de contacten 1 en 2 worden aangesloten.                                                                                                                                               Toets ingedrukt: er vloeit geen stroom.                                                                                                   Toets niet ingedrukt: er vloeit stroom. Openen Met haal status minitoets op krijg je informatie of er wel of geen stroom door de toets stroomt. Wanneer er stroom vloeit wordt 1 aangegeven, vloeit er geen stroom, 0. Opvragen Om op te kunnen vragen of de toets in een bepaalde toestand verkeert, wordt gebruik gemaakt van blok is toets…. Via het dropdown-menu (klein driehoekje) kan worden aangegeven naar welke toestand wordt gevraagd. Dit blok kan als voorwaarde worden gebruikt. Ultrasoonsensor De ultrasoonsensor wordt gebruikt om afstanden te meten. Openen Met haal afstand ultrasoonsensor op krijg je de informatie hoever de sensor van het volgende voorwerp verwijderd is. De afstand wordt in cm aangegeven. Opvragen Om op te kunnen vragen of de sensor een bepaalde afstand tot het volgende voorwerp heeft, wordt gebruik gemaakt van het blok is afstand ultrasoonsensor …. Via het dropdown-menu (klein driehoekje) kan worden geselecteerd hoe de gemeten afstand met een ingevoerde waarde moet worden vergeleken (<, ≤, =, ≠, ≥, >). De vergelijkingswaarde wordt in het cijferveld aan het einde van het blok ingevoerd. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de gemeten afstand korter is dan 2 cm. Kleurensensor De kleurensensor zendt rood licht uit en meet hoeveel daarvan wordt gereflecteerd. Afhankelijk van de sterkte van de reflectie geeft de kleurensensor waarden van 0 tot 2.000 weer. Hij is uitstekend geschikt om van tevoren gekalibreerde kleuren te herkennen. Openen Met haal waarde kleurensensor krijg je informatie over hoe sterk een oppervlak reflecteert. Opvragen Om op te kunnen vragen of de sensor een bepaalde kleur voor zich heeft, wordt gebruik gemaakt van het blok is waarde kleurensensor …. Via het dropdown-menu (klein driehoekje) kan worden geselecteerd hoe de gemeten kleurwaarde met de ingevoerde waarde moet worden vergeleken (<, ≤, =, ≠, ≥, >). De vergelijkingswaarde wordt in het cijferveld aan het einde van het blok ingevoerd. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de gemeten kleurwaarde minder is dan 1.000. IR-spoorsensor De infrarood-spoorsensor is een digitale sensor voor het herkennen van een zwart spoor op een witte ondergrond, die bij een afstand van 5-30 mm van de sensor tot aan de ondergrond werkt. Openen Met haal status IR-spoorsensor krijg je 0, wanneer de sensor geen spoor herkent. Herkent de sensor een spoor dan wordt dit met een 1 aangegeven. Opvragen Om op te vragen of de IR-spoorsensor een spoor herkent, wordt de actuele spoorstatus met 0 of 1 vergeleken. Hiervoor kan het blok is status IR-spoorsensor [] … worden gebruikt. . Via het dropdown-menu (klein driehoekje) kan worden geselecteerd hoe de spoorstatus met de ingevoerde waarde moet worden vergeleken (<, ≤, =, ≠, ≥, >). De vergelijkingswaarde wordt in het cijferveld aan het einde van het blok ingevoerd. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de spoorstatus 0 is. Fototransistor De fototransistor is een digitale sensor, die licht van donker onderscheidt. Openen Met haal status fototransistor krijg je 0, wanneer de sensor geen licht herkent. Wanneer de sensor voldoende licht herkent, wordt dat met een 1 aangegeven. Opvragen Om op te vragen of de fototransistor licht of donker herkent, wordt de helderheidsstatus met 0 of 1 vergeleken. Hiervoor kan het blok is status fototransistor [] … worden gebruikt. Via het dropdown-menu (klein driehoekje) kan worden aangegeven of naar licht of donker moet worden gevraagd. Een mogelijk gebruik voor een fototransistor is een fotocel, zoals bij dit model. Fotoweerstand De weerstand van de fotoweerstand daalt wanneer deze aan meer licht wordt blootgesteld. De door de fotoweerstand uitgegeven waarde is dus een maat voor de helderheid. Openen Met haal waarde fotoweerstand krijg je de informatie over hoe helder het is. Hoe lager de aangegeven waarde des te lichter het is. Opvragen Om op te vragen of de fotoresistor een bepaalde helderheidswaarde mist, wordt het blok is waarde fotoweerstand [] ... gebruikt. Via het dropdown-menu (klein driehoekje) kan worden geselecteerd hoe de helderheidswaarde met de ingevoerde waarde moet worden vergeleken (<, ≤, =, ≠, ≥, >). De vergelijkingswaarde wordt in het cijferveld aan het einde van het blok ingevoerd. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de helderheidswaarde minder is dan 3.000. NTC-weerstand De NTC-weerstand is een niet-binaire temperatuursensor. Zijn elektrische weerstand daalt wanneer de temperatuur stijgt en is daarmee een maat voor de temperatuur. Openen Met haal NTC-weerstand [] krijg je hetzij een weerstandswaarde of de daaruit berekende temperatuur. Hetgeen moet worden aangegeven kan via het dropdown-menu (klein driehoekje) worden geselecteerd. Opvragen Om op te vragen of de NTC-weerstand een bepaalde waarde meet, wordt het blok is NTC-weerstand [] [] … gebruikt. Via het dropdown-menu (klein driehoekje) kan worden geselecteerd wat en met welke vergelijkingsoperator moet worden vergeleken. De vergelijkingswaarde wordt in het cijferveld aan het einde van het blok ingevoerd. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de temperatuur lager is dan 20. Tellers De encodermotor kan als teller worden gebruikt. Geteld worden het aantal omwentelingen, en niet alleen dan wanneer hij zelfstandig als motor draait, maar ook wanneer hij van buiten af mechanisch wordt aangedreven. Het blok Start elke keer Het blok Start elke keer biedt de mogelijkheid om een programma te laten draaien, wanneer aan een voorwaarde is voldaan. Dit werkt dus net als een verschil tussen gevallen, maar wordt tijdens het gehele verloop van het programma niet slechts eenmaal doorlopen, maar elke keer wanneer aan de voorwaarde wordt voldaan. Het blok Start elke keer: is een afkorting voor onderstaande constructie: Je kunt in het blok Start elke keer van de categorie Tellers alle voorwaarden uit juist deze categorie gebruiken. Aanwijzing: Het programmagedeelte van het blok Start elke keer moet kort worden gehouden en mag geen blokkerende openingshandelingen of eindeloze loops bevatten, zodat dit deel van het programma snel kan worden afgewerkt. Openen Met haal waarde teller krijg je de door de teller getelde waarde. Opvragen Om op te vragen of de teller een bepaalde waarde heeft geteld wordt dit blok gebruikt. Via het dropdown-menu (klein driehoekje) kan worden geselecteerd hoe de getelde waarde met de ingevoerde waarde moet worden vergeleken (<, ≤, =, ≠, ≥, >). Resetten De teller begint opnieuw bij 0, wanneer het blok reset teller wordt uitgevoerd.I2C De in dit hoofdstuk beschreven I2C-sensoren worden met een geschikte bandkabel met de TXT 4.0 Controller verbonden. Het blok Start elke keer Het blok Start elke keer biedt de mogelijkheid om een programma te laten draaien, wanneer aan een voorwaarde is voldaan. Dit werkt dus net als een verschil tussen gevallen, maar wordt tijdens het gehele verloop van het programma niet slechts eenmaal doorlopen, maar elke keer wanneer aan de voorwaarde wordt voldaan. Het blok Start elke keer: is een afkorting voor onderstaande constructie: Je kunt in het blok Start elke keer van de categorie I2C alle voorwaarden uit juist deze categorie gebruiken. Aanwijzing: Het programmagedeelte van het blok Start elke keer moet kort worden gehouden en mag geen blokkerende openingshandelingen of eindeloze loops bevatten, zodat dit deel van het programma snel kan worden afgewerkt. Combisensor De combisensor combineert de drie functies versnellingssensor, gyroscoop en kompassensor in een component. Versnellingssensor Openen Met haal combisensor versnelling in [] krijg je de versnelling in één ruimtelijke richting. De gewenste ruimtelijke richting kun je via het dropdown-menu (klein driehoekje) kiezen. De versnelling wordt in g aangegeven. Opvragen Om op te kunnen vragen of je een bepaalde versnelling meet, wordt het blok is combisensor versnelling in [] [] ... gebruikt. Via het dropdown-menu (klein driehoekje) kun je selecteren hoe de versnelling met de ingevoerde waarde moet worden vergeleken (<, ≤, =, ≠, ≥, >) en welke ruimtelijke richting moet worden opgevraagd. De vergelijkingswaarde wordt in het cijferveld aan het einde van het blok ingevoerd. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de versnelling in de x-richting groter is dan 10. Gyroscoop Openen Met haal combisensor versnelling in [] krijg je de rotatie in één ruimtelijke richting. De gewenste ruimtelijke richting kun je via het dropdown-menu (klein driehoekje) kiezen. De rotatie wordt in °/s aangegeven. Opvragen Om op te kunnen vragen of je een bepaalde hoeksnelheid meet, wordt het blok is combisensor rotatie in [] [] ... gebruikt. Via het dropdown-menu (klein driehoekje) kun je selecteren hoe de rotatie met de ingevoerde waarde moet worden vergeleken (<, ≤, =, ≠, ≥, >) en welke ruimtelijke richting moet worden opgevraagd. De vergelijkingswaarde wordt in het cijferveld aan het einde van het blok ingevoerd. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de rotatie in de x-richting groter is dan 10. Kompassensor Openen Met haal combisensor magnetische flux in [] krijg je de magnetische flux in één ruimtelijke richting. De gewenste ruimtelijke richting kun je via het dropdown-menu (klein driehoekje) kiezen. De magnetische flux wordt in μT aangegeven. Opvragen Om op te kunnen vragen of je een bepaalde magnetische flux meet, wordt het blok is combisensor magnetische flux in [] [] ... gebruikt. Via het dropdown-menu (klein driehoekje) kun je selecteren hoe de magnetische flux met de ingevoerde waarde moet worden vergeleken (<, ≤, =, ≠, ≥, >) en welke ruimtelijke richting moet worden opgevraagd. De vergelijkingswaarde wordt in het cijferveld aan het einde van het blok ingevoerd. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de magnetische flux in de x-richting groter is dan 10. Omgevingssensor De omgevingssensor combineert de vier functies luchtkwaliteitssensor, luchtvochtigheidssensor, barometer en thermometer in één component. Luchtkwaliteitssensor Openen Met het blok haal omgevingssensor luchtkwaliteit als [] kun je de luchtkwaliteit meten. Via het dropdown-menu (klein driehoekje) kun je selecteren of de luchtkwaliteit in de vorm van een getal (van 0 tot 500) of als tekst moet worden aangegeven. Opvragen Om op te kunnen vragen of je een bepaalde luchtkwaliteit meet, wordt het blok is omgevingssensor luchtkwaliteit [] ... gebruikt. Via het dropdown-menu (klein driehoekje) kan worden geselecteerd hoe de luchtkwaliteit met de ingevoerde waarde moet worden vergeleken (<, ≤, =, ≠, ≥, >). De vergelijkingswaarde wordt in het cijferveld aan het einde van het blok ingevoerd. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de luchtkwaliteit hoger is dan 10. Barometer Openen Met het blok haal omgevingssensor luchtdruk kun je de luchtdruk meten. Opvragen Om op te kunnen vragen of je een bepaalde luchtdruk meet, wordt het blok is omgevingssensor luchtdruk [] ... gebruikt. Via het dropdown-menu (klein driehoekje) kan worden geselecteerd hoe de luchtdruk met de ingevoerde waarde moet worden vergeleken (<, ≤, =, ≠, ≥, >). De vergelijkingswaarde wordt in het cijferveld aan het einde van het blok ingevoerd. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de luchtdruk hoger is dan 10. Thermometer Openen Met het blok haal omgevingssensor temperatuur kun je de temperatuur meten. Opvragen Om op te kunnen vragen of je een bepaalde temperatuur meet, wordt het blok is omgevingssensor temperatuur [] ... gebruikt. Via het dropdown-menu (klein driehoekje) kan worden geselecteerd hoe de temperatuur met de ingevoerde waarde moet worden vergeleken (<, ≤, =, ≠, ≥, >). De vergelijkingswaarde wordt in het cijferveld aan het einde van het blok ingevoerd. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de temperatuur hoger is dan 10. Luchtvochtigheidssensor Openen Met het blok haal omgevingssensor luchtvochtigheid kun je de luchtvochtigheid meten. Opvragen Om op te kunnen vragen of je een bepaalde luchtvochtigheid meet, wordt het blok is omgevingssensor luchtvochtigheid [] ... gebruikt. Via het dropdown-menu (klein driehoekje) kan worden geselecteerd hoe de luchtvochtigheid met de ingevoerde waarde moet worden vergeleken (<, ≤, =, ≠, ≥, >). De vergelijkingswaarde wordt in het cijferveld aan het einde van het blok ingevoerd. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de luchtvochtigheid hoger is dan 10. USB USB Met de USB-aansluiting kan de camera met geïntegreerde microfoon worden aangesloten. Camera en microfoon worden hier afzonderlijk behandeld. Om de functies van de camera te gebruiken moet je deze eerst in de cameraconfigurator configureren. Hoe je in de cameraconfigurator komt wordt hier uitgelegd. Camera De camera kan in het bijzonder als bewegingsdetector, als kleurendetector, als baldetector en als lijndetector worden gebruikt. Bewegingsdetector Om de camera als bewegingsdetector te gebruiken, moet je in de cameraconfigurator het mannetjessymbool naar het raster trekken waarna rechts een venster wordt geopend en je onder Inspecteur het pixelgebied, waarin op beweging wordt gecontroleerd, de positie van dit bereik (het bereik linksboven ligt op het aangegeven punt), de naam van de bewegingsdetector en de tolerantie kunt vastleggen. Bewegingsdetectorprogramma Het bewegingsdetectorprogramma draait wanneer een beweging wordt herkend. Dit wordt afzonderlijk van het hoofdprogramma geschreven. Variabelen werken over het geheel genomen via beide programma's. Het invoerprogramma draait in het blok wanneer beweging herkend. Kleurendetector Om de camera als kleurendetector te gebruiken, moet je in de cameraconfigurator het pipettensymbool naar het raster trekken waarna rechts een venster wordt geopend en je onder Inspecteur het pixelgebied, waarin op kleur wordt gecontroleerd, de positie van dit bereik (het bereik linksboven ligt op het aangegeven punt), de naam van de kleurendetector en het contrast kunt vastleggen. Openen Met haal kleur als [] krijg je de herkende kleur hexadecimaal of in RGB-formaat te zien. Het formaat kun je via het dropdown-menu (klein driehoekje) instellen. Opvragen Om op te kunnen vragen of de detector een kleur heeft waargenomen, wordt gebruik gemaakt van het blok is kleur gedetecteerd. Dit blok kan als voorwaarde worden gebruikt. Om op te kunnen vragen of de detector een bepaalde kleur waarneemt wordt dit blok gebruikt. Met het blok kun je de opgenomen kleur vergelijken met een reeds ingevoerde kleur. Via het dropdown-menu (klein driehoekje) kun je kiezen of de ingestelde kleur gelijk aan de gefilmde keur moet zijn of hiervan moet verschillen. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de opgenomen kleur rood is. Kleurendetectorprogramma Het kleurendetectorprogramma draait wanneer een kleur wordt herkend. Dit wordt afzonderlijk van het hoofdprogramma geschreven. Variabelen werken over het geheel genomen via beide programma's. Het invoerprogramma draait in het blok wanneer kleur herkend. Baldetector Om de camera als baldetector te gebruiken, moet je in de cameraconfigurator het ballensymbool naar het raster trekken waarna rechts een venster wordt geopend en je onder Inspecteur het pixelgebied, waarin op ballen wordt gecontroleerd, de positie van dit bereik (het bereik linksboven ligt op het aangegeven punt), de naam van de baldetector, het gebied waarbinnen de diameter van de ballen ligt, het bereik van de x-as, de kleur van de bal en de kleurtolerantie kunt vastleggen. Openen Met haal [] van de bal krijg je de x-positie, y-positie, radius of diameter van de bal. Opvragen Om op te kunnen vragen of de detector een bal heeft waargenomen, wordt gebruik gemaakt van het blok is bal gedetecteerd. Dit blok kan als voorwaarde worden gebruikt.                                                                 Om op te kunnen vragen of de detector een bal met een bepaalde x-positie, y-positie, radius of diameter waarneemt wordt dit blok gebruikt. Met het blok kun je de specificaties van de opgenomen bal met een ingevoerde waarde vergelijken. Via het dropdown-menu (klein driehoekje) kan worden geselecteerd wat en met welke vergelijkingsoperator moet worden vergeleken. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de diameter van de opgenomen bal 5 is. Baldetectorprogramma Het baldetectorprogramma draait wanneer een bal wordt herkend. Dit wordt afzonderlijk van het hoofdprogramma geschreven. Variabelen werken over het geheel genomen via beide programma's. Het invoerprogramma draait in het blok wanneer bal herkend. Lijndetector Om de camera als lijndetector te gebruiken, moet je in de cameraconfigurator het symbool met de punten op een lijn naar het raster trekken waarna rechts een venster wordt geopend en je onder Inspecteur het pixelgebied, waarin op lijnen wordt gecontroleerd, de positie van dit bereik (het bereik linksboven ligt op het aangegeven punt), de naam van de lijndetector, het aantal lijnen die herkend moeten worden en het gebied waarin de breedte van de lijn(en) ligt kunt vastleggen. Openen Met haal [] van de lijn [] krijg je de positie of breedte van een van de maximaal vijf lijnen. Met haal kleur van de lijn [] als [] kun je de kleur van een lijn als hexadecimaal of als RGB-formaat laten uitgeven. Het formaat kun je via het dropdown-menu (klein driehoekje) instellen. Opvragen Om op te kunnen vragen of de detector een lijn heeft waargenomen, wordt gebruik gemaakt van het blok is lijn gedetecteerd. Dit blok kan als voorwaarde worden gebruikt.                                                                 Om op te kunnen vragen of de detector een lijn met een bepaalde positie of breedte waarneemt wordt dit blok gebruikt. Met het blok kun je de specificaties van de opgenomen lijn(en) met een ingevoerde waarde vergelijken. Via het dropdown-menu (klein driehoekje) kan worden geselecteerd wat en met welke vergelijkingsoperator moet worden vergeleken. Dit blok kan als voorwaarde worden gebruikt. In het voorbeeld wordt de motor gestopt wanneer de breedte van de opgenomen lijn minder is dan 2. Om op te kunnen vragen of de detector een lijn met een bepaalde kleur waarneemt wordt dit blok gebruikt. Met het blok kun je de opgenomen kleur van de lijn vergelijken met een reeds ingevoerde kleur. Via het dropdown-menu (klein driehoekje) kun je kiezen of de ingestelde kleur gelijk aan de gefilmde keur moet zijn of hiervan moet verschillen. Dit blok kan als voorwaarde worden gebruikt. Lijndetectorprogramma Het lijndetectorprogramma draait wanneer een of meerdere lijnen worden herkend. Dit wordt afzonderlijk van het hoofdprogramma geschreven. Variabelen werken over het geheel genomen via beide programma's. Het invoerprogramma draait in het blok wanneer lijn herkend. Microfoon De in de camera geïntegreerde microfoon kan als geluidsdetector worden gebruikt. Het blok Start elke keer Het blok Start elke keer biedt de mogelijkheid om een programma te laten draaien, wanneer aan een voorwaarde is voldaan. Dit werkt dus net als een verschil tussen gevallen, maar wordt tijdens het gehele verloop van het programma niet slechts eenmaal doorlopen, maar elke keer wanneer aan de voorwaarde wordt voldaan. Het blok Start elke keer: is een afkorting voor onderstaande constructie: Je kunt in het blok Start elke keer van de categorie Microfoon alle voorwaarden uit juist deze categorie gebruiken. Aanwijzing: Het programmagedeelte van het blok Start elke keer moet kort worden gehouden en mag geen blokkerende openingshandelingen of eindeloze loops bevatten, zodat dit deel van het programma snel kan worden afgewerkt. Geluidsdetector Openen Met microfoon volume krijg je het volume in decibel. Opvragen Om op te kunnen vragen of de geluidsdetector een bepaald volume waarneemt wordt dit blok gebruikt. Met het blok kun je het opgenomen volume vergelijken met een reeds ingevoerd volume. Via het dropdown-menu (klein driehoekje) kan worden geselecteerd wat met welke vergelijkingsoperator moet worden vergeleken. Dit blok kan als voorwaarde worden gebruikt.Verwerking Voorwaarden Voorwaardelijke aanwijzingen zijn het belangrijkst voor de programmering. Ze maken het mogelijk om de verschillen tussen gevallen te formuleren zoals: Wanneer er een weg naar links is, moet je links afbuigen. Wanneer het aantal punten = 100, druk "Goed gedaan!” in. Blokken wanneer-blokken De meest eenvoudige voorwaarde is een wanneer-blok: Wanneer dit wordt uitgevoerd, wordt de waarde van de variabele x met 100 vergeleken. Wanneer deze groter is wordt "Wat een hoog cijfer!" uitgegeven. In het andere geval gebeurt er niets. wanneer-anders-blokken Ook is het mogelijk om aan te geven dat er iets moet gebeuren wanneer de voorwaarde niet waar is, zoals in dit voorbeeld: Net als bij het voorgaande blok verschijnt de melding "Wat een hoog cijfer!", wanneer x > 100 is. In het andere geval verschijnt de melding "Dat is niet erg hoog.". Een wanneer-blok kan een anders-segment hebben, maar niet meer dan een.???????????????????? wanneer-anders-wanneer-blokken Ook is het mogelijke om meerdere voorwaarden met een enkel wanneer-blok te testen wanneer anders-wanneer-clausules worden toegevoegd: Eerst controleert het blok of x > 100 is en geeft de melding "Wat een hoog cijfer!", indien dat het geval is. Wanneer dat niet het geval is controleert deze verder of x = 42 is. Zo ja, dan verschijnt de melding "Dat is mijn geluksgetal!". In het andere geval gebeurt er niets. Een wanneer-blok kan een willekeurig aantal anders-wanneer-segmenten hebben. De voorwaarden worden van boven naar onderen toe geanalyseerd, tot aan een voorwaarde is voldaan of er geen voorwaarde meer over is. wanneer-anders-wanneer-anders-blokken wanneer-blokken kunnen zowel anders-wanneer als ook anders-segmenten hebben: Het anders-segment garandeert dat een actie wordt uitgevoerd, ook wanneer geen van de voorgaande voorwaarden waar is. Een anders-segment kan na een willekeurig aantal van anders-wanneer-segmenten optreden, inclusief nul, dan krijg je een heel normaal wanneer-anders-blok. Blokmodificatie In de gereedschapsbalk verschijnt alleen het enkelvoudige wanneer-blok en het wanneer-anders-blok: Je moet op (+)-symbool klikken om anders-wanneer- en anders-clausules toe te voegen. Met het (-)-symbool kunnen anders-wanneer-clausules weer worden verwijderd: Let erop dat de vormen van de blokken het toevoegen van een willekeurig aantal anders-wanneer-subblokken mogelijk maken, echter slechts een wanneer-blok.Logica Booleaanse logica is een eenvoudig wiskundig systeem dat twee waarden kent: waar onwaar Logische blokken in ROBO Pro Coding zijn er normaal gesproken voor om voorwaarden en loops te controleren. Hier een voorbeeld: Wanneer de waarde van de variabele x groter is dan 100, is de voorwaarde waar en verschijnt de tekst "Wat een hoog cijfer!". Wanneer de waarde van x niet groter is dans 100, is de voorwaarde onwaar en verschijnt de melding "Dat is niet erg hoog.". Booleaanse waarden kunnen ook in variabelen worden opgeslagen en aan functies worden doorgegeven, net als getallen, tekst en lijstwaarden. Blokken Wanneer een blok een Booleaanse waarde verwacht, wordt een ontbrekende invoer als onwaar geïnterpreteerd. Waarden die niet Booleaans zijn kunnen niet rechtstreeks daar worden ingevoerd waar Booleaanse waarden worden verwacht. Het is echter wel mogelijk (maar niet raadzaam) om een waarde die niet Booleaans is in een variabele op te slaan en deze dan in de voorwaardeninvoer in te voegen. Deze methode wordt niet aanbevolen en het gedrag kan in toekomstige versies van ROBO Pro Coding veranderen. Waarden Een afzonderlijk blok met een dropdown-lijst, die of waar of onwaar aangeeft, kan worden gebruikt om een Booleaanse waarde op te vragen: Vergelijkingsoperatoren Er zijn zes vergelijkingsoperatoren. Aan iedere vergelijkingsoperator worden twee invoeren (normaal gesproken twee getallen) overgedragen en de vergelijkingsoperator retourneert de melding waar of onwaar, afhankelijk hoe de invoeren met elkaar worden vergeleken. De zes operatoren zijn: gelijk aan, niet gelijk aan, kleiner dan, groter dan, kleiner dan of gelijk aan, groter dan of gelijk aan. Logische operatoren Het en-blok retourneert dan en alleen dan de melding waar, wanneer zijn beide ingangswaarden waar zijn. Het of-blok retourneert de melding waar, wanneer minimaal een van zijn beide ingangswaarden waar is. niet Het niet-blok zet zijn Booleaanse invoer om in het tegendeel. Bijvoorbeeld is het resultaat van: onwaar. Wanneer niets wordt ingevoerd wordt de waarde waar aangenomen, zodat het volgende blok de waarde onwaar oplevert: Er wordt echter niet geadviseerd om niets in te voeren. trio-operator De trio-operator gedraagt zich als een miniatuur-wanneer-anders-blok. Hij neemt drie ingangswaarden op, waarbij de eerste ingangswaarde de te testen Booleaanse voorwaarde is, de tweede ingangswaarde de waarde die geretourneerd moet worden, wanneer de test als waar wordt gezien en de derde ingangswaarde is de waarde die moet worden geretourneerd wanneer de test als onwaar wordt gezien. In het onderstaande voorbeeld wordt de variabele kleur op rood gezet, wanneer de variabele x minder is dan 10, in het andere geval wordt de variabele kleur op groen gezet. Een trioblok kan altijd door een wanneer-anders-blok worden vervangen. De onderstaande twee voorbeelden zijn precies gelijk. Loops Het bereik "Besturing" bevat blokken die aansturen of andere blokken, die in hun inhoud zijn opgenomen, worden uitgevoerd.???? Er zijn twee soorten besturingsblokken: wanneer-anders-blokken (die op een eigen pagina beschreven worden) en blokken die aansturen hoe vaak de inhoud moet worden uitgevoerd. De laatst worden loops genoemd, omdat hun inhoud, ook loop-systeem of systeem genaamd, (mogelijkerwijs) meerdere malen worden herhaald. Iedere doorloop van een loop wordt als iteratie (herhaling) omschreven. Blokken voor het aanmaken van loops permanent herhalen Het blok permanent herhalen voert de code in zijn systeem net zolang uit tot het programma eindigt. herhaal Het blok herhaal voert de code in zijn systeem net zo vaak uit als aangegeven. Het volgende blok geeft bijvoorbeeld tien keer "Hallo!" uit: herhaal-net zolang Stel jezelf een spelletje voor waarbij een speler een dobbelsteen werpt en alle geworpen waarden bij elkaar optelt zolang som lager is dan 30. De onderstaande blokken implementeren dit spel: een variabele genaamd in totaal bevat een beginwaarden van 0. De loop begint met een controle of in totaal minder is dan 30. Zo ja, dan worden de blokken in het systeem doorlopen. Er wordt een toevalsgetal in een gebied van 1 tot 6 gegenereerd (om een worp met de dobbelsteen te simuleren) en in een variabele genaamd geworpen opgeslagen. Het geworpen getal wordt aangegeven. De variabele in totaal wordt met de geworpen waarde verhoogd. Wanneer het einde van de loop is bereikt gaat de besturing terug naar stap 2. Nadat de loop is beëindigd worden alle opeenvolgende blokken (niet weergegeven) doorlopen. In het voorbeeld eindigt de loop-doorloop nadat een bepaald aantal toevalsgetallen in het bereik van 1 tot 6 zijn uitgegeven en de variabele in totaal heeft dan als waarde de som van deze getallen, die tenminste 30 moet zijn. herhaal-tot herhaal net zolang-loops herhalen hun systeem, net zolang tot aan een voorwaarde is voldaan. herhaal tot-loops zijn identiek met dat verschil dat zij hun systeem net zolang herhalen, tot aan een bepaalde voorwaarde is voldaan. De onderstaande blokken zijn gelijkwaardig aan het voorgaande voorbeeld omdat de loop draait tot in totaal hoger of gelijk aan 30 is. tellen-van-tot Bij de tellen-van-tot-loop verhoogt een variabele de waarde, beginnend met een eerste waarde, eindigend met een tweede waarde en in stappen van een derde waarde, waarbij het systeem voor elke waarde van de variabele eenmaal wordt uitgevoerd. Het volgende programma geeft bijvoorbeeld de getallen 1, 3 en 5 uit. Zoals beide volgende loops laten zien, die elk de getallen 5, 3 en 1 uitgeven, kan deze waarde hoger zijn dan de tweede. Het gedrag is hetzelfde, ongeacht of het incrementele bedrag (derde waarde) positief of negatief is. voor allemaal Het blok voor allemaal is vergelijkbaar met de tellen-van-tot-loop, behalve dat hij in plaats van de loop-variabele in een numerieke volgorde de waarden uit een lijst een voor een gebruikt. Het volgende programma geeft elk element uit de lijst "alfa", "beta", "gamma" uit: Loop-afbreekblokken De meeste loops worden net zolang doorlopen tot aan de afbreekvoorwaarde (bij herhaal-blokken) is voldaan of totdat alle waarden van de loop-variabelen zijn aangenomen (bij tellen met- en voor allemaal-lussen). Twee zelden benodigde, maar soms nuttige blokken bieden extra mogelijkheden voor de besturing van het loop-gedrag. Ze kunnen bij iedere soort loop worden gebruikt, ook wanneer het onderstaande voorbeeld het gebruik bij de voor iedereen-loop laat zien. ga-door-met-volgende-iteratie ga-door-met-volgende-iteratie zorgt ervoor dat de resterende blokken in het loop-systeem worden overgeslagen en de volgende iteratie van de loop begint. Het volgende programma geeft bij de eerste iteratie van de loop "alfa” aan. Bij de tweede iteratie wordt het blok ga-door-met-volgende-iteratie uitgevoerd, waardoor het uitgeven van "beta" wordt overgeslagen. Bij de laatste iteratie wordt "gamma" afgedrukt. loop-afbreken Het blok loop-afbreken biedt de mogelijk om een loop voortijdig te beëindigen. Het volgende programma geeft bij de eerste iteratie "alfa" weer en wordt bij de tweede iteratie uit de loop afgebroken wanneer de loop-variabele gelijk is aan "beta". Het derde punt in de lijst wordt nooit bereikt. Wiskunde De blokken uit de categorie Wiskunde worden gebruikt om berekeningen te maken. De resultaten van de berekeningen kunnen bijvoorbeeld als waarden voor variabelen worden gebruikt. De meeste wiskunde-blokken hebben betrekking op algemene wiskundige berekeningen en moeten zelfverklarend zijn. Blokken Getallen Gebruik het cijferblok om een willekeurig getal in je programma in te voegen of een variabele van dit getal als waarde toe te wijzen. Dit programma wijst het getal 12 toe aan de variabele leeftijd : Eenvoudige berekeningen Dit blok heeft de structuur waarde-operator-waarde. Als operatoren zijn de rekenwijzen +, -, ÷, × en ^ beschikbaar. De operator kan via het dropdown-menu worden geselecteerd. Hij kan rechtstreeks op getallen of ook op waarden van variabelen worden toegepast. Voorbeeld: it blok geeft het resultaat 144 (12^2) weer. Speciale berekeningen Dit blok gebruikt de, via het dropdown-menu geselecteerde, rekenwijze op het daarachter geplaatste getal of op de waarden van de daarachter geplaatste variabele. De beschikbare berekeningen zijn: vierkantswortel,, bedrag, natuurlijke logaritme, decimale logaritme, exponentiële functie met de basis e (e^1, e^2,...), exponentiële functie met de basis 10 (10^1, 10^2,...), voortekenwissel (vermenigvuldiging met -1). e is hierbij de wiskundige constante. Dit blok trekt de vierkantswortel uit 16 en zet de variabele i op het resultaat. Trigonometrische functies Dit blok werkt hetzelfde als het hiervoor beschreven blok, met dat verschil dat als berekeningen de trigonometrische functies sinus, cosinus, tangens en hun omkeerfuncties worden gebruikt. Het aangegeven getal of waarde van de aangegeven variabele wordt aldus in de in het dropdown-menu geselecteerde functie ingezet en het resultaat kan dan in het programma verder worden verwerkt. Bovendien is er nog het blok arctan2 of X: ... Y: ..., die het mogelijk maakt, met behulp van twee reële getallen (in te zetten als X en Y) een functiewaarde van de arctan2 in het bereik van 360° uit te laten geven. Veel gebruikte constanten Dit blok werkt net als het cijferblok, alleen wordt hier het getal niet zelf aangegeven. In plaats daarvan zijn veel gebruikte constanten (bijv. π) vooraf opgeslagen. De constante kan via het dropdown-menu worden geselecteerd. Rest van een deling Het blok rest van ... wordt gebruikt om de rest van een deling uit te geven. Dit programma wijst de variabele Rest van de rest van de deling 3:2, dus 1, toe: Afronden Met het blok afronden ... kan een aangegeven decimaal getal of de waarde van een aangegeven variabele op een heel getal worden afgerond. Daarbij kun je in het dropdown-menu uit drie opties kiezen: met "afronden" commercieel afgerond (bijv. 4,5 wordt 5) met "afronden naar boven" wordt afgerond (bijv. 5,1 wordt 6) met "afronden naar beneden" wordt afgerond (5,9 wordt bijv. 5). Analyse van lijsten Met het blok ... van de lijst kun je met "totaal" het totaal van alle waarden in een lijst, met "min" de laagste waarde van een lijst, met "max" de hoogste waarde van een lijst, met "gemiddelde waarde" de gemiddelde waarde van alle waarden in een lijst, met "mediaan" de mediaan van een lijst, met "modale waarde" de vaakst voorkomende waarde in een lijst, met "standaardafwijking" de standaardafwijking van alle waarden in een lijst, met "toevalswaarde" een toevallige waarde uit een lijst laten uitgeven. Al deze opties kun je via het dropdown-menu van het blok selecteren. De invoerwaarde beperken Het blok beperken ... van ... tot ...maakt het mogelijk om de invoerwaarden tot een bepaalde interval te beperken. Voordat een invoerwaarde verder worden verwerkt, wordt getest of deze binnen een vastgelegde interval ligt. Er zijn drie opties hoe een ingevoerde waarde wordt gebruikt: De waarde valt binnen de interval, wordt dus onveranderd doorgegeven. De waarde ligt onder de onderste grens van de interval, dus wordt deze onderste grens doorgegeven. De waarde ligt boven de bovenste grens van de interval, dus wordt deze bovenste grens doorgegeven. In dit voorbeeld wordt het blok gebruikt om de waarde van de variabele toerental tot de door de motor ondersteunde toerentallen te beperken: Toevallige waarden genereren De beide blokken toevallig getal van ... tot... en toevallige breuk geven een toevallige waarde uit. Daarbij geeft het toevallige getal van ... tot...- blok een getal uit de gedefinieerde interval uit. Het blok toevallige breuk geeft daarentegen een waarde tussen 0,0 (ingesloten) en 1,0 (uitgesloten) uit.Teksten Voorbeelden voor teksten zijn: "Ding 1""12. maart 2010""" (lege tekst)Tekst kan letters (groot of klein geschreven), getallen, leestekens, andere symbolen en spaties bevatten. Blokken Opstellen van tekst Het onderstaande blok genereert de tekst "Hallo" en slaat deze op in de variabelen onder Groet: Het blok stel tekst op vanuit combineert de waarde van de variabele Groet en de nieuwe tekst "wereld" tot de tekst"Hallowereld". Let erop dat er tussen de beide teksten geen spatie staat, omdat in beide oorspronkelijke teksten ook geen spatie stond. Om het aantal tekstinvoeren te verhogen moet je het (+)-symbool aanklikken. Om de laatste invoer te verwijderen moet je het (-)-symbool aanklikken. Tekst wijzigen Het blok bij ... toevoegen voegt de aangegeven tekst aan de aangegeven variabele toe. In dit voorbeeld verandert hij de waarde van de variabele Groet van "Hallo" in "Hallo, daar!": Lengte van de tekst Het blok lengte van telt het aantal tekens (letters, getallen, enz.) die in een tekst zitten. De lengte van "Wij zijn #1!" is 12, en de lengte van de lege tekst is 0. Controleren op lege tekst Het component is leeg controleert of de aangegeven tekst leeg is (de lengte 0 heeft). Het resultaat is in het eerste voorbeeld waar en in het tweede voorbeeld onwaar. Zoeken naar tekst Deze blokken kunnen worden gebruikt om te controleren of een tekst in een andere tekst voorkomt en zo ja, waar deze voorkomt. Zo wordt bijvoorbeeld gevraagd wanneer voor het eerst een "a" in "Hallo" voorkomt, het resultaat is 2. Hier wordt gevraagd wanneer voor het laatst een "a" in "Hallo” voorkomt, wat eveneens een 2 oplevert: Ongeacht of het eerst of laatst voorkomende wordt gekozen, levert dit blok het resultaat 0 op, aangezien "Hallo" geen "z" bevat. Extraheren van tekst Extraheren van een afzonderlijk teken Dit geeft "b", de tweede letter in "abcde": Dit geeft "d", de voorlaatste letter in "abcde": Dit geeft "a", de eerste letter in "abcde": Dit geeft "e", de laatste letter in "abcde": Dit bevat de 5 letters in "abcde" met dezelfde waarschijnlijkheid: Geen van hen verandert de tekst van waaruit wordt geëxtraheerd. Extraheren van een tekstgebied Met het blok in tekst ... lever tekenketting kan een tekstgebied worden geëxtraheerd, dat hetzij met: letter # letter # vanaf einde eerste letter start en met: letter # letter # vanaf einde laatste letter eindigt. In het volgende voorbeeld wordt "abc" geëxtraheerd: Aanpassen van groot/klein schrijven van de tekst Dit blok genereert een versie van de invoertekst die hetzij GROOT GESCHREVEN (alle letters als hoofdletters) of klein geschreven (alle letters zijn klein geschreven) of substantief (eerste letter hoofdletter, alle andere letters klein geschreven). Het resultaat van het volgende blok is "HALLO": Dit is niet van toepassing op niet-alfabetische tekens. Let erop dat dit blok op tekst in talen zonder groot- en klein geschreven letters, zoals bijv. het Chinees, niet werkt. Trimmen (verwijderen) van spaties Het volgende blok verwijdert, afhankelijk wat in het dropdown-menu (klein driehoekje) wordt ingesteld, spaties: aan het begin van de tekst aan het einde van de tekst aan beide kanten van de tekst Het resultaat van het volgende blok is "Hi jij": Dit heeft geen invloed op spaties middenin de tekst. Tekst uitvoeren Het blok geeft uit zorgt er voor dat de invoerwaarde op het consolevenster wordt weergegeven: In geen geval wordt het naar de printer gestuurd, zoals de naam misschien laat vermoeden. Tekst weergeven met formattering Met het blok formatteer tekst kunnen teksten met variabeleninhoud geformatteerd worden weergegeven. Daarbij worden alle wildcards {} in de tekst door de inhoud van de na de tekst bijgevoegde variabelen vervangen. Binnen de accolades kan een formattering worden aangegeven. De formattering {:.1f} geeft bijv. alleen de eerste decimaal achter de komma in de variabele t weer. Lijsten Net als in de alledaagse taal staat ook in ROBO Pro Coding een lijst van een geordende verzameling van elementen, zoals bijv. een "To-do"-lijst of een inkooplijst. Elementen in een lijst kunnen van een willekeurig type zijn en dezelfde waarde kan meerdere malen in een lijst voorkomen. Opstellen van een lijst maak lijst met Met het blok maak lijst met kun je de beginwaarden in een nieuwe lijst aangeven. In dit voorbeeld wordt een lijst van woorden gemaakt en in een variabele genaamd Letters opgeslagen. Wij omschrijven deze lijst als ["alfa", "beta", "gamma"]. Dit geeft het opstellen van een lijst van getallen weer: Zo wordt een lijst van kleuren opgesteld: Het is minder gebruikelijk, maar het is mogelijk om een lijst met waarden van verschillende te maken: Aantal ingangen veranderen Om het aantal ingangen te veranderen, moet je op het tandwielsymbool klikken of deze aanraken. Daardoor wordt een nieuwe venster geopend. Je kunt subblokken van elementen van de linker kant van het venster naar het lijstenblok aan de rechter kant trekken, om een nieuwe ingang toe te voegen. Terwijl het nieuwe element in dit voorbeeld onderaan is toegevoegd, kan het overal worden toegevoegd. Op vergelijkbare wijze kunnen ongewenste subblokken van elementen uit het lijstenblok naar links worden getrokken. Lijst met element opstellen Met het blok stel lijst met element op kun je een lijst opstellen die het aangegeven aantal kopieën van een element bevat. De onderstaande blokken zetten bijvoorbeeld de variabele woorden op de lijst ["heel", "heel", "heel"]. De lengte van een lijst controleren is leeg De waarde van een is leeg-blok is waar, wanneer de invoer de lege lijst is en onwaar, wanneer het iets anders is. Is deze invoer waar? De waarde van het volgende blok zou onwaar zijn, omdat de variabele kleuren niet leeg is: Deze heeft drie elementen. Let op de gelijkenis met het is leeg-blok voor tekst. Lengte van De waarde van het blok lengte van is het aantal elementen dat in de als invoer gebruikte lijsten is opgenomen. De waard van het volgende blok zou bijvoorbeeld 3 zijn, omdat kleur drie elementen heeft. Let erop dat het blok lengte van aangeeft hoeveel elementen in de lijst zijn opgenomen en niet hoeveel verschillende elementen erin inzetten. Zo heeft bijvoorbeeld de volgende de waarde 3, hoewel woorden uit drie kopieën uit dezelfde tekst bestaat. Let op de gelijkenis met het lengte van-blok voor tekst. Zoeken van elementen in een lijst Deze blokken vinden de positie van een element in een lijst. Het volgende voorbeeld heeft de waarde 1, omdat het eerste voorkomen van "heel" aan het begin van de woordenlijst staat (["heel", "heel", "heel"]). Het resultaat van de volgende is 3, omdat het laatste voorkomen van "heel" in woorden op positie 3 staat. Wanneer het element nergens in de lijst voorkomt, is het resultaat van de waarde 0, zoals in dit voorbeeld: Deze blokken werken hetzelfde als de blokken voor het vinden van letters in tekst. Openen van elementen in een lijst Openen van een afzonderlijk element Denk aan de definitie van de lijst kleuren: Het volgende blok bevat de kleur blauw, omdat dat het tweede element in de lijst is (vanaf links beginnend te tellen): Deze bevat groen omdat dat het tweede element is (vanaf rechts beginnend te tellen): Deze bevat het eerste element, rood: Deze bevat het laatste element, geel: Dit selecteert toevallig een element uit de lijst, waarbij met dezelfde waarschijnlijkheid een van de elementen, rood, blauw, groen of geel wordt weergegeven. Openen en verwijderen van een element Via het dropdown-menu wordt het blok uit lijst ... openen in het blok uit lijst ... openen en verwijderen gewijzigd die dezelfde weergave levert, maar ook de lijst verandert: Dit voorbeeld zet de variabele eerste letter op "alfa" en laat de resterende letters (["beta", "gamma"]) in de lijst. Een invoer verwijderen Wanneer je in het dropdown-menu verwijderen kiest, verdwijnt de lip links van het blok: Daarmee wordt het eerste element uit letters verwijderd. Een sublijst openen Het blok uit lijst ... Sublijst openen lijkt op het blok in uit lijst ... openen met dat verschil dat deze een uittreksel van een sublijst maakt en niet een afzonderlijk element. Er zijn meerdere opties, om het begin en het einde van de sublijst aan te geven: In dit voorbeeld wordt een nieuwe lijst eerste letter opgesteld. Deze nieuwe lijst heeft twee elementen: ["alfa", "beta"]. Let erop dat dit blok de oorspronkelijke lijst niet verandert. Toevoegen van elementen aan een lijst Elementen van een lijst verwijderen Het blok in lijst ... vervang vervangt het element op een bepaalde plaats in een lijst door een ander element. De betekenis van de afzonderlijke dropdown-opties vindt je in het vorige hoofdstuk. Het volgende voorbeeld zorgt voor twee dingen: De lijst woorden wordt met 3 elementen opgesteld: ["heel", "heel", "heel"]. Het derde element in de lijst wordt door "goed" vervangen. De nieuwe waarde van woorden is ["heel", "heel", "goed"] Elementen op een bepaalde plaats in een lijst toevoegen Het blok in lijst ... toevoegen bij wordt via het dropdown-menu van het in lijst ... vervang-blok geopend: Deze voegt een nieuw element op de aangegeven plaatst in de lijst toe, en wel voor het element, dat eerder op deze plaats stond. Het volgende voorbeeld (dat op een eerder voorbeeld is gestoeld) doet drie dingen: De lijst woorden wordt met 3 elementen opgesteld: ["heel", "heel", "heel"]. Het derde element in de lijst wordt door "goed" vervangen. De nieuwe waarde van woorden is daarmee ["heel", "heel", "goed"]. Het woord "Wees" wordt aan het begin van de lijst toegevoegd. De uiteindelijke waarde van woorden is daarmee ["Wees", "heel", "heel", "goed"].                             De tekensketting verdelen en in lijsten samenvoegen Een lijst vanuit een tekst opstellen. De bouwsteen stel lijst op vanuit tekst knipt de aangegeven tekst met behulp van een begrenzingsteken in delen: In het bovenstaande voorbeeld wordt een nieuwe lijst geretourneerd, die drie tekststukken bevat: "311", "555" en "2368". Een tekst vanuit een lijst opstellen. De bouwsteen stel een tekst op uit lijst voegt een lijst met behulp van een scheidingsteken tot één enkele tekst samen: In het bovenstaande voorbeeld wordt een nieuwe tekst met de waarde geretourneerd: "311-555-2368". Soortgelijke blokken Afdrukken van een lijst Met de bouwsteen afdrukken in de categorie Tekst kun je lijsten afdrukken. Het resultaat van het onderstaande programma is de afgebeelde console-afdruk: Iets voor elke element in een lijst uitvoeren Het blok voor-iedereen in de categorie Besturing voert een handeling voor elk element in de lijst uit. Dit blok drukt bijvoorbeeld elk element in de lijst apart af: Daardoor worden de elementen niet uit de oorspronkelijke lijst verwijderd. Zie ook de voorbeelden voor de loop-afbreekblokken.Gebruik De categorie Gebruik bevat bij ROBO Pro Coding de onderstaande soorten blokken: kleurkeuze wachten Python Code starten uitvoeren van functie kleurkeuze Dit blok dient als invoerwaarde, wanneer naar een kleur wordt gevraagd (bijvoorbeeld voor de kleurcompensatie door de camera). Door de kleur aan de klikken of aan te raken kan uit een kleurenpalet één van de 70 kleuren worden geselecteerd. wachten Wachten tot de tijd verstreken is Het blok wacht [] ... voorkomt dat het programma gaat draaien voordat de wachttijd is verstreken. Daarbij kan in het dropdown-menu (kleine driehoekje) de tijdeenheid en in het invoerveld daarachter de gewenste lengte van de pauze worden gekozen. Wachten met voorwaarde Bij het blok wachten tot is de pauze niet gekoppeld aan de tijd maar of er aan een voorwaarde wordt voldaan (bijvoorbeeld of een toets is ingedrukt) De voorwaarde wordt aan het wachten tot-blok gehangen. Python Code Wanneer je een bestaande Python-code in ROBO Pro Coding wilt integreren kun je die in het Python Code-blok toevoegen. Het programma voert dan alles uit wat in het blok in Python is geschreven. starten Ook het blok start wanneer is aan een voorwaarde gekoppeld. Pas wanneer aan deze voorwaarde is voldaan wordt het in het bloksysteem staande programma gestart. Uitvoeren van functie Met het voer functie ... in een thread uit kan de geselecteerde functie in een afzonderlijke thread worden uitgevoerd. Deze maatregel kan er in vele gevallen voor zorgen dat een programma steeds op invoeren kan reageren en sneller wordt uitgevoerd.Variabelen Wij gebruiken het begrip variabele zo zoals in de wiskunde en andere programmeertalen wordt gebruikt: een benoemde waarden die kan worden veranderd (gevarieerd). Variabelen kunnen op verschillende manieren worden opgesteld. Sommige blokken zoals tel met en voor iedereen gebruiken een variabele en definiëren hun waarden. Een traditioneel informaticabegrip voor dergelijke variabelen luidt loopvariabelen. Gebruikersgedefinieerde functies (ook "procedures" genoemd) kunnen invoeren definiëren, waardoor variabelen worden gegenereerd, die alleen binnen deze functie kunnen worden gebruikt. Dergelijke variabelen worden traditioneel als "parameters" of "argumenten" aangeduid. Gebruikers kunnen te allen tijde variabelen met het instel-blok wijzigen. Deze worden traditioneel als "algemene variabelen" aangegeven. Zij kunnen overal in de code van ROBO Pro Coding worden gebruikt. Dropdown-menu Wanneer je op het dropdown-symbool (kleine driehoekje) op een variabele klikt, verschijnt het onderstaande menu: Het menu biedt onderstaande mogelijkheden. de weergave van de namen van alle beschikbare, in het programma gedefinieerde variabelen. "Variabele hernoemen...", dat wil zeggen het wijzigen van de naam van deze variabele, ongeacht waar deze in het programma verschijnt (wanneer deze optie wordt gekozen wordt de vraag om een nieuwe naam geopend) "Variabele wissen...", dat wil zeggen dat alle blokken worden verwijderd waar deze variabele naar verwijst, ongeacht waar deze in het programma voorkomen. Blokken Vastleggen Het instel-blok wijst een waarde aan een variabele toe en maakt de variabele aan, mocht deze nog niet bestaan. Als voorbeeld wordt zo de waarde van de variabele leeftijd op 12 gezet: Openen Het open-blok levert de in een variabele opgeslagen waarden, zonder deze te veranderen: Het is mogelijk, maar een slecht idee, om een programma te schrijven, waarin een open-blok voorkomt zonder een dienovereenkomstig instel-blok. Wijzigen Het wijzig-blok voegt een getal aan een variabele toe. Het wijzig-blok is een afkorting voor de volgende constructie: Voorbeeld Bekijk de onderstaande voorbeeldcode eens: De eerste rij blokken genereert een variabele genaamd leeftijd en stelt de beginwaarde in op het getal 12. De tweede rij blokken opent dan de waarde 12 , telt daar 1 bij op en slaat het totaal (13) in de variabelen op. In de laatste regel wordt de volgende melding getoond: "Hartelijk gefeliciteerd! Je bent nu 13".Functies Functies hebben ten doel om delen van de code opnieuw bruikbaar te maken en daardoor de code in zijn geheel te structureren. Wanneer een functieblok wordt gevuld, verschijnt in het functiemenu een nieuwe blok dat dezelfde naam draagt als juist dit functieblok. Het is nu mogelijk om in het hoofdprogramma alleen nog het blok met de naam van de functie te gebruiken. Wanneer het programma wordt doorlopen, leidt dit blok naar de code in de gelijknamige functie en werkt deze af. Enkelvoudige functie Met het enkelvoudige blok kan een functie wordt ingesteld die de in het tekstveld ingevoerde naam draagt. De functie kan willekeurig veel variabelen bevatten die met behulp van het tandwielsymbool kunnen worden toegevoegd. De functie ouder worden telt 1 op bij de variabele leeftijd op: De functie kan in het hoofdprogramma worden gebruikt: Functie met geretourneerde waarde Dit blok maakt het mogelijk om een functie met geretourneerde waarde op te stellen. Deze geretourneerde waarde kan in het hoofdprogramma verder worden gebruikt. Hier een voorbeeld: