Nuevo libro en español sobre Arduino de la editorial RCLibros

Hola Tengo el placer de presentar un libro sobre Arduino (principalmente UNO) en el cual he estado trabajando el último año y que ya está disponible a la venta en http://www.rclibros.es/index.php?option=com_content&view=article&id=225 (además de en muchas librerías técnicas).

Son casi 600 de multitud de ejemplos básicos, pensados para la iniciación del profano, pero que cubre un amplio espectro de proyectos. En la web disponéis del índice, y del primer capítulo completo. Como podéis ver, empiezo introduciendo los conceptos básicos de electrónica y componentes, para seguidamente hablar del ecosistema Arduino (hardware y software) y profundizar en la sintaxis del lenguaje (siendo en este sentido como un pequeño manual de programación) además de exponer el uso de las diferentes librerías oficiales. Finalmente acabo con un capítulo dedicado a diferentes sensores y otro a la conectividad por red.

Creo que en el idioma castellano es el libro más completo publicado hasta la fecha, y seguro que el más actualizado. El objetivo final es que pueda ser utilizado en muchos cursos y centros de formación como base organizada y centralizada de la mayoría de conocimiento desperdigado actualmente por la web.

En fin...no hago más spam. Si a alguien le resulta una herramienta adecuada, estaré la mar de contento. Hasta otra!

estaria bien colgar aqui algo del contenido para ver que nivel de detalle y calidad tiene. creo que se puede en la web esa pero hay que registrarse y eso ya me tira para atras.

Tienes razón.

Aquí paso el extracto del 1r capítulo (introducción a la electrónica) que se puede descargar de la web de la editorial y también un fichero zip con todos los códigos de ejemplo del libro.

Gracias por el interés.

Hasta luego!

cap1_Arduino.pdf (727 KB)

CodigosArduino.zip (56.4 KB)

ha dado la casualidad que he abierto un ejemplo solamente y he encontrado esto

int mivariable=555; 

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

void loop() {
    Serial.println(mivariable);
    mivariable=mivariable+1;
}

http://arduino.cc/en/Reference/Int

 This yields a range of -32,768 to 32,767

no deberias usar un int en este programa

por cierto el pdf a mi no me abre

Ya, es verdad, pero no has podido ver el contexto del ejemplo. Está hecho así a propósito.

Precisamente este código está para ilustrar un apartado del libro donde explico qué ocurre si se define un tipo de variable determinado y se excede su valor. La gracia está en que ejecutando este ejemplo el lector puede comprobar que efectivamente, cuando la variable llega a su valor máximo, su valor se "resetea" y empieza de nuevo. De esta manera, el lector estará más preparado para no cometer el error que tú has percibido. De todas maneras, gracias por el interés.

upsss no he leido el libro y me ha chocado ver el ejemplo.

genial entonces.

Hola : Yo me he comprado el libro , y me esta gustando , soy novato y no lo puedo evaluar tecnicamente , pero da una idea amplia de lo que es "Arduino" y me esta aclarando muchos conceptos que de otra forma me hubiera costado mucho, no sé si es barato , pero esa es otra cuestion .

Hola,

Yo acabo de comprarlo también, llevaba tiempo detrás de un buen libro en castellano, que prácticamente no hay más que el de Anaya. Por lo poco que he podido ver pinta bastante bien.

Enhorabuena por el trabajo Oscar.

