jueves, 31 de diciembre de 2009

Linux

To be able to understand or to evaluate different howtos it is important to understand basics of the bluetooth layered architecture. http://en.wikipedia.org/wiki/Bluetooth_protocols Otherwise with all the different linux tools for each layer it looks like a mess. You will need at least following tools:

  • 'hcitool' to find your mobile device
  • 'sdptool' and 'sdpd' daemon to register services like serial port
  • 'rfcomm' to emulate serial port over bluetooth
  • 'cu' or any other terminal program

Instructions

Plug-in your bluetooth adapter, and then from the shell:

  • $ hciconfig reset

Then check that the device exists by typing:

  • $ hcitool dev

Register a serial port (use channel 2. For some reason, channel 1 and channel 3 might not let the connection through)

  • $ sdptool add --channel=2 SP

Now listen to the channel:

  • $ rfcomm listen rfcomm2 2

In your phone, make sure bluetooth is on, then go to the Python application and then select the Bluetooth Console. Select from the list of available devices your computer's bluetooth adapter (you might need to select search even if you think you have already defined the pairing). If the operation is successful, you should see something similar to the following on your computer's shell:

  • Waiting for connection on channel 2
  • Connection from 00:11:9F:BE:47:CA to /dev/rfcomm2
  • Press CTRL-C for hangup

Now open a new shell terminal and execute:

  • $ cu -l /dev/rfcomm2

You're now in control of your mobile's python console :)

NOTE: In some Linux distributions cu command is not a shell built-in. In that case you must use the minicom program which is equivalent to cu.

Example: In Pardus Linux type sudo pisi it minicom to install it.

Tested with:

  • Nokia 6630, Ubuntu 7.10.
  • N73, Ubuntu 7.04, Thinkpad T42p.
  • N95, Debian (kernel 2.6.26) - you need to use minicom -o instead of cu
  • Nokia 5530, Gentoo (kernel 2.6.30, bluez 4.39-r2)

Notes:

  • This procedure doesn't work on Ubuntu 8.04 due a bug in bluez-utils [1] and can be temporally fixed till hardy is updated installing debian sid package [2]

Controlando el puntero del raton con Python

from Xlib import X, display
d
= display.Display()
s
= d.screen()
root
= s.root
root
.warp_pointer(300,300)
d
.sync()

lunes, 3 de agosto de 2009

servidor de video de webcam...

GStreamer

para enviar video

gst-launch v4l2src ! video/x-raw-yuv,width=320,height=240,framerate=\(fraction\)5/1 ! ffmpegcolorspace ! jpegenc ! multipartmux ! tcpserversink host=localhost port=5000

para recibir video:

gst-launch tcpclientsrc host=localhost port=5000 ! multipartdemux ! jpegdec ! autovideosink


miércoles, 1 de julio de 2009

Listar puertos seriales en python

Me es necesario enlistar los puertos que tiene mi equipo de desarrollo, tons tengo este script

import os
def EnumeraPuertos():
o=os.popen("ls /dev/tty*")
p=o.read()
q=p.split('\n')
Lista=[]
cuenta=0
for i in range(len(q)):
if q[i].startswith("/dev/ttyUSB") or q[i].startswith("/dev/ttyS"):
Lista.insert(len(Lista), q[i])
cuenta+=1
if cuenta > 0:
for i in range (len(Lista)):
print Lista[i]
else:
print "no hay puertos seriales..."
if __name__=="__main__":
EnumeraPuertos()

domingo, 26 de abril de 2009

Python autocompletado ... continua

Ahora para que el sistema haga automaticamente la creacion de la variable de entorno que necesitamos, tenemos que agregar una linea con el texto siguiente al archivo
.bashrc

al final de este fichero escribimos
export PYTHONSTARTUP=/home/mvivanco/.pystartup
... listo

miércoles, 22 de abril de 2009

Python, autocompletado

Gracias al Noe, pude ver la potencia que se puede adquirir de python, este es un interprete de programacion.

Anteriormente habia visto Python, y recuerdo que tenia el autocompletado habilitado, ahora que vuelvo a retomarlo me doy cuenta de que no tiene esta caracteristica, por lo tanto, me veo en la tarea de habilitarle esto, y me encuentro con lo siguiente:

Se crea un archivo llamado pystartup, con la esta sintaxis:
import rlcompleter
import readline
readline.parse_and_bind("tab: complete")
desde la terminal se puede hacer de esta forma:
cat > pystartup << "EOF"
aunque se puede utilizar un editor de textos, despues se crea una variable de entorno indicando donde se encuentra este archivo para que Python lo cargue al ser invocado.
export PYTHONSTARTUP=/home/mvivanco/pystartup
y listo, ya esta habilitado el autocompletado...

PD. para autocompletado

viernes, 3 de abril de 2009

Acelerando x4 el 450

Rutina para multiplicar la frecuencia de ejecucion de instrucciones en el 89c450

void MultiplicaXTAL(){
// PMR
// 7 6 5 4 3 2 1 0
// CD1 CD0 SWB CTM 4x/2x ALEON DME1 DME0
PMR |= 0x80; // CD1:CD0 = 10b
EXIF &= 0xFD; // RGMD = 0

PMR &= 0xEF; // CTM = 0
PMR |= 0x08; // XTAL x 4
PMR |= 0x10; // CTM = 1

while( !(EXIF&0x08) );
PMR &= 0x3F; // CD1:CD0 = 00b
}

