elCacharreo …

es un estado mental.

Es una forma de ver las cosas preguntándose qué hay detrás, ¿puedo yo mejorarlas?

Es una actitud vital que te lleva a la curiosidad ante todo.

Acceso remoto a raspberry

Ya vimos en un post anterior cómo conectar nuestra raspberry a un pc directamente. A partir de aquí o bien si está conectada normalmente a nuestra red, podremos acceder a ella remotamente de varias formas:

  • SSH: es la forma más habitual de conexión con ordenadores remotos con Linux, y aunque nos siga sorprendiendo la raspbery lo es. Para poder conectarnos, antes tenemos que activar el servicio ssh en la raspberry. Lo haremos desde la configuración a la que llegaremos usando el siguiente comando
sudo raspi-config

y activando ssl en la siguiente pantalla

Para obtener la ip de nuestra raspberry, desde una ventana de terminal usamos el comando

sudo ifconfig

y en el resultado buscamos ip addr

Una vez activado podremos acceder usando

ssh pi@192.168.x.x

con contraseña (si no la hemos cambiado, lo cual es recomendable) raspberry.

  • Escritorio remoto: nos permite acceder al entorno gráfico de nuestra raspberry. Usaremos VNC del que existen tanto cliente como servidores gratuitos y para diferentes plataformas.

Empezaremos instalando el servidor

sudo apt-get install tightvncserver

Una vez instalado podemos ejecutarlo con

tightvncserver :1

Con esto conseguimos que se arranque en este momento. Para hacer que el servicio se ejecute en cada arranque podemos descargar este script. Para instalar en nuestra raspberry haremos:

wget http://www.penguintutor.com/otherfiles/tightvncserver-init.txt
sudo mv tightvncserver-init.txt
sudo mv tightvncserver-init.txt /etc/init.d/tightvncserver
sudo chown root:root /etc/init.d/tightvncserver
sudo chmod 750 /etc/init.d/tightvncserver
sudo update-rc.d tightvncserver defaults

Rearrancamos con

sudo reboot

y listo. Ya podemos conectarnos desde nuestro cliente VNC usando la ip de la raspberry

Javacasm

Configurando conexión directa con raspBerry

Vamos a configurar nuestra raspberry y un portátil con Ubuntu para facilitar al máximo la conexión y así no tener que utilizar muchos componentes. De esta manera podremos trastear con un kit mínimo, evitando tener que usar un teclado, ratón y sobre todo un monitor.

En concreto usaremos símplemente un cable de red (ethernet) y un cable micro-usb para alimentar la raspberry.

Con esta configuración no podemos consumir en total más de los 500mA que proporciona el USB.

Tendremos que modificar ficheros de configuración en el PC y en la raspberry.

Asumiremos que tenemos conexión a internet via Wifi y utilizaremos el cable ethernet para dar conectividad a la raspberry. Crearemos una red entre el portátil y la raspberry creando una subred distinta y haremos que el portátil actúe como gateway de esa red enrutando los paquetes hacia la raspberry y dándole acceso a internet.

Comencemos editando la configuración del pc, para lo que ejecutaremos en el pc:

sudo vi /etc/network/interfaces

y dejamos el contenido del fichero (la red que se usa normalmente es las 192.168.1.x de ahí que el gateway sea 192.168.1.1 que es el real)

Ahora vamos a editar la configuración de la raspberry. La forma más sencilla es editando los ficheros de configuración desde el pc, para lo que insertamos la tarjeta sd de la raspberry (obviamente con esta apagada) en el pc y ejecutamos en este:

sudo vi /media/10b4c001-2137-4418-b29e-57b7d15a6cbc/etc/network/interfaces

Quedando el mismo:

Ahora, colocamos la tarjeta sd en la raspberry y volvemos a encenderla

Conectamos el cable ethernet entre los dos

En el PC hacemos comprobamos que la tarjeta eth0 está ok y con la ip correspondiente, haciendo

ifconfig /all

Veremos que aparece el interface eth0 con ip 192.168.0.80

Ahora vamos a hacer que el portátil actúe como router. Para ello ejecutamos los siguientes comandos

sudo su -
root@ubuntu-asus:~# echo 1 > /proc/sys/net/ipv4/ip_forward
root@ubuntu-asus:~# /sbin/iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Por último editamos el fichero de configuración de DNS con
sudo vi /etc/resolv.conf
y lo dejamos así

Ahora solo falta probar que tenemos conectividad, haciendo un ping

ping 192.168.0.90

Si todo es correcto ya podremos acceder

JAvacasm

Curso presencial Avanzado de Arduino en Granada

arduino avanzadoLos próximos días entre el 13 y el 17 de Mayo impartiré un Curso Avanzado de Arduino en la Facultad de Ciencias de Granada.

Lo organiza Darwin Eventur y podéis ver más detalles en el siguiente enlace

Serán 30 horas de clase presencial y otras 30 de trabajo en casa.

La idea es que sea esencialmente práctico y que los alumnos realicen los montajes para poder aprovecharlo a todo.

En el precio se incluye un kit con todo lo necesario para hacer los montajes.

Hemos preparado un temario de lo más completo, con técnicas avanzadas de programación y montajes.

Introducción y Repaso de programación y del  hardware de Arduino

Programación avanzada:

  • Acceso avanzado a puertos: Preescaler y acceso paralelo
  • Interrupciones software
  • Control: PID
  • Creación de Librerías
  • C avanzado y assambler

Expandiendo Arduino:

  • ADC: Sampling y acceso a ADC externos
  • DAC: ejemplo sonido estéreo
  • RTC: Time library
  • Sensores avanzados
  • Interrupciones hardware
  • Control avanzado de motores
  • Display: lcd, graphic lcd, led matrix
  • Comunicaciones radio: RF 433, nordic RF, Zigbee, GPRS, Bluetooth, Wifi

Continuar leyendo Curso presencial Avanzado de Arduino en Granada

Próximamente una RepRap Prusa i3 (impresora 3D) por aquí

Acabo de decidirme a montar una impresora 3D. En concreto una RepRap Prusa i3. Algo así como lo de la foto de abajo

Pŕoximamente más detalles y todo el proceso de montaje

Robot 4WD II: primeras pruebas

La placa de manejo de motores que vamos a usar está basada en el chip L298 que es un puente en H capaz de manejar 2 motores.

Las placas basadas en este chip suelen tener capacidad para controlar 2 motores normales o un paso a paso de 4 entradas y suelen manejarse del siguiente modo:

  • Se usan 2 pines para controlar la direccion de giro de cada motor. Un pin establece la polaridad de cada uno de los  hilos de cada motor, así si ponemos uno a 1 y el 0 a 0 tendremos que la corriente va de positivo al otro girando en un sentido. Para hacer el giro en sentido contrario cambiaremos los estados. Si activamos las 2 entradas a 0 el motor estará en estado libre y si ponemos las 2 a 1 estará bloqueado
  • Un pin activa las salidas para cada motor, conectando este pin a una salida PWM conseguiremos modular la “intensidad” de la salida dando la sensación de velocidad
En resumen necesitamos 6 pines: 4 para controlar la dirección y 2 para controlar la velocidad.

Continuar leyendo Robot 4WD II: primeras pruebas