En la lección anterior, aprendiste a codificar el brazo de 6 ejes para recoger y colocar un cubo en el palé. En esta lección, se basará en lo que aprendió para mover varios cubos al palé. Aprenderás a:
- Planifique las ubicaciones de entrega de los cubos que colocará en el palé.
- Codifique el brazo de 6 ejes para mover dos cubos con éxito al palé.
Al final de la Lección, incorporará su proyecto para recoger y colocar cuatro Cubos en el palé en la Actividad.

Pensando en el posicionamiento en el palé
En la lección anterior, movió un cubo al palé y lo colocó en el centro. Una de las ventajas de enviar grandes cantidades de artículos utilizando un palé es que se pueden transportar muchos objetos a la vez. Para hacer esto de manera efectiva, esos objetos deben organizarse de manera eficiente para permitir a las empresas empacar más en cada palé que envían.
Un palé sería una forma ineficiente y costosa de mover uno o dos objetos pequeños, como la
situación de colocar un cubo en el centro del palé. Sin embargo, colocar más cubos en el palé
hace que el envío sea más eficiente y rentable. 
Para ello, tendremos que pensar dónde se colocará cada uno de los Cubos en el palet. A lo largo de esta lección, aprenderá a codificar el brazo de 6 ejes para mover varios cubos y colocarlos juntos de manera efectiva en el palé.
Coloque el primer cubo
Su proyecto de la Lección 2 movió un cubo al centro del palé. El primer paso para colocar varios cubos es ajustar la ubicación de entrega del primer cubo, colocándolo en la esquina del palé.
Abra su proyecto de la Lección 2 en VEXcode EXP.

Cambie el nombre del proyecto a Unidad 7 Lección 3 y guárdelo en su dispositivo.

Coloque el cubo en la esquina del palé.
Mueva manualmente el brazo de 6 ejes para que el imán toque la parte superior del cubo.

Asegúrese de que el brazo de 6 ejes esté conectado a VEXcode.
Seleccione el icono Monitor en la barra de herramientas para abrir el Monitor.

Registre las coordenadas x e y desde la Consola del monitor en su cuaderno de ingeniería. Estas serán las coordenadas x e y de la ubicación de entrega del cubo.
Recuerde que el brazo de 6 ejes se moverá por encima de la ubicación de entrega antes de mover el cubo hacia abajo al palé. Esto significa que no es necesario registrar el valor z.

Introduzca las coordenadas x e y de la nueva ubicación de entrega en su proyecto. La coordenada z debe permanecer igual, de modo que el brazo de 6 ejes permanezca por encima de la ubicación de entrega.
Asegúrese de usar sus coordenadas, ya que las que se muestran aquí son un ejemplo y pueden variar de sus propias coordenadas registradas.

Asegúrese de que el brazo de 6 ejes esté conectado a VEXcode y que el cubo esté colocado en la zona de carga.
Ejecuta el proyecto para probarlo. Observe los comportamientos del brazo de 6 ejes. ¿Recoge y coloca el Cubo en la esquina del palé según lo previsto? ¿Por qué sí o por qué no?

Detenga el proyecto cuando el brazo de 6 ejes haya dejado de moverse. Registre sus observaciones en su cuaderno de ingeniería.

Mover un segundo cubo
Ahora que el primer cubo está en la nueva ubicación de entrega, hay espacio en el palé para
colocar cubos adicionales. Los mismos comportamientos utilizados para mover el primer cubo se
repetirán para mover un segundo. El brazo de 6 ejes deberá moverse al mismo lugar de recogida,
enganchar el imán, mover el cubo al palé y soltar el cubo.
Hay varias estrategias de codificación que puedes probar para ayudar a mover ambos cubos con éxito.
Añadir un bloque de repetición
Sabiendo que se va a repetir una secuencia de comportamientos, la primera estrategia a probar es usar un bloque de repetición. Como aprendiste en la unidad anterior, un bloque de repetición es útil para repetir bloques o una pila de bloques en un proyecto.
Agregue un bloque de repetición a su proyecto debajo del bloque Establecer efector final, como se muestra aquí.
Arrastre el bloque Move the Cube to the pallet Comment al bloque Repeat, como se muestra aquí. Esto también arrastrará todos los bloques posteriores al bloque Repetir.
Ahora, se pueden repetir todos los bloques necesarios para recoger y colocar un cubo desde el punto de recogida hasta la esquina del palé.
Establezca el parámetro en el bloque Repetir en 2.
Dado que está tratando de mover dos cubos al palé, los comportamientos se repetirán dos veces.