Hola!! He comprado tu libro porque tenia la intención de regalárselo a mi hermano para que se inicie en esto. Me ha parecido bien estructurado, con un inicio quizás algo ligth pero con una buena curva de introducción al tema. Pero hay algo que creo que falta en la mayor parte de literatura dedicada al tema, y es la inclusión de ejemplos de aplicación para el mundo real. Los ejemplos basados en shields son interesantes para introducir al lego en el uso de librerías y en la interacción con los dispositivos montados en el shield. Pero una hemos trascendido el uso de la librería, a mi me parece mas interesante una aplicación diseñada para cumplir una función real en tu casa o en tu trabajo. Por ejemplo una aplicación basada en la librería TLC5940 puede ser una base para gestionar mediante mosfets el alumbrado del comedor de tu casa basado en leds de 12 voltios y 9 W, con encendido selectivo y dimmeado de las lamparas en función de la luz ambiente o incluso desde un mando bluetooth también basado en arduino. La gracia de esto consiste en que por poca pasta y con pocos conocimientos cualquier aficionado puede diseñar un dispositivo empotrable para su entorno domestico o profesional, que comprado en el mercado le puede salir por un huevo. Y esa es la orientación o la visión que creo que falta en la mayoría de los libros, que al final se limitan a compilar la misma información que se puede obtener en los foros, o navegando por la web, que a mi particularmente me gusta mas tener en formato digital por el tema de la portabilidad. En tu caso, he visto el libro bastante completo. Pero no he podido resistirme a la tentación de comentarte esto, aprovechando el post que has abierto para dar a conocer tu obra. Me ha parecido otra ocasión perdida para ir mas alla del "shielding" y del "boarding". Aun asi, me ha gustado. ( Aunque he de admitir que aun no lo he leido todo, mi vida es un pelin complicada jijiji) Un saludo.

Hola, pues yo soy otro que se ha comprado el libro.

Estoy contento por que estaba perdido en este mundo llamada arduino y empece el 09/08/13 y decidi a los 3 dias comprar tu libro, el 11/08/13.

He visto algunas pegas:

Hay algunas ilustraciones que parecen puramente fotocopias, es una pena que a dia de hoy se metan ilustraciones asi. Hay otras que estan perfectas.

Y la mas importante:

Sobre los codigos: bueno al principio me quejaba de no terner los codigos. Bueno eso chapo por que los has puesto en este foro, pero los que no esten en este foro, lo pedirian.

Los ejemplos del libro: los has publicado, pero no estan completos con las explicaciones, y para los que empezamos ver teoricamente dos ejemplos iguales pero difirentes en la pantalla y el libro pues es un poco lioso por que ademas el libro esta en blanco y negro con lo cual cuando lees un sketch no se ve lo que va en amarillo/marron, nego, azul, gris, negrilla marron y si estas empezando eso puede ser fundamental.

Talvez tambien para proximas publicaciones pues justo en el ejemplo y dentro del codigo poner el numero de ejemplo. O si el codigo continua no cerrar el recuadro al terminar la pagina ni al empezar la pagina, dejar los 3 lados, para que nos demos cuenta de que continua, como antes en las cartas el ".../..." tal vez es una tonteria pero es como el "suma y sigue". O si abres un codigo pues tambien que salga en la nota informativa la pagina del manual. NO SE SON TONTERIAS QUE AYUDAN.

Es una opinion. Yo no pido un libro en pdf, pido los sketch enteros . De hecho hay ciertos libros en mi opinion que se deben tener en papel cuando estas aprendiendo algo y este es uno de ellos, tal vez soy de la vieja escuela.

Suerte con el libro y estoy muy contento de haberme gastado 29,50€ en tu libro.

Un saludo, David.

Hola a todos,

Enhorabuena por el libro Oscar tiene muy buena pinta.

Una pregunta, soy de filosofía digital...jeje.....hay la posibilidad de comprar el libro en formato e-book ???

Saludos y Gracias

Hola Oscar, te pregunto desde argentina que editorial lo puede traer??, o como pregunta sacarino , si hay alguna forma de comprarlo en digital??. Muchas gracias !

Hola a todo el forum,Oscarin,me ha llegado ayer tu libro,lo he ojeado por encima....bien muy bien(quitando algunas fotos que no se sabe lo que es) esta explicado de forma que se entienda,me gusta la portada y demas,un puntazo es la iniciacion a la electronica de los primeros capitulos para la gente profana en el tema y ofrecer los sketchs ya no te digo nada..... XD

Lo tendre como libro de cabecera y ...lo mas importante cuando me lo firmas? :D :D :D :D :D

Buenas, Oscar yo también he comprado tu libro. De acuerdo con la mayoría, buenas explicaciones y lo mejorcito como libro base en castellano. Algunas ilustraciones no se si están hechas a propósito o por algún concepto artístico ese degradado no me termina de gustar. Estaba buscando los códigos y ha sido un alivio encontrarlos en este foro, no se si lo reseñas en el libro donde se pueden descargar (no lo he leído entero), pero seria una buena práctica. Anímate con lo que muchos echamos de menos, algo medio-avanzado. Donde se comente cosas como aplicaciones en c, c++ multiarchivo, preprocesador, interrupciones hardware y software a fondo, puertos avanzados etc.

