Hola les comento que estoy haciendo un proyectito y una de las ideas es que arduino controle un proceso de produccion, y a la vez permita llevar un registro de datos (por ejemplo articulos defectuosos,correctos, etc) y al final del dia o antes de parar el proceso vuelque los datos en el disco de una pc.
Es posible a traves de la coneccion usb?
La cuestion es si capaz de hacer todo lo demas. Lo del usb es lo mas facil de ese proyecto.
La parte del PC Osea la comunicación serie se puede hacer por processing.
El unico problema va a ser la capacidad de almacenamiento de información, dependiendo del volumen de los datos a almacenar, vas a necesitar algún tipo de memoria externa: flash, sd, eeprom... El resto es simplemente adaptación de sensores... y ponerle fecha a los eventos -> un RTC. finalmente tendrás algún mecanismo para recuperar y volcar la Informacion que será mas o menos costosa, en tiempo, en función del mecanismo de almacenamiento.
Un saludo y espero que te sirva de algo la Informacion.
La idea es usar el disco de la pc como unidad de almacenamiento, osea cuando se apague el proceso o cuando se llene la memoria del arduino descargar los datos al disco de la pc y poder leerlos desde la pc .
Igual no es algo que se valla a llevar a a la practica la idea es hace un simulador, o maqueta.No es que valla a automatizar con el arduino.
pense la de usar memorias sd o flash pro lo descarte mas que nada por el costo. Hay manera de pasar archivos a la pc a traves del usb?
No entendi lo de processing por lo que estuve viendo es para imagenes
Fabrizio, mejor que te leas lo basico de arduino... entonces entenderas como funciona.
Despues un vistazo al playground...
Y luego un simple google y veras que eso que preguntas no tiene nada de caro, salvo el coste de la sd y alguna resistencia:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1206874649/8
se que no es complicado lo de la sd tampoco muy caro, pero no tengo ganas de gastar dinero y se me habia ocurrido pasar los datos al disco.
Hola,
Usando prácticamente cualquier lenguaje de programación que maneje puerto serie puedes hacerlo, es decir, .Net, Processing, Python, etc.
Saludos
Igor R.
A ver, el problema es que vas a tener que guardar los datos, bien en SDRAM (tienes 2K para el programa, datos del programa, pila y heap), bien en la EEPROM (1K de memoria) o bien, podrías aventurarte a ocupar parte de la flash del AVR (ojo con no machacar programa ni el bootloader).
Si no te quieres gastar nada y no complicarte la vida. Lo más sencillo:
- Leer periodicamente los sensores, o el evento de artículo defectuoso, correctos, ...
- Enviar la lectura por el puerto serie con un indicador para que el programa del ordenador se entere que le ha llegado un dato (por ejemplo fin de linea, retorno de carro.
- En el ordenador escribir un programa que lea estos datos del puerto serie, le ponga la fecha del ordenador y los almacene en un fichero (yo diría en formato CVS.
Y ya está, eso es todo.
Aquí te dejo unas lineas chorras escritas en python para hacer eso:
#!/usr/bin/env python
import sys
import serial
import time
import datetime
if __name__ == '__main__':
# Reemplazar por el dispositivo serie que quiera en tu ordenador
ser = serial.Serial("/dev/tty.SLAB_USBtoUART", 57600)
while ( 1 ):
line = ser.readline() #read line from serial port
myLine = line.strip('\r') #remove \r don't need it
#read date and format it correctly removing milliseconds
cvs = str(datetime.datetime.now())
cvs=cvs.split('.')
#append read data to date and write it to the end of the file.
cvs=cvs[0]
cvs += ','
cvs += myLine
fo = open ("temperatures.cvs", "a")
fo.write(cvs)
fo.close()
print (cvs)
ser.close()
El resultado lo puedes ver aquí:
http://dl.dropbox.com/u/14590826/Room_Temperature/index.html
veo que estas muy preocupado con la conexión pc y arduino por USB. esto es de lo mas basico con arduino por lo que te recomiendo que mires los enlaces de mi firma y aprendas un poco los ejemplos básicos, tu mismo te darás cuenta lo sencillo que es.