- Palitos de helado pequeños y grandes
- Pistola de silicona
- Amarras plásticas de 15cm
- Servomotores SG90, inicialmente se construyó con tres de ellos, pero en la práctica nos dimos cuenta que es mejor utlizar los MG90, entonces se usaron un SG90 y dos MG90
- Cables hembra macho, macho macho para las conexiones
- Un arduino uno
- Dos joystick, uno para girar y alzar el brazo y otro para abrir y cerrar el gancho.
- Una mini protoboard
- Una fuente de 5V, aunque en este caso utilizamos un módulo que nos ayuda regular el voltaje de un adaptador que entrega 12V, pero sirve también un adaptador de 5V/2A (mejor de 2A)
- El conector hembra que recibe el plug del adaptador
- Unas tablitas para la base y otras pequeñas para pegar el servo de la base al que nos regula la altura.
#include <Servo.h> Servo baseServo; // Servo para el giro horizontal Servo alturaServo; // Servo para subir y bajar el brazo Servo ganchoServo; // Servo para abrir o cerrar el gancho int baseAngle = 90; // Ángulo inicial del servo horizontal int alturaAngle = 90; // Ángulo inicial del servo de altura int ganchoAngle = 90; // Ángulo inicial del servo de gancho const int joyXPin = A0; // Pin analógico para la posición X del joystick const int joyYPin = A1; // Pin analógico para la posición Y del joystick const int joyYGPin = A2; // Pin analógico para la posición X del joystick2 gancho int baseIncremento = 1; // Incremento de ángulo para el servo de la base int alturaIncremento = 1; // Incremento de ángulo para el servo de la altura int ganchoIncremento = 1; // Incremento de ángulo para el servo del gancho void setup() { Serial.begin(9600); // Inicializa la comunicación serial baseServo.attach(8); // Conecta el servo horizontal al pin 8 alturaServo.attach(9); // Conecta el servo de altura al pin 9 ganchoServo.attach(7); // Conecta el servo de gancho al pin 10 baseAngle = baseServo.read(); alturaAngle = alturaServo.read(); ganchoAngle = ganchoServo.read(); } void loop() { int joyX = analogRead(joyXPin); int joyY = analogRead(joyYPin); int joyYG = analogRead(joyYGPin); // Control de la base (eje X) baseAngle += map(joyX, 0, 1023, baseIncremento, -baseIncremento); baseAngle = constrain(baseAngle, 0, 180); // Control de la altura (eje Y) alturaAngle += map(joyY, 0, 1023, -alturaIncremento, alturaIncremento); alturaAngle = constrain(alturaAngle, 0, 126); // Control de apertura gancho (eje X) ganchoAngle += map(joyYG, 0, 1023, ganchoIncremento, -ganchoIncremento); ganchoAngle = constrain(ganchoAngle, 86, 180); // Envía las señales a los servos baseServo.write(baseAngle); alturaServo.write(alturaAngle); ganchoServo.write(ganchoAngle); // Muestra información en el Monitor Serie Serial.print("Base: "); Serial.print(baseAngle); Serial.print(" Altura: "); Serial.print(alturaAngle); Serial.print(" Gancho: "); Serial.println(ganchoAngle); delay(50); // Pequeña pausa para estabilidad }