Configurar Raspberry Pi como AP

Introducción

En el proyecto que estoy desarrollando actualmente, he necesitado configurar una raspberry Pi como cliente wifi y como access point. Es decir, necesito conectarme a un router wifi (cliente) y que clientes se conecten al wifi que está emitiendo la rapsberry (AP).

En la teoria podemos usar el propio adaptador integrado de la raspberry para ambos funcionamientos, sin embargo yo no he logrado hacerlo funcionar y he necesitado usar una antena wifi externa [1]. Para la realización de este artículo he seguido el  post de imti[2]; al seguir ese tutorial he visto que algunas cosas explicadas no me han funcionado y he necesitado realizarlas de otra manera.

Desarrollo

Configuración Wifi

El adaptador usado es plug&play en raspbian jessie lite (Release date:2017-07-05) por lo que no hará falta instalar ningún driver, tan sólo necesitaremos realizar la configuración de la red wifi. Para ello editaremos el fichero /etc/network/interfaces y añadiremos la siguiente información:

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto wlan0
iface wlan0 inet dhcp
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto uap0
iface uap0 inet static
address 192.168.50.1
netmask 255.255.255.0
network 192.168.50.0
broadcast 192.168.50.255
gateway 192.168.50.1

Nota: En mi caso particular he decidido usar el rango de IP 192.158.50.0. En caso de querer usar otro rango se deberá cambiar las direcciones indicadas en el artículo por el deseado.

Con esta configuración hemos establecido que el dispositivo wlan1 (adaptador externo) será el encargado de conectarse al wifi (líneas 9 a 11), el dispositivo wlan0 (adaptador integrado) no se conectará (líneas 13 a 15), y crearemos el adaptador virtual uap0 que será el encargado de gestionar el punto de acceso (líneas 17 a 23).

Una vez reiniciamos el sistema, comprobaremos que la conexión ha tenido efecto.

pi@zero:~ $ ifconfig

uap0 Link encap:Ethernet HWaddr b8:27:eb:59:34:1f
inet addr:192.168.50.1 Bcast:192.168.50.255 Mask:255.255.255.0
inet6 addr: fe80::adf4:9d27:853b:3999/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:117 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:22430 (21.9 KiB)

wlan0 Link encap:Ethernet HWaddr b8:27:eb:59:34:1f
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

wlan1 Link encap:Ethernet HWaddr 00:0f:00:31:5d:26
inet addr:192.168.5.167 Bcast:192.168.5.255 Mask:255.255.255.0
inet6 addr: fe80::236c:b228:5d96:b0c4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4737 errors:0 dropped:3 overruns:0 frame:0
TX packets:244 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:637377 (622.4 KiB) TX bytes:30171 (29.4 KiB)

También podemos comprobar que el dispositivo wlan1 se ha conectado a la red indicada en el fichero wpa_supplicant.conf

pi@zero:~ $ iw dev wlan1 link
Connected to 06:18:d6:87:52:40 (on wlan1)
SSID: The Papaya Group freq: 2412
RX: 3507059 bytes (26364 packets)
TX: 44181 bytes (392 packets)
signal: -47 dBm
tx bitrate: 60.0 MBit/s MCS 3 40MHz short GI
bss flags: short-preamble
dtim period: 1
beacon int: 100

Una vez que tenemos realizada de forma correcta la configuración wifi, necesitaremos instalar los programas necesarios.

Instalación hostapd y DNSmasq

Necesitaremos dos programas para poder realizar la gestión del AP con la raspberry. Estos programas son:

  • Hostapd: encargado de realizar el punto de acceso como tal y que los clientes se puedan conectar a él.
  • DNSmasq: encargado de realizar la gestión de las ips de los clientes que se conecten.

Ambos programas están incluidos por defecto en los repositorios de raspbian, por tanto, para instalarlos bastará con instalarlos desde apt-get:

sudo apt-get install hosted dnsmasq

Ficheros de configuración

El siguiente paso será realizar la configuración de cada uno de los programas instalados. Empezaremos editando el fichero de hostapd que será el encargado de crear el AP para que nos conectemos a él. Para ello, crearemos el fichero /etc/hostapd/hostapd.conf y añadiremos la siguiente información:

interface=uap0
ssid=zeroAP
hw_mode=g
channel=11
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=zeroAp
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Podremos cambiar el parámetro asid (línea 2) con el ssid que queramos que nos aparezca; y el parámetro wpa_passphrase (linea 9) con la contraseña que queramos que tenga el AP.

