Riego automatizado de plantas con Arduino

El cuidado de las plantas que tenemos en el jardín o macetas en nuestra casa, escuela u oficina, es muchas veces una actividad relajante y que nos da un rato de distracción de nuestras actividades rutinarias. Pero esto ya no es relajante cuando no tenemos el “don” o el tiempo para cuidarlas y vemos cómo se van muriendo poco a poco las pobres plantitas por falta o exceso de agua, luz o temperatura.

De modo que a quienes nos gusta hacer uso de la tecnología, generalmente aprovechamos cuanta ocasión se nos presenta para hacerlo…

Puedes leer más información de este proyecto en la página siguiente:

Cómo mimar tus plantas con tecnología digital

Programación de Robots Lego NXT con Java

En esta presentación se proporciona al lector los conocimientos básicos para programar robots Lego Mindstorms NXT usando el lenguaje de programación Java. Se construye un robot móvil con los motores y sensores del paquete NXT y se usan algunos métodos básicos Java para el NXT.

Para los ejemplos de programación en Java se usa el robot NXT TaskBot, cuyo instructivo de armado se puede descargar de la siguiente dirección:

Clase nxbot

import lejos.nxt.*;
/**
* Programación de Robots Lego NXT con Java (Noviembre-2009)
* @author Julio C. Sandria Reynoso
*/
public class nxbot {
  public static void avanza(int ms) throws InterruptedException {
    Motor.A.forward();
    Motor.C.forward();
    Thread.sleep(ms); /* espera ms milisegundos */
  }
  public static void retrocede(int ms) throws InterruptedException {
    Motor.A.backward();
    Motor.C.backward();
    Thread.sleep(ms);
  }
  public static void alto() {
    Motor.A.stop();
    Motor.C.stop();
  }
}

Presentation · October 2010
DOI: 10.13140/RG.2.2.21919.15521
Disponible en https://www.researchgate.net/publication/317300574.

Para profundizar más en la programación orientada a objetos, clases, interfaces, herencia, etc., ver la siguiente entrada:

Seguridad en Bases de datos: 1. Conceptos de Bases de Datos

Esta presentación es parte del curso Seguridad en Bases de Datos, tema 1: Conceptos de Bases de Datos, impartido por el autor a estudiantes de la Especialidad en Bases de Datos de la Universidad Autónoma de Veracruz Villa Rica.

Objetivo

  • Descubrir cómo pueden tener acceso los hackers mediante:
    • la explotación del desbordamiento de búfer
    • la escalada de privilegios a través de SQL
    • el abuso de procedimientos almacenados o triggers
    • la inyección SQL
  • Reconocer vulnerabilidades peculiares a algunas bases de datos
    • Oracle, DB2, Informix, Sybase ASE, MySQL, SQL Server, PostgreSQL
  • Encontrar qué es lo que los atacantes ya saben
Presentation · June 2010
DOI: 10.13140/RG.2.2.10033.38242
Disponible en https://www.researchgate.net/publication/316134421.

Programación de Robots Lego Mindstorms NXT con Java. Tema 3 Java para NXT

Esta presentación, corresponde a uno de los temas tratados en el Curso de Robótica a nivel licenciatura impartido por el autor en el Tecnológico de Monterrey Campus Zacatecas.

Este tema enfatiza la programación orientada a objetos con Java para los robots Lego Mindstorms NXT. Se ilustra la creación de clases, objetos e interfaces. Se ejemplifica la herencia, el uso de métodos, tipos de datos y arreglos en Java, así como el control de flujo de programas y el manejo de excepciones. Todo esto aplicado en un robot móvil Lego.

Clase CarBot

importlejos.nxt.*;
public class CarBotextends Thread implements ManioBot {
  public void avanza() {
    Motor.B.forward(); Motor.C.backward(); pausa(500);
  }
  public void derecha() {
    Motor.B.backward(); Motor.C.backward(); pausa(500);
  }
  public void frena() {
    Motor.B.stop(); Motor.C.stop();
  }
  private void pausa(intmSegundos) {
    try {
      Thread.sleep(mSegundos);
    } catch(InterruptedExceptione) {}
  }
}

Presentation · February 2010
DOI: 10.13140/RG.2.2.24016.30721
Disponible en https://www.researchgate.net/publication/317302716.

Para detalles básicos sobre los robots Lego Mindstorms NXT y la instalación del software necesario para programarlos en Java, ver la siguiente entrada:

Sistema de control de una cámara de video a través de Internet

