Cónstruya un robot con Raspbery Pi y Arduino


 

En el video anterior en efecto vemos  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 pues 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.

¿Qué necesitamos para construir el robot?,pues propprcionamos a continuacion la siguiente lista de componentes:

 

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

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:

Detalle de conexion con los servos
Raspberry Pi / Arduino y convertidor de nivel

 

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:

 

#include <ecat.h>
#include <Servo.h>

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<MAX_GRAUS) {
      valorServoH++;
    }
  }
  if(szMissatge == "x"){
    if (valorServoH>MIN_GRAUS) {
      valorServoH--;
    }
  }
  if(szMissatge == "a"){
    if (valorServoV>MIN_GRAUS) {
      valorServoV--;
    }
  }
  if(szMissatge == "d"){
    if (valorServoV<MAX_GRAUS) {
      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);
}

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.

 

Para la sección de Arduino Nano,  gracias a @JordiBinefa y @electronicscat se  usa su  biblioteca de e-cat .

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.

 

 

 

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.

El proyecto desde luego es sumamente interesante  y desde luego abre un camino para nuestra imaginación para replicarlo y mejorarlo dotándolo de nuevas modificaciones   que sin duda lo harán mucho mejor si cabe

Fuente aqui

Uso de Raspberry pi para reparar un disco NAS


Un disco duro NAS (Almacenamiento conectado en red) le permite almacenar y compartir sus archivos y carpetas en una red, presentándose  como  un  dispositivo de copia de seguridad perfecto para el entorno de oficina pequeña o doméstica. Ademas como valor añadido a su función de almacenamiento ,casi todos  los  discos NAS incluyen  servidores multimedia, servidores de iTunes, servidores de impresora, servidores FTP, función BitTorrent ,software para  copias de seguridad,etc.

Es  tipico que  como  Servidor de medios incluyan el servidor desarrollado por TwonkyMedia, que le permite organizar su contenido multimedia (fotografías/música/vídeos), que pueden reproducirse a través de un dispositivo compatible conectado a la red.

Respecto al servidor de iTunes,  con el puede almacenar y gestionar su colección musical de forma centralizada en el disco, y acceder a sus archivos de música a través de iTunes desde cualquiera de los equipos de su red.

Sobre el servidor FTP  que casi todos incluyen éstos le permiten  la transferencia de archivos de gran tamaño a través de Internet.

Otra utilidad que suelen incluir es un  cliente BitTorrent (por ejemplo TorrentFlux)  diseñado para transferir y compartir grandes archivos de datos de extremo a extremo

torrent

Por ultimo  un opción muy interesante es proteger sus películas, música, fotografías y todos los datos que desee por medio del software Nero BackItUp 4 Essentials, que incluye funciones de copia de seguridad y restauración de todo el sistema, con protección opcional por contraseña.

Todas   estas funciones y muchas más en la mayoría de los discos nas  suelen ser accesibles a través de una interfaz web a la que podrá acceder desde su navegador web.En el disco verbatim Nas la url pode defecto es http://192.168.1.59/home.cgi 

panta

Normalmente ademas las unidades de disco duro NAS disponen de  puertos USB  a  los que se pueden conectar  impresoras para designarlas como impresoras de red y poder imprimir archivos desde cualquier equipo que se encuentre conectado a la red o también pueden usarse  para conectar Unidades de disco duro USB adicionales  ampliándose así la capacidad de almacenamiento de la red.

 

Si por desgracia ha encontrado esta entrada, es porque ha tenido algún problema con el disco duro de su disco  NAS .

Probablemente ha tenido un corte de suministros de  c.a., ha movido el servidor de sitio o la corriente se ha cortado repentinamente y al volver a conectar el servidor a la red eléctrica al intentar  conectarse desde su PC ya no es posible ..¿que podemos hacer? .

 

 

 

 

En el post de hoy nos vamos a centrar en el disco NAS Gigabit Verbatim  aunque la metodología es extrapolable a cualquier disco NAS .Este modelo es compatible con la generación más reciente de redes con cable de alta velocidad, además de estar equipado con un modo de ahorro de energía que reduce el consumo cuando la unidad no está en uso ideal para ampliar su almacenamiento en red existente, ofreciendo la copia de seguridad segura que necesita, y las conocidas funciones multimedia comentadas  que desea utilizar.