Deberemos indicar a hostapd cual es el fichero de configuración que necesita usar. Editaremos el fichero /etc/default/hostapd añadiendo la siguiente línea:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Una vez realizada la configuración del AP, será necesario configurar DNSmasq, para poder realizar las gestiones a nivel de direcciones IP de los clientes. De esta manera, se podrán asignar IP a los clientes que se conecten mediante DHCP. Para configurar DNSmasq editaremos el fichero /etc/dnsmasq.conf

interface=lo,uap0
no-dhcp-interface=lo,wlan0
bind-interfaces
server=8.8.8.8
domain-needed
bogus-priv
dhcp-range=192.168.50.50,192.168.50.150,12h

Configuración de inicio

Una vez que se han configurado los programas de manera individual será necesario hacer la configuración para que los programas se inicien automáticamente.

Hostapd

Crearemos el fichero /usr/local/bin/hostapdstart y añadiremos la siguiente información:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
iw dev wlan0 interface add uap0 type __ap
sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 ! -d 192.168.50.0/24 -j MASQUERADE
ifup uap0
service hostapd restart
hostapd /etc/hostapd/hostapd.conf > /dev/null 2>& 1

Una vez editamos, le daremos permisos 775:

sudo chmod 775 /usr/local/bin/hostapdstart

Editaremos el fichero /etc/rc.local añadiendo la siguiente línea:

/bin/bash /usr/local/bin/hostapdstart

Es importante añadir la línea justo antes de la línea de exit 0.

DNSmasq

Para iniciar DNSmasq, crearemos el fichero /etc/rc.local/HOSTAPD y añadiremos la siguiente información:

#! /bin/sh
# /etc/init.d/HOSTAPD
## BEGINN INIT INFO
# Provides: DNSmasq service
# Required-Start: $all
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Simple script to start DNSmasq at boot
# Description: A simple script which will start / stop a program a boot / shutdown.
### END INIT INFO
# If you want a command to always run, put it here
# Carry out specific functions when asked to by the system
case "$1" in
start)echo "Starting dnsmasq"
# run application you want to startcase "$1" in
start)
sleep 1
dnsmasq > /dev/null 2>& 1
;;
stop)
echo "Stopping DNSmasq"
# kill application you want to stop;;
*)
echo "Usage: /etc/init.d/DNSmasq {start|stop}"
exit 1
;;
esac
exit 0

Necesitaremos modificar los permisos del fichero, ya actualizar el fichero rc para que ejecute el nuevo script creado:

sudo chmod 755 /etc/init.d/HOSTAPD
sudo update-rc.d HOSTAPD defaults

Con esto, ya tendremos configurado el inicio automático de ambas aplicaciones al encender la raspberry.

Una vez terminado reiniciaremos la raspberry pi y cuando se inicie, nos aparecerá el AP creado.

Figura 1: AP creado con la raspberry pi.

Referencias

  1. antena wifi externa
  2. http://imti.co/post/145442415333/raspberry-pi-3-wifi-station-ap

4xidraw

Introducción

Axidraw[1] es un plotter para poder utilizar bolígrafos y escribir sobre cualquier superficie plana. Axidraw se vende como un producto final en el que se adquiere el plotter ya montado y calibrado por un precio de unos 450$. Este plotter no deja de ser un robot cartesiano con dos ejes de movimiento en X e Y, por así decirlo, una versión simplificada de una impresora 3D. Gracias a ello, en la comunidad maker ha aparecido una versión DIY de axidraw, llamada 4xidraw.

4xidraw ha sido desarrollado por Miguel Sanchez (Misan). Todo el proceso de montaje ha sido documentado  tanto en su blog personal [2] como en varias páginas de internet [3], [4]. Observando la lista de materiales necesarios, vi que disponía de la mayoría de materiales a falta del kit de correa GT2 y varios rodamientos. Tras comprarlos en una tienda especializada en impresoras 3D[5], tenía todo lo necesario para iniciar el desarrollo de 4xidraw.

Desarrollo

Durante el desarrollo del proyecto he usado un repositorio alojado en github[6]. Donde se encuentran todas las modificaciones que he desarrollado en el proyecto.

El montaje mecánico de la estructura principal no me llevo más de dos horas, gracias su similitud con una impresora 3D. En la Figura 1 se muestra el plotter ya terminado.

