viernes, 31 de octubre de 2014

Robots. Aplicaciones en la agricultura.

Robots. Aplicaciones en la agricultura.


Categoría: 2. Ciencia y tecnología.

El número de aplicaciones de los robots en diversas ramas de la tecnología se mantiene en constante crecimiento. En la agricultura nos podemos imaginar robots humanoides realizando tareas pesadas, sustituyendo al ser humano. Sin embargo, esta no es mas que una visión recortada de lo que se puede obtener de las tecnologías robóticas.

Un ejemplo un poco alejado del tema, pero que nos puede ayudar a enfocar las aplicaciones más interesantes, por su utilidad, que tendrán los robots en un futuro cercano, para ayudarnos a mejorar la producción, la planeación, el diagnóstico, y muchas más aplicaciones. Digamos que hay un sitio contaminado con desechos radiactivos por una fuga que se salió de control en algún momento. El sitio del incidente queda prácticamente vedado a la presencia humana por el alto peligro que corre la salud en las cercanías de un derrame de este tipo. En este caso, se puede dotar a un dron con un equipo que registra los niveles de radiación. Además el robot cuenta con un GPS. Con este equipamiento, el robot es capaz de realizar un recorrido programado previamente, y de manera autónoma, o con diferentes grados de intervención, el dron es capaz de trazar un mapa con niveles de radiación en toda el área de interés. 

Sin embargo las aplicaciones de censado de las variables de interés para cada cultivo en particular es una de las que se encuentran en más rápido crecimiento. Así, tenemos en el mercado estaciones meteorológicas accesibles para prácticamente cualquier presupuesto, que pueden funcionar en ubicaciones remotas. Esto es posible ya que se pueden alimentar con celdas fotovoltaicas o con baterías de larga y muy larga duración. Además, estos equipos pueden enviar los datos a una red o a internet de manera inalámbrica. El usuario puede estar recibiendo reportes frecuentes directamente en su teléfono celular por medio de mensajes SMS o mensajes de correo electrónico. La información se puede estar respaldando constantemente en una memoria local o en un equipo en una ubicación remota. Estos sistemas pueden a su vez, controlar equipos para intervenir las condiciones ambientales que necesita el cultivo. Pensemos en cultivos de frutales de clima frío, como cerezas, manzanas o peras. Estos cultivos suelen necesitar calefacción en la temporada previa a la floración, cuando las temperaturas siguen siendo sumamente bajas, sobre todo durante las madrugadas. En estos cultivos se colocan calefactores que se deben encender para crear un efecto semejante a una inversión térmica, es decir, se trata de generar una masa de aire tibio al ras del suelo y mantener el aire frío por encima de este estrato. Si los calentadores llegan a fallar o se apagan demasiado pronto, antes de que haya pasado el peligro de helada, las yemas florales pueden congelarse y generar grandes pérdidas económicas. Algunos calentadores pueden dotarse con sensores de temperatura y controles automáticos. De esta manera, se crea una red de monitoreo que puede estar disponible en forma remota para los operadores de la plantación, así como para los responsables administrativos. De esta manera se pueden detectar fallas puntuales. En los sistemas tradicionales se usan termostatos que encienden automáticamente el calentador individual, pero no se puede verificar que realmente este elemento haya respondido al cambio de temperatura o que el combustible quedara agotado. Un sistema con retroalimentación sí detecta cuando la temperatura no está en el nivel correcto y emite un reporte de las condiciones reales.

Las estaciones remotas de censado de variables son muy útiles para registrar las condiciones del suelo, en la zona de interés agronómico, recopilando datos como humedad del suelo, pH, potencial redox, conductividad eléctrica, nivel de nitratos, nivel de fosfatos. Todas estas mediciones ayudan al operador de la explotación a tomar decisiones oportunas en la programación de riegos, dosificación de soluciones de ajuste de pH, adición de fertilizantes nitrogenados y fosfatados, operaciones de movimiento de suelo para mejorar la aireación, entre otras decisiones de importancia para la adecuada producción comercial.

En cuanto a aplicaciones remotas se puede mencionar la toma de imágenes y su procesamiento digital para diagnosticar las condiciones de nutrición del cultivo. Pero también son importantes esta información para planificar labores de deshierbe, mantenimiento de caminos, controlo de malezas, reparación de cercas perimetrales. Ya que estas imágenes permiten cuantificar la superficie que requiere de intervención.