lunes, 23 de marzo de 2009

Java

Termino el curso de Java, estuvo interesante hasta que llego la parte de base de datos, no entendi, bueno, no lo suficiente, creo que es debido a mi falta de conocimiento en si de las base de datos, pero conoci un poco sobre eso.

Tal vez me habria gustado mas haber visto applet's, en fin, ya sera por mi propia cuenta, ahora tengo mas conocimientos sobre este lenguaje que no me llama mucho la antencion, salvo por los applets.

clfs-embedded

La semana pasada estuve instalando LFS en una maquina virtual, y buscando informacion sobre un punto en el que me detuve, encontre CLFS-embedded, que es un libro sobre como instalar embedded linux, por lo tanto me detuve con el avance que llevo de LFS.

CLFS es la instalacion de Cross-compiler Linux From Scratch, la teoria dice que es una herramienta instalada en un equipo Host para compilar programas destinados a ejecutarse en otro equipo Target con distinta arquitectura.

Por ahora utilizare una maquina virtual y el LFS como sistema Host, para instalar lo necesario y poder compilar programas para un sistema embebido.

lunes, 23 de febrero de 2009

Temas Emerald

Esto es para tener todos los temas que emerald ofrece

1) cd ~; mkdir temp; cd temp
2) svn co https://svn.generation.no/emerald-themes
3) cd emerald-themes; rm -Rf .svn; mv visa_\(smoked_aero_glass\).emerald visa_smoked_aero_glass.emerald; rename 's/\.emerald$//' *.emerald; cd -
4) mkdir emerald-themes-temp
5) ls emerald-themes | awk '{print "mkdir ./emerald-themes-temp/"$0";cp ./emerald-themes/"$0" ./emerald-themes-temp/"$0";cd ./emerald-themes-temp/"$0";tar xvfz "$0";rm -f "$0";cd -"}' > temp.sh
6) chmod 755 temp.sh; ./temp.sh
7)cp -R emerald-themes-temp/* ~/.emerald/themes

jueves, 12 de febrero de 2009

Restaurando GRUB

A mi regreso, formatee mi pc y reinstale windows, le cargue una vacuna, y al poco tiempo ya tenia mas virus, asi que decidi restaurar el GRUB para poder entrar a linux, no lo habia hecho por falta de animos, confiando en que no me pasaria esto.

Fue entonces asi como lo restaure.

Entre con mi livecd de Gutsy, abri una terminaly escribi

$> sudo grub

y ahi escribi lo siguiente

grub> find /boot/grub/stage2
(hd0,2)

grub> root(hd0,2)

Error 27: Unrecognized command

grub> root (hd0,2)

grub> set
Possible commands are: setkey setup

grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/reiserfs_stage1_5" exists... yes
Running "embed /boot/grub/reiserfs_stage1_5 (hd0)"... 20 sectors are embedded
.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+20 p (hd0,2)/boot/grub/stage2
/boot/grub/menu.lst"... succeeded
Done.

grub> quit


... reinicie sistema, y listo !

lunes, 9 de febrero de 2009

Embedded Systems

He comenzado con la busqueda de como instalar Linux en un sistema embebido, y he tenido que leer este libro

http://www.amazon.co.uk/Building-Embedded-Linux-Systems-Yaghmour/dp/059600222X

miércoles, 28 de enero de 2009

Aplicacion ALP

No se si este sea el nombre que reciba la aplicacion, por el momento asi la llamare, esta aplicacion sera un buen ejercicio para poner en practica y conocer mucho mas el lenguaje java. Ahora se me ocurre tener bien marcados los modulos que formaran la aplicacion.

* Control
* Interfaz con el usuario
* Comunicacion entre control e interfaz

... tengo esta idea debido a que, a mi parecer es mas sencillo el hecho de poder manejar el control de la aplicacion con otro tipo de interfaz, desconozco ahora si java permite crear procesos e interconectarlos entre si sin necesidad de compilar y compilar.

lunes, 26 de enero de 2009

Java, serial port, linux

He instalado las librerias que se necesitan para acceder al puerto serial en linux. Busque en la pagina de sun, la libreria para puerto serial en linux, java comm, en el archivo da las instrucciones que segui para hacerla funcionar.

Problemas que tuve durante la instalacion, fue un error de mi parte, ya que tenia dos manuales de instrucciones, y confundi todo, copie un archivo que mapea los puertos de la pc en una de las carpetas de configuracion y al parecer ese fue el error, porque al eliminarlo todo funciono muy bien.

martes, 20 de enero de 2009

PuertoSerial.java, Hilos.java

Instale una libreria que me pasaron, esta permite la escritura y lectura al puerto serial.
Estoy leyendo sobre la implementacion de hilos.

Aprendiendo Java

Lenguaje de programacion orientado a objetos

Me agrada la idea de poder hacer aplicaciones para mi cel N73, y este lenguaje tiene esa capacidad, por ahora solo estoy conociendo el lenguaje.

Actividades hechas:
Instalacion de NetBeans, en Wxp y Ubuntu
Lectura de fuentes del lenguaje
Implementacion de "Hola Mundo"