IMG_1544

Figura 1. Plotter DIY 4xidraw. Montaje mecánico del plotter.

Eje Z

La parte que más tiempo me llevo montar de manera correcta fue la encargada de sujetar el boli. Podríamos denominarlo como el eje Z de una impresora 3D. A pesar de seguir las indicaciones de Misan, no logré que funcionara de manera correcta. Quizás fue debido a las varillas lisas que usé, que eran recicladas de un stor de ventana. Estas varillas eran de 3mm en lugar de 4mm, por ello tuve que modificar las dos piezas encargadas de la función del eje Z. Para poder mejorar el accionamiento de subida y bajada del boli, usé la pieza usada como carro para poder hacer un accionamiento biela-manivela con el eje del servo. En la Figura 2 se muestra el montaje del carro. De esta manera, es el propio servo el que obliga al carro a situarse en una posición determinada.

IMG_1547

Figura 2. Eje Z de 4xidraw. Para poder usar las varillas lisas que tenía, tuve que modificar el orificio de los taladros pasantes

 Firmware

El firmware que usa Misan es una versión modificada de GRBL[7] para poder controlar el servo. La versión de este firmware es específica para usar con un arduino UNO y una CNC Shield. Sin embargo, yo disponía de un arduino Mega y una RAMPS y no logré encontrar ninguna versión de GRBL con la modificación del servo y que usará el pinout de la RAMPS.

Así que decidi usar la última versión de Marlin que se suele usar en las impresoras 3D y modificar el plugin que generaba las trayectorias desde inkscape, para poder generar correctamente el movimiento del eje Z del plotter.

Tras varios intentos, logre generar de forma correcta un gcode capaz de dibujar la imagen que yo quería usando Marlin.

Conclusiones

A pesar de que el proyecto ha sido desarrollado por una única persona en su tiempo libre, la información que he encontrado en internet me ha sido de gran ayuda, así como la  ayuda ofrecida por Misan.

Invito a todo aquel que quiera desarrollar este proyecto que se anime a desarrollarlo, ya que    a pesar de no tener conocimiento de impresoras 3D el montaje de 4xidraw es mucho más fácil que el de cualquier impresora 3D.

Referencias

  1. http://shop.evilmadscientist.com/846
  2. http://fightpc.blogspot.com.es
  3. https://www.youmagine.com/designs/4xidraw
  4. http://www.instructables.com/id/4xiDraw/
  5. https://www.moebyus.com
  6. https://github.com/darkomen/4xiDraw
  7. https://github.com/misan/grbl-servo

 

Crear entorno virtual bajo Conda(python)

Introducción

Conda es un gestor de paquetes y de entornos virtuales multiplataforma que nos permite instalar, ejecutar y actualizar los paquetes y sus dependencias, de esta manera podremos configurar y cambiar entre distintos entornos en nuestro ordenador[1].

A grandes rasgos, un entorno virtual o ‘virtual environment’  es una carpeta en la que se encuentran los ejecutables de python y las distintas versiones de las librerías que vayamos a usar. De este modo, podremos estar desarrollando varias aplicaciones con distintas versiones de las librerías, incluso del propio interprete de python, gracias a los entornos virtuales.

Con conda se instalan multitud de librerías y aplicaciones secundarias que son usadas habitualmente en el desarrollo con python[2].

A continuación se explicará el proceso que hay que seguir para poder crear un entorno virtual usando Conda así como una lista con los comandos más usados en la gestión de los entornos virtuales.

Instalación

Lo primero será comprobar si tenemos conda actualizado:

:~$  conda update conda

En caso de tener que actualizar algún paquete, pulsaremos la tecla Y para confirmar la actualización.

Posteriormente comprobaremos cuales son las versiones de python que tenemos instaladas en nuestro sistema.

:~$ conda search ‘^python$’

Una vez que sabemos cual es la versión que queremos, crearemos el entorno virtual:

:~$ conda create -n nombredeentorno python=x.x anaconda

Donde sustituiremos x.x por la versión antes buscada.

Una vez creado, el siguiente paso será activarlo para poder usarlo:

:~$ source activate nombredeentorno

Una vez que terminemos de usar el entorno deveremos descativarlo:

:~$ source deactivate

Otros comandos

A continuación se detallan otros comandos relacionados con el mantenimiento de los entornos virtuales[3].

Listar todos los entornos virtuales creados:

:~$ conda info —envs

