lunes, 6 de julio de 2015

Calibrar LCD Táctil en Machinekit

Conectar mouse y teclado a Beaglebone Black.
Para calibrar el LCD Táctil hay que ir a Menú de Aplicaciones -> Preferences -> Calibrate Touchscreen.


Abrir nueva ventana en terminal (File->New Window) y copiar lo seleccionado en el cuadro rojo al final del archivo /usr/share/X11/xorg.conf.d/10-evdev.conf.

sudo nano /usr/share/X11/xorg.conf.d/10-evdev.conf

Guardar ctrl+o y salir ctrl+x

Apagar, desconectar y volver a conectar para ver si tuvo efecto la configuración.

sudo shutdown -h now

Instalación de LCD 7 pulgadas (waveshare) en Machinekit


Antes de continuar con este tutorial pasar por esta guía.

Primeros Pasos Machinekit Beaglebone Black

El Lcd de 7 pulgadas que se va a usar es:

LCD 7 Pulgadas Waveshare

Crear una carpeta llamada lcd7 para guardar los archivos del lcd de 7 pulgadas, ingresar en carpeta y descargar los archivos dentro de ella.

mkdir lcd7
cd lcd7
wget --no-check-certificate -O LCD7-waveshare.rar https://www.googledrive.com/host/0B6xWQnSH6ge5dWh1dVEtcW1qNVU

Verificar archivo y descargar unrar para descomprimirlo.

ls
sudo apt-get update
sudo apt-get install unrar
unrar e LCD7-waveshare.rar

Compilar el archivo DVK530-LCD7-01-00A1.dts.

dtc -O dtb -o DVK530-LCD7-01-00A1.dtbo -b 0 -@ DVK530-LCD7-01-00A1.dts

Copiar el archivo DVK530-LCD7-01-00A1.dtbo a /lib/firmware.

sudo cp DVK530-LCD7-01-00A1.dtbo /lib/firmware

Reemplazar el archivo xorg.conf para que la pantalla lcd funcione a color y no inicie sin los colores rojo y azul, se modifica 16 bits a 24 bits.

sudo cp -f xorg.conf /etc/X11/

Habilitar el archivo DVK530-LCD7-01-00A1.dtbo en uEnv.txt que se encarga de iniciar con los componentes que se quiera utilizar (HDMI, EMMC, etc); es muy útil deshabilitar estos para poder usar mas pines de la Beaglebone. Para poder usar el Device Tree Blob Object (DVK530-LCD7-01-00A1.dtbo) se necesita deshabilitar el HDMI.

sudo nano /boot/uEnv.txt

Comentar en el caso que no lo este, se encuentra deshabilitado solo el HDMI Audio y está activo HDMIIN y EMMC.

#optargs=capemgr.disable_partno=BB-BONELT-HDMI

Descomentar para deshabilitar HDMI y HDMIN.

optargs=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN

Para habilitar el Device tree overlay del LCD 7 pulgadas se debe escribir al final.

##LCD7
optargs=capemgr.enable_partno=DVK530-LCD7-01:00A1

Guardar los cambios ctrl+o y salir ctrl+x


Cargar capas personalizadas.

Para cargar el LCD de 7 pulgadas en el arranque del sistema se debe agregar la capa al archivo capemgr.

sudo nano /etc/default/capemgr
CAPE=DVK530-LCD7-01:00A1

Guardar los cambios ctrl+o y salir ctrl+x.

Reiniciar.

sudo reboot

Chequear que lcd se haya cargado correctamente.

dmesg | grep  bone-capemgr


Apagar, conectar LCD 7 Pulgadas y encender Beaglebone Black.

sudo shutdown -h now


Instalar y configurar Interfáz Gráfica gmoccapy_lcd7 para pantallas lcd con resolución de 800x480.
gmoccapy_lcd7.

Primeros Pasos Machinekit Beaglebone Black

Beaglebone Black Machinekit Primeros Pasos.

Descargar Imagen Machinekit
Machinekit

Formatear MicroSD Card en Windows


Ejecutar cmd como administrador

Escibir:
diskpart
Ver los dispositivos de almacenamiento detectados
list disk
Seleccionar microsd card (disco) dependiendo tamaño (ver imagen, la microsd card es de 8 GB)
select disk 1
Limpiar archivos
clean
Crear particion
create partition primary
Dar formato
format fs=fat32 quick
Asignar letra automáticamente
assign 
Salir diskpart
exit

Se recomienda comprobar si la microSD Card no esta defectuosa con el programa H2testw antes de seguir con el siguiente paso.
 
Descargar Win32DiskImager.exe

Buscar Imagen Machinekit Descargada
Escoger la unidad correcta para escribir la Imagen en la microSD Card.
Una vez terminado aceptar el mensaje que sale y probar la microSDcard en la Beaglebone Black.

Para poder tener acceso a la Beaglebone Black conectando por usb o ethernet hay que descargar los siguientes programas:

