[Olpc-uruguay] Consulta Programacion USB

Flavio Danesse fdanesse en gmail.com
Sab Oct 2 17:15:50 EDT 2010


ok, gracias.

El 2 de octubre de 2010 17:43, Andres Aguirre <aaguirre en fing.edu.uy>escribió:

> Hola Flavio! como estas?
>   Si te interesa armarte un butiá, tendrías que comenzar encargando
> dos motores ax12, una placa arduino mega (en roboshop venden) un kit
> de sensores (
> http://www.robotshop.ca/seeedstudio-electronic-brick-sensor-shield-starter-kit-arduino-1.html
> )
> al menos un sensor infrarojo para detectar tonos de gris:
> http://www.robotshop.ca/inex-infrared-reflective-sensor-TCR-2.html al
> menos un sensor infrarojo para sensar distancias
> http://www.robotshop.ca/sharp-gp2d120-ir-range-sensor.html . Los
> cortes en acrílico y el circuito que se diseño para conectar los
> sensores lo estamos por colgar en nuestro sitio, dentro de poco lo
> podrás encontrar en
> http://www.fing.edu.uy/inco/proyectos/butia/publicaciones.html junto
> con el part list y los detalles de las ruedas que compramos,
> tornillos, etc.  De todas formas te conviene comenzar por las compras
> de la placa arduino, sensores, y motores.
> Te comento que también estamos trabajando en una versión butiá
> económica que pueda ser armada con material de desecho y con
> materiales adquiribles en plaza que esperemos este pronta para antes
> de fin de año.
> Saludos y estamos en contacto
> Andrés
>
> 2010/9/27 Flavio Danesse <fdanesse en gmail.com>:
> > Aprovecho tu mensaje ay que dices que trabajas con la gente de butiá.
> > En el minijam artístico estuve hablando con gonchi porque me interesaría
> > hacerme de un robot para experimentar tranquilo en mi casa y me dijo que
> > mandara un mail al proyecto, que ellos me armaban el robot si yo pagaba
> los
> > componentes.
> > Les mandé el mail pero nunca me contestó nadie. A ver si tu puedes
> hacerme
> > esta gestión te agradezco.
> >
> >
> >
> > El 27 de septiembre de 2010 17:22, Andres Aguirre <aaguirre en fing.edu.uy>
> > escribió:
> >>
> >> Marcos, como estas?
> >> Yo estoy participando en el proyecto Butiá y estamos abiertos para
> >> evacuar cualquier tipo de dudas que tengas respecto a como controlamos
> >> periféricos desde la ceibalita mediante el USB.
> >> Creo que ya te contestamos a tí o a alguien de tu equipo una consulta
> >> sobre estos temas, pero estamos abiertos para juntarnos y charlar
> >> sobre los detalles técnicos si lo deseas.
> >> Nosotros usamos placas de E/S que utilizan microcontroladores para
> >> comandar los dispositivos electrónicos y estas se conectan al USB de
> >> la ceibalita. Todos los fuentes del proyecto están publicados en la
> >> web del mismo http://www.fing.edu.uy/inco/proyectos/butia/ en
> >> particular hoy pensamos subir la versión 1.0 de los fuentes (tanto
> >> hardware como software y diseño mecánico).
> >> El tema es que el USB es un protocolo más complejo de lo que es el
> >> serial o el paralelo y uno termina perdiendo la flexibilidad que se
> >> tenia antes con los puertos paralelos  para manejar un pin digital
> >> directamente desde un programa, por eso es que nosotros usamos
> >> microcontroladores. No pensaron en usar alguna cosa sencilla que te
> >> convierta en USB en un paralelo? algún chip de ftdi como el
> >> http://www.ftdichip.com/Products/ICs/FT245R.htm
> >> Sino "hackear" algún teclado USB roto para colgarse de las patas que
> >> se usan para el led de num lock, blocks o similares ya que esos son
> >> controlables por software en un linux estándar (no se si se tendrán
> >> permisos en la ceibalita) y se tiran a la basura muchos diariamente.
> >> un abrazo
> >>
> >>
> >>
> >> --
> >> /\ndrés
> >>
> >>  amviera en adinet.com.uy <amviera en adinet.com.uy>:
> >> > Gracias Flavio.
> >> >
> >> > Alguna vez pregunté acerca de eso y nadie me dio mucho corte.
> >> > Tampoco he podido acceder a información desde el proyecto BUTIA,
> aunque
> >> > sé
> >> > que ellos utilizan el puerto USB
> >> >
> >> > Sólo hay que averiguar cómo escribir y leer datos (nivel alto o bajo)
> en
> >> > los
> >> > pines 2 y 3 del puerto. No debbe ser nada complicado.
> >> >
> >> >
> >> > Probé, pero no pude instalar pyusb.
> >> >
> >> > Además, Adrián, entre los pines 1 y 4 alimentás el motor (si no
> consume
> >> > mucho) y entre los pines 2 y 3, respecto a masa, podés controlar
> puertas
> >> > lógicas o relés (transistor por medio) para regular la marcha del
> motor,
> >> > es
> >> > decir, para controlar encendido y apagado, velocidad, e incluso
> sentido
> >> > del
> >> > giro. Y con un poco de ingenio, con engranajes o poleas lo podés
> >> > convertir
> >> > en un robot.
> >> >
> >> > Si te interesa te puedo ayudar con la parte electrónica, aunque yo
> >> > necesito
> >> > que alguien más ayude con la programación del puerto.
> >> >
> >> > Saludos, Mauricio Viera.
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > ----Mensaje original----
> >> >
> >> > De: fdanesse en gmail.com
> >> >
> >> > Fecha: 25/09/2010 00:25
> >> >
> >> > Para: "Comunidad ceibalJAM"
> >> >
> >> > Asunto: Re: [Olpc-uruguay] Consulta Programacion USB
> >> >
> >> >
> >> >
> >> > Hola.
> >> >
> >> > Como primera respuesta, te digo que nunca he hecho nada con los usb
> pero
> >> > ya
> >> > quedo haciendo experimentos.
> >> > Click acá para bajarte pyusb que es el paquete que necesitas para
> hacer
> >> > esto
> >> > con python, se instala haciendo python setup.py install desde la
> >> > terminal en
> >> > el directorio descomprimido.
> >> >
> >> >
> >> > Esto no viene en la xo, y no lo vas a poder instalar, al menos yo no
> >> > pude,
> >> > tendrás que hacer algunos malabares para que funcione, pero vete
> >> > acostumbrando porque sin root no hay más remedio.
> >> >
> >> > Lo otro que habría que investigar es como acceden los de robótica a
> los
> >> > usb,
> >> > pregunta en "proyecto Butiá".
> >> >
> >> >
> >> > Acá te dejo un ejemplo de acceso a las impresoras utilizando pyusb:
> >> >
> >> > import usb
> >> > import os
> >> >
> >> > import sys
> >> > import time
> >> > import types
> >> >
> >> >
> >> > class Printer:
> >> >
> >> >
> >> >     '''
> >> >     Clase que maneja directamente el puerto USB, preguntando al
> hardware
> >> > conectado
> >> >
> >> >     los parametros indicativos del mismo.
> >> >     '''
> >> >
> >> >
> >> >     def __init__(self, device, configuration, interface):
> >> >
> >> >         if PRINTER_CLASS != interface.interfaceClass:
> >> >
> >> >             raise TypeError, "Tipo de interface non valido!"
> >> >
> >> >
> >> >         self.__devhandle = device.open()
> >> >         self.__devhandle.setConfiguration(configuration)
> >> >
> >> >         self.__devhandle.claimInterface(interface)
> >> >         self.__devhandle.setAltInterface(interface)
> >> >
> >> >
> >> >         self.__intf = interface.interfaceNumber
> >> >         self.__alt    = interface.alternateSetting
> >> >
> >> >
> >> >         self.__conf = (type(configuration) == types.IntType \
> >> >                         or type(configuration) == types.LongType) and
> \
> >> >
> >> >                         configuration or \
> >> >                         configuration.value
> >> >
> >> >
> >> >         self.__bulkout    = 1
> >> >         self.__bulkin     = 0x82
> >> >
> >> >
> >> >     def __del__(self):
> >> >
> >> >
> >> >         try:
> >> >             self.__devhandle.releaseInterface(self.__intf)
> >> >
> >> >             del self.__devhandle
> >> >         except:
> >> >             pass
> >> >
> >> >
> >> >     def getDeviceID(self, maxlen, timeout = 100):
> >> >
> >> >
> >> >         return self.__devhandle.controlMsg(requestType = 0xa1,
> >> >                                            request = 0,
> >> >
> >> >                                            value = self.__conf - 1,
> >> >                                            index = self.__alt +
> >> > (self.__intf
> >> > << 8),
> >> >
> >> >                                            buffer = maxlen,
> >> >                                            timeout = timeout)
> >> >
> >> >
> >> >     def getPortStatus(self, timeout = 100):
> >> >
> >> >
> >> >         return self.__devhandle.controlMsg(requestType = 0xa1,
> >> >                                            request = 1,
> >> >
> >> >                                            value = 0,
> >> >                                            index = self.__intf,
> >> >
> >> >                                            buffer = 1,
> >> >                                            timeout = timeout)[0]
> >> >
> >> >     def softReset(self, timeout = 100):
> >> >
> >> >         self.__devhandle.controlMsg(requestType = 0x21,
> >> >
> >> >                                        request = 2,
> >> >                                        value = 0,
> >> >
> >> >                                        index = self.__intf,
> >> >                                        buffer = 0)
> >> >
> >> >
> >> >
> >> >     def write(self, buffer, timeout = 100):
> >> >
> >> >
> >> >         return self.__devhandle.bulkWrite(self.__bulkout,
> >> >                                           buffer,
> >> >
> >> >                                           timeout)
> >> >
> >> >     def read(self, numbytes, timeout = 100):
> >> >
> >> >
> >> >         return self.__devhandle.bulkRead(self.__bulkin,
> >> >                                          numbytes,
> >> >
> >> >                                          timeout)
> >> >
> >> > class usbDispositivo:
> >> >
> >> >
> >> >     '''
> >> >     Modelo de datos de un dispositivo USB (tipo VO)
> >> >
> >> >     '''
> >> >
> >> >     def __init__(self,dispositivo):
> >> >
> >> >
> >> >         self.archivo = ''
> >> >         self.clase = ''
> >> >
> >> >         self.subClase = ''
> >> >         self.protocolo = ''
> >> >
> >> >         self.idFabricante = ''
> >> >         self.idProducto = ''
> >> >
> >> >         self.version = ''
> >> >         self.descripcion = ''
> >> >
> >> >         self.archivo = dispositivo.filename
> >> >         self.clase = dispositivo.deviceClass
> >> >
> >> >         self.subClase = dispositivo.deviceSubClass
> >> >         self.protocolo = dispositivo.deviceProtocol
> >> >
> >> >         self.idFabricante = dispositivo.idVendor
> >> >         self.idProducto = dispositivo.idProduct
> >> >
> >> >         self.version = dispositivo.deviceVersion
> >> >
> >> >         try:
> >> >
> >> >             self.descripcion = dispositivo.open().getString(1,30)
> >> >         except:
> >> >
> >> >             self.descripcion = ''
> >> >
> >> >     def getArchivo(self):
> >> >
> >> >         return self.archivo
> >> >
> >> >     def getClase(self):
> >> >
> >> >         return self.clase
> >> >
> >> >     def getSubClase(self):
> >> >
> >> >         return self.subClase
> >> >
> >> >     def getProtocolo(self):
> >> >
> >> >         return self.protocolo
> >> >
> >> >     def getIdFabricante(self):
> >> >
> >> >         return self.idFabricante
> >> >
> >> >     def getIdProducto(self):
> >> >
> >> >         return self.idProducto
> >> >
> >> >     def getVersion(self):
> >> >
> >> >         return self.version
> >> >
> >> >     def getDescripcion(self):
> >> >
> >> >         return self.descripcion
> >> >
> >> >
> >> >
> >> >
> >> > El 24 de septiembre de 2010 22:19, Adrian Silveira <adance en gmail.com>
> >> > escribió:
> >> >
> >> >> Hola a Todos,
> >> >>
> >> >>        mi nombre es Adrián y participo del proyecto de extensión
> >> >> "Isaac,
> >> >> Nikola y Galileo van a la Escuela (INGE) y los estudiantes también"
> >> >> (INGE)
> >> >> de la Facultad de Ingeniería. Se trata de desarrollar actividades
> >> >> relacionadas con la física en escuelas de contexto crítico en
> Canelones
> >> >> y de
> >> >> esta forma mostrarles que hay otra profesión a la que pueden aspirar.
> >> >> Es una
> >> >> propuesta muy rica, interesante, alentadora, ambiciosa, esperamos que
> >> >> tenga
> >> >> un gran impacto en ellos.
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> Como parte de nuestras actividades, queríamos mostrarles a escolares
> >> >> de cuarto año de escuela como controlar por software un
> >> >> ventilador enchufado
> >> >> a un puerto USB. Ellos lo armarían con los materiales que les damos
> >> >> (cable
> >> >> de datos usb, motor, cartulina) y luego enchufándolo a la ceibalita
> por
> >> >> el
> >> >> puerto usb se alimentaría de energía para funcionar. Lo que nos
> >> >> gustaría es
> >> >> poder desarrollar un programita bien sencillo, que haga de on/off de
> la
> >> >> corriente en el puerto usb para así enceder/apagar el ventilador.
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> Agradezco en base a su experiencia si me pueden orientar en si
> >> >> es factible
> >> >> desarrollar un programa que haga esto y todo lo que me puedan aportar
> >> >> para
> >> >> hacerlo se los agradezco.
> >> >>
> >> >>
> >> >> Muchas Gracias
> >> >>
> >> >> Saludos
> >> >> Adrián
> >> >>
> >> >> --
> >> >> "Podría Estar Encerrado en una Cascara de Nuez y Sentirme Rey de un
> >> >> Espacio Infinito..."
> >> >>
> >> >>
> >> >> _______________________________________________
> >> >>
> >> >> Olpc-uruguay mailing list
> >> >>
> >> >> Olpc-uruguay en lists.laptop.org
> >> >>
> >> >> http://lists.laptop.org/listinfo/olpc-uruguay
> >> >>
> >> >>
> >> >
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > _______________________________________________
> >> > Olpc-uruguay mailing list
> >> > Olpc-uruguay en lists.laptop.org
> >> > http://lists.laptop.org/listinfo/olpc-uruguay
> >> >
> >> >
> >>
> >>
> >>
> >> --
> >> /\ndrés
> >> _______________________________________________
> >> Olpc-uruguay mailing list
> >> Olpc-uruguay en lists.laptop.org
> >> http://lists.laptop.org/listinfo/olpc-uruguay
> >
> >
> > _______________________________________________
> > Olpc-uruguay mailing list
> > Olpc-uruguay en lists.laptop.org
> > http://lists.laptop.org/listinfo/olpc-uruguay
> >
> >
> _______________________________________________
> Olpc-uruguay mailing list
> Olpc-uruguay en lists.laptop.org
> http://lists.laptop.org/listinfo/olpc-uruguay
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.laptop.org/pipermail/olpc-uruguay/attachments/20101002/e99a7e0e/attachment.htm 


More information about the Olpc-uruguay mailing list