Lea el código que ha creado y prediga lo que hará el brazo de 6 ejes cuando se ejecute el proyecto.
Registre su predicción en su cuaderno de ingeniería. Es posible que desee dibujar la trayectoria del brazo de 6 ejes o dibujar dónde se colocarán los cubos en el palé.

Asegúrese de que el brazo de 6 ejes esté conectado a VEXcode.
Ejecuta el proyecto para probarlo. Observe los comportamientos del brazo de 6 ejes cuando se ejecute el proyecto.

Detenga el proyecto cuando el brazo de 6 ejes termine de moverse. Registre sus observaciones en su cuaderno de ingeniería.
¿El brazo de 6 ejes movió ambos cubos al palé con éxito? ¿Por qué sí o por qué no?

Esto no movió el segundo cubo como estaba previsto y causó un error. Dado que el primer cubo se colocó en esa posición, el segundo cubo tampoco se puede colocar en la misma ubicación. El brazo de 6 ejes no ha podido llegar a la ubicación, por lo que se ha producido un error.
Para colocar el segundo cubo en el palé, tendremos que cambiar este cubo a una posición abierta en el palé.
Mueva el segundo cubo en relación con el primero
Conocer la posición del primer cubo en el palet, significa que el siguiente cubo se puede colocar en relación con el primero. Aprendiste sobre el movimiento relativo en la unidad anterior y ahora puedes aplicar esos conceptos para ayudar a colocar el segundo cubo.
Para llegar a la siguiente esquina del palé, el brazo de 6 ejes se moverá en la dirección
positiva a lo largo del eje y. 
Usando lo que se sabe sobre el tamaño del cubo, se puede determinar el desplazamiento necesario para colocar el segundo cubo. El desplazamiento es la diferencia entre la ubicación actual y la ubicación deseada de un objeto. En el palé, el desplazamiento para el segundo cubo es la distancia entre el centro del primer cubo y el centro del segundo cubo en su ubicación deseada.
Dado que un cubo tiene 25 mm de ancho, podemos aproximar que el desplazamiento es de 50 mm.
Ahora que conoce la distancia y la dirección del movimiento relativo necesario, esta información se puede añadir al proyecto.
Añada un bloque de posición de incremento al proyecto como se muestra aquí.
Establezca el parámetro y en 50. Esto indica un movimiento relativo de 50 mm a lo largo del eje y.

Lea el código y prediga el comportamiento del brazo de 6 ejes.
Registre su predicción en su cuaderno de ingeniería. ¿Crees que este proyecto colocará con éxito ambos cubos en las ubicaciones deseadas? ¿Por qué sí o por qué no?

Asegúrese de que el brazo de 6 ejes esté conectado a VEXcode. Ejecuta el proyecto para probarlo.
Observe el comportamiento del brazo de 6 ejes.

Detenga el proyecto cuando el brazo de 6 ejes haya terminado de moverse. Registre sus observaciones en su cuaderno de ingeniería.
¿Coincidió tu predicción con lo que habías observado? ¿Se mueven los dos cubos a las ubicaciones previstas en el palé? ¿Por qué sí o por qué no?

Como habrás predicho, este proyecto tampoco mueve ambos cubos a las ubicaciones previstas. El bloque de posición de incremento movió correctamente el brazo de 6 ejes a la posición deseada para el segundo cubo. Sin embargo, debido a que todos los comportamientos se repitieron, ambos cubos se trasladaron a esta ubicación. Esto creó el mismo error que el proyecto anterior, solo que en una ubicación diferente en el palé.
El objetivo es colocar el primer cubo en la primera ubicación y el segundo cubo en la segunda ubicación del palé. Para hacer esto con éxito, el proyecto debe realizar un seguimiento de qué cubo se está moviendo. Si el primer cubo se está moviendo, debe ir a la primera ubicación. Si el segundo cubo se está moviendo, se puede colocar en la segunda ubicación.
Mover dos cubos usando variables y un bloque If then
Para realizar un seguimiento de qué cubo se está moviendo, se puede crear una variable y usarla en el proyecto para esencialmente "contar" los cubos a medida que se están manipulando. Se puede usar una variable para almacenar información sobre qué cubo se está moviendo. Esta información se puede utilizar para tomar una decisión dentro del proyecto: si el brazo de 6 ejes está moviendo el segundo cubo , debe moverlo a la segunda ubicación en el palé.
Crea una variable y llámala CubeCount. Seleccione Enviar para crear la variable.
Puede volver a visitar la Lección 2 de la Unidad 6 para obtener recordatorios sobre cómo crear una variable en VEXcode.