Copiar Imagen Machinekit usando Linux

Para poder Copiar los datos de una Imagen en linux hay que insertar la microSDCard, en caso de estar en una máquina virtual como VMWARE Workstation se debe crear un nuevo disco y escoger como un disco físico.





En la siguiente Imagen se puede observar como poniendo los siguientes comando se obtiene la información de los discos o dispositivos externos conectados. En el recuadro azul se puede observar la memoria SD Card conectada y se sabe que es la memoria ya que esta la capacidad de alamcenamiento es de 8gb.

# Primero instalar dosfstools
sudo apt-get install dosfstools
# Para ver la info de discos
sudo fdisk -l
lsblk



Ahora lo que se debe hacer es borrar las particiones de la memoria micro SDCard para luego copiar los datos de la memoria. Para esos ejecutamos sudo fdisk y la ruta donde esta la memoria que se va a eliminar las particiones. Como se ve en la imagen anterior la memoria en mi caso es la sbd.

#Para borrar
sudo fdisk /dev/sdb
#Luego escribimos la letra d que es delete, según cuantas partciones tengamos y cuales querramos borrar.
#En este caso se tiene dos la sbd1 y sbd2 por lo que utilizamos dos veces la letra d
d
1
d
#enter
#Para finalizar se escribe la letra w que es para escribir los cambios realizados, con esto se habrá borrado todo
#Para comprobar volvemos a escribir
sudo fdisk -l
lsblk
#Se puede observar que ya se han eliminado las particiones anteriores, observa en el recuadro rojo de la imagen derecha

El último paso es escribir la imagen a la microSDCard. Para escribir en la micro SDCard hay que ejecutar el comando dd (Dataset Definition) seguido de la opción if (Input File) indicando la ruta del archivo que se quiere copiar y of (Output File) que indica a donde se quiere copiar el archivo de if, el parametro bs indica el tamaño de bloque en este caso se recomienda usar 1M o 4M.

 #Dar permiso, usar comando dd, tamaño de bloque (bs) 4M, archivo de entrada (if), archivo de salida (of)
# En mi caso la imagen se encuetra en la carpeta /home/debian o lo que es lo mismo ~/
#Paso a realizar si la imagen esta comprimida y esperar a que se descomprima, si se quiere ver el proceso poner -xvf
tar xf imagen-descargada.img.xz
#Por último copiar la imagen a la micro SDCard
sudo dd bs=4M if=/home/linuxcnc/bone-debian-7.9-machinekit-armhf-2015-10-25-4gb.img of=/dev/sdb


Colacar la micro SDCard en la Beaglebone Black y disfrutar de machinekit en ella.

Nota: Al terminar de copiar guardar todo lo que se este haciendo, ya que si se extrae la memoria, la máquina virtual podría apagarse automaticamente al detectar que se ha desmonatdo un disco. Para que no salga un error de que no se puede encontrar el disco al volver a prender la máquina virtual, hay que eliminar el disco creado y volver a realizar los pasos anteriores siempre que se desee usar una micro SDCard con VMWARE, con una PC corriendo linux de forma nativa se evita todos estos pasos. En mi opinión personal en linux se crea las imagenes de forma mucho más rápida con tan solo dos comandos fdisk y dd.

Advanced IP Scanner
Abrir cmd de windows y escribir
ipconfig
Abrir Advanced IP Scanner y poner el rango de IP de acuerdo al resultado de la búsqueda en cmd de windows.
Ejemplo: 192.168.10.114 (es mi IP)
En el programa de Advanced IP Scanner debería ir de la siguiente forma.
192.168.10.1 - 192.168.10.255
Asi solo buscará el programa dispositivos conectados a mi red y no de otras redes que pueden estar interconectadas.


Putty y Xming
Para Windows se necesita putty junto con xming para correr aplicaciones en modo gráfico, a continuación se realizará la configuración más básica de Putty.
Lo primero es poner  la IP encontrada por Advanced IP Scanner, en mi caso es 192.168.10.118.  Escoger modo SSH, Port 22 y en saved sessions poner el nombre con el que se desea guardar la configuración.



Luego hay que ir a Connection -> SSH -> X11 y marcar en Enable X11 Forwarding.



 Regresar a Session, dar click en Save y Open.
Tener en cuenta que si se va ejecutar programas en modo gráfico el programa Xming debe estar ejecutandose.

MobaXterm Personal Edition

MobaXterm Personal Edition es un programa muy completo que permite ejecutar en modo de escritorio o shell de acuerdo al desktop de linux que se tenga, se lo debe configurar para que corra ese escritorio cada vez que se ejecuta dicha configuración.
*En mi caso lo deje de usar por no poder  configurar la resolución para que salga correctamente la aplicación de gmoccapy cambiada a una resolución de 800x480.

En linux se puede acceder a la Beaglebone Black instalando openssh o putty 
sudo apt-get install openssh-server openssh-client
sudo apt-get install putty 