Comprobar el entorno virtual activado:

:~$ conda info —envs

Eliminar un entorno virtual:

:~$ condo remove —name nombredeentorno —all

Comprobar las versiones de las librerías instaladas:

:~$ conda list -e

Referencias

  1. http://conda.pydata.org/docs/install/quick.html#os-x-miniconda-install
  2. https://docs.continuum.io/anaconda/pkg-docs
  3. http://conda.pydata.org/docs/using/envs.html#managing-environments

Editar ficheros de un servidor remoto desde Atom

Introducción

Ultimamente estoy desarrollando aplicaciones para la raspberry. Al principio editaba los ficheros de forma local con el entorno gráfico de raspbian, sin embargo el editor de python que trae de serie es demasiado simple, sin resaltado de sintaxis ni corrección de errores.

Por ello, decidi usar el editor Atom y el paquete para poder conectarse a un servidor FTP, remote-ftp. Atom, al igual que otros editores de texto como Sublime Text, permite instalar paquetes para añadir funcionalidades extra.

El sistema operativo Raspbian para raspberry pi trae instalado un servidor ssh/sftp por ello, junto con el paquete para Atom nos conectaremos a la raspberry y editaremos los ficheros

Instalación

Nos dirigimos al apartado install dentro de las preferencias de Atom y en el cuadro de búsqueda introducimos “remote-ftp” e instalamos el paquete.

Captura de pantalla 2016-03-25 a las 16.09.19

  1. Lo siguiente será abrir la carpeta que contenga nuestro proyecto existente o crear uno nuevo(File -> Open folder…)
  2. Al ser la primera vez que usamos remote-ftp deberemos crear un fichero de configuración (Packages -> Remote-ftp -> Create SFTP config file) y se nos generará el fichero .ftpconfig dentro de nuestro proyecto.Captura de pantalla 2016-03-25 a las 16.32.18Deberemos rellenar la siguiente información:
    • host: Dirección ip del servidor.
    • port: Puerto del protocolo sftp.
    • user, password: Usuario y contraseña del servidor.
    • remote: Ruta del directorio del proyecto que estamos editando.
    • hosthash: Por defecto es un parámetro vacío, en caso de obtener un error en la conexión con el servidor. deberemos poner  “sha1” o “md5” [1].
  3. Una vez editamos el fichero de configuración nos conectaremos al servidor Package -> Remote-ftp > Connect
    Captura de pantalla 2016-03-25 a las 16.41.33De esta manera se nos abrirá la barra con los ficheros del servidor remoto y  podremos editar los ficheros del servidor en nuestro editor de textos local teniendo así de manera automática un backup en nuestro ordenador.Captura de pantalla 2016-03-25 a las 16.42.50

 

Referencias

  1. https://github.com/mgrenier/remote-ftp/issues/321

Cómo usar el buspirate V4 como conversor Serial

Hay muchos tipos de convertidores USB serial, para poder comunicarnos con varios dispositivos. Sin embargo, yo uso el buspirate. Que es una placa muliusos, entre las que incluye conversor USB a serial (mode UART). Vamos a ver dos ejemplos para comunicarnos con un arduino que está mandado información por un puerto serie usando la librería SoftwareSerial y para comunicarnos con el puerto serie de una raspberryPi.

Yo estoy usando el Buspirate V4 con la versión V6.2 beta1

Buspirate-Arduino

Las conexiones que hay que realizar son las siguientes:

Buspirate Arduino
Tx(MOSI) Rx
RX(MISO) TX
GND GND

Una vez que ya están hechas las conexiones, abrimos una comunicación serie del ordenador al BusPirate, en mi caso uso Mac, y usaré la aplicación Screen.

$>screen /dev/tty.usbmodem00000001 115200
$Hiz>m # Para entrar en la configuracion
$Hiz>3 # Establece el modo UART
$Hiz>4 # para una velocidad de 4,800 bps (SoftwareSerial)
$Hiz>1 # para 8 bits, sin paridad
$Hiz>1 # para 1 bit de parada
$Hiz>1 # Espera de 1
$Hiz>2 # para normal, 3.3v de salida
$Hiz>(1) # para activar Transparent bridge mode
$Hiz>y # Para empezar el modo puente

De este modo empezaremos a ver por pantalla lo que nos manda el arduino. Esto lo podemos usar para crear u puerto serie virtual de depuración de arduino.

Buspirate-Raspberry pi