Añada el bloque Establecer variable al proyecto por encima del bloque Repetir, como se muestra aquí.
Establezca el parámetro en 1. Asegúrese de que la variable CubeCount esté seleccionada en el menú desplegable.
Cuando se inicie el proyecto, se recogerá el primer Cubo. Dado que el propósito de esta variable es numerar el cubo que se está moviendo, debe establecerse en '1' para comenzar.

Anteriormente se añadió un bloque de posición de incremento para mover el brazo de 6 ejes a la segunda ubicación de entrega. Para mover el primer cubo a la ubicación de entrega, este bloque debe eliminarse.
Haga clic derecho en el bloque Incrementar posición y elimínelo, como se muestra aquí.
Añada un bloque Cambiar variable a la parte inferior del bloque Repetir, como se muestra aquí.
Cuando se ejecute el proyecto, el primer cubo se moverá a la ubicación de entrega. Agregar el bloque Cambiar variable aquí hará que el CubeCount aumente después de que se entregue el primer cubo. Cuando el bloque Repetir retrocede para recoger el segundo cubo, la variable aumenta '2', lo que indica que el segundo cubo se está moviendo.
Ahora que el proyecto está almacenando información sobre el número de cubos, podemos usar esa
información para tomar una decisión. Un bloque If then nos permite hacer una
pregunta dentro de un proyecto y usar información (como el valor de una variable) para tomar
una decisión. 
El bloque If then es un bloque C que acepta bloques informadores booleanos como condición. Un bloque booleano devuelve una condición como VERDADERO o FALSO, y cabe dentro de cualquier bloque con una entrada hexagonal. Si la condición se informa como VERDADERA, entonces los bloques dentro del bloque C se ejecutarán. Si la condición se informa como FALSA, el bloque If then se omitirá en el proyecto.
En este caso, la condición que buscamos es que la variable CubeCount sea 2. Si la variable CubeCount es 2, entonces el brazo de 6 ejes debe moverse a la segunda posición en el palé.
Pensemos en qué parte del proyecto se debe tomar esa decisión. El proyecto recogerá el cubo en la
zona de carga y luego se moverá por encima de la ubicación de entrega. Si el
CubeCount es 2, entonces el brazo de 6 ejes tendrá que realizar un
comportamiento adicional para moverse a la segunda posición del palé. 
Añada un bloque If al proyecto como se muestra aquí.

Añada un igual para bloquear en el espacio hexagonal en el bloque If then, como se muestra aquí.
Añada la variable CubeCount en el lado izquierdo del operador Equal to. Ajuste el lado derecho del operador Equal a 2, como se muestra en este vídeo.
Si la variable CubeCount es igual a 2, la condición booleana informará como VERDADERA. Si el CubeCount no es 2, entonces la condición booleana informará como FALSA.
Añada un bloque de posición de incremento dentro del bloque C como se muestra aquí.
Ajuste el parámetro y del bloque Incrementar posición a 50.
Cuando se cumpla la condición del bloque If then, se ejecutará el bloque Incrementar posición dentro del bloque If then. Esto significa que si el CubeCount es 2, entonces el brazo de 6 ejes hará el movimiento relativo a la segunda posición en el palé.

Lea el código y prediga lo que hará el brazo de 6 ejes cuando se ejecute el proyecto.
Registre su predicción en su cuaderno de ingeniería.

Asegúrese de que el brazo de 6 ejes esté conectado a VEXcode. Ejecuta el proyecto para probarlo.
Observe el comportamiento del brazo de 6 ejes a medida que se ejecuta el proyecto.

Detenga el proyecto cuando el brazo de 6 ejes haya terminado de moverse. Registre sus observaciones en su cuaderno de ingeniería.
¿El brazo de 6 ejes se movió como predijo? ¿Ambos cubos se movieron al palé según lo previsto? ¿Por qué sí o por qué no?