Conectarse con ssh:
ssh machinekit@192.168.10.118

username: machinekit
password: machinekit

Copiar Imagen Machinekit de microSD card a eMMC (BBB Rev C 4gb).

Se debe modificar el archivo uEnvt.txt que se encuentra en /boot. Esto hará que al reiniciar la Beaglebone Black comience a copiar los archivos de la microSD card a la memoria interna de la Beaglebone Black (eMMC).

sudo nano /boot/uEnv.txt

Cambiar esto:

##enable Generic eMMC Flasher:
##make sure, these tools are installed: dosfstools rsync
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh

Por esto (descomentar):

##enable Generic eMMC Flasher:
##make sure, these tools are installed: dosfstools rsync
cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.s

Al reiniciar se comenzará a flashear la Beaglebone Black copiando todos los archivos de la microSD Card, en este proceso los leds comenzarán a parpadear uno por uno de forma secuencial de izquierda a derecha y al acabar el proceso se apagará la Beaglebone Black (todos los leds estarán apagados). No hay que olvidar retirar la microSD card para evitar que se repita el proceso de flasheo.

Nota: si se desea utilizar la microSD card sin que realice el proceso de flasheo en otras Beaglebone Black hay que modificar el archivo uEnv.txt. Esto se lo debe hacer en linux ya que en windows no se pueden visualizar todas las carpetas que contiene la microSD card, pero se pueden descargar programas en windows que si lo permiten.

Herramientas para acceder a tus particiones Linux desde Windows.

Accerder desde Linux.

sudo nano /media/rootfs/boot/uEnv.txt

y volver a comentar

##enable Generic eMMC Flasher:
##make sure, these tools are installed: dosfstools rsync
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh


Expandir partición de Imagen Debian en una microSDCard

El procedimiento es bastante sencillo en la imagen Debian, en la carpeta /opt/scripts/tools
 existe un archivo llamado grow_partition.sh que se encargará de hacerlo de forma automatica, cuando termine el proceso hay que reiniciar y estará expandida la partición al tamaño de capacidad de almacenamiento de la memoria microSDCard


cd /opt/scripts/tools/
git pull
sudo ./grow_partition.sh
sudo reboot

El otro método es un poco más elaborado pero igual de fácil.

sudo su 
fdisk /dev/mmcblk0 
d 
2 
n 
p 
2  
#pulsar enter dos veces
w 
reboot 
#Después de reiniciar hacer lo siguiente
sudo su 
resize2fs /dev/mmcblk0p2 

Referencia: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian. 

Copiar archivos o carpetas de Windows a otros equipos.

Para poder subir archivos o carpetas utilizando SCP (En windows PSCP), hay que descargar el programa pscp.exe de la página de putty y copiarlo a la ruta "C:\Windows\System32". Cuando se abra cmd ya se podrá ejecutar el comando pscp. Usar Advance IP Scanner para visualizar las IP de los dispositivos o entrar al router y ver los IP conectados a el.

Ejemplos de como utilizar:

pscp <carpeta o archivo que se quiera copiar o mover> <nombre equipo al que se quiere copiar@IP>

Copiar archivo de equipo-anfitrión (host) a equipo-remoto (remote).

Si el archivo está en documentos se puede acceder con cd C:\Users\leo\Documents y copiar el archivo con un:
 
pscp ejemplo.txt debian@192.168.10.149:/home/debian/

Copiar carpeta de equipo-anfitrión (host) a equipo-remoto (remote).

Si el archivo está en documentos se puede acceder con cd C:\Users\leo\Documents y copiar el archivo con un:
 
pscp -r ejemplo-carpeta debian@192.168.10.149:/home/debian/

Copiar archivo de equipo-remoto (remote) a equipo-anfitrión (host).

Si el archivo está en la carpeta principal de linux y se quiere copiar a la carpeta actual de windows:
 
pscp debian@192.168.10.149:/home/debian/ejemplo.txt .

El punto hace que se copie a la ruta actual de windows desde el equipo remoto.

En esta opción se copia del equipo remoto a una ruta de windows desiganada. 

pscp debian@192.168.10.149:/home/debian/ejemplo.txt C:\Users\leo\Documents
 

Copiar carpeta de equipo-remoto (remote) a equipo-anfitrión (host).

Si la carpeta está en la carpeta home de linux y se quiere copiar a la carpeta actual de windows:
 
pscp -r debian@192.168.10.149:/home/debian/ejemplo-carpeta .

El punto hace que se copie a la ruta actual de windows desde el equipo remoto.

En esta opción se copia del equipo remoto a una ruta de windows desiganada. 

pscp -r debian@192.168.10.149:/home/debian/ejemplo-carpeta C:\Users\leo\Documents

Para  Linux es parecido solo que cambia pscp por scp y algunas veces las rutas se ponen entre comillas para que funcione ejemplo:

scp -r ejemplo-carpeta debian@192.168.10.149:"/home/debian/"