Skip to main content

Les 4: De objectsensor coderen

In de vorige les hebt u geleerd over de objectsensor en de reflectiepercentages van schijven en kubussen verzameld. Deze waarden gaat u nu gebruiken om een project te bouwen in VEXcode om de Exit Conveyor te stoppen wanneer een schijf wordt gedetecteerd door de Object Sensor.

In deze les leert u het volgende:

  • Configureer de objectsensor in VEXcode.
  • Leer hoe u vergelijkingsoperatoren in VEXcode gebruikt.
  • Maak een project om een schijf van de invoertransportband naar de uitvoertransportband te verplaatsen met behulp van feedback van de objectsensor.

Aan het einde van deze les bouwt u voort op uw project uit de vorige les om de uitvoertransportband te stoppen wanneer de schijf wordt gedetecteerd door de objectsensor.

Groene schijf op de uitvoerband en onder de objectsensor.

Het project bewerken

U begint met het bewerken van uw project op basis van de activiteit uit les 2 van Unit 4, ter voorbereiding op het toevoegen van de opdrachten met betrekking tot de objectsensor.

Open uw project4 Les 2 Activiteitin VEXcode EXP of maak het hier getoonde project opnieuw.

Hernoem het projectEenheid 4 Les

Drie blokkenstapels uit het project Les 2 van Unit 4. De eerste stapel luidt: Wanneer gestart, draai invoertransportband 1 ingaand, wacht 7 seconden en stop vervolgens invoertransportband 1. Draai vervolgens transportband 2 naar voren, wacht 4 seconden en stop transportband 2 vervolgens. Draai ten slotte uitvoerband 4 naar buiten, wacht 2 seconden en stop uitvoerband 4 vervolgens. De volgende stapel luidt: Wanneer de bumper van signaaltoren 6 wordt ingedrukt, wordt arm 10 op 'besturing gestopt' gezet. In het laatste project staat: Wanneer de besturing van arm 10 stopt, zet u signaaltoren 6 op groen en uit en zet u vervolgens signaaltoren 6 op rood en knipperend. Stop ten slotte de invoertransportband 1, stop de transportband 2 en stop de uitvoertransportband 4.

Configureer de objectsensor in VEXcode door het venster Apparaten te openen enApparaat toevoegen te selecteren.

Het venster Apparaten is geopend en de knop Apparaat toevoegen is gemarkeerd.

Selecteer 3-Wireom de lijst met 3-draadsapparaten te openen.

Apparaatopties in het venster Apparaten, met het 3-draadspictogram in het rood.

Selecteer vervolgens de objectsensor

3 Draadapparaatopties in het apparatenvenster, waarbij het objectsensorpictogram rood is weergegeven.

Selecteer poort Aen vervolgensGereedom de configuratie te voltooien.

Opmerking:Zorg ervoor dat de objectsensor is aangesloten op poort A op de Brain.

Venster Apparaten met poort A gemarkeerd voor de objectsensor.

Verwijder de laatste twee blokken in het project. Dit omvat het blokWachten het blokStopvoor de uitvoertransportband, zoals getoond in deze video.

Videobestand

Voeg eenWacht totblok toe aan het project.

Het blokWacht totis een blok dat wacht tot een Booleaanse voorwaarde als waar wordt gerapporteerd voordat het doorgaat naar het volgende blok in de stapel.

Voortzetting van een VEXcode EXP-stack met een leeg Wait until-blok toegevoegd aan het einde ervan. De stapel geeft aan: Wanneer gestart, draai invoertransportband 1 ingaand, wacht 7 seconden en stop vervolgens invoertransportband 1. Draai vervolgens transportband 2 naar voren, wacht 5 seconden en stop transportband 2 vervolgens. Draai ten slotte de uitvoerband 4 naar buiten en wacht vervolgens tot.

Vergelijkingsoperatoren

Nu het blokWacht totaan het project is toegevoegd, moet de voorwaarde die door het blok moet worden gecontroleerd, worden toegevoegd. 