Para su información
Es posible que desee ejecutar el proyecto varias veces, para que pueda prestar atención a
los bloques que se están ejecutando a medida que el brazo de 6 ejes se mueve. Busque lo
más destacado alrededor de los bloques a medida que se ejecutan en el proyecto, para
ayudarlo a comprender mejor cuándo se ejecuta el bloque If then. También puede usar
la función Paso para ejecutar el proyecto un bloque a la vez, para
ayudarlo a ver el flujo del proyecto con el bloque Si y luego con mayor
claridad. 
Recuerde que puede añadir una variable al Monitor, para ayudar a ver el valor de CubeCount a medida que se ejecuta el proyecto. Para añadir una variable al Monitor, arrastre la variable al icono del Monitor en el Espacio de trabajo, como se muestra en este vídeo. Mientras ejecuta el proyecto, asegúrese de ver la variable en el Monitor, para ayudarle a ver la conexión entre el valor de la variable y el flujo del proyecto.
Revisión del proyecto
Repasemos el proceso de resolución de problemas que se utilizó para resolver el desafío de colocar dos cubos en el palé. Hubo varias iteraciones del proyecto para lograr que el brazo de 6 ejes moviera ambos cubos según lo previsto:
- Se añadió un bloque de repetición para repetir los comportamientos necesarios para recoger, mover y entregar un cubo al palé.
- Se añadió un bloque de posición de incremento para mover el segundo cubo a una posición abierta en el palé.
- Se añadió una variable para contar los Cubos, de modo que se pudiera tomar una decisión en función de qué Cubo se estaba moviendo.
- Se añadió un bloque If then para tomar una decisión basada en el valor de la variable.
Todas estas iteraciones juntas crearon un proyecto que recogió y entregó ambos Cubos con
éxito. Cuando se recogió el
segundo cubo, el brazo de 6 ejes volvió a mover el cubo por encima de la ubicación de
entrega original en el palé. Entonces se tomó una decisión.
Dado que el CubeCount es '2', el bloque dentro
del bloque If se ejecuta, moviendo el cubo a lo largo del eje y a la
posición deseada del palé.
El proceso iterativo en el que participó a lo largo de esta Lección es algo que continuará haciendo cada vez que resuelva un desafío con el Brazo de 6 ejes. Es importante recordar que la mayoría de los desafíos de codificación no se resolverán perfectamente en el primer intento. Este proceso de planificación, construcción, prueba y evaluación puede llevar a su grupo a encontrar soluciones creativas. La mayoría de los desafíos se pueden resolver de múltiples maneras, por lo que al participar en este proceso de forma colaborativa, puedes encontrar la estrategia que mejor funcione para tu grupo.
Actividad
Ahora que ha movido dos cubos de la zona de carga al palé, practicará estas habilidades. En esta actividad, desarrollarás tu proyecto a partir de esta lección para codificar el brazo de 6 ejes y mover cuatro cubos al palé.

Actividad: Codifique el brazo de 6 ejes para colocar cuatro cubos en un palé.
- Planifique cómo construirá su proyecto para codificar el brazo de 6 ejes para recoger
el cubo adicional de la zona de carga y colocarlo en el palé con su grupo.
Asegúrese de que todos estén de acuerdo con su enfoque antes de comenzar a editar el
proyecto.
- Documente su plan en su cuaderno de ingeniería.
- Cambie el nombre de la actividad de la Lección 3 de la Unidad 7 de su proyecto y guárdela en su dispositivo antes de comenzar a editar el proyecto.
- Edite el proyecto en VEXcode para que coincida con el plan acordado por su grupo.
- Ejecuta el proyecto para probarlo. Coloque manualmente el segundo, tercer y cuarto Cubo en la zona de carga una vez que se haya colocado cada Cubo.
- ¿El brazo de 6 ejes mueve con éxito los cubos como pretendía? Debe haber cuatro cubos en el palé. Si no es así, continúe editando el proyecto hasta que haya colocado correctamente los cuatro cubos.
Compruebe su comprensión
Antes de pasar a la siguiente lección, asegúrate de comprender los conceptos de esta lección respondiendo las siguientes preguntas en tu cuaderno de ingeniería.
Verifique sus preguntas de comprensión > (Google Doc / .docx / .pdf)
Seleccione Siguiente > para pasar a la actividad Ponerlo todo junto.