[Robots]Entradas, desde el mundo exterior Inputs -->Programa

RoBots_Hard: Electrónica, OCR, WebCams, Reconocimiento de objetos, maquinas
Responder
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2083
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

[Robots]Entradas, desde el mundo exterior Inputs -->Programa

Mensaje por BasicOs »

Propuestas para INPUTs del "Robot" :smt024
Unas entradas comos Sensores desde el mundo exterior o real, como si dijeramos, los sentidos, la vista, el oido, el olfato, el tacto, la presión, el calor, etc...:
Aqui van una WebCam o Una tarjeta de entrada de inputs electrónicos keyboard via USB...

1.-Usando la camara Web - como la vista en los seres humanos se puede identificar burdamente un color que identifique un cambio en el premisas que "signifiquen" que hay que decidir una acción. :smt026

El programa base ha de ser algo parecido a :
Creo variables que contienen valores de diferentes colores o trocitos de zonas de la pantalla que identifican algo.

If [una de las variables se encuentra en la zona de la cam] then
[Ejecuto uno acción que puede ser como ejemplo que suene un mp3 o enviar un mail, etc]
Endif
Más info en las funciones PixelCheckSum PixelGetColor, PixelCoordMode (Option), PixelSearch y muchas más que hay en autoit.
Alternativamente también: Imagesearch http://www.autoitscript.com/forum/index ... arch&st=80
http://www.emesn.com/autoitforum/search ... magesearch

2.-Usando la electrónica como el oido, el tacto, la presión, el sentido del calor, el sonido, sensores varios..etc....

Como novedad en Autoit he identificado y comprobado un sistema de electronizar, o sea de eliminar casi toda la eletronica convirtiendola en un componente o parte más del programa (para INPUTS) con el ahorro de costes, facilidad de uso y flexibilidad que esto supone.

Código Autoit simplificando al máximo para que esté de base de la maquinaria, con una vía de entrada INPUT:

Código: Seleccionar todo

HotKeySet("^.", "CierreoAperturaDeunConectoroSensor")
while 1
  sleep(300) ; Este bucle hace que el programa espera que se produzca la señal
Wend

Func CierreoAperturaDeunConectoroSensor()
   gmailSMTP("He detectado un problemilla, humo o calor, etc..", "Avisad a Mama urgente!!") ;Ejecuto acción: envio  mail, o hago foto con Cam etc.
EndFunc
O sea lo que pasa en el mundo exterior se puede ejecutar con sensores, con cierres y aperturas de clavijas. Lo que hace el aparato es que te convierte una acción de HARDWARE como Cierre o Apertura De un Conector o Sensor a una señal de sofware utilizable por nuestro programa para hacer lo que deseemos.
Coste del convertidor del mundo externo al programa es de 37$ (Parece increible no son 3.700$ que sería el precio normal para algo parecido)
http://www.ultimarc.com/JShopServer/section.php?xSec=4 y http://www.ultimarc.com/ipacve.html
Imagen

Este es el bueno que te viene en un sobre desde el pais en que estás situado en unos pocos días: I-PAC VE with USB cable. Free Air Mail.Price: $37.00 (27,50€). Yo hice el pedido de uno para España y está funcionanado sin problemas en su apliación, lo envian desde la misma CEE.

El aparato da para un total de 32 entradas electrónicas externas que pueden ser 32 -> HOTKEYSET() con lo que podemos hacer lo complejo que queramos el programa.
Como veis la versión del programa para empezar es hiperfacil para un input, por ejemplo que se abra la puerta.

No hay los problemas que ocasionan la entradas por puerto paralelo ya que la sensibilidad es total, y no hay problemas para la placa ni nada.



Esto ha sido una explicación fundamental del esquema: Input-> Soft -> Output . Del tema de los Outputs hay algunos límites pero seguro que con creatividad se pueden hacer mil cosas,

Como por ejemplo:
Adaptar a un NETBOOK con WindowsXP una WebCAM, y un sensor usb de distancia y obstaculos, con un motorcito controlado a distancia desde un programa via Wifi como el de los coches.


¿Vale ahora quien se anima a hacer el robot que traiga el cafe cuando se oiga que se abre la puerta despues de la hora del almuerzo?

Ejemplo lógica para construir una diana electrónica en el club, créditos de idea de Chefito:
Puedes poner 32 puntos calientes en la diana, los conectas con 32 cables al pc, y luego en el programa pones 32 hotkeyset(), cada uno para una tecla.
Luego en la pantalla vas sacando los resultados con muñecos y con un contador automático igual que el del Bernabeu.
Coste:
Diana 10 euro, 32 cables con sensores de presión 62??? euros, tarjeta 27 euros, un pc 2da mano 80euros.

