Control directo de arduino

Hola.

Os escribo para ver si no os importa resolverme ciertas cuestiones.

Os cuento, mi proyecto fin de carrera tenía pensado hacerlo sobre un sistema de riego automático. En principio quiero que todo vaya controlado por pc, para ahí poder ajustar días de riego, horario, intervalo de apertura de electro válvulas y demás. También si en un momento dado quiero activar una electro válvula de forma directa pues tendrá esa opción. En principio había pensado usar un sistema de relés conectado al puerto paralelo, lo cual supliría mis necesidades. Pero claro, por eso de que me gustaría usar para el control un ordenador estilo IPad que es más pequeño, estético y la pantalla es táctil (sería un IPad clone chino barato con linux por SO) que no tiene puerto paralelo, busqué opción de controlar relés por usb. Entonces buscando me topé con arduino.

¿Qué a que viene este tocho? Pues lo que os quería comentar es que pensaba que arduino podía ser controlado de forma fácil por pc, sin estar cargando programas, simplemente desde el pc enviando instrucciones del tipo "activa conexión digital X" para que en el caso de que si hay un relé ahí conectado pues lo active y ese relé activará una electro válvula, ya que lo que busco es tener una interfaz gráfica intuitiva en el pc que usará un usario con conocimientos mínimos de pc. Sin embargo, creo que en arduino se carga un programa, que eso viene muy bien para no tener que usar pc, pero no es tan fácil hacer un control directo mediante pc, creo que se envían bytes a traves de serial en el pc y en arduino hay que ingeniárselas para interpretarlos bien y hacer que esos datos signifiquen órdenes.

Luego he encontrado una placa de reles controlada por usb como esta:

La placa parece muy sencilla de controlar pero la verdad es que ahora que he descubierto arduino me gustaría, a poder ser, usarlo.

La pregunta es, ¿estoy equivocado y arduino puede ser fácilmente controlado mediante pc? ¿o arduino por lo que realmente se desmarca es por eso de poder llevar un programa en su interior y no depender de pc? Si es demasiado laborioso controlarlo mediante pc imagino que lo descartaré y me iré a una placa de relés de toda la vida..

Realmente lo único que necesito es que fácilmente acepte órdenes de "activa tal conexión" y esa conexión irá conectada a un relé. Siento preguntaros esto, pero estoy de exámenes y sin tiempo y lo he visto la mejor opción.

Gracias de antemano, siento el tocho, un saludo!

Sobre riego con Arduino se ha hablado mucho, por ejemplo aquí:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1278677904

Hacer un control de riego con un PC completo, me parece que vas muy muy sobrado de potencia, podrías controlar miles y miles de riegos.
En todo caso pondría un placa que lleve Linux (un mini PC industrial de esos) y te ahorras bastante en la factura de la luz y coste del proyecto.

Como bien has dicho, un arduino es un complemento muy bueno para un PC si quieres manejar electrónica, pero podrías llegar a controlar todo desde el Arduino usando una ethernet shield para crear las páginas html mientras no sean muy complicadas.

Si al final te decides por un PC + Arduino, la comunicación es por serie y no es nada complicado mandar comandos del Arduino al PC y viceversa.
Hace pocas semanas saqué un proyecto que se basa en eso, mandas tramas de texto al Arduino, el los interpreta y ejecuta las acciones necesarias, por ejemplo:
"{0x4d 0 0}{0x4d 0x16 4 0b00110}"
Si quieres echarle un vistazo al código:
http://code.google.com/p/ardubus/
El código lo puedes reutilizar siempre que cumplas las condiciones de la licencia GNU GPLv3.

Un saludo

Tal y como dice Chiva, parece que tener un PC, aunque sea un Ipad Clone, sólo para controlar 8 electrovalvulas, parece que es matar las moscas a cañonazos. A lo mejor te interesa refactorizar un poco y usar Arduino+electrovalvulas como una estación de riego, y utilizar la conexión al PC sólo para programarla. Además, no pierdas de vista que Arduino te puede servir para medir temperaturas, humedad, lluvia... Podrias hacer que el programa de riego cargado en Arduino no riegue si esta lloviendo o de un riego extra si la temperatura excede de x, y todo eso hacerlo depender de variables que se asignan en función de las ordenes recibidas desde el PC a través de un programa similar al del compañero Chiva. De esta forma, una vez programado, desenchufas tu PC y no necesitas tenerlo esclavo de las electroválvulas. Además, con Arduino tienes la opción de usar un módulo bluetooth o incluso, un modulo GPRS y hacer que los comandos entren mediante SMS desde un teléfono móvil.
En cualquier caso, si solo quieres usarlo como interfase para las electroválvulas, creo que es inmediato su uso, pero no veo en qué va a mejorar la idea de la placa de relés.

