O Desafio da Interface do Utilizador
No Desafio de Interface do Utilizador, irá programar o Clawbot para que um utilizador possa pressionar o ecrã do Cérebro para controlar os motores do braço e da garra. Em seguida, os quatro botões no ecrã serão usados para recolher e substituir uma variedade de dez objetos. Este desafio não requer que o Clawbot dirija ou vire. Os objetos são apanhados e depois recolocados no mesmo local na mesa ou no chão.
Regras:
- Cada um dos quatro botões deve fazer apenas uma das quatro ações: abrir a garra, fechar a garra, levantar o braço ou abaixar o braço.
- Não é permitido usar o Controlador.
- Cada Clawbot precisará levantar e substituir o maior número possível de objetos dentro de um minuto e sem deixá-los cair. Recomenda-se levantar e substituir um objeto de cada vez.
- A rodada de um minuto termina na marca de 1 minuto ou se algum objeto cair - mesmo que a rodada tenha apenas alguns segundos. Soltar um objeto desqualifica a equipe do minuto inteiro da rodada, mas todos os pontos ganhos antes da queda são contados.
- Se todos os objetos fornecidos tiverem sido levantados antes do fim da rodada de um minuto, os objetos podem ser reutilizados até que o tempo seja chamado.
- O objeto precisa ser levantado mais alto do que o motor do braço antes de ser substituído na mesa.
- Cada objeto agarrado e levantado com sucesso, depois para baixo e substituído, vale um ponto.
- Entre as rodadas, os papéis podem ser alterados, mas apenas um usuário por Clawbot pode jogar cada rodada.
- O grupo com mais pontos no final de todas as rodadas, vence!
Funções no Desafio:
- Deve haver apenas um utilizador (o levantador) a levantar os objetos durante cada ronda, mas os grupos podem alternar os utilizadores entre rondas.
- Deve haver um mesário designado que contabilize quantos objetos cada Clawbot é capaz de levantar com sucesso. Cada objeto substituído com sucesso vale um ponto. Depois que um objeto é descartado, a vez do Clawbot termina. Várias rodadas podem ser jogadas. Uma tabela de pontuação está incluída aqui, mas linhas podem ser adicionadas para grupos e rodadas adicionais. Cada grupo pode usar sua própria tabela de pontuação ou todos podem gravar na mesma. Se vários grupos estiverem usando a mesma tabela de pontuação, escreva o ID do Clawbot ou o nome do grupo de cada grupo na segunda coluna. Além disso, o mesário deve combinar os pontos de cada rodada no final do Desafio da Interface do Usuário para obter uma pontuação total.
- Deve haver uma pessoa designada para trocar objetos da mesa: o switcher. Como o Clawbot não está a virar ou a conduzir, o objeto levantado terá de ser removido e substituído por um novo objeto após cada tentativa.
- Deve haver uma pessoa designada para acompanhar o tempo: o cronometrista. Cada rodada dura um minuto.
- O professor deve fornecer os objetos aprovados para este desafio antes de começar.
Dicas para Professores
- Lembre aos alunos que eles só podem tocar na tela do Clawbot.
- Forneça apenas objetos que sejam seguros para possível queda: uma lata vazia ou garrafa de água, um cubo VEX, uma peça não utilizada do Kit VEX ou qualquer outra coisa que não seja permanentemente danificada por uma queda ou salto.
- Permita que os alunos observadores vejam como é a tela de cada Clawbot. Os retângulos devem ser os mesmos, mas as cores de cada Clawbot provavelmente serão diferentes.
- Discuta as opiniões dos alunos sobre as melhores opções de cores durante ou após o desafio.
Caixa de Ferramentas do Professor
Abaixo, você encontrará um exemplo de solução de programação para este desafio, juntamente com uma rubrica de programação, uma rubrica de caderno de engenharia individual e uma rubrica de caderno de engenharia de equipe.
- Exemplo de solução de programação
# Begin project code
screen_buttons = Event()
def has_screen_buttons
():
brain.screen.set_fill_color (Color.GREEN) brain.screen.draw_rectangle (0,
0, 240,
120) brain.screen.set_fill_color (Color.PURPLE) brain.screen.draw_rectangle (
240, 0
, 480, 120) brain.screen.set_fill_color (Color.ORANGE
) brain.screen.draw_rectangle (0
, 120, 240, 240) brain.screen.set_fill_color (Color.CYAN) brain.screen.draw_rectangle (
240, 120, 480, 240)
wait (1
, SECONDS
) screen_buttons
(HAS_screen_buttons)
while True < :
screen_buttons.broadcast ()
if brain.screen.pressing ():
if brain.screen.x_position () < 240
:
if brain.screen.y_position () < 120: claw_motor.spin (FORWARD)
while brain.screen.pressing ():
wait (5, MSEC
)
else: claw_motor.spin (REVERSE)
while brain.screen.pressing (
wait (5,
MSEC)
else: if brain.screen_position (
120): armmotor.spin (
forward)
while
(brain.screen.pressing
(5, MSEC)
- Rubrica de Programação - Google Doc / .docx / .pdf
- Rubrica do Caderno de Engenharia (Individual) - Google Doc / .docx / .pdf
- Engineering Notebook Rubric (Team) - Google Doc / .docx / .pdf