Saludos

Ademas de lo comentado por joselito, se echa en falta explicaciones mas a fondo sobre el uso de algunas librerias. Por ejemplo que no se explique como funciona la libreria wire o spi para realizar comunicaciones mediante I2C o SPI porque son "muy complejas y las librerias existentes para los dispositivos I2C o SPI ya simplifican la tarea ( paginas 219 y 220)" no me parece adecuado para una obra con pretensiones formativas serias. Tras las actualizaciones del ide de arduino, la mitad de las librerias precocinadas se quedan obsoletas, y los usuarios no son capaces de usar los dispositivos por que los sketchs no compilan bien y el usuario no es capaz de resolverlo. Aun asi, como dije en mi post anterior, el libro me parece excelente y una buena compra si te estas iniciando en esto. Es una pena que se haya quedado corto para aquellos que quieran profundizar un poco mas. Un saludo.

Totalmente de acuerdo Donrodrigo, me paso lo mismo con I2C y SPI y saque la información de http://www.electroensaimada.com/i2c.html

Saludos

Hola:

Compré al final este libro desde el 11 de febrero del 2014, ejjeejje. Lo llevo pensando desde hace un tiempo porque estaba recorriendo por Internet y librerías cual es el más completo y es este de todos los que hay. Es un buen libro para empezar, me gusta, reconozco que tienes temas algo bajos, confusos y por profundizar, aún así lo de dejado en la sección libros de mi blog como recomendado.

Hay temas que profundizar como el I2C y demás dispotivos. También el protocolo SPI, hay muchos temas que no están tan ampliado por el tema que no cabe en el mismo linbro. Al enviarle a RC Libros un e-mal para encontrar a Oscar, me han dado esta respuesta.

[u]Le pregunto[/u]:

Hola:

He comprado un libro sobre Arduino, de lo mejorcito que he visto y altamente recomendado entre la comunidad.

Quiero saber si el autor Óscar Torrente Artero tiene intención de hacer otra continuación del libro más avanzada y usar otros tipos de periféricos con Arduino. Al menos quiero tener su correo electrónico si es posible para escribirle a él directamente.

Un cordial saludo.

[u]Me responden[/u]:

Hola,

en estos momentos el autor se encuentra preparando la continuación más avanzada del libro de Arduino.

Le pasaremos copia de su correo.

Muchas gracias por su interés. Reciba un cordial saludo.

Si es cierto que está realizando otro libro más avanzado. No tiene ni la mayor idea de lo contento que estoy al leer esta noticia.

Cuando quiero contactar con el autor de libro, quiero preguntarle algunas preguntas sobre el futuro libro muy demandado para los que quieran aprender más. Los que se quejan que está en blanco y negro, es que es más barato. Hay esquemas que no se pueden leeer ni las resistencias, son cosas que tiene que mejorar el libro en próximas ediciones. Aún así, es un buen libro.

Si al final el autor decide hacer el segundo tomo ya que el primero no va a profundizar todo porque no cabe, espero que sea también de unas 600 páginas. Normalmente el tomo 2 no llega ni la mitad de páginas y esto desmotiva, hay que tenerlo en cuenta.

Hay un dispositivo SD que en el libro tiene ejemplos prácticos. Me llamó la atención que no haya ejemplos y dispositivos como el manejo de una EEPROM externa como el 24LC256 por poner algún ejemplo, el reloj calendario DS1307 que se usa bastante en los proyectos, por si tienes falta de pines en el ATmega328P-PU de Aruino UNO y no comprar más placas puedes usar el expansor de BUS PCF8574 que sirve tanto como entradas y como salidas digitales, todo con protocolo I2C que es muy usado. También recuerdo al SPI que es mejor y se usará más ya que es el futuro, sobre todo usar memoria RAM externa exclusivo para AVR, tiene mucho más memoria y es rápida por eso se aconseja SPI.

Los protocolos I2C y SPI es muy bueno que esté en el próximo libro. A parte de otros sensores no sombrado en el libro actual. A parte de ello, saber más de programación avanzada.