En el caso de explotaciones pecuarias extensivas el empleo de sensores remotos pueden ayudar a dar seguimiento al movimiento de los rebaños para planificar las labores de mantenimiento de pastizales, ubicación de comederos, bebederos, sombras, cercas electrificadas temporales, ubicación de animales enfermos o lastimados. Entre otras.

En las actividades forestales, es de gran utilidad la interpretación de imágenes tomadas con drones, por ejemplo, que ayudan a identificar posibles derribos no registrados, planificación de actividades de derribo, limpieza, mantenimiento de caminos, identificación de deslaves y otros fenómenos que con detección oportuna, pueden atenderse antes de que causen demoras en las labores de manejo.

La maquinaria agrícola incorpora gran cantidad de tecnologías robóticas. Esto no es ninguna novedad. Se utilizan en la nivelación de terrenos, en el control de grupos de sembradoras o equipos de preparación de suelos (enjambres), interpretación de imágenes satelitales para la dosificación de fertilizantes y mejoradores de suelo.

Conclusiones.

- Los robots tienen aplicaciones de alto valor en las actividades agrícolas.

- Los robots tienen aplicaciones de alto valor en las actividades pecuarias.

- Los robots tienen aplicaciones de alto valor en las actividades forestales.

- las aplicaciones más valiosas de los robots en la agricultura no tienen necesariamente una relación directa con el movimiento de tierras o manipulación de plantas y animales. Aunque en estas actividades también tienen importantes aplicaciones.




viernes, 24 de octubre de 2014

Del arca de Noé a Svalvard.

Del arca de Noé a Svalvard.


Categoría: 2. Ciencia y tecnología.

Tal parece que las preocupaciones de la mente humana por conservar la vida en este planeta no son ninguna novedad. La parábola del arca de Noé tiene al menos 2000 años de haberse plasmado por escrito y su leyenda seguramente viene transmitiéndose en la tradición oral desde milenios antes que eso. 
Los esfuerzos que cada generación ha realizado en este sentido tienen como ´sello característico la tecnología disponible en ese momento.

Zoológicos.

En la conservación de animales se enfrenta la dificultad de que no se puede disponer de estructuras que se mantengan en estado de latencia por periodos prolongados de tiempo, como lo hacen las semillas de las plantas, las esporas de los hongos, levaduras y bacterias o los quistes de los protozoarios. En estas instalaciones se realizan programas de reproducción de especies que están amenazadas en su hábitat natural, ya sea por destrucción del hábitat debido a la presión sobre los recursos naturales, alteraciones por contaminación de origen natural o antropogénico, por alteraciones en el clima, también de origen natural o antropogénico, por presión de especies invasoras, o por cualquier otra causa.
Algunos de los desarrollos tecnológicos desarrollados para especies animales de interés económico se aplican con éxito en la reproducción de estas especies silvestres. Como la inseminación artificial, el trasplante de embriones, congelación de esperma y embriones, entre otras.


Jardines botánicos.

Los jardines botánicos resguardan colecciones de plantas representativas de diferentes ecosistemas del mundo. Y al igual que los zoológicos, realizan intercambio de individuos con el fin de procurar su reproducción, cuando se trata de especies de crecimiento lento, propagación limitada, especies amenazadas o en peligro de extinción, especies rescatadas de ecosistemas amenazados o degradados. En estos centros se utilizan técnicas de propagación especializados como la injertación, la multiplicación in vitro o micropropagación, la polinización artificial, el rescate de embriones, la embriogénesis somática, entre otras. También se llevan registros de identidad genética utilizando técnicas de biología molecular, como la hibridación de ADN, la PCR, entre otras.
El jardín botánico de la UNAM abrió un centro para la adopción de especies con estatus de amenazadas o en peligro de extinción. Con el fin de apoyarse en el público interesado en el cuidado de este tipo de materiales. Este tipo de estrategias sirven para aprovechar recursos de entes particulares que se responsabilizan del cuidado de algunos de estos individuos de manera responsable. Algo así realiza por ejemplo la NASA, en un programa en el que uno puede registrar un equipo de cómputo conectado a internet y que durante los tiempos en que está fuera de uso, se utiliza parte de su capacidad para el análisis de datos obtenidos por los diferentes programas de investigación espacial de esa agencia. Estos programas incrementan la capacidad de estos programas sin la necesidad de invertir en nuevos equipos, instalaciones o personal para llevarlos a cabo. En ambos casos se hace uso de las nuevas tecnologías de la información y la comunicación (TIC) para hacer un seguinmiento de los progresos del proyecto.

