elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  Mi pequeño proyecto con arduino y dos ldr.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Mi pequeño proyecto con arduino y dos ldr.  (Leído 15,464 veces)
braulio--
Wiki

Desconectado Desconectado

Mensajes: 896


Imagen recursiva


Ver Perfil WWW
Mi pequeño proyecto con arduino y dos ldr.
« en: 4 Julio 2010, 15:03 pm »

Bueno, os voy a mostrar el pequeño proyecto que hice en un momento de aburrimiento.



Eso de arriba es el circuito de arduino, consta de dos ldr que en la imagen aparecen a la izquierda y a la derecha , y un botón. Están conectados a entradas de arduino y lo que hace el programa de arduino es mandar información sobre el estado de las ldr (solo manda un 0 o un 1 dependiendo de que la entrada analógica supere un límite o no) y el botón (si está pulsado o no).

Ya en el ordenador he hecho dos programas en python que reciben información del puerto de arduino.


Por ahora os enseño el segundo que hice con ayuda de pygame. Consiste en que crea una ventana con un cuadrado en su interior y dependiendo de si tapas o no los ldr (si le dejas de dar luz) se moverá hacia un lado u otro, el botón sirve para cambiar el color del cuadrado.

Os muestro un vídeo :


Se pueden usar las dos manos a la vez, pero como estaba grabando tenía una mano ocupada.

Os dejo los códigos :

El de arduino :
Código
  1. int ldrD = 0;
  2. int ldrI = 5;
  3. int boton = 3;
  4. int umbral = 150;
  5. void setup()
  6. {
  7.  Serial.begin(9600);
  8. }
  9. void loop()
  10. {
  11.  int luzD = analogRead(ldrD);
  12.  int luzI = analogRead(ldrI);
  13.  if (digitalRead(boton) == HIGH)
  14.  {
  15.    Serial.print("1");
  16.  }
  17.  else
  18.  {
  19.    Serial.print("0");
  20.  }
  21.  if (luzD < umbral)
  22.  {
  23.    if (luzI< umbral)
  24.    {
  25.      Serial.println("11");
  26.    }
  27.    else
  28.    {
  29.      Serial.println("01");
  30.    }
  31.  }
  32.  else
  33.  {
  34.    if (luzI < umbral)
  35.    {
  36.      Serial.println("10");
  37.    }
  38.    else {
  39.      Serial.println("00");
  40.    }
  41.  }
  42.  delay(100);
  43. }
  44.  

Y el de python :
Código
  1. import pygame,serial,random
  2. ser = serial.Serial('/dev/ttyUSB4',9600) # Modificar por vuestro puerto
  3. pygame.init()
  4.  
  5. x,y = 500,500
  6. avance = 5
  7. class cosa(pygame.sprite.Sprite):
  8.  def __init__(self,screen):
  9.    self.color = 255
  10.    self.me = pygame.Surface([50,50])
  11.    self.me.fill((self.color,self.color,self.color))
  12.    self.positionx = 0
  13.    self.positiony = 0
  14.    self.screen = screen
  15.  def update(self):
  16.    leido = ser.readline()
  17.    if leido[1] == '1' :
  18.      self.positiony+=avance
  19.    else :
  20.      self.positiony-=avance
  21.    if leido[2] == '1':
  22.      self.positionx+=avance
  23.    else :
  24.      self.positionx-=avance
  25.    if leido[0] == '1': self.colorear()
  26.    self.comprobarcoordenadas()
  27.    self.screen.blit(pygame.Surface([x,y]),(0,0))
  28.    self.screen.blit(self.me,(self.positionx,self.positiony))
  29.    pygame.display.flip()
  30.  def comprobarcoordenadas(self):
  31.    if self.positionx > x : self.positionx-=avance
  32.    if self.positionx < 0 : self.positionx+=avance
  33.    if self.positiony > y : self.positiony-=avance
  34.    if self.positiony < 0 : self.positiony+=avance
  35.  def colorear(self):
  36.    self.color = (self.color+1)%255
  37.    self.me.fill(((self.color+random.randint(0,255))%255,(self.color+random.randint(0,255))%255,self.color))  
  38. screen = pygame.display.set_mode([x, y])
  39. caja = cosa(screen)
  40. while 1:
  41.  caja.update()
  42.  

Quien quiera usar el de python tendrá que instalar pygame y pyserial.

Aquí os dejo otro que sirve para mover el ratón con el mismo circuito :