Veamos los pasos que podemos seguir para intentar solucionar el problema:

  •  En primer lugar deberemos comprobar  con un polimetro que la alimentación ( normalmente externas de 12V DC )  esta funcionado . Si no dispone de polimetro  si  los testigos de los que dispone se encienden normalmente también sera una señal de que esta alimentado correctamente
  • En segundo lugar es vital comprobar que la conexión ethernet es correcta ya que a veces se estropean los cables ethernet por torsiones ,aplastamientos,etc. Si no esta seguro puede conectar a este un pc portatil para comprobar que tiene coenctividad .
  • Si la alimentación  DC  asi como  la conexión de red han sido probadas , si persiste el problema deberíamos comprobar si la dirección IP de servicio ha cambiado , por ejemplo  usando una app de monitorización de red como Fing que nos diga todos los equipos  hay conectados a nuestra red ( y por supuesto otros parámetros) . También todos los discos NAS suelen incluir en el sw que se entrega una pequeña aplicación para monitorizar la IP de nuestro NAS .En el caso del NAS de Verbatim , la utilidad se llama  «Verbatim Network Assitant» y puede descargarse desde la propia web del fabricante

verbatum

  • Si el problema persiste, es tiempo entonces de resetear la  unidad ( perderemos todas las personalizaciones que hayamos hecho) , Para ello solo necesitamos un alfiler y pinchar mas de 15 segundos en el agujerito que en el caso de Verbatim se sitúa en la parte posterior a la derecha de los  USB. Una vez reseteado debería responder la  utilidad  «Verbatim Network Assitant» con una dirección IP  y entonces  deberíamos volver con la personalización  de este
img_20160929_1921371

 PROBLEMAS  TRAS EL RESETEO A FABRICA

Un problema  típico tras resetear un unidad  NAS ,  es no poder acceder  a determinados directorios que creamos   anteriormente en la personalización primitiva  que al  volver a estado de fabrica dejan de ser compartidos y nos pueden dar la impresión de que se han borrado cuando en realidad siguen en el disco ( pero no accesibles).

Una forma de ver el problema es conectarse desde una consola por ssh ,pero como no todos los NAS suelen tener un puerto abierto para acceder por el terminal y ejecutar comandos Linux,una posible solución es extraer el disco del NAS  y conectarlo a otro  equipo  que lo pueda ver  por medio de un adaptado SATA-USB.

Dado su bajo costo  y alta fiabilidad  al usar también  el mismo sistema de fichero  del Nas  usaremos una Raspberry Pi 2  para ver el contenido del NAS ( normalmente si lo conectamos a una maquina windows no los vera )

Para extraer el disco del Verbatim NAS primero quite la tapa posterior ( va a presión)

 

img_20160929_1920271
Ahora deslice la tapa hacia afuera  para poder ver el contenido
img_20160929_1915011
 Saque la tapa completamente
img_20160929_1915141
 Ahora solo queda soltar los tornillos que fijan el disco al chasis del Nas:
img_20160929_1916501
 Solo falta liberar el cable de datos  y el de alimentación para soltar el disco SATA
img_20160929_1918121
 Ahora toca conectar el disco del NAS recién extraído  a un adaptador SATA-USB  o en su defecto como se ve en la imagen usar una caja de HDD para eventualmente conectar nuestro disco
Una vez ensamblado el disco en el adaptador o en la caja tan solo queda conectarlo a la Raspeberry Pi 2 ( se ha probado con la imagen oficial de Raspbian):
img_20160929_2033581
Al conectar el usb a la Raspberry Pi 2  en seguida es reconocido en caliente por el SO  preguntando si desea ver su contenido .
Una vez accedamos al contenido del NAS,  si deseamos hacer visible algún contenido  únicamente deberemos cortar el/los directorios que no sean visibles  y pegarlos  dentro de  algún directorio que sea visible ( suelen ser visibles ./PUBLIC  ,./GUEST-SHARE  o ./ADMIN  )
img_20160929_2034431
img_20160929_2037081
Observe que esta utilidad le puede servir para gestionar de una forma mas rápida  y eficiente  cualquier operación que desee hacer con sus ficheros ( por ejemplo copiar desde otra unidad ,mover ficheros a otros discos, etc )  pues no se vera mermada la velocidad por la trasferencia  por la red  al estar las unidades  físicamente conectados sobre el mismo equipo ( la Rasberry PI 2)
 Para terminar sobra decir que extreme las operaciones desde su Raspberry Pi sobre todo con los ficheros del sistema operativo pues no debe olvidar que aparte de contener los ficheros personales también incluye el sistema operativo del NAS  el cual puede ser arriesgado manipularlo