Categories
Robotica con arduino

How to assemble your own arduino robot – part 2 – Programming

In this part we continue with the arduino robot with the programming part.

The code that basically does is to continuously check the distance of the ultrasonic sensor and if it finds a wall it turns a little and continues until it returns it has encountered another obstacle.

Next we have the code of a robot that avoid objects

/*global variables for the number of pins*/ 
//pins for the motor driver
int in1=13;
int in2=12;
int in3=9;
int in4=8;
int enA=11;
int enB=10;


//pins for the ultrasonic sensor
int pinTrig=3;
int pinEco=4;

//on / off button pin
int pinBoton=2;

/*global variables for on / off*/
int previousBoton=0;
int botonState=0;
int robotEnabled=0;

/*global variables for the ultrasonic sensor*/
long distancia;
long tiempo;
 
/*arduino setup function*/
void setup(){
 //initialization of the output motor pins
 pinMode(in1,OUTPUT);
 pinMode(in2,OUTPUT);
 pinMode(in3,OUTPUT);
 pinMode(in4,OUTPUT);
 pinMode(enA,OUTPUT);
 pinMode(enB,OUTPUT);

// pinMode(13,OUTPUT);

//ultrasonic sensor pins
pinMode(pinTrig,OUTPUT); 
 pinMode(pinEco,INPUT);
 
//on / off button pin
 pinMode(pinBoton,INPUT);
 
//with this we stop the engines
 digitalWrite(in1,HIGH);
 digitalWrite(in2,HIGH);
 digitalWrite(in3,HIGH);
 digitalWrite(in4,HIGH);

// digitalWrite(13,LOW);

Serial.begin(9600);//the serial monitor is not necessary


}

/*arduino loop function*/
void loop(){
 //we read the state of the on and off button
 botonState=digitalRead(pinBoton);
 
//this makes an ultrasound sensor reading and is always the same
digitalWrite(pinTrig,LOW);/* Due to sensor stabilizationr*/
delayMicroseconds(5);
digitalWrite(pinTrig,HIGH);/*ultrasonic pulse sending*/
delayMicroseconds(10);
tiempo=pulseIn(pinEco,HIGH); /* Function to measure the length of the incoming pulse. It measures the time between the sending of the ultrasonic pulse and when the sensor receives the bounce, that is to say: since the 12th pin begins to receive the bounce, HIGH, until it stops doing it. LOW, the length of the incoming pulse*/ 
distancia=int(0.017*tiempo);

Serial.println(distancia);//print the distance measured by the ultrasonic sensor

if(botonState != previousBoton){ //if you have changed the on / off or off / on button 
 if(botonState==HIGH){ //if the button is pressed
 robotEnabled=!robotEnabled; // switch to off if it was on or on if it was off
 if(robotEnabled==true){ //Here you can do something when you turn on the robot like a melody
 tone(6,420);
 delay(200);
 noTone(6);
 delay(50);
 tone(6,420);
 delay(200);
 noTone(6);
 delay(50);
 tone(6,420);
 delay(200);
 noTone(6);
 }
 }
 }

if(robotEnabled){//from here goes the important code that is when it is on
 
 
 if(distancia>30){ //if it does not detect anything follow
 analogWrite(enA,255);
 analogWrite(enB,240);
 _mright(in1,in2);
 _mright(in3,in4);
 // digitalWrite(13,HIGH);
 }
 else{//if it detects an object less than 30 turn around
 // digitalWrite(13,HIGH);
 _mright(in1,in2);
 _mleft(in3,in4);
 
 delay(800) ; 
 }

}else{//if the robot is off stop the engines
 digitalWrite(13,LOW);
 _mstop(in1,in2);
 _mstop(in3,in4); 
 }

previousBoton=botonState; //this is to know if it is off or on
}

/*functions for driving the motors // (motor left does not move the robot to the left, // for that it would be necessary to move two motors, // only one motor no clock)*/
void _mleft(int pin1,int pin2){ //activate a non-clockwise motor
 digitalWrite(pin1,HIGH);
 digitalWrite(pin2,LOW);
}
void _mright(int pin1,int pin2){ //activate a clockwise motor
 digitalWrite(pin1,LOW);
 digitalWrite(pin2,HIGH);
}
void _mstop(int pin1,int pin2){ //stop a motor
 digitalWrite(pin1,HIGH);
 digitalWrite(pin2,HIGH);
}

If you missed the assembly part see here

Categories
Robotica con arduino

How to robot assembly with arduino – part 1

INTRODUCTION TO THE ROBOT ASSEMBLY

This project is for an arduino robot car, it is not necessary any previous knowledge, although I would recommend to start with the projects that arduino has to take the base. If you do not have the arduino kit you can always try the arduino simulator which is very interesting although I recommend buying the original one that is the one that has been used for this project.

Categories
Robotica con arduino

Como hacer un un robot sigue-paredes – parte 1

En esta ocasión vamos a programar nuestro robot para que siga las paredes.

Para el montaje de nuestro robot necesitamos que el sensor de ultrasonidos esté fijo apuntando hacia el lado de la pared que queramos que siga. Si tuviéramos tres sensores iguales podríamos comprobar los lados y en frente, pero lo vamos a hacer con uno sólo.

La programación lo que hace es regular la velocidad de cada rueda para que siga la pared acercándose y alejándose

Categories
Robotica con arduino

Como montar tu propio robot arduino – parte 2 – Programacion

En esta parte continuamos con el robot arduino con la parte de programación.

El código lo que hace básicamente es comprobar continuamente la distancia del sensor ultrasonidos y si encuentra una pared gira un poco y sigue hasta que vuelva ha encontrase con otro obstáculo.

A continuación tenemos el código de un robot que esquiva objetos

Categories
Robotica con arduino

Como montar un coche robot con arduino – Parte 1 – Montaje

———-Introducción al robot 

Este proyecto es para un coche robot arduino, no es necesario ningún conocimiento previo, aunque recomendaría empezar por los proyectos que tiene arduino para ir cogiendo la base. Si no tienes el kit arduino uno siempre puedes probar el simulador arduino que es muy interesante aunque recomiendo comprar el original que es el que se ha utilizado para este proyecto .