Eerder leerde u over het reflectiepercentage dat de Object Sensor rapporteert en u noteerde deze waarden in uw technisch notitieboekje. In dit project moet je de Exit Conveyor laten lopentot. Een drempelwaarde is iets dat wordt gebruikt om te bepalen of een waarde boven, onder of binnen een acceptabel bereik ligt. Vergelijkingsoperatoren kunnen worden gebruikt om te controleren of het reflectievermogen boven een bepaalde waarde of boven die drempelwaarde ligt.

Voeg een Groter danblok toe aan de hexagonale ruimte van hetWacht totblok.

Het zojuist toegevoegde Wait Until-blok, met een nieuwe Booleaanse parameter van 0 groter dan 50.

Voeg een Reflectiviteitblok toe in de eerste opening van hetGroter danblok.

Het Wait Until-blok is nu voorzien van een Object Sensor Reflectivity-blok dat is toegevoegd aan het groter dan-blok. Het hele blok samen luidt nu: Wacht tot de reflectiviteit van objectsensor A in % groter is dan 50.

Het blokGroter danvergelijkt de eerste waarde met de tweede. Het blok Groter danin het project vergelijkt momenteel het reflectiepercentage dat door de objectsensor wordt gerapporteerd met de parameter '50' voordat de Booleaanse waarde wordt gedeclareerd alsTrueofFalse

Het blok Wachten tot met de waarde Groter dan gemarkeerd. Het hele blok samen luidt nu: Wacht tot de reflectiviteit van objectsensor A in % groter is dan 50.

Denk na over de doelen van dit project. De uitvoertransportband moet blijven draaien totdat de objectsensor een object detecteert. Daarna moet de transportband stoppen. De waarden die in de vorige les zijn verzameld, kunnen met dit blokGroter danworden gebruikt om de drempelwaarde te bepalen die moet worden overschreden voordat het project naar het volgende blok in de stapel gaat.

Wijzig de tweede parameter van het blokGroter dannaar '9.' 

Dit getal is gebaseerd op de waarden die zijn verzameld in de activiteit van de vorige les. De reflectiviteit werd gerapporteerd als 10% wanneer de groene schijf zich onder de objectsensor bevond, dus alles wat groter is dan9% zou gerapporteerd moeten worden alsTrue.

Het blok Wachten tot met de waarde Groter dan gemarkeerd en gewijzigd van 50 naar 9. Het hele blok samen leest nu Wacht tot de reflectiviteit van objectsensor A in % groter is dan 9.

Voeg eenStopblok toe aan het einde van het project. Zorg ervoor dat de parameter is ingesteld op 'ExitConveyor4.'

Voortzetting van de VEXcode EXP-stack met een Stop Motor-knop die aan het einde is toegevoegd met de tekst Stop exit conveyor 4. De stapel geeft aan: Wanneer gestart, draai invoertransportband 1 ingaand, wacht 7 seconden en stop vervolgens invoertransportband 1. Draai vervolgens transportband 2 naar voren, wacht 5 seconden en stop transportband 2 vervolgens. Draai ten slotte de uitgangstransportband 4 naar binnen. Wacht totdat de reflectiviteit van objectsensor A in % groter is dan 9 en stop vervolgens de uitgangstransportband 4.

Zorg ervoor dat de Brain is verbonden met VEXcode en download het project.

VEXcode EXP-werkbalk met het Download-pictogram in een rood kader, tussen de pictogrammen Brain en Run.

Lees de code en voorspel wat de transportbanden zullen doen als het project wordt uitgevoerd. 

Noteer uw voorspelling in uw technisch notitieboekje.

De VEXcode EXP-stack waaraan het Stop Motor-blok zojuist is toegevoegd. De hele stapel luidt: Wanneer gestart, draai invoertransportband 1 ingaand, wacht 7 seconden en stop vervolgens invoertransportband 1. Draai vervolgens transportband 2 naar voren, wacht 5 seconden en stop transportband 2 vervolgens. Draai ten slotte de uitgangstransportband 4 naar buiten. Wacht totdat de reflectiviteit van objectsensor A in % groter is dan 9 en stop vervolgens de uitgangstransportband 4.

