e-interiores Headline Animator

Mostrando entradas con la etiqueta mono. Mostrar todas las entradas
Mostrando entradas con la etiqueta mono. Mostrar todas las entradas

5.10.07

ds18x20 con Arduino (midiendo la temperatura)

Desde hace tiempo tengo conectado un arduino a mi mini-itx
Por ahora solo monitorizo la temperatura de la cpu, disco duro, fuente de alimentación y exterior. Como sensores uso ds18x20 de Maxim (Gracias maxim por esos excelentes samples)
Arduino busca los sensores que hay en su red filtra los que son del tipo sensor de temperatura y les pide su valor. Dado que cada uno de ellos tiene un id interno único, es posible identificarlos. Posterioremente se envía el id del sensor y la temperatura leida por el puerto serie.
En el pc hay un programa c# (mono) que lee el puerto serie, traduce el id a un nombre dado y añade la fecha y hora de la lectura.
El código fuente de arduino:



#include
/* OneWire en Arduino
Descargamos el código fuente de aquí */

/* DS18S20 Temperature chip i/o */

OneWire ds(10); // on pin 10

void setup(void) {
Serial.begin(57600);
}

void loop(void) {
byte i;
byte present = 0;
byte data[12];
byte addr[8];

if ( !ds.search(addr)) {
ds.reset_search();
return;
}

Serial.print("R");
for( i = 0; i < 8; i++) {
Serial.print("-");
if(addr[i]<16)
Serial.print(0);
Serial.print(addr[i], HEX);
}

if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.print("CRC is not valid!\n");
return;
}

if ( addr[0] != 0x10) {
Serial.print("Device is not a DS18S20 family device.\n");
return;
}

ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end

delay(1000); // maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.

present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad

for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
}
int HighByte=data[0];
int LowByte=data[1];

// Teniendo LowByte y HighByte
int TReading = (HighByte << 8) + LowByte;
int SignBit = TReading & 0x8000; // test most sig bit
if (SignBit) // negative
{
TReading = (TReading ^ 0xffff) + 1; // 2's comp
}
int Tc_100 = (6 * TReading) + TReading / 4; // multiply by (100 * 0.0625) or 6.25

int Whole = Tc_100 / 100; // separate off the whole and fractional portions
int Fract = Tc_100 % 100;

Serial.print(":");
Serial.print(HighByte/2);
Serial.print(".");
Serial.print(LowByte/2);
Serial.print(":");
Serial.print(TReading);

Serial.println();
}


Fuentes: Arduino playground, foros de arduino y phanderson

4.10.07

Microsoft publicará el código fuente de .net

Me acabo de llevar una sorpresa al leer en el blog de Miguel de Icaza (impulsor y responsable del desarrollo de Mono) que Microsoft va a hacer público el código fuente de las librerías base de .Net. Lo hará con su versión 3.5 del framework, que saldrá a finales de 2008.
En el post destacan las ventajas de poder depurar dentro de las librerías base. ¿que ganamos con saber porque falla un comboBox al hacer el binding de determianda forma?
Supongo que ganaremos cuando alquien lo depure y arregle los errores.
¿Hundirá esto al proyecto Mono?

15.5.07

Servidor svn en ubuntu

Llevo tiempo trasteando con mono y como control de versiones uso un simple y vulgar tar con la fecha en el nombre.
El otro día di con una web muy interesante repleta de recetas sencillas y muy útiles. Una de las recetas explicaba como montar un servidor de subversion.
Empezamos por instalar los paquetes necesarios:
sudo apt-get install apache2 subversion subversion-tools libapache2-svn
Ahora creamos la estructura de directorios y creamos desde svn la estructura:http://www.google.es/search?q=module-assistant+ipw3945&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:official&client=firefox-a

sudo mkdir -p /var/lib/svn/libros
sudo svnadmin create /var/lib/svn/libros/
sudo svn mkdir /var/lib/svn/libros/trunk -m "Trunk"
sudo svn mkdir /var/lib/svn/libros/tags -m "Tags"
sudo svn mkdir /var/lib/svn/libros/branches -m "Branches"

Ahora nos queda configurar el enlace del módulo de svn con apache editando:sudo vi /etc/apache2/mods-available/dav_svn.conf



DAV svn
SVNParentPath /var/lib/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd

Require valid-user


Rearrancamos apache
sudo /etc/init.d/apache2 restart
y ya deberíamos de poder acceder desde http://127.0.0.1/svn
El propietario de los ficheros debe ser apache pues es quien los gestionará:
sudo chown -R www-data.www-data /var/lib/svn
Para crear un usuario de svn
sudo htpasswd2 -c /etc/apache2/dav_svn.passwd usuario
Más detalles

28.11.06

Edicion de video en linux

Más información sobre edición de vídeo en Linux:
* Conversor entre formatos de video ffmpeg
* Cómo crear DVD con menu con software libre aquí

27.11.06

MOMA: Analizador de migracion a Mono

Leo en el blog de Miguel de Icaza sobre una nueva herramienta fruto de la comunidad mono que permite determinar la facilidad con la que podríamos portar nuestra aplicación .NET a Mono.
La herramienta se llama Moma y a partir de un ejecutable .net nos dirá los métodos que aún no esta portados a mono lo que nos da una visión globar de trabajo o de la posibilidad de migrar nuestra aplicacion a mono.
Simplemente utilísimo

17.11.06

Mono para el nokia 770 os 2006

Nos cuenta Miguel de Icaza en su blog que ya esta disponible mono para el os 2006 en el nokia 770.
PAra el que no lo sepa Mono es una entorno de desarrollo multiplataforma compatible con .net de Microsoft.
Permite un desarrollo rápido y a alto nivel de aplicaciones de tipo consola, de tipo formulario y de aplicacione web.
Cada vez tengo más claro cual será mi nuevo pda