mDuino (micro-arduino)

21 enero 2008

Cada vez salen a la luz más proyectos capaces de reducir el número de componentes necesarios para realizar montajes con arduino. Hasta ahora yo solo he probado BBB Arduino y RBBB Arduino de moderndevice, y ya son un avance.

Hoy he descubierto esta nueva vuelta de tuerca: mDuino

Habrá que probarla.

Actualizacion 4-Noviembre-2011: Para temas actualizados de arduino visitar el cacharreoe-interiores Por ejemplo el post sobre clóclonicos de arduino

Arduino navideño

13 diciembre 2007

Fantástico contador de visitas que utiliza un arduino para hacer sonar una campana cada vez que nuestro blog recibe una visita.

play_blip_movie_526283();

Para oir la melodía interpretada por Festival, un sintetizador de voz capaz de cantar midis.

Actualizacion 4-Noviembre-2011: Para temas actualizados de arduino visitar el cacharreoe-interiores

Quiero uno

10 diciembre 2007

Es un visor de rss hecho con arduino
Más detalles

Tutorial sobre soldadura

10 noviembre 2007

Para completar el montaje de mis BBB y rBBB necesito soldar los kits de moderndevices.

He encontrado un tutorial sobre soldadura en Hack-a-day.

Puede parecer simple, pero realmente cuenta todo lo necesario.

¿que necesito para hacer soldaduras de maestro? Mucha práctica y tiempo libre…

Acaba de llegarme un paquete con kit para montar clónicos de arduino de ModernDevices. ¿por que no usar los propios kit de arduino? porque dan mayor facilidad para hacer prototipos (pueden usar conectores machos o hembra), ocupan menos espacio y además son más baratos.
bbbEste es el modelo BBB que se conectar de modo sencillo a una placa de prototipo y que además que facilita conectar directamente servos de radiocontrol u otros aparatos que requieren conexión de alimentación directamente.

 

rbbbEste otro, el modelo rBBB es realmente minimalista y permite usar la placa de prototipos porque tiene sepados las dos filas de contactos (sé que no me explico, prometo imágenes cuando los monte.

Ninguno de los dos modelos dispone de conexión usb, por lo que necesitamos un cable exterior o bien usar otra placa arduino que si lo tiene.

Otra ventaja de estas placas es que disponen de un bootloader más avanzado (sin los retardos del original) y que además soportan el nuevo reset por software.

Tengo que decir que el trato ha sido excelente, enviándome kit que de hecho aún no comercializa y usando una forma de envío superior a la que yo solicité y pagué (gracias Paul!!), porque pensaba que se había retrasado en envío. Resumiendo: atención exquisita al cliente.

En breve las tendré montadas con fotografías del proceso. Prometido.

Actualizacion 4-Noviembre-2011: Para temas actualizados de arduino visitar el cacharreoe-interiores

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

Actualizacion 4-Noviembre-2011: Para temas actualizados de arduino visitar el cacharreoe-interiores. Por ejemplo “leyendo temperaturas con mayor precision

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

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.