ROBOT HEXÁPODO ROBUG CON ARDUINO (KIT PARA ARMAR) JSUMO
$109,99
Especificaciones.
Tamaño (cm) : 10x10x15
Altura (cm) : 6
Peso (kilogramos) : 0,4
1 disponibles
Descripción
Hágalo usted mismo Kit de robot hexápodo basado en Arduino. ¡Kit educativo de robot insecto adecuado para principiantes!
ROBUG: Genial robot insecto de JSumo
Nuestro kit de robot desarrollable basado en Arduino. Viene sin montar. (Muy fácil de montar).
Puedes construir tu robot Hexapod con el kit Robug. Servomotores, sensores conectados directamente a Arduino Shield.
EL KIT INCLUYE:
Toda la electrónica y hardware incluidos.
- Arduino Uno R3
- Escudo del sensor
- Sensor ultrasónico HCSR04
- Microservo MG90
- Microservos SG90 (2)
- Separadores de latón de 6 mm (26)
- Separadores de latón de 25 mm (8)
- Tornillos para metales de acero inoxidable M3x5 mm (60)
- Tuercas de bloqueo de nailon M3 (10)
Basado en el software Arduino
El código del robot Hexapod es de código abierto. Usted puede utilizar para el desarrollo también.
El código se describe a continuación:
#include
//// Servo Objects Decleration
Servo RightServo;
Servo LeftServo;
Servo MiddleServo;
/////////////// Ultrasonic Sensor Tirgger and Exho Pins
// 9 and 8 is pin numbers.
int trigpin = 9;
int echopin = 8;
// Centering Values can be changed depending on assembly.
// Please try to make center servo horns near to 90 degree. and after that tune with below values.
// Values are in degrees.
int MiddleCenterValue = 96;
int RightCenterValue = 83;
int LeftCenterValue = 80;
// Below values are used for step distance and lift height. values are in degrees.
int StepSize = 20;
int MiddleLiftSize = 30;
void setup() {
RightServo.attach(A3);
LeftServo.attach(A5);
MiddleServo.attach(A4);
Serial.begin(9600);
pinMode(trigpin, OUTPUT);
pinMode(echopin, INPUT);
}
void Reference() {
/////Reference Centers////
RightServo.write(RightCenterValue);
LeftServo.write(LeftCenterValue);
MiddleServo.write(MiddleCenterValue);
delay(3500);
}
void Forward() {
RightServo.write(RightCenterValue + StepSize); // RightServo Forward step
LeftServo.write(LeftCenterValue + StepSize); // LeftServo back step
MiddleServo.write(MiddleCenterValue – MiddleLiftSize); // RightServoyu lift
delay(100);
MiddleServo.write(125); // MiddleServo centered
delay(60);
RightServo.write(55); // RightServo back step
LeftServo.write(55); // LeftServo Forward step
MiddleServo.write(125); // LeftServoyu lift
delay(100);
MiddleServo.write(65); // MiddleServo centered
delay(60);
}
void Retreat() { // This function used when ultrasonic sensor see something and it tries to retreat and turn.
for (int i = 0; i < 3; i++) {
RightServo.write(125);
LeftServo.write(LeftCenterValue);
MiddleServo.write(125);
delay(200);
RightServo.write(RightCenterValue);
LeftServo.write(LeftCenterValue);
MiddleServo.write(65);
delay(200);
RightServo.write(RightCenterValue);
LeftServo.write(125);
MiddleServo.write(65);
delay(200);
RightServo.write(RightCenterValue);
LeftServo.write(LeftCenterValue);
MiddleServo.write(125);
delay(200);
}
}
void loop() {
//Reference(); // Not used in real code, we use for calibration.
// Forward(); You can call forward function and comment below if statement for direct walking gait.
// Ultrasonic sensor reading function
long duration, distance;
digitalWrite(trigpin, LOW);
delayMicroseconds(2);
digitalWrite(trigpin, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin, LOW);
duration = pulseIn(echopin, HIGH);
distance = (duration / 2) / 29.1;
Serial.println(distance);
/// We look for ditance value, if it is bigger than 30cm we contiune Forward routine.
// if shorther then 30 cm we call retreat routine.
if (distance > 30) {
Forward();
}
else if (distance < 30) {
Retreat();
}
}
Valoraciones
No hay valoraciones aún.