Buspirate RaspberryPi
Tx(MOSI) Rx(pin 8)
RX(MISO) TX (pin 10)
GND GND(pin 6)

Una vez que ya están hechas las conexiones, abrimos una comunicación serie del ordenador al BusPirate, en mi caso uso Mac, y usaré la aplicación Screen.

$>screen /dev/tty.usbmodem00000001 115200
$Hiz>m # Para entrar en la configuracion
$Hiz>3 # Establece el modo UART
$Hiz>9 # para una velocidad de 115,200 bps
$Hiz>1 # para 8 bits, sin paridad
$Hiz>1 # para 1 bit de parada
$Hiz>1 # Espera de 1
$Hiz>2 # para normal, 3.3v de salida
$Hiz>(1) # para activar Transparent bridge mode
$Hiz>y # Para empezar el modo puente

Una vez que está en espera, Pulsamos en cualquier tecla y ya nos habilita el login en la raspberry

Renacujo sigue lineas y seguidor de luz

Siguiendo con los ejemplos de programación de renacuajo he añadido un ejemplo muuuy sencillo. Hasta ahora, si el renacuajo llegaba al final de la linea, buscaba otra con los sensores IR, sin embargo ahora he añadido que, al llegar al final de la linea se le pueda guiar con la luz que va recibiendo con las fotoresistencias.

Aquí añado un vídeo de ejemplo:

Y el código muy sencillo:


#include <Servo.h>

//Creamos los objetos del tipo servo
Servo Servo1;
Servo Servo2;

int ir_derecho;
int ir_izquierdo;
int ldr_derecho;
int ldr_izquierdo;
int NEGRO =0;
int BLANCO= 1;
int umbral = 30;

void setup()
{

Servo1.attach(6);
Servo2.attach(9);

pinMode(2, INPUT);
pinMode(3, INPUT);

}

void loop()
{
//Vemos como están los IR
ir_derecho = digitalRead(2);
ir_izquierdo = digitalRead(3);
// Seguimos la linea
if ( (ir_derecho == NEGRO) && (ir_izquierdo == NEGRO) ) {
Servo1.write(0);
delay(20);
Servo2.write(180);
delay(20);

}
//Giramos a la izquierda
else if ( (ir_derecho == BLANCO) && (ir_izquierdo == NEGRO) ){
Servo1.write(90);
delay(20);
Servo2.write(180);
delay(20);
}
//Giramos a la derecha
else if ( (ir_derecho == NEGRO) && (ir_izquierdo == BLANCO) ) {
Servo1.write(0);
delay(20);
Servo2.write(90);
delay((20));

}
//Seguimos la luz si los dos sensores no detectan negro
else {
//Leemos el estado de los sensores de luz
ldr_derecho = analogRead(A2);
ldr_izquierdo = analogRead(A3);
//Si hay mas luz en el lado derecho giramos a la derecha
if (ldr_derecho >= ldr_izquierdo + umbral){
Serial.println("Derecha");
Servo1.write(0);
delay(20);
Servo2.write(90);
delay((20));
}
//Si hay mas luz en el lado izquierdo giramos a la iquierda
else if (ldr_izquierdo >= ldr_derecho + umbral){
Serial.println("Izquierda");
Servo1.write(90);
delay(20);
Servo2.write(180);
delay(20);
}
//Vamos hacia adelante.
else{
Serial.println("Adelante");
Servo1.write(0);
delay(20);
Servo2.write(180);
delay(20);
}
}

}</blockquote>

 

Libreria para renacuajoBot

Aprovechando la librería de arduino que empezaron a escribir Juan Gonzalez y David Estevez, he añadido nuevas funcionalidades para trabajar de manera cómoda con el renacuajobot.

He añadido nuevos métodos para añadir un servo, indicándole el pin en el que está conectado, y la posición en la que está del robot.

He hecho lo mismo para añadir los sensores, en este caso solo están operativos los del sigue lineas.

Por último, he agregado una función que automáticamente sigue las linea sobre la que esté posicionado el robot. Lo siguiente que haré será que el propio robot busque las lineas a seguir dentro de un rango

El nuevo código lo podeis encontrar en mi github.

Sigue lineas renacuajoBot

Como dije anteriormente, los sensores de IR del kit de robótica de Bq, no tienen un diodo a la salida del pin de signal que impida el paso de corriente del pin al circuito. Por ello, al cometer un error en el montaje, lo conecté a una salida PWM del arduino que en ese momento estaba encendida, con lo que me cargue el sensor y no era capaz de detectar el cambio de color.

