jueves, 13 de septiembre de 2012

Actividad - Definición de herramientas y algo mas

Esta entrada sera una introducción mas para las herramientas que serán útiles, también se mostrara Código como avance.

Las herramientas que usaremos para el proyecto serán.

En cuanto al hardware mas importante:

  • Servomotor:  Para el movimiento de la rueda, se usará este tipo de motor en lugar de uno de corriente directa por el hecho de hacer mas precisos los movimientos de la rueda y con esoto tener mas controlados los movimientos (evitar accidentes desagradables). El motor que se eligió cuenta con una torque (fuerza de rotación) = 13kg/cm y una velocidad = 0.17s/por cada 60° operando a 4.8V,  que practicamente sería el voltaje que nosotros manejaríamos (5V).
       
  •  La rueda: La construcción de la rueda (el material) se encuentra todavía bajo discusión debido a las distintas posibilidades que nos puede brindar las dos opciones que tenemos contempladas (Legos y Erector).
  •  Detector de movimiento:
  •  Tecnología de códigos QR: Como ya se había comentado en entradas anteriores, teníamos contempladas varias opciones para el control y el manejo de la población del estacionamiento, donde terminamos eligiendo los códigos QR (sobre Código de Barras, Tarjetas Magnéticas y Chips RFID) en parte debido a los costos de su implementación ( para todas las demás opciones era necesario un lector especial y en algunos casos un emisor), pero mayormente debido a que es una tecnología "actual/nueva", donde principalmente tomamos muy en cuenta el hecho del deterioro/daño de los comprobantes expedidos (los codigos de barras no se pueden leer si falta una parte de el, tarjetas magneticas hay que cuidarlas del daño en las bandas y las quebraduras, y los RFID de igual manera hay cuidar su manejo, lo que practicamente quedaría a merced del usuario) y debido a que la tecnología QR cuenta con una especie de seguros, que permiten validar el código aún y cuando este deteriorado. Además de un mayor espacio para guardar información y su capacidad de ser leído desde diferentes posiciones, lo que hace acelera el proceso de lectura.
  • Miniprinter: Esta, como su nombre lo dice, es una impresora de tamaño más pequeño que una impresora normal o promedio, generalmente se usa en los centros comerciales para la emisión de tickets o comprobantes de pago. En nuestro proyecto cumplirá la función de imprimir los códigos QR generados, para así poder entregarlos fisicamente al usuario (el dueño del auto).

  • Camara Fotográfica (WebCam):  Su función a cumplir, la de otorgar la posibilidad al sistema de leer los códigod QR generados con anterioridad y con esto realizar la búsqueda del auto y poder entregarlo.
En el plano del software (librerías):

Ellenguaje que usaremos principalmente para el desarrollo será Python, por lo que la moyaría de las herramientas en este apartado son librerías usadas (su respectiva implementación) para este lenguaje.
  • MySQL y Python: Para la conexion de la base de datos, sera necesario el uso de la herramienta de MySQL y el uso de la libreria: MySQLdb 
  •  //Ejemplo de esto
  • PySerial: Esta librería sirve para establecer una conexión serial entre diferentes dispositvos, en este caso se usará para entablar la comunicación entre el Arduino y la computadora. 
    Un ejemplo del uso de esta librería. En este programal, la librería se usa para comunicarse con el Arduino y así controlar un carro de R/C mediante los botones que se ubican en la interfaz lanzada.
    from Tkinter import *
    
    import serial  
    
    s=serial.Serial(2,115200)
    
    def fl():
     s.write('a')
     r=s.read()
     print r
    
    def f():
     s.write('s')
     r=s.read()
     print r
    
    def fr():
     s.write('d')
     r=s.read()
     print r
    
    def rl():
     s.write('z')
     r=s.read()
     print r
    
    def r():
     s.write('x')
     r=s.read()
     print r
     
    def rr():
     s.write('c')
     r=s.read()
     print r
    
    def stop():
     s.write('p')
     r=s.read()
     print r
    
    
    ventana=Tk()
    ventana.title('RController')
    ventana.configure(background='white')
    
    img0=PhotoImage(file='0.gif')
    img1=PhotoImage(file='1.gif')
    img2=PhotoImage(file='2.gif')
    img3=PhotoImage(file='3.gif')
    img4=PhotoImage(file='4.gif')
    img5=PhotoImage(file='5.gif')
    img6=PhotoImage(file='6.gif')
    
    botonfl=Button(ventana, image=img1, command=fl).grid(row=2,column=2)
    botonf=Button(ventana, image=img2, command=f).grid(row=2,column=4)
    botonfr=Button(ventana, image=img3, command=fr).grid(row=2,column=6)
    botonst=Button(ventana, image=img0, command=stop).grid(row=3,column=4)
    botonrl=Button(ventana, image=img4, command=rl).grid(row=4,column=2)
    botonr=Button(ventana, image=img5, command=r).grid(row=4,column=4)
    botonrr=Button(ventana, image=img6, command=rr).grid(row=4,column=6)
    
    ventana.mainloop()
    
     
  • PyQREncode: Librería para python, que será la encargada de generar los códigos QR que pueden ser guardados directamente como una imagen para su posterior impresión, esta librería  además de crear, permite la lectura de códigos QR ya sea desde una imágen de archivo o una imágen tomada directamente desde la webcam.
           //ejemplo de esto  y la imagen del QR generado







#!/usr/bin/env python                                                           
# -*- coding: utf-8 -*-                                                         

import qrencode
texto=raw_input('Texto: ')
imagens = qrencode.encode_scaled(texto, 300, version=3, level=3, hint=3, case_s\
ensitive=False)[2]
print imagensa
a='./'+texto+'2'+'.png'
imagens.save(a)



Las imagenes que nos crea son las siguientes:






























Como vemos los qr que se crean son diferentes =D