La sfida dell'interfaccia utente
Nella Sfida dell'interfaccia utente, programmerai il Clawbot in modo che un utente possa premere lo schermo del cervello per controllare i motori del braccio e dell'artiglio. Quindi i quattro pulsanti sullo schermo verranno utilizzati per raccogliere e sostituire una varietà di dieci oggetti. Questa sfida non richiede che il Clawbot guidi o svolti. Gli oggetti vengono raccolti e quindi riposti nello stesso punto sul tavolo o sul pavimento.
Rules:
- Ciascuno dei quattro pulsanti deve eseguire solo una delle quattro azioni: aprire l'artiglio, chiudere l'artiglio, sollevare il braccio o abbassare il braccio.
- L'utilizzo del controller non è consentito.
- Ogni Clawbot dovrà sollevare e sostituire il maggior numero possibile di oggetti entro un minuto e senza farli cadere. Si consiglia di sollevare e sostituire un oggetto alla volta.
- Il round di un minuto termina al segno di 1 minuto o se viene lasciato cadere un oggetto, anche se il round dura solo pochi secondi. La caduta di un oggetto squalifica la squadra dall'intero minuto del round, ma tutti i punti guadagnati prima della caduta vengono conteggiati.
- Se tutti gli oggetti forniti sono stati sollevati prima che il round di un minuto sia terminato, gli oggetti possono essere riutilizzati fino a quando non viene chiamato il tempo.
- L'oggetto deve essere sollevato più in alto del motore del braccio prima di essere sostituito sul tavolo.
- Ogni oggetto afferrato, sollevato, sollevato e sostituito con successo vale un punto.
- Tra un round e l'altro, i ruoli possono essere cambiati, ma solo un utente per Clawbot può giocare ogni round.
- Il gruppo con il maggior numero di punti alla fine di tutti i turni vince!
Ruoli nella sfida:
- Dovrebbe esserci un solo utente (il sollevatore) che solleva gli oggetti durante ogni turno, ma i gruppi possono passare da un turno all'altro.
- Dovrebbe esserci un segnapunti designato che conta quanti oggetti ogni Clawbot è in grado di sollevare con successo. Ogni oggetto sostituito con successo vale un punto. Dopo che un oggetto è caduto, il turno dell'Artiglio è finito. È possibile giocare più turni. Qui è inclusa una tabella dei punteggi, ma è possibile aggiungere righe per gruppi e turni aggiuntivi. Ogni gruppo può utilizzare la propria tabella di punteggio o tutti possono registrare sullo stesso. Se più gruppi utilizzano la stessa tabella dei punteggi, scrivere l'ID Clawbot di ciascun gruppo o il nome del gruppo nella seconda colonna. Inoltre, il segnapunti dovrebbe combinare i punti di ogni round alla fine della Sfida dell'interfaccia utente per un punteggio totale.
- Dovrebbe esserci una persona incaricata di spostare gli oggetti fuori dal tavolo: lo switcher. Poiché il Clawbot non sta girando o guidando, l'oggetto sollevato dovrà essere rimosso e sostituito con un nuovo oggetto dopo ogni tentativo.
- Dovrebbe esserci una persona incaricata di tenere traccia del tempo: il cronometrista. Ogni round dura un minuto.
- L'insegnante dovrebbe fornire gli oggetti approvati per questa sfida prima di iniziare.
Suggerimenti per l'insegnante
-
Ricorda agli studenti che possono toccare solo lo schermo del Clawbot.
-
Fornire solo oggetti sicuri per eventuali cadute: una lattina vuota o una bottiglia d'acqua, un cubo VEX, un pezzo inutilizzato del kit VEX o qualsiasi altra cosa che non venga danneggiata in modo permanente da una caduta o da un rimbalzo.
-
Consenti agli studenti di osservare come appare lo schermo di ciascun Clawbot. I rettangoli dovrebbero essere gli stessi, ma i colori di ogni Clawbot saranno probabilmente diversi.
-
Discutere le opinioni degli studenti sulle migliori scelte di colore durante o dopo la sfida.
Teacher Toolbox
-
Soluzione
Di seguito troverai una soluzione di programmazione di esempio per questa sfida insieme a una rubrica di programmazione, una rubrica di quaderno di ingegneria individuale e una rubrica di quaderno di ingegneria del team.
- Esempio di soluzione di programmazione
// Start project code
event ScreenButtons = event();
void HasScreenButtons () {
Brain.Screen.setFillColor (green);
Brain.Screen.drawRectangle (0, 0, 240, 120);
Brain.Screen.setFillColor (purple);
Brain.Screen.drawRectangle (240, 0, 480, 120);
Brain.Screen.setFillColor (orange);
Brain.Screen.drawRectangle (0, 120, 240, 240);
Brain.Screen.setFillColor (cyan);
Brain.Screen.drawRectangle (240, 120, 480, 240);
wait(1, seconds);
}
int main() {
// Initializing Robot Configuration. NON RIMUOVERE!
vexcodeInit();
ScreenButtons(HasScreenButtons);
while (true) {
ScreenButtons.broadcast();
if (Brain.Screen.pressing()) {
if (Brain.Screen.xPosition() < 240) {
if (Brain.Screen.yPosition() < 120) {
ClawMotor.spin(forward);
waitUntil(!Brain.Screen.pressing());
} else {
ClawMotor.spin(reverse);
waitUntil(!Brain.Screen.pressing());
}
} else {
if (Brain.Screen.yPosition() < 120) {
ArmMotor.spin(avanti);
waitUntil(!Brain.Screen.pressing());
} else {
ArmMotor.spin(reverse);
waitUntil(!Brain.Screen.pressing());
}
}
ClawMotor.stop();
ArmMotor.stop();
}
wait(5, msec);
}
}
- Rubrica di programmazione - Google Doc / .docx / .pdf
- Rubrica quaderno di ingegneria (individuale) - Google Doc / .docx / .pdf
- Rubrica Engineering Notebook (Team) - Google Doc / .docx / .pdf