Sitio: http://www.ib.unam.mx/jardin/adopcion/galeria/0#Astrophytum Ornatum


Áreas naturales protegidas.

Este es un método de conservación de especies dentro de su ecosistema natural. En términos técnicos se trata de un método de conservación de tipo legal. Porque el establecimiento de estas zonas de protección parte de un decreto o, en el caso de México, de la publicación en el Diario Oficial de la Federación, de la declaración de una extensión territorial como área natural protegida, que se regirá de ahí en adelante bajo los preceptos de la Ley General del Equilibrio Ecológico y Protección al Ambiente (LGEEPA) vigente, para esta categoría.

Estas áreas cuentan con un área núcleo y con áreas de amortiguamiento en su periferia. Para cada una de ellas la LGEEPA y la normatividad aplicable, aplican restricciones a la realización de actividades productivas, al establecimiento de núcleos poblacionales, al acceso y manejo de las especies que habitan en el sitio, y establecen las condiciones que deberán cumplir los equipos de investigadores que realicen actividades científicas dentro de sus límites.

Desde la creación de estas áreas naturales protegidas (ANP) quedan definidos claramente los objetivos para los que fue creada. Puede ser la protección de un ecosistema cuyo equilibrio puede ser precario, la protección de un ecosistema con características particulares que ameritan su cuidado, la protección del hábitat de una especie o conjunto de especies que se encuentren amenazadas o en peligro de extinción, entre otras razones.

Otras categorías son Unidades de Manejo Ambiental (UMA), Reservas de la biósfera.

Bancos de semen.

Los sistemas de producción animal han sido altamente beneficiados con la aplicación de tecnologías enfocadas a la reproducción de genotipos especialmente valiosos o de alto registro. Una de ellas es la inseminación artificial y los programas de conservación de semen de animales con características genéticas desarrolladas a través de programas de mejoramiento tradicional (genética mendeliana) o bien, mediante ingeniería genética.

Sin embargo, estas tecnologías también encuentran aplicación en la conservación de especies silvestres cuyo hábitat se encuentra amenazado o bajo una presión creciente de recursos. De esta manera, los zoológicos pueden reproducir las especies animales que se encuentran bajo su cuidado, aumentando las probabilidades de éxito.


Bancos de embriones.

Otra técnica desarrollada para la reproducción de especies animales de alto valor genético es la conservación de embriones, utilizando bajas temperaturas (inmersión en  nitrógeno líquido). En este caso se guardan óvulos fecundados o embriones en sus primeras etapas de desarrollo, que posteriormente se pueden descongelar e implantarse en una hembra que fungirá como madre sustituta o vientre alterno. Además de generar la posibilidad de obtener mayor cantidad de descendencia a partir de una hembra adulta, se han desarrollado técnicas de división de embriones para obtener más de un individuo por cada embrión. Esto acelera la recuperación de poblaciones, ya sea en su estado silvestre o en cautiverio dentro de los zoológicos.



Semillas artificiales.

En el caso de las especies vegetales, se tiene la ventaja de que sus semillas presentan un embrión en estado de latencia, que puede ser reanimado en cualquier momento sis se le coloca en las condiciones ambientales adecuadas durante un periodo suficientemente prolongado. Sin embargo, en la naturaleza existen numerosas especies de plantas que no tienen reproducción sexual, por lo que son incapaces de formar estas estructuras botánicas. En esos casos la única vía de propagación es utilizando técnicas de reproducción asexual, como injertación, enraizamiento de estacas, esquejes y acodos, embriogénesis somática, cultivo de meristemos, entre las más conocidas. Sin embargo, todos estos métodos exigen el mantenimiento de las estructuras vegetativas en crecimiento permanente.

En esos casos, la producción de semillas artificiales se presenta como una posibilidad de conservar individuos con características valiosas por su escasez, por su valor genético, por estar su especie amenazada o en peligro de extinción, o por alguna otra razón. Este tema está en pleno desarrollo, ya que es difícil obtener condiciones para que los tejidos cultivados in vitro, como yemas vegetativas o embriones somáticos, puedan entrar en estado de latencia y germinar después de periodos prolongados de almacenamiento.

