Construir un pequeño Robot con Arduino y Raspbery pi

Construir un pequeño Robot con Arduino y Raspbery pi

En el siguiente video podemos ver un robot controlado a distancia basándose en interfaces web usando para ello una red inalámbrica .Dado la potencia de la Raspberry Pi se usa esta para el soporte de Video y una placa Arduino para el control de los motores. Se usa la Raspberry Pi para la gestión de la cámara, una red Wi-Fi para la interfaz de usuario entre el robot u el usuario y una placa Arduino para controlar servos, sensores y motores.


link: https://www.youtube.com/watch?time_continue=2&v=ORDoXQM1LWI


Componentes:

1 Robot Chasis, se puede usar cualquier robot de 2 o 4 ruedas, para este ejemplo se usa

arduino
raspberry pi 3construir un robot 2016hacer un robot con raspberry pi

1 raspberry (se usa un modelo +)
1 PICAM con un casso
Pan & Tilt kit de la siguiente manera:


contruir un robot con arduinoConstruir un pequeño Robot con Arduino y Raspbery pi

1 mini servo para Pan & Tilt
1 Servo
1 WiFi Dongle
1 sensor ultrasónico como


Alcance ultrasónica HC Módulo - SR04 Características del producto:
? Módulo de alcance ultrasónico HC - SR04 ofrece 2 cm - 400 cm sin contacto función de medición, la precisión que oscila puede alcanzar a 3 mm. los módulos incluye transmisores ultrasónicos, el receptor y el circuito de control. El principio básico de trabajo: (1) Uso de IO de disparo para al menos 10us señal de alto nivel, (2) el módulo envía automáticamente ocho 40 kHz y detectar si existe una pulso de la señal de vuelta. (3) Si la señal de vuelta, a través de alto nivel, el tiempo de duración de alto rendimiento es IO el tiempo desde el envío de ultrasonidos de volver. Ensayo de la distancia = (tiempo de alto nivel × velocidad del sonido (340M / S) / 2

Cable de conexión directa de la siguiente manera:
? 5V
Entrada del disparador del pulso
Salida de pulsos de eco
0V Masa

arduino

Diagrama de tiempo
El diagrama de temporización se muestra a continuación. Sólo tiene que suministrar un corto 10uS pulso a la entrada de disparo para iniciar el que van, y luego el módulo enviará un ciclo de 8 ráfaga de ultrasonidos a 40 kHz y elevar su eco. El Eco es una distancia que es objeto de anchura de pulso y la gama de .tiene proporción puede calcular el rango a través del intervalo de tiempo entre el envío de la señal de disparo y la recepción de la señal de eco. Fórmula: US / 58 = centímetros o nosotros / 148 = pulgadas; o el = rango alto nivel de tiempo * velocidad (340M / S) / 2; se aconseja utilizar más de 60 ms ciclo de medición, con el fin de evitar que la señal de disparo a la señal de eco.

Atención: ? El módulo no se sugiere para conectarse directamente a eléctrica, si está conectado ? eléctrico, el terminal GND se debe conectar el módulo primero, de lo contrario, que afectará el trabajo normal del módulo. Cuando se ensayaron los objetos, el rango de área es n ? ot menos de 0,5 metros cuadrados y las solicitudes de plano lo más suave posible, de lo contrario, afectará a la resultados de medición

1 Arduino Nano
1 paquete de la batería y el soporte de la batería (mínimo de 5 V y 3000mA)
1 driver controlador para motores como:


raspberry pi 3

1 Nano e-cat

construir un robot 2016

Esquema:

hacer un robot con raspberry pi

Disposición de los pinos del Arduino Nano :

contruir un robot con arduino

Disposición de los pinos del nano-eCat por Función:

Construir un pequeño Robot con Arduino y Raspbery pi

Disposición de los pinos del por nano-eCat pinos de Arduino:

arduino

1 Adaptador Módulo H

raspberry pi 3construir un robot 2016hacer un robot con raspberry picontruir un robot con arduino

1 tablero de múltiples funciones

Construir un pequeño Robot con Arduino y Raspbery pi

1 regulador de voltaje ajustable

arduino

1 salida USB del módulo del convertidor

raspberry pi 3

1 módulo convertidor

construir un robot 2016

4 Condensadores para motores de 1uF
Los puentes, cables de soldadura de hierro


En realidad dado que todos estos módulos ya vienen montados , el esquema de conexiones es bastante sencillo ,pues se usa un convertidor dc/dc para alimentar el puente en h para los 4 motores , los 2 servos y el sensor ultrasonico , y otro convertidor dc/dc para alimentar exclusivamente el Arduino Nano

La comunicación entre Raspberry Pi y Arduino se lleva a cabo a través de GPIO TX serie / RX (/ dev / ttyAMA0) por medio de un convertidor de nivel.

Otro aspecto destcable es que tanto el sensor ultrasonido como los dos servos son controlados por la propia placa Arduino Uno


hacer un robot con raspberry pi

Asimismo se hace uso de un modulo de cámara para Raspberry Pi , la cual va conectada con un cable de cinta a la Raspberry Pi . La cámara se sujeta al soporte movil especial el cual permite gracias a los dos servos mover la cámara en los tres ejes

Aquí puede echar un vistazo a los detalles de ensamblaje de los componentes mas importantes:


contruir un robot con arduino
Detalle de conexion con los servos

Construir un pequeño Robot con Arduino y Raspbery pi
Raspberry Pi / Arduino y convertidor de nivel

arduino

Software:

El software se divide en dos secciones: software para Raspberry Pi y software de Arduino.

Para la Raspberry se usa dawnrobotics SD imagen para su cámara robot Pi , la cual proporciono con una pequeña modificación el archivo robot_web_server.py para permitir la comunicación serie con Arduino Nano en lugar del controlador dawnrobotics.

A continuación se detalla el código fuente empleado:


[color=#000000][color=#000000]#include 
#include 

Servo servoP1B2; Servo servoP1B3;

#define MAX_GRAUS 170
#define MIN_GRAUS 20

String szMissatge;
Ecat ecat;
int valorServoV;
int valorServoH;

void setup(){
  ecat.setupNibbleMode(NIBBLE_H_P1,OUTPUT);
  ecat.vUltrasonicSensorP1b0b1_init();
  
  valorServoV=90;
  valorServoH=90;
  pinMode(ecat.nPinP1B2,OUTPUT);
  pinMode(ecat.nPinP1B3,OUTPUT); 
  servoP1B2.attach(ecat.nPinP1B2);
  servoP1B3.attach(ecat.nPinP1B3);
  servoP1B2.write(valorServoV);
  servoP1B3.write(valorServoH);  
  pinMode(ecat.nPinP2B7,OUTPUT);
  pinMode(ecat.nPinP2B6,INPUT);
  pinMode(ecat.nPinP2B5,INPUT);
  pinMode(ecat.nPinP2B4,INPUT);
  ecat.setupNibbleMode(NIBBLE_L_P2,INPUT);
  Serial.begin(115200);
}

void vRobotAturat(){
  ecat.vWriteHighNibbleP1(0x00);
}

void vRobotEndarrera(){
  ecat.vWriteHighNibbleP1(B00000110);
}

void vRobotEndavant(){
  ecat.vWriteHighNibbleP1(B00001001);
}

void vRobotEsquerra(){
  ecat.vWriteHighNibbleP1(B00000101);
}

void vRobotDreta(){
  ecat.vWriteHighNibbleP1(B00001010);
}



void vManageMsg(){
 
  if(szMissatge == "b"){
    vRobotEndarrera();
  }
  if(szMissatge == "f"){
    if (ecat.nUsDistanceCmP1b0b1()>7) {
        vRobotEndavant();
    }
  }
  if(szMissatge == "s"){
    vRobotAturat();
  }
  if(szMissatge == "l"){
    vRobotEsquerra();
  }
  if(szMissatge == "r"){
    vRobotDreta();
  }
  if(szMissatge == "w"){
    if (valorServoH      valorServoH++;
    }
  }
  if(szMissatge == "x"){
    if (valorServoH>MIN_GRAUS) {
      valorServoH--;
    }
  }
  if(szMissatge == "a"){
    if (valorServoV>MIN_GRAUS) {
      valorServoV--;
    }
  }
  if(szMissatge == "d"){
    if (valorServoV      valorServoV++;
    }
  }
}

void loop(){

  while(Serial.available()){
    delay(3);
    char c = Serial.read();
    szMissatge += c;
  }
  vManageMsg();
  szMissatge = "";
  if (ecat.nUsDistanceCmP1b0b1()<7) {
    vRobotAturat();
  }
  servoP1B2.write(valorServoV);
  servoP1B3.write(valorServoH);
}[/color][/color]


Como estamos utilizando versión ligeramente modificada de la imagen downrobots, la Raspberry Pi está configurado para actuar como un punto de acceso Wi-Fi, por lo que para conectarse a la nueva red inalámbrica debe aparecer llamada ?CameraRobot?. La contraseña de la red es ?raspberry?.

Nota: En algunas ocasiones el dongle WiFi en el Pi no obtendrá una dirección IP (error conocido) y por lo que no será capaz de conectarse a la red (el dispositivo pasará edades autenticación y obtener una dirección IP).Este problema suele resolverse girando el robot apagado y otra vez.


El robot se controla con una interfaz web que significa que debería ser accesible desde la más amplia gama de dispositivos posibles. La interfaz web hace uso de HTML5 sin embargo, por lo que tendrá que utilizar un navegador hasta la fecha. Se encontró que Chrome funciona bien en todas las plataformas que se ha probado.Para controlar el robot escriba la dirección IP 192.168.42.1 en la barra de direcciones.


raspberry pi 3

Tiene conexión Wifi, por lo tanto se puede trastear con ella sin cables y eso es muy cómodo. Con éste sistema básico, se puede expandir muchísimo y quizás dar el paso con OpenCV o algún otro tipo de funcionalidad compleja gracias a la potencia que ofrece la Raspberry Pi.