Por 200 EUROS TIENES UNA DIANA electrónica para flipar en el club con los amigos, si las vas a comprar menos de 5000 euros no te cuesta ... vaya es un ejemplo
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2083
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Robot: Entradas, antecendente dl exterior Inputs -> Software

Mensaje por BasicOs »

Input via SERIAL, Creditos a Chefito:
http://arduino.cc/es/Main/HomePage
http://arduino.cc/es/Metodologia/Descripcion
Arduino puede utilizarse en el desarrollo de objetos interactivos aut�nomos o puede conectarse a un PC a trav�s del puerto serie utilizando lenguajes como Flash, Processing, MaxMSP, etc ... Las posibilidades de realizar desarrollos basados en Arduino tienen como l�mite la imaginaci�n.
El arduino fue un proyecto de un IES pero lo dejarón publicado una vez lo acabaron.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Robots: Entradas, desde el mundo exterior Inputs -> Software

Mensaje por Chefito »

Jajajaja.....la forma que has puesto de hacer lo de la diana es tuya BasicOs no mía :smt005 . Ya te dije que yo la intentaría hacer de otra forma.
Analicemos la situación. La diana tiene 20 números. Cada número tiene un simple (o dos divididos....pero como es la misma puntuación nos serviría una conexión), un doble y un triple. Esto suman 60 resultados. Simplemente con esto ya nos quedamos cortos con las 32 entradas que tiene el circuíto que muestras :smt005 .
A esos 60 resultados hay que sumarle 2 más (diana exterior (25 puntos) y diana interior (50 punto. También conocida como mosca). Ya son 62 resultados. Digamos que no detecta los dardos que dan fuera de la diana.
Vale. Como se supone que solo necesitamos los resultados, y que las elecciones de los juegos la vamos a hacer a través del programa hecho en AutoIt, pues lo dejamos en 62.
Solución??? Muy facil. Tenemos que enviar este resultado en forma de número binario. Para 64, se necesitaría un número de 6 bits. Con 6 entradas del circuíto nos bastaría. Lo malo sería el cableado. Habría bastante (un cable por cada bit a 1 en cada pieza de la diana que contenga el número asignado a esa pieza).
Para evitar esta cantidad de cableado se podría utilizar un c.i. codificador de 6 bits (o varios de menos bits y encadenarlos....según sea el precio). Esto nos daría un total de 62 cables (uno por cada pieza) conectados a 62 entradas del codificador, y 6 cables de salida del codificador a 6 entradas del circuíto integrado. Es una forma.
Otra forma sería utilizando el mayor número de entradas posibles que te permite el circuito (32). De estas 32 entradas se puede cojer 1 (quedando 31) para indicar el estado de ese bit (2 estados, a 1 o a 0). Gracias a esto tendríamos 31 x 2 entradas = 62 entradas. Esto se puede lograr simplemente con un cable más en la mitad de las placas (31 cables más), para poner la mitad en un estado a 1, y la otra mitad a 0 (el bit sobrante....la entrada 32). Es otra idea.
Se pueden mezclar las dos técnicas hasta llegar a una solución óptima. A elegir.

Hay más soluciones, pero supongo que estas son bastante aceptables y muy económicas.

Informo a BasicOs que se puede comprar una diana electrónica (no muy buena, pero totalmente funcional) por unos 20 a 30 euros. Así te evitas tener que hacerla tú totalmente :smt005 .
Habría que mirar que circuítos integrados tienen estas dianas y si se pueden aprovechar sus salidas (seguro que sí). Hay que pensar que suelen tener displays de 3 dígitos......algo se podrá hacer con estás salidas o con las anteriores a los displays, seguro :smt005 .

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2083
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Robots: Entradas, desde el mundo exterior Inputs -->Programa

Mensaje por BasicOs »

Muy bueno el planteamiento.
Pero quería comentar algo para que cualquiera que no tenga idea de informática ni de electrónica pudiera montar su "Robot". Lo que comentas es muy avanzado para un newbie o novato con la programación, los cables y demás... pero bueno como todo es empezar y en poco tiempo haces cosas complicadas... Si alguien se atreve adelante...

Si no sabes mucho, Puedes empezar primero a hacer una diana con 32 blancos, super facilmente y cuando te funcione puedes añadirle las combinaciones que comenta Chefito, o ir añadiendo más detalles.......

Es decir que para alguien que quiera hilar más fino las 32 entradas de la placa, se pueden convertir en 64 o en 128 o en muchas más, en vez de usar las entradas directas, codificandolas como Chefito indica con las combinaciones.

Jejeje. Lo de el precio, ciertamente puede valer 20 o 30 Euros, pero seguro que la que hagas con tus manos vale muuuchiisimo mas porque esta hecha por tí, ;) :smt026 :smt026 :smt026 .. y bueno ese superdisplay personalizado de 40 pulgadas con las imágenes de tus jugadores favorítos en un supermonitor pueden ser alucinante....
Esta bien lo de reaprovechar dianas ya electrónicas... todo lo que sea reciclar .. seguro que hay mil aparatos que sirven que se desechan para aprovecharlos.
Salu22:)
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2083
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Robots: Entradas, desde el mundo exterior Inputs -->Programa