Esta técnica no solo resulta atractiva para la conservación de especies amenazadas o en peligro de extinción, sino que también sería de gran potencial para la producción de semillas de gran uniformidad (forma, tamaño y peso) para su utilización en la siembra mecanizada. Así mismo, permitirá la propagación en masa de especies de reproducción asexual de variedades novedosas, como en el caso de la producción de ornamentales y frutales.


Cultivo de células in vitro.

Las técnicas de cultivo de células y tejidos in vitro se han desarrollado a gran velocidad. Este desarrollo tuvo un gran auge durante la década de 1960, cuando se empezaron a fabricar los equipos de filtración de aire de alta eficiencia (HEPA) y se comenzaron a formular los medios de cultivo para células animales y vegetales a partir de sustancias puras. Las técnicas de cultivo in vitro en medios de cultivo artificiales y bajo condiciones asépticas, han facilitado la conservación de estos materiales pro periodos prolongados manteniendo su viabilidad. Para ellos se han empleado medios de cultivo con agentes preservadores, la crio-preservación (conservación en bajas temperaturas), las atmósferas modificadas (sustitución de aire por nitrógeno u otros gases).


Depósito global de semillas de Svalvard.

El depósito global de semillas de Svalvard, en Noruega, es un proyecto de conservación de materiales vegetales de alto registro genético, dedicado a guardar el patrimonio que se ha generado a través de la domesticación y el reciente desarrollo, durante los dos siglos pasados, de programas de mejoramiento genético. Este proyecto aprovecha la situación del archipiélago Svalvard en el círculo polar ártico. Dentro de la zona de permafrost, se excavó un sistema de túneles que en forma natural mantienen una temperatura constante por debajo del punto de congelación. Pero además cuenta con un sistema de refrigeración para mantener la temperatura a -15 °C, que es la idónea para la conservación de bancos de semillas.

Aunuqe los bancos de semillas son una necesidad para el desarrollo tecnológico actual, la magnitud de este proyecto se ha justificado como una reserva que se podrá utilizar en caso de que el cambio climático o alguna anomalía aún menos predecible, pudiera poner en riesgo los sistemas de producción mundial de alimentos. Por ello se resguardan ahí semillas de cultivos de importancia alimenticia para todas las regiones del mundo. De manera que puedan conservarse a salvo de conflictos armados, migraciones forzosas, cambio climático, o lo que se pueda presentar.


Sitio: http://www.regjeringen.no/en/dep/lmd.html?id=627

Bancos de semillas y tejidos espaciales.

Los bancos de semillas se han utilizado ampliamente en los centros dedicados al mejoramiento genético de especies de interés fitotécnico. Se tienen metodologías para la conservación de semillas a temperaturas cercanas a los 0 °C, en las que se pueden hacer depósitos de nuevas colecciones con intervalos de un año. También se tienen metodologías para conservar las semillas a temperaturas de -15 °C, en las que se pueden hacer depósitos cada 15 años.
Cabe señalar que cuando se abre uno de estos depósitos, cada año  o cada 15 años, se depositan colecciones de variedades y líneas genéticas de reciente desarrollo o bien se depositan colecciones en sustitución de lotes que ya cumplieron una edad en la que su viabilidad y vigor puede empezar a disminuir.
El banco de semillas del CIMMyT en Texcoco, Méx., tiene un perfil en Facebook donde publica datos sobre el manejo de sus colecciones. Nuevas entradas y datos sobre sus colecciones. No es nada raro pensar en un banco de semillas como una gran biblioteca, donde se guardan líneas y variedades antiguas, pero que van acumulando nuevas entradas´como si de primeras ediciones de una novela o poemario se tratara. (CIMMyT).

Bancos de genes.

La conservación de ácidos nucleicos por periodos prolongados de tiempo se ha convertido en una necesidad en los laboratorios de investigación, ya que muchos de los proyectos que realizan requieren la realización de experimentos de larga duración. Esta ha sido la primera actividad con la necesidad de preservar estos materiales. Sin embargo, a medida que las ciencias genómicas encuentran aplicaciones en diferentes áreas de trabajo, las exigencias por la preservación de los ácidos nucleicos se vuelve una herramienta imprescindible. Entre estas aplicaciones se mencionan la conservación de genes de especies de alto valor, la conservación de genomas de células cancerosas en espera de herramientas más avanzadas de análisis, en el campo de las ciencias forenses, la conservación de los ácidos nucleicos en óptimas condiciones es de gran importancia (ASKION, 2013).

El método que se emplea mas frecuentemente consiste en almacenar los ácidos nucleicos en una solución de estabilización que puede ser trehalosa o beta-mercaptoetanol y mantenerlos en refrigeración con temperaturas de +4 a -80 ºC. Siendo que la velocidad de degradación es significativamente menor a temperatura más baja. También se ha empleado la liofilización, aunque este método no proporciona resultados satisfactorios debido a que a pesar de que la humedad y el oxígeno están presentes en cantidades sumamente bajas, la degradación por depurinación, hidrólisis y oxidación ocurren a velocidades relativamente lentas. Así mismo, las nucleasas (enzimas) permanecen activas aún bajo estas condiciones tan adversas. Un tercer método de preservación de ácidos nucleicos es mantenerlos en tubos inmersos en nitrógeno líquido (<-135ºC). A estas temperaturas se minimiza el movimiento termal de las moléculas en la solución y llevando las fuerzas de fricción al mínimo. Bajo estas condiciones se dispone de hasta cuatro días para reparar el sistema o re-ubicar los tubos con material almacenado a un sitio seguro, en caso de presentarse un desperfecto. El uso de ultra-enfriadores eléctricos es el menos recomendado, ya que una falla puede llevar la temperatura del contenido de -80 a +20 ºC en menos de dos horas, lo que eleva el riesgo de perder el material a valores demasiado altos (ASKION,2013).

Productos comerciales como el DNAstable (TM), de la empresa Biomatrica han demostrado que en muestras de ADN plásmido almacenadas en condiciones extremas (60ºC durante 26 meses) se han encontrado intactas después de analizarlas contra controles recién obtenidos (Biomatrica).

En Oxford gene technology, 2011, se mencionan cuatro condiciones principales en las que se puede conservar muestras de ADN: 1) A temperatura ambiente en una matriz sólida seca (del tipo DNAstable); 2) En frío a -20 ºC; 3) En frío a -80 ºC, y 4) En estado vítreo a -196 ºC (en nitrógeno líquido). Tanto la conservación en seco como el almacenamiento en nitrógeno líquido tienen en común el mantener al ADN en su estado vitreo.

Los bancos de genes pueden preservar ácidos nucleicos (ADN y ARN) de todos los reinos en los que el hombre ha clasificado a los seres vivos. En una perspectiva temporal, los bancos de genes pueden preservar este material en condiciones reproducibles por periodos de tiempo variables. Pero en el extremo podemos considerar los genes que se han preservado en los restos fósiles de los seres vivos, que han permanecido en condiciones reproducibles por millones de años.

Bancos de microorganismos.


Los microorganismos han tenido aplicaciones importantes desde la antigüedad para la producción de alimentos fermentados (levaduras, hongos y bacterias), para su consumo como alimento (algas y hongos). Estos organismos se conservan por largos periodos en lo laboratorios de investigación utilizando tecnologías de crio-preservación (conservación a baja temperatura) o utilizando medios de cultivo para crecimiento lento y con atmósfera modificada.

Conservación de insectos.


Estos organismos se multiplican de forma artificial en los zoológicos y en los centros de investigación. también se producen en forma industrial para el control biológico de algunas plagas agrícolas, como la mosca del mediterráneo, o la mosca mexicana de la fruta. Sin embargo, el manejo de su ciclo de vida bajo condiciones de cautiverio representa un reto para la mayoría de las especies de este grupo y puede decirse, que aunque su ciclo de vida se conoce a detalle desde hace mucho tiempo, el manejo de las condiciones ambientales adecuadas requiere de tecnologías modernas muy especializadas, como el uso de sensores y microcontroladores así como sus respectivos programas computacionales, el uso de materiales especializados, ya sea como sustratos, en la formulación de los alimentos, en la construcción de invernaderos o mallas. Muchas de estas tecnologías no estuvieron disponibles hasta muy recientemente. De manera que es un área en expansión.

Bibliografía.


ASKION. 2013. Long term storage of nucleic acids.
Sitio: https://www.google.com.mx/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0CCIQFjAB&url=http%3A%2F%2Fwww.askion.com%2Fmediacenter%2Fdownloads%2F551%2FWhite%2520Paper%2520long-term%2520storage%2520of%2520DNA.pdf&ei=-ARAVL-WF8HG8QGV94GAAQ&usg=AFQjCNEZkopRTD00S9pYJ5QrEwBGjR5D6w&bvm=bv.77648437,d.b2U

Biomatrica. DNAstable (TM) preserves plasmid DNA for long term storage.
Sitio: https://www.google.com.mx/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=8&ved=0CCgQFjAC&url=http%3A%2F%2Fwww.biomatrica.com%2Fmedia%2Fdnastable%2FDNAstable_preserves_plasmid_DNA_for_long-term%2520storage.pdf&ei=-ARAVL-WF8HG8QGV94GAAQ&usg=AFQjCNH6lPmCn8n281jjT5YEXkyLb0FyMg&bvm=bv.77648437,d.b2U

Oxford gene technology. 2011. DNA storage and quality.
Sitio: http://www.ogt.com/resources/literature/403_dna_storage_and_quality

Svalvard Global Seed Vault.
Sitio: http://www.regjeringen.no/en/dep/lmd.html?id=627



viernes, 10 de octubre de 2014

Datalogger y dado electrónico con Arduino.

Data-logger y dado electrónico con Arduino.


Categoría: 1. Programación y electrónica.

Las placas electrónicas de desarrollo están entrando al mercado ofreciendo cada vez más aplicaciones, para varios sectores de interés, desde los hobbystas, los aficionados a las transformaciones automotrices, los desarrolladores de robots en aplicaciones a pequeña y mediana escala, hasta los trabajos más formales de ingeniería, o en el diseño de experimentos. Aplicaciones interesantes se desarrollan para controlar sistemas a escala en laboratorio así como en el censado automático de algunas variables dentro de esos mismos sistemas. En las aplicaciones más formales es posible diseñar el hardware, escribir el código necesario e integrarlo en un sistema embebido que contiene por así decirlo, trabajo previamente hecho de manera que el proyecto final involucra menos esfuerzo de desarrollo en cuestiones básicas. Esto se cumple tanto en el hardware como en el software.

En esta ocasión se describen dos proyectos: 1) un sistema de censado de datos basado en una tarjeta de desarrollo Arduino UNO, un Shield MicroSD Sparkfun y un sensor de temperatura LM35; 2) un dado electrónico basado en una tarjeta de desarrollo Arduino UNO y un display de 7 segmentos.

En una entrada anterior había explicado un dado electrónico que hacía exactamente lo mismo que este nuevo proyecto. La diferencia notable está en el software, que esta vez está mejor presentado.

El código de los dos proyectos así como la descripción de los circuitos electrónicos periféricos la puedes ver en Programa 1 y Programa 2 abajo, en esta misma página.

Para ilustrar el uso de la función Random() en la generación de números aleatorios se escribió el código siguiente:

/************************************************
Random
************************************************/
void setup()
{
  Serial.begin(115200);
  pinMode(3,OUTPUT);
  randomSeed(analogRead(0));
}
void loop()
{
  float num = random(0,11.5);  // Para obtener un máximo de 0.6*11.5=6.9
  num *= 0.6;
  int dado = num;
  Serial.print("num = ");
  Serial.println(num);
  Serial.print("dado = ");
  Serial.println(dado);
  Serial.println("");
  digitalWrite(3,HIGH);
  delay(15);
  digitalWrite(3,LOW);
  delay(50);
  digitalWrite(3,HIGH);
  delay(15);
  digitalWrite(3,LOW);
  delay(5000);
}

En el código para el dado electrónico (Programa 1) se excluye la posibilidad de generar un cero, ya que los dados no tienen ese número, mediante una condición do { ... } while (num == 0);

Como ejercicio se propone escribir un código para generar números aleatorios del 1 al 6 y guardarlos en un archivo en la microSD. Después de un número infinito de eventos, digamos 1000, generando un número aleatorio cada 2 sec, se puede calcular la frecuencia de ocurrencia para cada resultado. Para este ejercicio se propone formatear la salida al archivo de texto de la siguiente manera:
  String dataString = "";
  dataString += "\n";
  dataString += String(dado);

  File dataFile = SD.open("datalog.txt", FILE_WRITE);
  if (dataFile) 
  {
    dataFile.println(dataString);
    dataFile.close();
  }

Este código se coloca dentro de un ciclo for con 1000 iteraciones dentro de la función setup(), para que se ejecute una sola vez. La función loop() { ... } se deja vacía.

El archivo de texto se abre con Excel y aparecerán todos los valores en la primera columna, separados por [enter]. Así se pueden agrupar de menor a mayor y calcular las frecuencias correspondientes.


Conclusiones:

- El proyecto data-logger utiliza una entrada analógica de la placa Arduino UNO. Como este modelo tiene capacidad para 6 entradas analógicas, es posible colocar ese mismo número de sensores.

- El código de programa de data-logger genera un archivo de 19,598 bytes de un total de 32,256 bytes máximo de capacidad de memoria del AT_Mega_328 de Arduino UNO. De esta manera es posible utilizar más funciones. Si se utiliza la Shield Ethernet de Arduino es posible desplegar los resultados en una página web visible dentro de la misma red donde sea conectado el dispositivo.

- El proyecto dado electrónico ilustra la utilización de la función random(min,max); en el IDE de Arduino. Esta misma idea puede aplicarse cuando se quiere simular un proceso en el que una o más variables pueden tener fluctuaciones irregulares fuera del control del operador. Por ejemplo en la carga contaminante de un caudal de agua residual que entra en una planta de tratamiento para su depuración.

- El código de este programa genera un archivo de 2890 bytes de un total de 32,256 bytes máximo de capacidad de memoria del AT_Mega_328 de Arduino UNO.

1
 2
 3
En la imagen 1 se muestra a la izquierda el sensor TMP102 (PCB roja) y el micrófono (forma circular, junto al TL082), al centro el sensor de temperatura LM35 y a la derecha el Shield MicroSD Sparkfun acoplado a Arduino UNO (PCB azul - Arduino original -, debajo); en la imagen 2 el sensor TMP102; y en la imagen 3 una fuente de alimentación de 12V con la que se puede alimentar la placa Arduino UNO mediante un Jack macho de 2.1mm con el positivo al centro.


Fuentes de información:


http://www.onemansanthology.com/blog/sparkfun-tmp102-temperature-sensor-and-arduino-code/

Sitio oficial Arduino: http://www.arduino.cc/


Nota:
En este mismo blog he dedicado otras entradas a describir proyectos utilizando las tarjetas de desarrollo Arduino. Te facilito enlaces a ellas:

- Proyectos de electrónica con Arduino.
- Registro de datos a una micro SD.
- Sensor analógico y señal luminosa con Arduino UNO.
- Manejo de la micro SD del Shield Ethernet.
- Dado electrónico.

***********************************                  *****************************

Programa 1. Datalogger.

/***************************************************
TMP102

Este sensor de temperatura utiliza comunicación I2C (Inter Integrated Circuit) para enviar el dato al microcontrolador maestro.

http://www.onemansanthology.com/blog/sparkfun-tmp102-temperature-sensor-and-arduino-code/

Circuito TMP102:
- ADD0 -> GND
- ALT  -> unused
- SCL  -> A5
- SDA  -> A4
- GND  -> GND
- VCC  -> 3.3V

Circuito LM35:
- +Vcc -> +5V
- Vout -> A0
- GND  -> GND

Circuito Mic (TL082):
- Pin1   OUT   2
- Pin2   -IN   Mic (-)
- Pin3   +IN   Mic (+)
- Pin4   GND   GND
- Pin5   +IN2  N/C
- Pin6   -IN2  N/C
- Pin7   OUT2  N/C
- Pin8   Vdd   +5V

Nota: La tarjeta microSd utiliza los pines de comunicacion
SPI, por lo que no deben conectarse periféricos en esos
puntos.
Pin_11  RB3  MOSI
Pin_12  RB4  MISO
Pin_13  RB5  SCK
Ademas utiliza los pines:
Pin_4   RD4  CS  Ethernet Shield
Pin_10  RB2  CS  Se inicializa como OUTPUT.
Pin_8   RB0  CS  Sparkfun MicroSd
Nota: El microfono genera un conflicto cuando se conecta su
senal en una entrada analogica. Por eso se utilizo un pin I/O
digital.

***************************************************/

#include <Wire.h>
#include <SD.h>

int tmp102Address = 0x48;
#define TERMBAUD  115200
#define led 3
#define ruido 2
unsigned long T;
unsigned long T_ant=0;
unsigned long lap=3000;  // 3 sec
int estado = 0;
float minute = 0.0;
const int chipSelect = 8;

void setup()
{
  Wire.begin();
  Serial.begin(TERMBAUD);
  T= millis();
  Serial.print(" **** INICIO **** t= ");
  Serial.print(T);
  Serial.print(" **** TMP102 **** LM35 ****\n");
  pinMode(led,OUTPUT);
  pinMode(10,OUTPUT);
  
  Serial.println("Inicializando SD card ...");
  if (!SD.begin(chipSelect))
  {
    Serial.println("Falla en tarjeta. Inserta tarjeta ...");
    return;
  }
  Serial.println("Se inicilizo tarjeta SD ...");
}

void loop()
{
  T=millis();
  analogReference(DEFAULT);
  minute = ((T*0.001)/60);
  micEstado();  
  if (T - T_ant > lap)
  {
    digitalWrite(led,HIGH);
    T_ant=millis();
    Serial.print("T_TMP102= ");
    Serial.print(getTemperature_TMP102());
    Serial.print(" T_LM35= ");
    Serial.print(getTemperature_LM35());
    Serial.print(" Time= ");
    Serial.print(minute);
    Serial.print(" MicState= ");
    Serial.println(estado);
    escribeArchivo();
    if (estado != 0)
    {
      estado=0;
    }
    
    delay(15);
    digitalWrite(led,LOW);
    delay(50);
    digitalWrite(led,HIGH);
    delay(15);
    digitalWrite(led,LOW);
  }
}

/******************             ****************/

float getTemperature_TMP102()
{
  Wire.requestFrom(tmp102Address,2); 
  byte MSB = Wire.read();
  byte LSB = Wire.read();
  int TemperatureSum = ((MSB << 8) | LSB) >> 4; 
  float celsius = TemperatureSum*0.0625;
  return celsius;
}

/*****************             *******************/

float getTemperature_LM35()
{
  analogReference(INTERNAL);
  int sens=analogRead(A0);
  float temp=sens/9.31;  // conversion a grados celsius.
  analogReference(DEFAULT);
  return temp;
}

/**********************          ********************/

void micEstado()
{
  int mic = digitalRead(ruido);
  if (mic)
  {
    estado = 1;
  }
  else
  {
    estado = 0;
  }
}

/***************       ****************/

void escribeArchivo()
{
  String dataString = "";
  int tiempo = T/60000;
  int TMP102 = getTemperature_TMP102();
  int LM35 = getTemperature_LM35();
  dataString += "\n";
  dataString += String(tiempo);
  dataString += "\t";
  dataString += String(TMP102);
  dataString += "\t";
  dataString += String(LM35);
  dataString += "\t";
  dataString += String(estado);

  File dataFile = SD.open("datalog.txt", FILE_WRITE);
  if (dataFile) 
  {
    dataFile.println(dataString);
    // dataFile.flush();
    dataFile.close();
  }  
  else {
    Serial.println("error opening datalog.txt");
  } 
}


El código de este programa genera un archivo de 19,598 bytes de un total de 32,256 bytes máximo de capacidad de memoria del AT_Mega_328 de Arduino UNO.


******************************             ***********************************


Programa 2. Dado electrónico.

/*************************************************
DadoElectronico

Circuito:
- Display de 7 segmentos. Catodo comun. DC05.
- Pin7 pulsador. Colocar resistencia de 10k_Ohm a +Vcc.

Pin0  a
Pin1  b
Pin2  c
Pin3  d
Pin4  e
Pin5  f
Pin6  g

g  f  gnd  a b
**************
*            *
*            *
*            *
*            *
**************
e  d  gnd  c dp

*************************************************/

#define push 7
int uno = 0x06;
int dos = 0x5B;
int tres = 0x4F;
int cuatro = 0x66;
int cinco = 0x6D;
int seis = 0x7D;
int disp_num[]={uno,dos,tres,cuatro,cinco,seis};

void setup()
{
  Serial.begin(9600);
  DDRB=0x00;  // PuertoB saliida.
  PORTB = 0x00;
  pinMode (7,INPUT);  // Pin7 entrada digital.
  randomSeed(analogRead(0));
}
void loop()
{
  int num;
  
  do
  {
    float dado = random(0,11.5);  // Para obtener un máximo de 0.6*11.5=6.9.
    num = dado * 6;
  }
  while (num == 0);
  
  if (!push)
  {
    for (int s=0; s<1000; s++)
    {
      PORTB = num;
      delay(8);
      PORTB = 0x00;
      delay(12);
    }
  }
  
  for (int v=0; v<6; v++)
  {
    PORTB = disp_num[v];
    delay(200);
    PORTB = 0x00;
    delay(50);
  }
}
  
El código de este programa genera un archivo de 2890 bytes de un total de 32,256 bytes máximo de capacidad de memoria del AT_Mega_328 de Arduino UNO.