Zorg ervoor dat er een groene schijf op de invoerband is geplaatst. Druk op de knop Check op de Brain om het project uit te voeren en te testen.

Observeer het gedrag van de transportbanden terwijl het project loopt.

EXP Brain met de ruitvormige vinkknop in een rood vak om het project Unit 4 Lesson 4 te starten.

Druk op de X knop op de Brain om het project te stoppen wanneer de transportbanden klaar zijn met bewegen. Noteer uw observaties in uw technisch notitieboekje.

Bewogen de transportbanden zoals u had voorspeld? Is de groene schijf zoals bedoeld naar de uitvoerband verplaatst? Waarom wel of waarom niet?

EXP Brain met de diamanten X-knop in een rood kader om het project te beëindigen.

Het project beoordelen

Laten we de projectstroom in dit project eens bekijken, waarbij de Exit Conveyor werd gestopt toen de groene schijf werd gedetecteerd door de objectsensor. Het blokWacht totzorgt ervoor dat het project pas verdergaat als aan de voorwaarde is voldaan en deze als WAAR wordt gerapporteerd. 

Diagram dat de logicastroom in het VEXcode EXP-project visualiseert. Een pijl geeft aan dat het blok Wacht tot begint, en vervolgens geeft een cyclische pijl aan dat het blok wacht tot aan de voorwaarde is voldaan. Alleen als de reflectiviteit van objectsensor A in % groter is dan 9, wordt het volgende blok uitgevoerd.

Omdat hetSpinblok een niet-wachtend blok is, kan de CTE-werkcel de transportbandmotor blijven laten draaien terwijl de waarden van de objectsensor worden gecontroleerd en de reflectiviteit groter is dan 9%. Nadat de voorwaarde in het blokWacht totalsTRUE wordt gerapporteerd, gaat het project naar het volgende blok in de stapel en stopt de Exit Conveyor-motor.

Ter informatie

Een andere combinatie van blokken kan in een project worden gebruikt om de uitvoerband te stoppen wanneer een object zich onder de objectsensor bevindt. Het blokSet Detection Thresholdkan aan het begin van een project worden gebruikt om de drempelwaarde in te stellen, net zoals het blokGreater thandat deed in het hierboven gebouwde project. 

VEXcode EXP Set Detection Threshold-blok met de tekst 'Stel de detectiedrempel van objectsensor A in op 50%.

Zodra de drempelwaarde is ingesteld, kan het Booleaanse blokDetecteert objectworden gebruikt in alle blokken met hexagonale ruimtes. Dit blok rapporteert TRUE wanneer de detectiedrempel die is gedefinieerd door het blokSet detection thresholdis bereikt, of FALSE wanneer het reflectiepercentage onder die drempel ligt.

VEXcode EXP Detects Object-blok met de tekst 'Detecteert objectsensor A een object?'.

Omdat het blokDetecteertobjecteen Booleaans blok is, past het direct in het blokWacht tot.

Alternatieve versie van de VEXcode EXP-stack, waarbij het Booleaanse blok Wait Until is gewijzigd in een Detection Threshold-systeem. De hele stapel luidt nu: Wanneer gestart, stel de detectiedrempel voor objectsensor A in op 9%. Draai vervolgens de invoerband 1 naar binnen, wacht 7 seconden en stop vervolgens de invoerband 1. Draai vervolgens transportband 2 naar voren, wacht 5 seconden en stop transportband 2 vervolgens. Draai vervolgens de uitgangstransportband 4 naar binnen, wacht totdat objectsensor A een object detecteert en stop vervolgens de uitgangstransportband 4.

Controleer uw begrip

Voordat u doorgaat naar de volgende les, moet u ervoor zorgen dat u de concepten in deze les begrijpt door de volgende vragen in uw technische notitieboekje te beantwoorden.

Controleer uw begrip vragen > (Google Doc / .docx / .pdf)


Selecteer Volgende > om door te gaan naar de activiteit Alles bij elkaar brengen.