Se presenta un sistema para controlar remotamente una cámara de video a través de Internet. Se diseñó y ensambló un circuito para controlar dos motores de corriente directa que mueven la cámara. El circuito se conecta al puerto paralelo de la computadora. Se programó en Java una aplicación Servidor que transmite video a través de Internet, recibe señales también a través de Internet y mueve la cámara por medio del puerto paralelo. También se programó un applet Java que se ejecuta dentro de un navegador de Internet. En el applet se puede ver en tiempo real el video que transmite la aplicación Servidor y se puede mover remotamente la cámara.

Technical Report · December 2007
DOI: 10.13140/RG.2.2.27467.39206
Disponible en https://www.researchgate.net/publication/310674294

Prototipo de robot Lego futbolista programado en Java

En este documento se presenta un prototipo de robot futbolista construido con el paquete Lego Mindstirms Robotics Invention System 2.0 y programado en Java usando lejos. En este artículo se presenta una introducción a los robots futbolistas y la construcción inicial y programación básica del robot Lego futbolista (RoLeF).

Technical Report · February 2007
DOI: 10.13140/RG.2.2.10156.67208

Aprendiendo y aplicando Inteligencia Artificial con Robots Móviles

Aprender inteligencia artificial a veces es una tarea muy frustrante cuando intentas entenderlo con mucha teoría y un poco de práctica. Este artículo pretende ilustrar que el aprendizaje de la inteligencia artificial podría ser atractivo y de entretenimiento cuando intentas construir robots que muestren un comportamiento inteligente como ver, oír, hablar, moverse, e incluso aprender. Usamos Robots Lego móviles y Java para aprender y aplicar algunas técnicas de Inteligencia Artificial como redes neuronales, algoritmos genéticos, visión por computadora, reconocimiento de voz y síntesis de voz.

Tabla 1. Tecnologías Java usadas con robots Lego

Java Technology Mean and use
J2SDK Java 2 Software Development Kit to compile and run Java programs
LeJOS Lego Java Operating System to run Java programs inside the RCX
LMbpn A Lego Mindstorms Backpropagation Neural Network (own)
LMsga A Lego Mindstorms Simple Genetic Algorithm (own)
JFM Java Media Framework for Computer Vision
JSAPI & Sphinx Java Speech API and Sphinx for Speech Recognition
JSAPI & Sphinx Java Speech API and Sphinx for Speech Synthesis

Artículo en inglés:
Sandria Reynoso, Julio César, Mario Morales García y Arturo Mendoza Rendón. 2006. Learning and applying artificial intelligence with mobile robots. Research in Computer Science. Vol. 20, pp. 191-198.
Disponible en https://www.researchgate.net/publication/310771450.

Una red neuronal para robots Lego Java

Aprende a programar robots Lego Mindstorms inteligentes con Java

Los desarrolladores pueden construir robots inteligentes con Java, ya que proporciona APIs para sistemas de programación que pueden ver, oír, hablar, moverse e incluso aprender, utilizando redes neuronales, que son algoritmos que imitan a nuestro cerebro.

Este artículo muestra cómo desarrollar un robot que puede aprender mediante el algoritmo de propagación hacia atrás (backpropagation), una red neuronal básica, y su implementación en un Lego Roverbot. Utilizando el algoritmo y Java, el Roverbot -un robot Lego vehículo- puede aprender algunas reglas básicas para moverse hacia adelante, hacia atrás, izquierda y derecha.

Artículo:
Sandria Reynoso, Julio César. 2005. A neural network for Java Lego robots. JavaWorld, May 16.
Disponible en http://www.javaworld.com/article/2071879.
PDF en https://www.researchgate.net/publication/310771385.

Construcción y Programación de robots limpiadores con Lego Mindstorms y Java

En este Informe Técnico se muestra el proceso de construcción de robots limpiadores usando paquetes Lego Mindstorms Robotics Invention System 2.0 y su programación con el lenguaje Java sobre leJOS (Lego Java Operating System). Los dos robots mostrados son los ganadores del segundo y tercer lugar del Primer Torneo Mexicano de Robots Limpiadores organizado por el Instituto Nacional de Astrofísica, Óptica y Electrónica (INAOE), la Universidad Veracruzana (UV) y la Sección Puebla del Institute of Electric and Electronic Engineers (IEEE) en las instalaciones del INAOE en Tonantzintla, Puebla, en agosto de 2004.

Dichos robots fueron construidos y programados por los autores de este informe, profesor y alumnos de octavo semestre de la carrera de Ingeniería en Sistemas de Cómputo Administrativo de la Universidad de Xalapa (UX). Este trabajo es resultado del curso corto Programación en Java con robots Lego Mindstorms y del curso de asignatura Inteligencia Artificial, ambos impartidos por el primer autor en la UX.

Technical Report · December 2004
DOI: 10.13140/RG.2.2.25789.67048 · 
Disponible en: www.researchgate.net/publication/310674457