Código
  1. #!/usr/bin/python
  2.  
  3. import serial
  4. import Xlib.display
  5. from Xlib.ext import xtest  
  6. from Xlib import X
  7.  
  8. class MouseControl:
  9.  def __init__(self):
  10.    self.display = Xlib.display.Display()
  11.    self.screen = self.display.screen()
  12.    self.root = self.screen.root
  13.    self.mousex = 500
  14.    self.mousey = 500
  15.  def arriba(self):
  16.    self.mousey += 10
  17.    if self.mousey > 780 : self.mousey-=10
  18.    self.root.warp_pointer(self.mousex,self.mousey)
  19.    self.display.sync()
  20.  def abajo(self):
  21.    self.mousey -= 10
  22.    if self.mousey<0 : self.mousey +=10
  23.    self.root.warp_pointer(self.mousex,self.mousey)
  24.    self.display.sync()
  25.  def izquierda(self):
  26.    self.mousex -= 10
  27.    if self.mousex < 0 : self.mousex+=10
  28.    self.root.warp_pointer(self.mousex,self.mousey)
  29.    self.display.sync()
  30.  def derecha(self):
  31.    self.mousex += 10
  32.    if self.mousex > 1020 : self.mousex-=10
  33.    self.root.warp_pointer(self.mousex,self.mousey)
  34.    self.display.sync()
  35.  def click(self):
  36.    xtest.fake_input(self.display, X.ButtonPress, 1)  
  37.    xtest.fake_input(self.display, X.ButtonRelease, 1)
  38.    self.display.sync()
  39. ser = serial.Serial('/dev/ttyUSB4',9600) #Modificar por vuestro puerto
  40. mouse = MouseControl()
  41. while 1 :
  42.  leido = ser.readline()
  43.  print mouse.mousex ," ", mouse.mousey
  44.  if leido[0] == '1':
  45.    mouse.click()
  46.  if leido[1] == '1':
  47.    mouse.arriba()
  48.  else :
  49.    mouse.abajo()
  50.  if leido[2] == '1':
  51.    mouse.derecha()
  52.  else : mouse.izquierda()
  53.  

El que quiera usar este tendrá que instalar además Xlib para python.

Solo funciona en linux.
 


En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Mi pequeño proyecto con arduino y dos ldr.
« Respuesta #1 en: 4 Julio 2010, 15:35 pm »

Pues esta muy bien tio, muy bueno jeje

Saludos


En línea

braulio--
Wiki

Desconectado Desconectado

Mensajes: 896


Imagen recursiva


Ver Perfil WWW
Re: Mi pequeño proyecto con arduino y dos ldr.
« Respuesta #2 en: 4 Julio 2010, 16:33 pm »

Gracias, a ver si muestras tú algo de lo que estás haciendo :xD
En línea

@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
Re: Mi pequeño proyecto con arduino y dos ldr.
« Respuesta #3 en: 4 Julio 2010, 18:05 pm »

Está pegando fuerte Arduino en el foro, creo que deberían plantearse crear un subforo solo para esta plataforma...  :rolleyes:

Muy bueno el mini proyecto
En línea

Banti

Desconectado Desconectado

Mensajes: 225


NULL


Ver Perfil
Re: Mi pequeño proyecto con arduino y dos ldr.
« Respuesta #4 en: 4 Julio 2010, 19:31 pm »

Jajaja. Ahora pregunto en la casa de electronica amiga si tienen LDR ni los conocia :P
Esta muy interesante el pygame que hiciste.

Está pegando fuerte Arduino en el foro, creo que deberían plantearse crear un subforo solo para esta plataforma...  :rolleyes:
Te comento nomas que yo compre un Arduino porque USTED comenzo con esto en este subforo  :xD

Antes de hacer un subforo convendria hacer un thread introductorio e tutorial de programacion del Arduino no?
En línea

@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
Re: Mi pequeño proyecto con arduino y dos ldr.
« Respuesta #5 en: 4 Julio 2010, 19:35 pm »

Jajaja. Ahora pregunto en la casa de electronica amiga si tienen LDR ni los conocia :P
Esta muy interesante el pygame que hiciste.

Está pegando fuerte Arduino en el foro, creo que deberían plantearse crear un subforo solo para esta plataforma...  :rolleyes:
Te comento nomas que yo compre un Arduino porque USTED comenzo con esto en este subforo  :xD

Antes de hacer un subforo convendria hacer un thread introductorio e tutorial de programacion del Arduino no?

Tutéame xD

Si, estaría bien crearlo, pero para ello debería haber un "grupo de trabajo" para que colaboráramos todos, porque hacerlo 1 sola persona, es una pesadez..
En línea

braulio--
Wiki

Desconectado Desconectado

Mensajes: 896


Imagen recursiva


Ver Perfil WWW
Re: Mi pequeño proyecto con arduino y dos ldr.
« Respuesta #6 en: 4 Julio 2010, 23:47 pm »

Jajaja. Ahora pregunto en la casa de electronica amiga si tienen LDR ni los conocia :P
Esta muy interesante el pygame que hiciste.

Está pegando fuerte Arduino en el foro, creo que deberían plantearse crear un subforo solo para esta plataforma...  :rolleyes:
Te comento nomas que yo compre un Arduino porque USTED comenzo con esto en este subforo  :xD

Antes de hacer un subforo convendria hacer un thread introductorio e tutorial de programacion del Arduino no?
De hecho yo compré arduino por verlo en el foro tambien :xD
« Última modificación: 4 Julio 2010, 23:53 pm por braulio-- » En línea

@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
Re: Mi pequeño proyecto con arduino y dos ldr.
« Respuesta #7 en: 5 Julio 2010, 02:39 am »

Hostias, los vendedores me deben 1 xDDDDDDDD ;-)
En línea

braulio--
Wiki

Desconectado Desconectado

Mensajes: 896


Imagen recursiva


Ver Perfil WWW
Re: Mi pequeño proyecto con arduino y dos ldr.
« Respuesta #8 en: 5 Julio 2010, 11:49 am »

:xD

Se podría hacer un artículo sobre arduino en el wiki de elhacker.net
En línea

Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Mi pequeño proyecto con arduino y dos ldr.
« Respuesta #9 en: 5 Julio 2010, 18:38 pm »

:xD

Se podría hacer un artículo sobre arduino en el wiki de elhacker.net
Soy editor del wiki, ya estoy redactando algo en la secion de electronica.

Saludos
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines