Skip to main content

Lição 3: Movendo Dois Cubos

Na Lição anterior, você aprendeu a codificar o Braço de 6 Eixos para pegar e colocar um Cubo no palete. Nesta lição, você aproveitará o que aprendeu para mover vários cubos para o palete. Você aprenderá a: 

  • Planeie os locais de entrega dos Cubos que irá colocar na palete.
  • Codifique o Braço de 6 Eixos para mover dois Cubos com sucesso para o palete.

No final da Aula, irá construir o seu projeto para recolher e colocar quatro Cubos na palete na Atividade. 

Imagem da atividade concluída com 4 cubos num palete

Pensando em Posicionamento no Pallet

Na lição anterior, você moveu um cubo para o palete e o colocou no centro. Um dos benefícios de enviar grandes quantidades de itens usando um palete é que muitos objetos podem ser transportados de uma só vez. Para fazer isso de forma eficaz, esses objetos precisam ser organizados de maneira eficiente para permitir que as empresas embalem mais em cada palete que enviam. 

Um palete seria uma maneira ineficiente e cara de mover um ou dois objetos pequenos, como a situação de colocar um Cubo no centro do palete. Colocar mais cubos no palete, no entanto, torna o envio mais eficiente e econômico. Imagem de dois paletes lado a lado - um com um único cubo colocado no centro e um segundo com quatro cubos colocados nos cantos

Para fazer isso, precisaremos pensar em onde cada um dos Cubos será colocado no palete. Ao longo desta lição, você aprenderá a codificar o braço de 6 eixos para mover vários cubos e colocá-los efetivamente no palete juntos.

Coloque o primeiro cubo

Seu projeto da Lição 2 moveu um Cubo para o centro do palete. O primeiro passo para colocar vários Cubos é ajustar o local de entrega do primeiro Cubo – colocando-o no canto do palete.

Abra o seu projeto a partir da Lição 2 em VEXcode EXP. 

Imagem do projeto da Unidade 7 Lição 2

Renomeie o projeto para Unidade 7 Lição 3 e salve-o no seu dispositivo. 

Imagem da caixa de diálogo do nome do projeto no VEXcode com a Unidade 7 Lição 3

Coloque o Cubo no canto do palete. 

Mova manualmente o braço de 6 eixos para que o ímã toque a parte superior do cubo.

Imagem do Ímã tocando a parte superior do Cubo no canto do palete

Certifique-se de que o braço de 6 eixos esteja conectado ao VEXcode. 

Selecione o ícone Monitor na Barra de Ferramentas para abrir o Monitor. 

Imagem da Barra de Ferramentas com o ícone Monitor destacado

Grave as coordenadas x e y do Console do Monitor no seu caderno de engenharia. Estas serão as coordenadas x e y do local de entrega do Cubo.

Lembre-se de que o braço de 6 eixos se moverá acima do local de entrega antes de mover o cubo para o palete. Isto significa que não precisa de registar o valor z. 

 

Imagem dos valores x, y, z no console do Monitor

Introduza as coordenadas x e y do novo local de entrega no seu projeto. A coordenada z deve permanecer a mesma, de modo que o braço de 6 eixos permaneça acima do local de entrega. 

Certifique-se de usar as suas coordenadas, pois as mostradas aqui são um exemplo e podem variar das suas próprias coordenadas gravadas.

Imagem do projeto com os novos valores x e y inseridos no projeto

Certifique-se de que o braço de 6 eixos esteja conectado ao VEXcode e que o cubo esteja colocado na zona de carregamento.

Execute o projeto para testá-lo. Observe os comportamentos do braço de 6 eixos. Ele pega e coloca o Cubo no canto do palete como pretendido? Por que sim ou por que não? 

Imagem do botão de EXECUÇÃO na barra de ferramentas

Pare o projeto quando o braço de 6 eixos parar de se mover. Registe as suas observações no seu caderno de engenharia. 

Imagem do botão PARAR na barra de ferramentas

Mover um segundo cubo

Agora que o primeiro Cubo está no novo local de entrega, há espaço no palete para colocar cubos adicionais. Os mesmos comportamentos usados para mover o primeiro Cubo serão repetidos para mover um segundo. O Braço de 6 Eixos precisará se mover para o mesmo local de coleta, engatar o Ímã, mover o Cubo para o palete e soltar o Cubo.Imagem dos 2 cubos rotulados no palete

Existem várias estratégias de codificação que você pode tentar para ajudar a mover os dois Cubos com sucesso. 

Adicionar um bloco de repetição

Sabendo que uma sequência de comportamentos será repetida, a primeira estratégia a ser tentada é usar um bloco Repetir. Como aprendemos na Unidade anterior, um bloco Repetir é útil para repetir blocos ou uma pilha de blocos em um projeto.

 

Adicione um bloco Repetir ao seu projeto abaixo do bloco Definir efetor final, como mostrado aqui.

Ficheiro de vídeo

Arraste o bloco Move the Cube to the pallet Comment para o bloco Repeat, como mostrado aqui. Isso também arrastará todos os blocos subsequentes para o bloco Repetir. 

Agora, todos os blocos necessários para pegar e colocar um Cubo do local de retirada até o canto do palete podem ser repetidos. 

Ficheiro de vídeo

Defina o parâmetro no bloco Repetir para 2.

Como você está tentando mover dois cubos para o palete, os comportamentos serão repetidos duas vezes. 

Imagem do parâmetro do bloco Repetir definido como 2

Leia o código que você criou e preveja o que o Braço de 6 Eixos fará quando o projeto for executado. 

Grave a sua previsão no seu caderno de engenharia. Você pode esboçar o caminho do Braço de 6 Eixos ou desenhar onde os Cubos serão colocados no palete. 

Imagem do projeto com o loop Repeat

Certifique-se de que o braço de 6 eixos esteja conectado ao VEXcode.

Execute o projeto para testá-lo. Observe os comportamentos do braço de 6 eixos quando o projeto for executado.

Imagem do botão de EXECUÇÃO na barra de ferramentas

Pare o projeto quando o Braço de 6 Eixos terminar de se mover. Registe as suas observações no seu caderno de engenharia. 

O braço de 6 eixos moveu ambos os cubos para o palete com sucesso? Por que sim ou por que não? 

Imagem do botão PARAR na barra de ferramentas

Isso não moveu o segundo Cubo como pretendido e causou um erro. Uma vez que o primeiro Cubo foi colocado nessa posição, o segundo Cubo também não pode ser colocado no mesmo local. O Braço de 6 Eixos não conseguiu chegar ao local, então ocorreu um erro. 

Para colocar o segundo Cubo no palete, precisaremos deslocar este Cubo para uma posição aberta no palete. 

Mova o segundo cubo em relação ao primeiro

Conhecer a posição do primeiro Cubo no palete significa que o próximo Cubo pode ser colocado em relação ao primeiro. Você aprendeu sobre o movimento relativo na Unidade anterior e agora pode aplicar esses conceitos para ajudar a colocar o segundo Cubo. 

Para alcançar o próximo canto do palete, o braço de 6 eixos se moverá na direção positiva ao longo do eixo y. Imagem do palete com 2 Cubos, com uma seta a indicar a direção y positiva

Usando o que é conhecido sobre o tamanho do Cubo, o deslocamento necessário para colocar o segundo Cubo pode ser determinado. O deslocamento é a diferença entre a localização atual e a localização desejada de um objeto. No palete, o deslocamento para o segundo Cubo é a distância entre o centro do primeiro Cubo e o centro do segundo Cubo no local desejado.

Dado que um Cubo tem 25 mm de largura, podemos aproximar que o deslocamento é de 50 mm.Imagem de dois Cubos no palete com o deslocamento indicado

Agora que você sabe a distância e a direção do movimento relativo necessário, essas informações podem ser adicionadas ao projeto.

Adicione um bloco de posição Increment ao projeto, como mostrado aqui. 

Ficheiro de vídeo

Defina o parâmetro y para 50. Isso indica um movimento relativo de 50 mm ao longo do eixo y. 

Imagem do parâmetro y inserido no projeto

Leia o código e preveja o comportamento do Braço de 6 Eixos. 

Grave a sua previsão no seu caderno de engenharia. Você acha que este projeto colocará com sucesso ambos os Cubos nos locais desejados? Por que sim ou por que não? 

Imagem do projeto neste momento

Certifique-se de que o braço de 6 eixos esteja conectado ao VEXcode. Execute o projeto para testá-lo. 

Observe o comportamento do braço de 6 eixos.

Imagem do botão de EXECUÇÃO na barra de ferramentas

Pare o projeto quando o braço de 6 eixos terminar de se mover. Registe as suas observações no seu caderno de engenharia. 

A sua observação correspondeu à sua previsão? Os dois Cubos são movidos para os locais pretendidos no palete? Por que sim ou por que não? 

Imagem do botão PARAR na barra de ferramentas

Como você pode ter previsto, este projeto também não move ambos os Cubos para os locais pretendidos. O bloco de posição de incremento moveu corretamente o braço de 6 eixos para a posição desejada para o segundo cubo. No entanto, como todos os comportamentos foram repetidos, ambos os Cubos foram movidos para este local. Isso criou o mesmo erro do projeto anterior, apenas em um local diferente no palete. 

O objetivo é colocar o primeiro Cubo no primeiro local e o segundo Cubo no segundo local no palete. Para fazer isso com sucesso, o projeto precisa acompanhar qual Cubo está sendo movido. Se o primeiro Cubo estiver sendo movido, ele deve ir para o primeiro local. Se o segundo Cubo estiver sendo movido, ele pode ser colocado no segundo local. 

Mover Dois Cubos Usando Variáveis e um Bloco If then

Para acompanhar qual Cubo está sendo movido, uma variável pode ser criada e usada no projeto para essencialmente 'contar' os Cubos à medida que eles estão sendo manipulados. Uma variável pode ser usada para armazenar informações sobre qual Cubo está sendo movido. Essas informações podem ser usadas para tomar uma decisão dentro do projeto – se o Braço de 6 Eixos estiver movendo o segundo Cubo, ele deverá movê-lo para o segundo local no palete.  

 

Crie uma variável e nomeie-a CubeCount. Selecione Enviar para criar a variável. 

Você pode revisitar a Lição 2 da Unidade 6 para obter lembretes sobre como criar uma variável no VEXcode.

Imagem da caixa de diálogo de nomenclatura de variáveis no VEXcode

Adicione o bloco Definir variável ao projeto acima do bloco Repetir, como mostrado aqui. 

Ficheiro de vídeo

Defina o parâmetro para 1. Certifique-se de que a variável CubeCount está selecionada no menu suspenso. 

Quando o projeto for iniciado, o primeiro Cubo será recolhido. Como o objetivo desta variável é numerar o Cubo que está sendo movido, ele precisa ser definido como '1' para começar. 

Imagem do bloco Definir variável no projeto com a variável Contagem de Cubos definida e o parâmetro definido como 1

Anteriormente, um bloco de posição de incremento foi adicionado para mover o braço de 6 eixos para o segundo local de entrega. Para mover o primeiro Cubo para o local de entrega, este bloco precisa ser excluído.

Clique com o botão direito no bloco de posição Incrementar e exclua-o, conforme mostrado aqui. 

Ficheiro de vídeo

Adicione um bloco Alterar variável à parte inferior do bloco Repetir, como mostrado aqui.

Quando o projeto for executado, o primeiro Cubo será movido para o local de entrega. Adicionar o bloco Alterar variável aqui fará com que a CubeCount aumente após a entrega do primeiro Cubo. Quando o bloco Repetir volta para pegar o segundo Cubo, a variável é aumentada '2', indicando que o segundo Cubo está sendo movido. 

Ficheiro de vídeo

Agora que o projeto está armazenando informações sobre o número de cubos, podemos usar essas informações para tomar uma decisão. Um bloco If then nos permite fazer uma pergunta dentro de um projeto e usar informações (como o valor de uma variável) para tomar uma decisão. Image of the If then block in VEXcode

O bloco If then é um bloco C que aceita blocos reportadores booleanos como uma condição. Um bloco booleano retorna uma condição como VERDADEIRO ou FALSO e se encaixa dentro de qualquer bloco com uma entrada hexagonal. Se a condição for relatada como VERDADEIRA, os blocos dentro do bloco C serão executados. Se a condição for relatada como FALSA, o bloco If then será ignorado no projeto. 

Neste caso, a condição que estamos procurando é que avariável CubeCount seja 2. Se a variável CubeCount for 2, o braço de 6 eixos precisa se mover para a segunda posição no palete. 

Vamos pensar em onde no projeto essa decisão precisa ser tomada. O projeto pegará o Cubo na zona de carregamento e, em seguida, mover-se-á acima do local de entrega. Se a CubeCount for 2,  o braço de 6 eixos precisará realizar um comportamento extra para se mover para a segunda posição do palete. Image of the project broken down

 

Adicione um bloco Se, em seguida, ao projeto, conforme mostrado aqui. 

Imagem do bloco Se, em seguida, adicionado ao projeto com um comentário

Adicione um Equal para bloquear no espaço hexagonal no bloco If then, como mostrado aqui.

Ficheiro de vídeo

Adicione a variável CubeCount no lado esquerdo do operador Equal to. Defina o lado direito do operador igual a 2, como mostrado neste vídeo.

Se a variável CubeCount for igual a 2, a condição booleana será relatada como VERDADEIRA. Se o CubeCount não for 2, a condição booleana será relatada como FALSA. 

Ficheiro de vídeo

Adicione um bloco de posição de incremento dentro do bloco C, como mostrado aqui. 

Ficheiro de vídeo

Defina o parâmetro y do bloco de posição de incremento para 50. 

Quando a condição do bloco If then for atendida, o bloco de posição Increment dentro do bloco If then será executado. Isso significa que, se o CubeCount for 2, o braço de 6 eixos fará o movimento relativo para a segunda posição no palete.

Imagem do projeto com o parâmetro y adicionado

Leia o código e preveja o que o Braço de 6 Eixos fará quando o projeto for executado. 

Grave a sua previsão no seu caderno de engenharia.

Imagem do projeto no VEXcode EXP

Certifique-se de que o braço de 6 eixos esteja conectado ao VEXcode. Execute o projeto para testá-lo. 

Observe o comportamento do braço de 6 eixos enquanto o projeto é executado. 

Imagem do botão de EXECUÇÃO na barra de ferramentas

Pare o projeto quando o braço de 6 eixos terminar de se mover. Registe as suas observações no seu caderno de engenharia.

O braço de 6 eixos se moveu como você previu? Ambos os Cubos foram movidos para o palete como pretendido? Por que sim ou por que não?

Imagem do botão PARAR na barra de ferramentas

Para sua informação

Você pode executar o projeto várias vezes, para que possa prestar atenção aos blocos que estão em execução à medida que o Braço de 6 Eixos se move. Procure o destaque em torno dos blocos à medida que são executados no projeto, para ajudá-lo a entender melhor quando o bloco If then é executado. Você também pode usar o recurso Etapa para executar o projeto um bloco de cada vez, para ajudá-lo a ver o fluxo do projeto com o bloco Se, em seguida, com mais clareza. Image of the STEP button in the Toolbar

Lembre-se de que você pode adicionar uma variável ao Monitor, para ajudar a ver o valor CubeCount enquanto o projeto está em execução. Para adicionar uma variável ao Monitor, arraste a variável para o ícone Monitor no Espaço de Trabalho, conforme mostrado neste vídeo. Ao executar o projeto, certifique-se de observar a variável no Monitor, para ajudá-lo a ver a conexão entre o valor da variável e o fluxo do projeto.

Ficheiro de vídeo

Revisão do Projecto 

Vamos rever o processo de resolução de problemas que foi usado para resolver o desafio de colocar dois cubos no palete. Houve várias iterações do projeto para que o Braço de 6 Eixos movesse ambos os Cubos como pretendido: 

  • Um bloco Repetir foi adicionado para repetir os comportamentos necessários para pegar, mover e entregar um Cubo no palete.
  • Um bloco de posição de incremento foi adicionado para mover o segundo cubo para uma posição aberta no palete.
  • Uma variável foi adicionada para contar os Cubos, para que uma decisão pudesse ser tomada com base em qual Cubo estava sendo movido. 
  • Um bloco If then foi adicionado para tomar uma decisão com base no valor da variável. 

Todas essas iterações juntas criaram um projeto que pegou e entregou ambos os Cubos com sucesso. Quando o segundo Cubo foi recolhido, o Braço de 6 Eixos novamente moveu o Cubo acima do local de entrega original no palete. Então uma decisão foi tomada. Image of the 6-Axis Arm with the second Cube held above the first Cube, and the VEXcode project with the If then block highlighted and the variable count at 2 in the MonitorComo a CubeCount é '2', o bloco dentro do bloco If then é executado, movendo o Cubo ao longo do eixo y para a posição desejada do palete.

O processo iterativo em que você se envolveu ao longo desta Lição é algo que você continuará a fazer cada vez que resolver um desafio com o Braço de 6 Eixos. É importante lembrar que a maioria dos desafios de codificação não será resolvida perfeitamente na primeira tentativa. Este processo de planeamento, construção, teste e avaliação é aquele que pode levar o seu grupo a encontrar soluções criativas. A maioria dos desafios pode ser resolvida de várias maneiras, portanto, ao se envolver nesse processo de forma colaborativa, você pode encontrar a estratégia que funciona melhor para o seu grupo. 

Actividade

Agora que você moveu dois Cubos da zona de carregamento para o palete, você praticará essas habilidades. Nesta atividade, você desenvolverá o seu projeto a partir desta lição para codificar o braço de 6 eixos e mover quatro cubos para o palete.

Imagem da atividade concluída com quatro cubos num palete

Atividade: codifique o braço de 6 eixos para colocar quatro cubos num palete.

  1. Planeie como irá construir o seu projeto para codificar o Braço de 6 Eixos para recolher o Cubo adicional da zona de carregamento e colocá-lo na palete com o seu grupo. Certifique-se de que todos concordam com a sua abordagem antes de começar a editar o projeto. 
    1. Documente o seu plano no seu caderno de engenharia.
    2. Renomeie o seu projeto Unidade 7 Atividade da Lição 3 e salve-o no seu dispositivo antes de começar a editar o projeto.
  2. Edite o projeto no VEXcode para corresponder ao plano acordado pelo seu grupo.
  3. Execute o projeto para testá-lo. Coloque manualmente o segundo, terceiro e quarto Cubos na zona de carregamento uma vez que cada Cubo tenha sido colocado.
  4. O Braço de 6 Eixos move com sucesso os Cubos como você pretendia? Deve haver quatro cubos no palete. Caso contrário, continue a editar o projeto até ter colocado com sucesso todos os quatro Cubos. 

Verifique a sua compreensão

Antes de passar para a próxima lição, certifique-se de entender os conceitos desta lição respondendo às seguintes perguntas em seu caderno de engenharia. 

Verifique as suas perguntas de compreensão > (Google Doc / .docx / .pdf)


Selecione Avançar > para passar para a Atividade de Colocar Tudo Junto.