Mensaje por BasicOs »

Algunos ejemplos entradas -- Inputs desde el mundo exterior hacia el Programa:

En la red LAN de ordenadores o a través de Internet.

Controle los datos ambientales como temperatura, húmedad, presión atmosférica, etc.
Reciba avisos de límites de temperatura, olor a gas, niveles de líquido, detección de movimiento por correo electrónico
Arrancar circuitos de interconexión desde un cualquier ordenador en el mundo

Estos son algunos de los ejemplos de las tareas que se pueden realizar con los productos de domótica de ALLNET a bajo precio y sin gran esfuerzo.(Es un ejemplo de empresa, existen muchisimas otras que hacen lo mismo)

Productos de dómotica
controladores programables
sensores y módulos para ALL3000/4000
sensores para ALL4001 (carril DIN)
dispositivos RF, persianas etc...
dispositivos conmutables
accesorios para dispositivos conmutables
software para sensómetros
preguntas frecuentes del ALL4000/4001

Allnet a mi me ha funcionado bien para pago y envios de material de otro tipo, aunque es posible que tengas que comprar via un profesional ya que son mayoristas.
Hay muchisimas más empresas que ofrecen estos productos y ebay, etc.., el tema es que aquí están ordenados y puedes bajar los manuales online:
http://www.allnet.es/home-automation.html

Salu2:)
xapu
Hacker del Foro
Mensajes: 82
Registrado: 12 Dic 2009, 15:42

Re: [Robots]Entradas, desde el mundo exterior Inputs -->Programa

Mensaje por xapu »

i no hay ninguna manera de recivir datos digtales dentro de autoit con alguna placa controladora?
por ejemplo yo tengo el termometro digital LM35DZ i kiero usarlo para recivir la temperatura dentro del autoit.... me da = si por usb o por puerto paralelo
alguien me podria decir como hacerlo mas o menos?
- 0 error(s), 0 warning(s) :smt098 FUCK YEA!
http://xapus.blogspot.com/
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2083
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: [Robots]Entradas, desde el mundo exterior Inputs -->Programa

Mensaje por BasicOs »

xapu escribió:i no hay ninguna manera de recivir datos digtales dentro de autoit con alguna placa controladora?
por ejemplo yo tengo el termometro digital LM35DZ i kiero usarlo para recivir la temperatura dentro del autoit.... me da = si por usb o por puerto paralelo
alguien me podria decir como hacerlo mas o menos?
Seguramente puedes hacerlo muy facil si consigues traducir hacer un pequeño circutito para que según su voltaje el LM35DZ de valor a varias conexiones (32 o mas) ON/OFF, y luego usas la placa usb->keyboard que está mas arriba para comunicarlo a una variable global de Autoit que luego uses en un While, por ejemplo para las funciones que desees: enviar correo electrónico, un sonido de alarma, etc.... (el brazo robot para que pulse el botón de apagar la luz xDDDD)
Termometro-->
if temperatura = 20 then --> ON conexión primera de la placa --> al hotkeyset() -> Función pon20 --> $temperaturaEnautoit=20
if temperatura = 19 then --> ON conexión segunda de la placa.. --> al hotkeyset() --> Función pon19 -> $temperaturaEnautoit=19
Y así todas..
:smt038
Salu2:)

PD: Alternativamente también puedes buscar alguna función en otro lenguaje como VB en que ya lo hagan y re-utilizar las llamadas que este usa en Autoit como aquí: http://www.todopic.com.ar/foros/index.php?board=27.0
O bien usar otros sensores que ya tengan hechos interfaces a medida.
http://www.allnet.es/home-automation.html

Edit:
Para hacer más sencillo
, para el caso que no quieras representar todas las temperaturas sino cuando haya un "trigger" o intervalo "peligroso" en el que quieres ejecutar una acción con el programa en autoit.
Conectado a la placa usb->keyboard tendrías un minicircuito conectado a su vez al sensor (dependiendo del voltaje que este tenga va a corresponder a una temperatura).
Entonces simplemente elige el par temperatura/voltaje, que te ejecute un click de un interruptor añadido oconector o borne, para dar una señal de on/off al conector de la placa usb deseado. Optativamente tendrías que hacer en el minicircuito un temporizador en que el click se repita cada 15 segundos mientras la temperatura del sensor sea la peligrosa(trigger), para que el programa siga sabiendo que todavía estas en zona de temperatura de peligro. No se muy bien que vas a hacer con el programa.
Responder