Me dirijo a Oscar Torrente Artero. Si realmente estás haciendo el segundo libro más avanzado. ¿Podemos pedir sugerencia? También puede preguntar que nos interesa. Prefiero que tardes en sacar el libro a la luz bien hecho y de unas 600 páginas como el primero, que todo rápido de casi 299 páginas.

Un cordial saludo y gracias por leer hasta aquí.

Buenas:

En cuanto a controlar la EEPROM externa por I2C que en el libro no incluye, aquí hay información.
http://www.hispavila.com/3ds/atmega/i2c-eeprom.html

  /* 
  *  Uso del I2C bus con la EEPROM 24LC64 
  * Ejemplo:    eeprom.pde
  * Este código pertenece a:
  * Autor: kans
  * Fecha: 05/03/2008
  * 
  *   http://pastebin.com/f3a36644b
  */
       
  #include <Wire.h> //librería I²C
       
  // Las siguientes funciones para lectura y escritura en una EEPROM 
  // se encuentran en el wiki de Arduino: http://www.arduino.cc/playground/Code/I²CEEPROM
  
  void I²C_eeprom_write_byte( int deviceaddress, unsigned int eeaddress, byte data ) 
  {
   int rdata = data;
   Wire.beginTransmission(deviceaddress);
   Wire.send((int)(eeaddress >> 8));    // MSB
   Wire.send((int)(eeaddress & 0xFF));  // LSB
   Wire.send(rdata);
   Wire.endTransmission();
  }
       
  
  //ADVERTENCIA: address es una dirección de página, de 6 bits termina envolverá alrededor además, los
  // datos pueden ser como máximo alrededor 30 byte, porque la librería Wire tiene un búfer de 32 byte
  void I²C_eeprom_write_page( int deviceaddress, unsigned int eeaddresspage, 
  byte* data,  byte length ) 
  {
   Wire.beginTransmission(deviceaddress);
   Wire.send((int)(eeaddresspage >> 8));   // MSB
   Wire.send((int)(eeaddresspage & 0xFF)); // LSB
   byte c;
   for ( c = 0; c < length; c++)
   Wire.send(data[c]);
   Wire.endTransmission();
  }
       
  byte I²C_eeprom_read_byte( int deviceaddress, unsigned int eeaddress ) 
  {
   byte rdata = 0xFF;
   Wire.beginTransmission(deviceaddress);
   Wire.send((int)(eeaddress >> 8));   // MSB
   Wire.send((int)(eeaddress & 0xFF)); // LSB
   Wire.endTransmission();
   Wire.requestFrom(deviceaddress,1);
   if (Wire.available()) rdata = Wire.receive();
   return rdata;
  }
       
 // tal vez no hay que leer más de 30 o 32 bytes de una vez!
  void I²C_eeprom_read_buffer( int deviceaddress, unsigned int eeaddress, 
  byte *buffer, int length ) 
  {
   Wire.beginTransmission(deviceaddress);
   Wire.send((int)(eeaddress >> 8));   // MSB
   Wire.send((int)(eeaddress & 0xFF)); // LSB
   Wire.endTransmission();
   Wire.requestFrom(deviceaddress,length);
   int c = 0;
   for ( c = 0; c < length; c++ )
   if (Wire.available()) buffer[c] = Wire.receive();
  }       
       
   void setup() 
  {
   char cadena[] = "hola mundo desde una eeprom"; // cadena a escribir
   Wire.begin(); // es obligatorio inicializar la conexion
   Serial.begin(9600);
   I²C_eeprom_write_page(0x50, 0, (byte *)cadena, sizeof(cadena)); // escribir la cadena al 
   // principio de la EEPROM; comentar esta línea para probar que la memoria es no volátil
   delay(10); //pequeña pausa despues de escribir en la memoria
  }
       
  void loop() 
  {
  int addr=0; //dirección a leer
   byte b = I²C_eeprom_read_byte(0x50, 0); // acceso a la primera posición de memoria
       
   while (b!=0) 
  {
   Serial.print((char)b); //enviar al ordenador
   addr++; //siguiente direccion
   b = I²C_eeprom_read_byte(0x50, addr); //acceso a posición de memoria
  }
   Serial.println();
   delay(2000);
  }

Saludo.

Hola amigos.

Muchas muchas muchas gracias por vuestras críticas, por el tiempo invertido en escribirlas y en dar vuestra confianza a este proyecto. De verdad, muchísimas gracias.

Os escribo para confirmaros de que, tal como comenta Metaconta, he estado negociando con la editorial para escribir un nuevo libro algo más avanzado con las cosas que se quedaron en el tintero en el primer volumen, y que coinciden enormemente con las propuestas que me habéis dicho a lo largo de este post. Además, también he conseguido que se pueda realizar una 2ª edición del libro existente con mejoras. Concretamente, para ésta pretendo:

1.-Mejorar la calidad de las imágenes: es cierto que la estética elegida para las fotografías de los componentes (hecha con una voluntad "artística") ha sido muy mala idea. Todo el mundo lo critica. Por eso, estoy intentando convencer a un ilustrador para que realice unos dibujos hiperrealistas de los componentes bien hechos. Creo que quedará bonito. A mí en particular me gustan más los dibujos que las fotografías (además de que no soy fotógrafo y tampoco quiero/puedo utilizar fotos de otros). Eso sí, será en blanco y negro: los costes son los costes. 2.-Introducir las novedades sencillas que han aparecido últimamente en el mundillo Arduino (pantalla LCD, IDE 1.5.x, placa Esplora...) y revisar los shields y componentes de terceros (Adafruit, Sparkfun...) por si hay alguno obsoleto. Y rescribir los apartados de Cosm.com y de Bluetooth, que ha cambiado. 3.-Incluir el uso de interrupciones a nivel básico. 4.-...¿alguna idea de mejora más? (dentro del contenido ya existente, sin añadir nuevo).

Contesto los comentarios que me habéis hecho:

*Respecto la falta de explicación de las librerías SPI y I2C, tenéis toda la razón, pero decidí no añadirlas porque si no me habría salido un monstruo indigerible, creo (teniendo en cuenta sobretodo que era un libro pensado para principiantes del todo). Pero es un tema prioritario para incluir en el segundo volumen.

*Respecto la inclusión de ejemplos de aplicación en el mundo real...bueno, la concepción del libro no sigue esa filosofía (que es perfectamente válida...hay otros libros que están estructurados por proyectos y están muy bien). Mi filosofía era hacer un libro base para un curso docente hipotético (de chicos de un grado medio de FP, pongamos por caso) o bien para gente autodidacta que no ha tenido contacto nunca con la electrónica y/o la programación. Es por eso que empiezo desde tan poco nivel (gente ha sugerido en otros sitios que el primer capítulo sobraba...no estoy de acuerdo, aunque siempre es difícil establecer cuál es el punto de partida) y voy aumentándolo integrando poco a poco los diferentes elementos del ecosistema hardware/software de Arduino. Empezar a hacer aplicaciones "reales" implica o explicar las cosas sobre la marcha o darlas por sabidas, con lo que el espíritu de curso secuencial se pierde. Los proyectos están bien cuando ya se sabe del tema y se quiere ir al grano. Por otro lado, hacer proyectos implica gastar mucho espacio en información que no a todo el mundo le puede interesar...así, quien no quiere gestionar el alumbrado de cas, se saltará 40 páginas de golpe. Y finalmente, otro detalle: en internet de los que más hay es precisamente de blogs y posts explicando proyectos reales (instructables es una fuente inagotable de ellos, por ejemplo...hay otros sitios más que los nombro en el apéndice final del libro) pero hecho en falta precisamente lo que (pretende) aportar mi libro: un enfoque estructurado y progresivo de la información necesaria para que luego, el lector, pueda tener las herramientas suficientes para que él mismo, con su imaginación y con ayuda de internet, pueda realizar sus proyectos reales particulares sin problemas.

*Respecto los códigos de ejemplo del libro...bueno, es verdad que en el libro incluyo comentarios que luego en el código descargable de la web no están. No me pareció que fuera un problema, pero si hay lectores que prefieren tener los comentarios incluidos dentro del código descargable, pues no cuesta nada hacerlo. Ok. Lo que sí está puesto es el número de código (3.2, 4.12...) para que no haya problemas para localizar el código dentro del libro...ahí sí que no he entendido. Lo de que el libro está en blanco y negro, eso yo no lo puedo cambiar.

*Respecto lo de si hay alguna forma de comprarlo en digital o no, eso ya no lo sé. Sugiero que escriban a info@rclibros.es comentando el tema y ellos contestarán en breve tiempo, doy fe.

Y respecto el volumen medio-avanzado prometido, ideas que tengo pensado incluir (aún no lo tengo decidido del todo) son cosas como: 1.-Más sensores: acelerómetros, GPS (con reloj DSxxx), ... 2.-Comunicación GPRS, RF y XBee 3.-Arduino Yun y Temboo. Me gustaría incluir la Due, pero no dispongo de ella. Y también la Tre y Galileo 4.-Comunicación vía serie con PCs, probablemente usando Processing 5.-Comunicación con dispositivos Android de la forma más sencilla posible (sin tocar código Java, me refiero) 6.-Aspectos de programación avanzados como SPI o I2C -con ejemplos como el uso de EPPROMs entre otros- y lógica a nivel de bit (uso de multiplexadores). 7.-Uso de algunas funciones de Lib-avr 8.-Diseño y soldadura de circuitos básicos. Creación de PCBs. 9.-...Y claro, se admiten, se piden, se ruegan sugerencias!!!

En realidad, este segundo volumen no será como el primero en el sentido de un libro secuencial con origen y final, sino que será más bien un compendio de capítulos prácticamente inconexos...esto puede hacer que haya gente a la que le interese solamente parte de su contenido...pero no creo que haya otra alternativa una vez superado el nivel básico. Eso sí, no bajará de las 500 páginas.

En cualquier caso, he de advertir que tanto la 2ª edición del volumen existente como este nuevo segundo volumen no creo que salgan al mercado hasta el 2015, porque tan sólo hace unos días que he empezado con todo esto. Pero bueno, camino se hace al andar... Cuando haya novedades relevantes ya os mantendré informados.

Muchas gracias a todos!!! Hasta pronto

Buenas:

Muy bien el temario, sobre todo los protocolos muy recomendado como I2C y SPI. La parte de usar Android para controlar desde la pantalla del movil encender y apagar Led (en realidad, todo lo que sea) está la mar de interesante. Me alegra que sea de unas 500 páginas. ;)

En cuanto a la segunda versión del libro, en Photoshop se puede hacer fotos estilo dibujo a lápiz, pondré algún ejemplo aquí cuando haga algunos para que lo vean y opinen, en este sentido no tengo problemas para hacerlos, esos si, si son todas, requiere mucho tiempo y dedicación ya que es importante que se vea muy bien.

En cuanto a usar dibujos artísticos, no tiene que ser mala idea, simplemente que se vea bien y asunto resulto, como dije, pondré algunos ejemplos en blanco y negro parecido al tuyo pero algo más nítido. Eso si, los esquemas eléctricos se tienen que ver bien, no borroso y esto es importante, ya que hasta la propia Web de Arduino, se ve borroso.

Teniendo el primer libro, bueno, mi sugerencia es documentar bien documentado los ejemplos que puedas descargar y si es posible, poner más ejemplos de casi cualquier tema, así practicamos más y más, vale la pena. Algunos libros han incluido de casi 200 ejemplos a más de 240, son muchos y parecidos pero valen la pena. El que digo es en ensamblador (asm) para PIC. ya en la tercera edición.

En cuanto en hacer cosas con Arduino DUE, preferiblemnete prefiero el ARduino TRE, ya que tiene procesador para usar Linux y en la misma placa un microcontrolador que hace una mezclade Raspberry Pi y Arduino juntos. Ya que con Linux, puede hacer de servidor y Arduino de Actuador por Internet de forma más fácil y rápida. Si se me ocurre algo más, lo comentaré.

Si sobra timepo, páginas del libro, paciencia y ganas, puedes publicar algunos ejemplos tontos como manejar algún sensor aquí no publicado, aunque sea el LM35, sensor analógico de temperatura muy usado. Ojo, puede ser el que la gente sugiera por aquí, lo que sea que no haya publicado en el primer libro.

Buena iniciativa de mostrar el segundo libro.

En cuanto al libro o libros en general, buen trabajo. Hasta RC Libros se quedaron muy contentos al comentarles que en foros, la comunidad le interesa y están contentos con el libro para aprender. ;)