Ahora que he podido sustituirlo ya he terminado la primera versión del renacuajo para que siga lineas. La programación es muy sencilla, y lo explica José Luis V en su post.

Lo siguiente que quiero hacer es implementar la programación de los sensores y del propio regulador para seguir las lineas en la librería del miniskybot y su programación sea tan sencilla como ejecutar una función. Cuando los exámenes me den tregua empezaré a programarlo.

RenacuajoBot

El primer robot que han diseñado desde BQ para usar el kit de robótica, ha sido renacuajoBot. Este fin de semana he aprovechado para imprimirme una versión e ir haciendo pruebas.

2014-01-05 23.42.18La primera cosa que he probado han sido los servos conectado a la placa y probar su correcto funcionamiento. Las pruebas han sido estar cambiando la dirección del servo de una manera un tanto brusca, de esta manera, y debido a los picos de corriente, la placa se resetea y no funciona correctamente. Quizás si se alimentarán los servos de forma independiente a la de la placa el correcto sería el correcto. Por este motivo, y si están los servos conectados, la placa falla a la hora de subir el programa, es necesario subir el programa sin tener los servos conectados.

Captura de pantalla 2014-01-06 a la(s) 22.41.18

He estado modificando la librería de Obijuan y David Estevez que programaran para el miniskybot. De esta manera le he añadido la opción de añadir los servos de  rotación continua que se incluyen en el kit.

He tenido un problema al hacer las conexiones y he conectado uno de los sensores IR a una salida de la placa, y creo que se ha estropeado, los sensores no tienen ningún diodo para evitar que en el pin de signal le introduzcamos una tensión. Por eso, y como solo tengo un sensor IR, he programado el robot para evitar que se caiga de la mesa. A ver si consigo arreglarlo o cambiarlo por otro y lo programo para seguir lineas.

He colgado en mi github la librería con la actualización para los servos. Es una primera versión muuy primeriza, iré actualizando en cuanto pueda con el resto de sensores y actuadores que vienen incluidos en el kit.

[Review]Mi primer kit de robótica de bq

Desde la empresa bq Readers, me han ofrecido la posibilidad de ser MVP(Most valuable player), dentro del departamento de Innovación y Robótica, de los productos que vayan sacando. Iré poniendo en el blog las review que vaya haciendo de los distintos productos.

2014-01-02 22.16.57Para empezar voy a hablar de “Mi primer Kit de robótica”. El Kit consiste en  las vitaminas para poder hacerte tu primer robot. Están incluidos la electrónica, varios sensores(de luz, infrarrojo, potenciometro,etc..) y unos servos. Por contra, no se incluyen las piezas impresas que conforman el chasis, tornillería o juntas para las ruedas. ¡ Las piezas impresas, tornilleria y demás se incluyen a parte en el robot RenacuajoBot que ha sacado a la venta Bq. Irán sacando más modelos para que cada uno elija el robot que más le guste.

Podemos decir que no es un kit completo de robótica, ya que si no tienes acceso a una impresora 3D el chasis es un poco dificil de conseguir, pero poco a poco las impresoras 3D se están extendiendo. Y con esto, facilitamos lo que hasta ahora, había que conseguir buscando por distintas páginas de internet.

2014-01-02 22.17.34Al abrir la caja nos encontramos con un diagrama de flujo que nos orienta sobre cómo conectar los dispositivos. Y con código de colores sabemos qué dispositivos estamos conectando. Pensando en que fuera la primera vez que montase un robot, el diagrama tan claro ayuda bastante.

Sobre los componentes que vienen incluidos, son todos de la empresa elecfreaks la placa es compatible con arduino y trae unos conectores de tres pines macho, para poder conectar de manera cómoda los servos y sensores.

2014-01-02 22.38.17Todos los sensores vienen montados en una placa especial para que la conexión con la placa controladora sea cómodo.

En definitiva, un kit muy muy básico, para iniciarse en el mundo de la róbotica y robots imprimibles. Es una lástima que no se incluyan todos los materiales necesarios para poder construir el robot de una sola vez. Pero como decía al principio, es ideal para poder comprar todos los componentes electrónicos de una sola vez y no tener que buscar por distintas páginas todos los componentes, y en ocasiones la compra se hacía un poco pesada.