Hola.

Gracias por las respuestas. Sobre eso que dices chiva, de que usar un pc es muy potente para lo que busco, tienes razón, he estado toda la noche buscando alternativas y formas de incluir arduino para no tener que tener encendido siempre el pc. No es por tema de consumo eléctrico, ya que un pc de ese estilo o uno con placa base mini-itx no consume más de lo que consume una bombilla normal, pero si que me parece más estable y apropiado algo como arduino.

También pensé eso que dices, usar el pc solo para programarlo a la hora de cambiar horario de riego, días y demás. Un pc o tablet de este estilo donde solo se usará un programa visual para indicar los parámetros de riego, no tardaría más de unos 15s en arrancar y ser funcional, por lo tanto me parece viable.

De todas formas esto lo tengo que mirar muy a fondo, aun habiendome dicho que es fácil mandar e interpretar instrucciones por puerto serie, yo todavía no tengo ni idea jeje, estoy deseando tener tiempo para mirarlo. Creo que lo mejor será que en cuanto termine los examenes me agencie un arduino y ya con él en mano y haciendo pruebas decida qué opción puede ser mejor.

Por cierto Pofenas, ya había considerado la opción de tomar mediciones con arduino, como bien dices, especialmente considerar si ese día de riego ha llovido y el factor humedad es el correcto que se salte el programa de riego es algo interesante.

Saludos y gracias!

Chiva sobre ese proyecto de comunicación con arduino, aun no me lo he bajado pero como al ver la pagina me lo he encontrado en ingles, era por si lo tenias con anotaciones en español para torpes o lo tienes subido a alguna otra pagina donde expliques el funcionamiento en español ?

Esque soy nuevo con arduino y estoy aprendiendo leyendo el foro y vuestros ejemplos :-/

Los comentarios están en español, no son muy extendidos pero lo justo para explicar lo que hace una función o línea, prueba a bajártelo y me dices si tienes algún problema.

El cómo usarlo lo tienes en mi página:
http://wiki.kungfulabs.com/arduino/ardubus

Está explicado cómo conectarse al Arduino, cómo usarlo y algún ejemplo práctico

Un saludo

Gracias chiva, me pongo a estudiarlo. :slight_smile:

Chiva una pregunta más, me he descargado tu Calculadora Leds (http://wiki.kungfulabs.com/arduino/leds/calculadora_leds.zip?attredirects=0) lo descomprimo, intento ejecutarla pero me da error

"El programa no puede iniciarse porque falta phython31.dll en el equipo. Inten reinstalar el programa para corregir este problema."

He buscado por google pero no encuentro para descargarme esa dll. ¿ Podrias incluirla en el paquete del programa ?

Gracias

Uff, use un empaqutador que supuestamente te mete todos los archivos necesarios para que funcione sin hacer nada y por lo que me has dicho no parece que lo haya hecho muy bien.

Una opción es la de que ejecutes, donde lo vayas a usar, el instalador de Python 3.1 que puedes conseguir aquí:
http://python.org/ftp/python/3.1.2/python-3.1.2.msi

Creo que tiene algún bug en cuanto a calcular varios leds en serie y paralelo, también agradecería que ya que lo quieres probar, me dijeras si tiene algún otro fallo de cálculo, la fórmula la tienes en donde los leds la de R=...., ten en cuenta que el resultado está aproximado al siguiente valor más próximo de las resistencias normalizadas.

Los valores normalizados que aparecen se pueden dividir y multiplicar por cualquier múltiplo de 10 para conseguir el valor. Por ejemplo si la cuenta te sale 2,56 Ohm sería en la E12 (10% tolerancia) 2,7 Ohm.

A ver si esta semana arreglo los bugs y busco otro empaquetador, ya que no quiero poner el código directamente, para que no haga falta instalar nada y porque fue mi primer programa de python, por lo que tiene muchas chapuzas.

Un saludo