Abro este otro post al considerar que este tema se desvía por completo de la idea original de "Mi primer engendro". Si algún administrador considera lo contrario, que lo cierre y si me hiciera el favor de copiar el sermón que viene a continuación en el post antes mencionado, se lo agradecería, jeje.
Hasta hace unas semanas creía que un giroscopio era una bebida exótica, por lo que aquí me declaro, antes de que lleguéis vosotros mismos a esa deducción, totalmente inepto en este campo, jejeje. Por lo que pido disculpas de antemano por las tonterías que pudiera llegar a postear, jajaja.
Hace unos días compré este aparatito:
http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NGY1044 (http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NGY1044)
Si ejecuto el programilla que adjunto al final del post, con el sensor en reposo, me marca siempre entre 14 y 16.
Estoy casi convencido de que ese valor se refiere a los grados/segundo a los que gira el sensor y teniendo en cuenta que las lecturas siempre han sido en reposo, me parece demasiado.
Al ponerme en contacto con la tienda, a través del foro que tienen, me dicen que todo es normal (la respuesta ha sido rápida) a lo que les he respondido que necesito una segunda opinión. Y aquí estoy en busca de esa segunda, o mejor, tercera o cuarta opinión.
Después de esta perorata, jejeje, mi petición es clara: si alguien tiene dicho sensor, agradecería que ejecutara el programa que adjunto y reportara el resultado, siempre me marca entre 14 y 16.
Después de cotejar los resultados, estaría bien hablar largo y tendido sobre el sensor, jejeje
http://www.megaupload.com/?d=WXPIT8N5 (http://www.megaupload.com/?d=WXPIT8N5)
Gracias de antemano.
Por desgracia no dispongo del sensor por lo que no puedo realizar ninguna prueba.
Por lo que he visto en la página del fabricante es 'normal' que el sensor tenga una desviación por una serie de factores ambientales y de fabricación y es por eso que el bloque para NXT-G incorpora la opción de introducir un offset o corrección de ese valor a cero:
(http://www.hitechnic.com/contents/media/Gyro%20Front%20Panel.png)
No he podido encontrar ninguna otra 'queja' sobre este tema ni una idea del valor medio de la desviación de estos sensores para tener una idea más clara de lo que se puede considerar 'normal', pero si el valor que tienes ahora es estable (y parece que +-1 es lo normal) me parece que todo está bien.
En cuanto al programa, megaupload me dice que no está disponible, pero si es en NXC puedes incluirlo directamente en el mensaje. Si te da problemas con smileys usa las tags [code ][ /code]
Perdón por no haber mencionado que conocía la necesidad de calibrar y añadir el offset en las mediciones siguientes. Aquí adjunto el enlace de la página oficial, que calibra el giroscopio y nos marca la velocidad de rotación en grados/segundo:
http://www.hitechnic.com/file.php?f=836-Gyro_Test.zip (http://www.hitechnic.com/file.php?f=836-Gyro_Test.zip)
A continuación, el enlace a una pequeña modificación mía en la que muestra los grados totales que gira:
http://www.megaupload.com/?d=FHX0LMPW
Entiendo perfectamente que el giroscopio hay que calibrarlo, de hecho dará una lectura inicial distinta en mi pueblo (+ de 600m de altitud) que si la tomaramos al nivel del mar. Pero, que estando en reposo, marque una velocidad de 15 grados por segundo, me parece exagerado, cuando antes de calibrarlo entiendo que no tendría que marcar nunca más de +-1 grado/segundo.
Y la única manera que tengo de saber si todos los giroscopios de hitechnic están tan "gyrolocos" como el mío, es si, dos o tres de vosotros, hermanos en el ladrillo, publicáis el resultado que leeréis en la pantalla del nxt, si ejecutáis el programa que se puede descargar del enlace a megaupload del primer post, o aquí, que es el mismo, jejeje:
http://www.megaupload.com/?d=FHX0LMPW (http://www.megaupload.com/?d=FHX0LMPW)
El único lenguaje que sé usar y uso es Nxt-G. De nuevo, muchas gracias por vuestra colaboración.
A falta de un sensor para poder comprobarlo... tu 'mosqueo' proviene del hecho que consideras que 15º es mucha desviación. ¿Verdad?. Pero sinceramente estaría más moqueado si las lecturas que consigues con el sensor no fueran consistentes. Si colocas el sensor sobre un brazo conectado a un motor (tipo helicóptero o prueba de fuerzas G para la NASA) ¿la lectura es estable y siempre la misma? Si es así el sensor funciona perfectamente (ojo, que en este caso la velocidad de giro que indica el sensor tendrá una diferencia de 30º entre giro hacia la derecha y hacia la izquierda!)
Antes de abrir este post, he sometido al giroscopio a muchas y variopintas pruebas B), entre las que estuvo el montarlo sobre un motor y hacerlo girar sobre sí mismo y después sobre un brazo tipo NASA (no muy largo) no superando nunca una velocidad de más de 180 grados/segundo, y ateniéndome a los datos arrojados por mi modificación del test oficial, con un par de meneítos a la derecha y alguno a la izquierda antes de volver a su posición inicial y nunca marcaba 0 ni número cercano (no hice una notación de cada prueba).
Como soy novato en estos asuntos y mi kunfú es débil, no sé si los fallos en esas pruebas y el resto, son míos o de la deriva del giroscopio. Por lo poco que sé, un giroscopio debe ser muy preciso durante segundos, empezando a derivar en un uso medido en minutos, en cuyo caso lo corregiríamos con el uso de un acelerómetro.... Pero intentemos empezar por el principio: ¿15 grados/segundo no es un valor demasiado alto antes de calibrarlo?
Agradezco la ayuda prestada hasta el momento, pero si alguien que TENGA UN GIROSCOPIO pudiera usar el programa del siguiente enlace y reportar el resultado, se lo agradecería:
http://www.megaupload.com/?d=WXPIT8N5
Este programa lo único que hace, es reflejar en pantalla la lectura que recibe del giroscopio cuya unidad serían los grados/segundo.
Después de resolver esta duda que me está corroyendo el alma :O, jejeje, todas las consideraciones siguientes serán bien recibidas y necesarias para que todos conozcamos mejor este sensor.
De hecho, gracias a tu segunda respuesta, Jetro, he entendido porqué tenía que poner un número de grados distintintos si quería que hiciera el mismo giro a la derecha o a la izquierda, jejeje.
De nuevo, dar las gracias por la ayuda recibida, pasada y futura.
hola
yo lo tengo pero no podré hacer nada con él hasta dentro de tres semanas, no estoy en casa así que no puedo probarlo, cuando vuelva lo pruebo
un saludo
Un par de cosas a tener en cuenta: EL giroscopio es un sensor muy 'sensible' y las lecturas de dos pruebas 'identicas' facilmente serán divergentes. Hay algunas cosas que no puedes controlar y que sin embargo influyen en las lecturas. Entre ellos se encuentran:
- holguras = si el sensor puede moverse porque el brazo no es 100% rígido o porque no está perfectamente fijado esto puede hacer que las lecturas en un determinado momento sean diferentes de lo esperado
- vibraciones = no sé si el sensor está bien encapsulado o si la placa en la que está montado tiene una mínima holgura con respecto al encapsulado. También es posible que en un determinado momento la velocidad de giro no sea absolutamente constante
- variaciones en el centro de giro = en un rotor o banco de pruebas de Gs es menos probable, pero una pequeña variación en la posición exacta del centro de giro (y esto afecta de manera especial a vehículos) evidentemente cambia la velocidad de giro percibida en el sensor.
- precisión = los motores del NXT pueden ser programados para efectuar un giro con una precisión de 1º. Sin embargo hay una variación de hasta 5º en la precisión de este movimiento. Otro factor a tener en cuenta....
1º Creo que queda bastante claro en el primer post el motivo de mi duda: mi giroscopio en parado marca que gira a 15 grado/segundo.
2º Después de bucear un poco en el mundo giroscópico me parece que 15 grados/segundo en reposo es mucho, sobre todo si lo comparamos con las especificaciones del más preciso del mundo "El eje del giroscopio no se desplazará mucho, solo 0,042 arcosegundos en un año, de acuerdo con los cálculos. (Un arcosegundo es solo 1/3600 parte de un grado). Para medir este ángulo con una exactitud razonable el GP-B debe tener una precisión de 0,0005 arcosegundos".
3º Como en la tienda donde lo compré no hacen más que decirme que todo está normal, necesito algún hermano ladrillero que con un giroscopio de la marca hitechnic haga una prueba con este programa: http://www.megaupload.com/?d=WXPIT8N5 (http://www.megaupload.com/?d=WXPIT8N5) y por favor reescriba aquí los resultados.
Mientras esta duda no quede resuelta, pues es la que dio origen al post, agradecería a quien no tenga el susodicho aparatejo, pero si muchas ganas de ayudar, haga un esfuerzo y no desvíe el tema del post hacia otros asuntos tal vez más interesantes que el que yo persigo, pero que por ahora no aportan nada al motivo de este post (contrastar datos de salida del giroscopio en estado total de reposo). Vuelvo a repetir que este post va única y exclusivamente dirigido a quien tenga un giroscopio de la marca hitechnic en la mano y ganas de usar el programa más arriba incluido y reportar los resultados.
En el momento que el tema principal del post sea resuelto, invito a quien quiera usar este espacio para que todos conozcamos mejor este sensor, lo haga, pues estaría encantado de participar en ese futuro debate en el que podríamos incluso ir mostrando nuestras aplicaciones prácticas del aparatejo ( yo ya yengo un "parde", jejeje).
Gracias de nuevo por la ayuda recibida y espero impaciente vuestros aportes y las mediciones de koldo, jejeje.
Bueno pues yo soy un inútil con mi ingles y con la informática, por eso mi Mindstorm lo tengo algo olvidado pero las ganas de utilizarlo no me faltan. Bueno al grano que seguro que Minipepito estará que se sube por las paredes en este momento.
Yo tengo el giroscopio en mi mano y, o me ayudáis a conectarlo desde 0 o si Jetro ve que esto de enseñar a un torpe va a ser demasiado complicado pues no me importaría prestarlo.
Incluso esto va a mas, disponemos de 2, no es que nos guste acaparar piezas sino que hubo una oportunidad de conseguirlo en USA y compramos (WIWAEDU y YO) 2 conjuntos Mindstorm y unos cuantos ladrillos de Hitechnic es por lo que si queréis podemos hacer las pruebas, pero recordar solo para torpes. ???
He saltado de encima de un cuadro en cuanto he visto tu respuesta, carlichi.
Voy a intentar darte unos pasos para poder descargar el programa al ladrillo y ejecutarlo:
1º Un Pc con windows xp o posterior, si usaras linux también se podría arreglar, yo uso Ubuntu, jejeje.
2º Disco de instalación del sofware nxt-2 que acompaña al set 8547, lo introducimos en la unidad lectora y seguimos lo pasos de instalación.
3º Descargamos y descomprimimos el programa del siguiente enlace: http://www.megaupload.com/?d=WXPIT8N5 (http://www.megaupload.com/?d=WXPIT8N5)
4º Doble click sobre el programa descargado, y nos abrirá automáticamente el entorno de programación.
5º Conectamos el sensor en el puerto con el número 3 y lo colocamos en reposo, yo lo uso en posición horizontal, pero creo que da igual.
6º Conectamos el nxt al pc mediante un cable usb, el conector que va al ladrillo es macho de tipo B (el de las impresoras).
7º Cuando windows nos diga que ya tenemos instalado el nuevo hadrware, pinchamos sobre el icono play (el del centro)
8º Se mira el numerito que sale en pantalla y se refleja en este post.
9º Minipepito te estará agradecido por muuuuucho tiempo, jejeje.
Parece Facil :angel: Mañana en la oficina lo pruebo y te cuento, yo tengo el pincho Bluetooth lo pincho o ni me molesto y lo pongo por USB.
Ya sabes informática para torpes. ???
Mandado mensaje a WIWAEDU para que si puede se traiga el suyo y te daremos dos valores.
No te preocupes . Interés hay.
Saludos nos vemos mañana.
Para mis resultado ahi que esperar al fin de semana!!! :_( :_( :_(
Muchas gracias por vuestro interés.
Hay un pequeño paso que olvidé por completo, jejeje, descargarse el bloque de control del giroscopio:http://www.hitechnic.com/file.php?f=539-Gyro_Sensor.zip (http://www.hitechnic.com/file.php?f=539-Gyro_Sensor.zip)
Luego dentro del entorno de programación, pinchamos en la pestaña "Tools" y en la ventana que se nos abre pulsamos "Block Import and Export Wizard". Después de buscar la ubicación del lugar donde hemos descomprimido el bloque, seleccionamos que lo guarde en sensor y ya ta, jejeje.
Como es normal, no todo funcionará a la primera, pero ya lo haremos funcionar, jejeje.
Hola Minipepito:
Después de realizar las pruebas este es el resultado:
Tenemos en cuenta que estamos en Málaga España a 10mt sobre el nivel del mar (y tu donde estas?) me gusta saber donde esta la gente.
Con el programa tuyo Salidagyro.rtb el valor que nos da es 3
Con programa de Gyrotest.rtb el valor que nos da es 0 siempre que no movamos el sensor durante los 10 primeros segundos.
Con el programa que te muestro abajo el valor que muestra es 120 con una potencia de giro de los 2 motores de 50%
Parece que habrá que calibrar. :P
PD: Menos mal que estaba wiwaedu que si no ÔÔ
Muchas gracias, carlichi y wiwaedu, por vuestra inestimable colaboración.
Tus datos, no vienen más que a reforzar mis sospechas, me han vendido un calcetín haciéndome creer que es un giroscopio :_(.
Tu giroscopio tiene una deriva aceptable, basándome en los datos que he recopilado en la red. Aquí dejo otra prueba que confirma el resultado de carlichi como correcto : http://www.hempeldesigngroup.com/lego/pbLua/tutorial/pbLuaGyro.html (http://www.hempeldesigngroup.com/lego/pbLua/tutorial/pbLuaGyro.html)
En el caso anterior, el autor solo tiene 2,25 grados/segundo de desviación, cerca de tus pruebas y muy lejos de los 15 grados/segundo de mi caso.
Armado con el poder de los datos contrastados, poder que nunca hubiera tenido sin la ayuda de carlichi, voy acontinuar mi cruzada personal con quien quiere darme gato por liebre, y conseguir de una vez un giroscopio de verdad para jugar con él.
Invito a que quien quiera a partir de ahora. a rebatir mis razonamientos, lo haga con datos en la mano y no imbuido de ciencia infusa.
Por cierto, soy de Ciudad Real, pero mi sangre es de los montes de tu tierra, carlichi, pues mi padre es oriundo de Alfarnate.
Me ha gustado hacer pruebas con el giroscopio... ahora solo me queda pensar para que artefacto se puede usar... ÔÔ
Cita de: Minipepito en 25 de Marzo de 2010, 17:26:12 PM
...mi sangre es de los montes de tu tierra, carlichi, pues mi padre es oriundo de Alfarnate.
Pues yo voy cada fin de semana a Colmenar!! xD
Sigo sin tener el sensor.
Ahora, antes de que sueltes otra de tus lindezas determinando lo que se puede y no se puede decir en este hilo, lee y presta atención.
He hecho lo que probablemente deberías haber hecho tú desde el principio: ponerme en contacto con HiTechic. El sensor devuelve un valor entre 0 y 1023 y lo que tú consideras 0 en realidad se corresponde con un valor de 600 ya que el bloque NXT-G está hecho para representar un valor 600 como 0. Si hicieras las pruebas con NXC te devolvería un valor de 615 en tu caso, que según HiTechnic "is well within the reasonable range" (por si en inglés te cuesta: bien dentro del rango razonable).
De hecho, si lees la página de Ralph Hempel que citas en tu último mensaje con cuidado, apreciarás que a él le sale un valor de 617 (para ser más exactos una media ponderada de 617.8 tras 20 lecturas seguidas), valor muy similar e incluso superior al que tienes tú. (Y en ningún momento menciona un valor de desviación de 2,25º)
Ahora que ya sabes que tu giroscopio funciona perfectamente (y que solo tienes que poner el valor 15 en la casilla Offset del bloque NXT-G como ya te dije en la primera contestación) a ver con qué aplicación para el sensor nos sorprendes ;)
Osea que según el lenguaje que se use para programar el NXT se tiene una escala diferente para el rango.
Muy bueno saber que no están unificadas las escalas, siendo la misma pieza, por si algún día pudiera desarrollar lo poco que sé de C con el NXT.
Gracias por la investigación Jetro ;)
Vaya, ahora me habeis picado, directo a la Wanted List xD
Por cierto, una desviación de 17 respecto 2^10 está muy bien para ser "un juguete". Los sensores con los que he hecho algún robot (no NXT) el cuatrimestre pasado daban auténtica pena. :_(
Quiero pedirte disculpas, jetro, por la dureza con la que te he tratado, sobre todo si tenemos en cuenta el post al que sustituye esta disculpa.
Todos mis calculos han sido incorrectos desde el principio y armado con mi ignorancia he arremetido contra ti, quien sin el gioscopio en la mano ha sido el que mas dudas me ha resuelto y hecho que tenga mejor conocimiento del sensor.
Te pido de corazón que me perdones, con la promesa de que guardare la prepotencia que hasta este momento me ha caracterizado, en un cajón muy profundo.
Encantado de haberte podido ayudar. De paso también he aprendido un par de cosas sobre un sensor que hasta la fecha tenía poco tratado. Aún hay algunas cosas que me gustaría aprender al respecto así que si te parece bien podemos continuar el hilo (o abrir otro si lo prefieres) para acumular estos conocimientos adquiridos en el mismo lugar tanto para beneficio nuestro como para quien el día de mañana se encuentre con el mismo problema.
Buena contestación Jetro se nota tu experiencia en el trato de foreros.
Minipepito te has pasao aunque has sabido rectificar a tiempo.
Jetro si quieres a favor de la comunidad no me importaría prestarlo ya que como comentaba, el que tengo, lo tenia sin utilizar y gracias a vosotros he visto que no parece difícil trabajar con NXT.
Tengo mas ladrillos HiTechnic por lo que si necesitas más ya sabes solo da un silbido. o_o
Wiwaedu y yo estamos dispuesto a aprender con vuestra ayuda, yo más que él (lo necesito más, soy mas torpe con esto de las nuevas tecnologías y mi ingles es pésimo :-\) todo lo que este escrito en ingles me da un poco de alergia.
Bueno espero seguir aprendiendo gracias a vosotros.
De vez en cuando no viene mal un pequeño roce de opiniones.
Agradecido por tu perdon, jetro. Y Tambien disculparme con el resto de foreros por mi actitud.
Me gustaría de momento continuar es este hilo, pues mi giroscopio es más chuleta que yo y ha decidido vacilarme, explico:
Anoche despues de mi rabieta hacia jetro, empece a repetir las pruebas como tantas veces al día, y tras usar este programa:http://www.megaupload.com/?d=FHX0LMPW (http://www.megaupload.com/?d=FHX0LMPW) tantas veces usado, incluso el mismo día, el giroscopio empieza a comportarse como el de carlichi, no se mueve al 1 hasta por lo menos 10 segundos deribando en un minuto no más de 4 grados. Tierra tragame. He repetido el test hasta que este mediodia agoté la bateria del nxt con identicos resultados. Cargado el ladrillo, y yo, con la barriga llena y una buena siesta en mi cuerpo, retomo las pruebas y ...Tachann... ha vuelto la deriba de más de un grado por segundo, toma ya, con un par de narices. Cierto es, que si no hubiera empezado el giroscopio a presentar resultado faborables, no me habría replánteado mi postura, por lo que le agradezco al giroscopio que el también cambiara de actitud, aunque solo fuese por unas horas.
Creo haber disfrutado durante unas horas del correcto funcionamiento del sensor, y me ha gustado, jejeje, no sé porqué ha cambiado de pronto su comportamiento, ni si de pronto volvera a funcionar como anoche ¿le habrá afectado la carga?, estoy completamente perdido.
A ver si me entero?
Citarauthor=Jetro .
Re: Instrucciones de montaje para Mindstorms Next
« Respuesta #25 en: 11 de Octubre de 2009, 14:56:30 »
El acelerómetro mide cambio de velocidad:
- empieza a girar y lo detecta.
- sigues girando la misma velocidad y NO lo detecta
- mide tres ejes
El giroscopio mide cambios de inclinación:
- empiezas a girar y lo detecta
- sigues girando a la misma velocidad y SI lo detecta
- mide un solo eje
velocidad e inclinación son pues conceptos 'opuestos'.
De alguna manera se podría decir que un giroscopio es como una brújula, pero se puede usar en un eje distinto que solo el horizontal
Leyendo en la pagina de
HiTechnic dice que la posición idónea del giroscopio es en posición vertical.
¿Daría los mismos valores en posición horizontal, vertical o inclinada?
¿Detectaría movimientos en vertical? o para eso hay que utilizar un acelerómetro.
Respondo con mis limitados conocimientos de Mecánica. o_o
Citar¿Daría los mismos valores en posición horizontal, vertical o inclinada?
Teóricamente sí, en la práctica seguramente no por cuestiones de geometría y dinámica.
Citar
¿Detectaría movimientos en vertical? o para eso hay que utilizar un acelerómetro
En términos de mecánica Teórica tendrías que subir perfectamente vertical (mejor dicho, dentro del rango de error de medida) para que el giróscopo no lo detectase. Otra cosa es para la aplicación que lo uses.
Si pretendes detectar si algo sube (Se acelera verticalmente) efectivamente, el acelerómetro es mejor para ese movimiento :)
De todas maneras he de deciros que aunque suene mal este sensor es "un juguete", es decir, no podemos pedirle una precisión extrema a algo que está destinado al consumo infantil-juvenil y a bajo coste. Lo he podido comprobar en la carrera con los diferentes sensores que he utilizado para hacer robotitos y prácticas. Se tarda más en calibrar adecuadamente los sensores que en hacer un robot en sí. Alguno de los que nosotros hemos tenido llegaba a dar errores del 25%, pero programando según se calibraba obteníamos el resultado deseado. :)
Por cierto, en mi opinión los rangos de error que ponéis son más que aceptables para ser un sensor de 50€. Las medidas que das, minipepito son menores del 5%. Una maravilla en términos estadísticos.
Saludos!
La diferencia en la deriva desde luego es más que curiosa.
Antes de seguir quiero exponer algunos datos que he ido recopilando. Las especificaciones del sensor indican que es capaz de medir +-360º/s. Esto significa que puede leerla tanto en positivo como en negativo por lo que el rango total de medición del sensores de al menos 720º. Digo al menos, porque cuando un fabricante asegura que su producto puede hacer X normalmente hay un pequeño margen para que esto se cumpla en el 100% de los casos. De hecho, el sensor puede (técnicamente) medir 1024º y cada unidad de valor que informa el sensor corresponde a 1º.
Al tratarse de un sensor sencillo, barato, un complemento a un juguete, las tolerancias son amplias, pero no por ello malas. Me explico: aunque los motores del NXT se pueden programar en pasos de 1º, es fácil comprobar como con el motor parado hay una holgura de aproximada 5º de tolerancia que permite mover el eje de salida sin que el sensor de rotación interno lo detecte. Sabiendo esto, es posible tomar medidas tanto en la programación como en la construcción de un robot para que esta holgura no tenga efectos negativos sobre el comportamiento de un robot.
Como se desprende de la información en la pagina de Ralph Hempel hay que tener en cuenta que el sensor no siempre dará exactamente la misma lectura aún cuando no se mueve y Gus Jansen me comenta que en sus experimentos con el sensor, el valor que reflejaba el sensor era un 25% superior al valor calculado en base a la velocidad del motor.
Por lo tanto parece que sea importante nunca usar una sola lectura sino una media ponderada (como en el ejemplo de programa que se encuentra en la pagina de HiTechnic) y que merece la pena hacer un calibrado automático al inicio de cualquier programa que use este sensor.
Dicho lo cual, releyendo tu primer mensaje, parece que tu duda inicial no era sobre la deriva sino sobre el valor (posiblemente demasiado alto) que en todo momento mostraba el sensor, y mencionas una lectura relativamente constante entre 14 y 16 (es decir, +-1). Ese valor por lo tanto no es un valor de deriva sino de posición de "0" algo desplazada de la esperada. ¿Seguimos hablando de lo mismo o se ha presentado un nuevo problema?
Cita de: carlichi69 en 26 de Marzo de 2010, 21:31:06 PM
Leyendo en la pagina de HiTechnic dice que la posición idónea del giroscopio es en posición vertical.
Yo no encuentro esto en la página de HiTechnic...
Cita de: Jetro en 26 de Marzo de 2010, 21:57:34 PM
Yo no encuentro esto en la página de HiTechnic...
Jetro, lo pone por aqui: http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NGY1044 (http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NGY1044)
Cita de: HitechnicThe axis of measurement is in the vertical plane with the gyro sensor positioned with the black end cap facing upwards is shown.
Traducido significa: El eje de medición se encuentra en el plano vertical cuando el sensor se coloca con la tapa negra hacia arriba.
Eso no dice nada sobre en qué plano funciona mejor o pero, simplemente indica la orientación del plano de lectura. Si colocas el sensor sobre una mesa con los conectores para pins hacia arriba el plano de lectura será el horizontal.
La verdad es que probandolo funciona igual en todas las posiciones :)
Según las pruebas realizadas esta mañana, la máxima velocidad angular que marca mi giroscopio es +398 grados/segundo -533 grados/segundo en el plano horizontal.
Aquí, una pequeña aplicación, http://www.megaupload.com/?d=KATU8RYV (http://www.megaupload.com/?d=KATU8RYV), que hace que unas orugas giren 90 grados en sentido positivo, pero si algo detiene el giro por completo antes de llegar a los 90 grados, los motores se paran.
Cuando me quise enfrentar a mi segundo reto, un sistema de guiado que sustituyera a un Adder/Subtractor, me di cuenta de que el robot, desde el primer segundo, tendía a cabecear hacia la derecha,lo que inició las mediciones que me llevaron a comprobar que en reposo y usando el programilla que marca los grados que gira, si pasaban 10 segundos, 10 grados que a mí me sumaba, y esto lo relacioné equivocadamente con la deriva incial. Pero el problema sigue ahí, pues a carlichi en 10 segundos le suma un grado.
Edit Cambiado por un programa sin Blocks.
El archivo que has subido a Megaupload no sirve tal como está. Para que podamos usarlo tienes que usar la opción Pack&Go de NXT-G que incluye toda la información necesaria como (en este caso) los MyBlocks necesarios para que un programa funcione. (Tools > Create Pack and Go...)
Asimismo, mientras el programa total (o la compresión en zip) no pese más de 192kb puedes adjuntarlo directamente a tu siguiente mensaje
Cambiado el enlace a un programa sin blocks.
Estoy leyendo el programa, pero hay algunas cosas que no acabo de entender....
Vayamos por partes.
Para inicializar variables no hace falta escribir una valor mediante otro bloque. Lo puedes hacer directamente desde el panel de configuración de cada variable. Así para resetear Calibrar simplemente puedes escribir el valor 0 en ese panel del bloque que usas para resetearlo y listo.
Lo mismo va para la variable 'verdadero'
A continuación pones en marcha el motor y acto seguido haces una lectura del giroscopio con el offset (diferencia) obtenido anteriormente. Luego vuelves a usar la Diferencia para sumarla a la lectura obtenida, pero de ese modo anulas la corrección que acabas de hacer! ¿Puedes explicar porqué haces eso?
Siempre es buena idea añadir anotaciones al código para que pasado un tiempo puedas saber fácilmente porqué en un determinado momento decidiste hacer algo de X manera... y para que otros entiendan porqué el código se ha escrito así ;)
Una cosa. Si tienes NXT-G 2.0 ¿podrías hacerme el favor de crear un Pack and Go tanto del programa con MyBlocks como el otro? - quiero comprobar algo sobre el comportamiento de variables al trasladar programas a otro equipo. Gracias de antemano.
Gracias por lo de las variables, jejeje, estaba seguro de que posteando el programa iba a depurarse y mejorar mucho.
El porqué de volver a sumar el offset, no lo entiendo, pero explicaré por qué lo añadí y qué efecto tiene.
Fue la segunda respuesta de jetro en este post la que me hizo realizar ese cambio, y no me pidáis explicaciones al respecto, pues no lo entiendo ni yo. El caso es que si no lo sumas en los giros hacia el + o lo restas en los giros al -, suma en grados el offset por cada cantidad de giro fijo, en mi caso, cada 60 grados hacia el + y cada 30 al -. Como la cantidad de grados en mi caso, son múltiplos de mi offset(15), estoy casi seguro de que hay una regla más precisa.
Ahí va el programa empaquetado: http://www.megaupload.com/?d=PCL5UTV2 (http://www.megaupload.com/?d=PCL5UTV2)
Intentaré mejorar las explicaciones dentro del programa o_o.
No he tenido tiempo de analizar el código más allá de algunas pautas básicas de programación.
Hay una diferencia muy notable entre el archivo rbt y el rbtx. Este último se crea con el Pack and Go y con ese método me es posible acceder a las variables usados en el programa como si fuesen míos mientras que de la otra manera las variables no me muestran el panel de configuración correcto y no aparecen en mi lista de variables creados.
De momento lo único que he hecho es simplificar el código para que veas que puedes conseguir el mismo resultado con la mitad de bloques (entre configuración de variables y otros cambios que podrás ver en este programa.
Espero que puedas acceder a la descarga porque he tenido que esperar 6 horas para poder descargar la tuya.
http://www.megaupload.com/?d=XEFUAWR2
Cuando comentes el programa incluye también una descripción general de lo que se supone que hace el programa. De lo contrario es muy difícil saber si efectivamente hace lo que debe.
El arreglo que propones, ya lo intenté en su día con idénticos resultados, el robot se para al comezar a girar, de nuevo no sabría explicar el porqué, jejeje, por lo que volvemos al programa como estaba antes.
Cita de: Jetro en 27 de Marzo de 2010, 22:58:39 PM
Cuando comentes el programa incluye también una descripción general de lo que se supone que hace el programa. De lo contrario es muy difícil saber si efectivamente hace lo que debe.
No sé si lo que me pides es que comente su funcionamiento dentro del programa, pues si te refieres a que simplemente diga que hace, ya lo expliqué en el post en el que aparcece por primera vez el programeja
Cita de: Minipepito en 27 de Marzo de 2010, 00:00:20 AM
Aquí, una pequeña aplicación, http://www.megaupload.com/?d=KATU8RYV (http://www.megaupload.com/?d=KATU8RYV), que hace que unas orugas giren 90 grados en sentido positivo, pero si algo detiene el giro por completo antes de llegar a los 90 grados, los motores se paran.
No encuentro en el programa ninguna función que compruebe si el robot se ha girado 90º. El giroscopio solo indica con qué velocidad estás girando, no detecta cuantos grados has girado. Para saber eso tienes que calcular cuanto tiempo estuviste girando a X velocidad y calcular la distancia aunque te advierto que ese calculo va a ser muy poco preciso.
En cuanto a la descripción del programa. Efectivamente me refiero a que lo incluyas dentro del mismo programa. Puedes hacerlo de la manera más efectiva pinchando en el icono del NXT al principio de la barra de secuencia donde colocas los bloques NXT-G.
En cuanto a los cambios que hice, eliminando un número considerable de bloques. Ahora mismo te da igual, pero te aseguro que medida que vas haciendo programas más grandes querrás usar el mínimo número de bloques para evitar que la interfaz de programación se vuelva lenta por la cantidad de datos que maneja y para que el programa te quepa en el NXT. El programa que hace para el Mastermind pesaba unos 64kb compilado y la memoria del NXT es de 256kb de los cuales unos 125kb son usados por el firmware (un poco menos con FW v1.29). Añade a ello que cuanto más grande el programa (=más bloques usa) más tarda en compilarse. Con el Mastermind me desesperaba cada vez que tenía que descargar una pequeña modificación.
Para ir contrastando mas valores, con el programa inicial de Minipepito a mi me da un valor de "-10" donde a el le daba 15 y carlichi obtenía 4
Como puedo saber la velocidad a que esta girando, mirando la pantalla es imposible!!!!! (Cuando gira rápido, claro.)
PD: ¿Esto últimos programas que estáis subiendo no se pueden ver con NXT-G v1.1?
Cita de: wiwaedu en 29 de Marzo de 2010, 17:04:09 PM
Como puedo saber la velocidad a que esta girando, mirando la pantalla es imposible!!!!! (Cuando gira rápido, claro.)
Tienes varias maneras. Una es accionar el sensor mediante un motor que no está unido al NXT
Otra opción es la de mantener emparejado el NXT con el PC medianta Bluetooth. Si seleccionas un bloque sensor giroscópico en NXT-G podrás ver en la pantalla del PC el valor de este.
Finalmente puedes guardar el valor del giroscopio a intervalos determinados en un bloque de archivo (File Block) y descargartelo al PC después de la prueba para analizar los datos.
CitarPD: ¿Esto últimos programas que estáis subiendo no se pueden ver con NXT-G v1.1?
NXT-G 2 dispone de una función Pack&Go (que crea ficheros rbtx) que hace un paquete completo de todos los datos necesarios para poder usar un programa en otro PC: MyBlocks, sonidos, imágenes etc. Pero el archivo rbtx también se puede abrir con un descompresor estándar (WinRar por ejemplo). Contiene un archivo ini que se puede abrir luego con un editor de texto (notepad) para ver dónde tienen que ir los diferentes elementos que se encuentran en el archivo comprimido para que todo funcione bien.
Cita de: Jetro en 28 de Marzo de 2010, 17:19:25 PM
No encuentro en el programa ninguna función que compruebe si el robot se ha girado 90º
Que no la encuentres, no quiere decir que no esté, jejeje... Como me quería asegurar que parara al llegar a los 90 grados, no le digo al robot que pare cuando llegue a los 90, si no que pare cuando pase de 89, esta, es una de las dos condiciones para salir del bucle. Ahí, puedes cambiar el número de grados que quieres que gire, pero recuerda que el programa funciona girando en positivo y con un offset positivo.
En lo referente al número de grados que gira, ese fue el origen de este post, "mi giroscopio marca que gira estando parado"
Cita de: Minipepito en 23 de Marzo de 2010, 23:40:13 PM
Perdón por no haber mencionado que conocía la necesidad de calibrar y añadir el offset en las mediciones siguientes. Aquí adjunto el enlace de la página oficial, que calibra el giroscopio y nos marca la velocidad de rotación en grados/segundo:
http://www.hitechnic.com/file.php?f=836-Gyro_Test.zip (http://www.hitechnic.com/file.php?f=836-Gyro_Test.zip)
A continuación, el enlace a una pequeña modificación mía en la que muestra los grados totales que gira:
http://www.megaupload.com/?d=FHX0LMPW
Entiendo perfectamente que el giroscopio hay que calibrarlo, de hecho dará una lectura inicial distinta en mi pueblo (+ de 600m de altitud) que si la tomaramos al nivel del mar. Pero, que estando en reposo, marque una velocidad de 15 grados por segundo, me parece exagerado, cuando antes de calibrarlo entiendo que no tendría que marcar nunca más de +-1 grado/segundo.
Y la única manera que tengo de saber si todos los giroscopios de hitechnic están tan "gyrolocos" como el mío, es si, dos o tres de vosotros, hermanos en el ladrillo, publicáis el resultado que leeréis en la pantalla del nxt, si ejecutáis el programa que se puede descargar del enlace a megaupload del primer post, o aquí, que es el mismo, jejeje:
http://www.megaupload.com/?d=FHX0LMPW (http://www.megaupload.com/?d=FHX0LMPW)
El único lenguaje que sé usar y uso es Nxt-G. De nuevo, muchas gracias por vuestra colaboración.
Aquí, ya adjunté una aplicación para medir los grados que gira, y al comprobar que contiunamente iba aumentando el número de grados con el giroscopio en reposo, llegué a la conclusión de que el giroscopio estaba roto, conclusión que hoy ha sido ratificada por el equipo técnico de la tienda donde lo adquirí, pues al conectar varios giroscopios a mi ladrillo y ejecutar el programa del que estoy hablando, no sumaban ningún grado por lo menos durante 10 ó 15 segundos (como ya nos comentó carlichi en su día), cuando el ex-mío hubiera sumado al menos un grado cada segundo como tantas veces apunté. Se ha pasado a mi ex-giroscopio por una serie de pruebas que ha desarrollado el equipo técnico, dando errores en todas ellas. Pero la prueba irrefutable que nos ha convencido a todos los presentes, ha sido la siguiente:
Se colocan el giroscopio a comprobar y el giroscopio de referencia, sobre una superficie horizontal, separados unos 25 cm el uno del otro.
Se sujeta firmemente cada uno con una de nuestras manos.
Se levantan hasta colocarlos uno al lado de cada oreja.
Se agitan sin demasiada intensidad.
El que suena como unas maracas, está roto.
Jajajaja, ¿cómo iba yo a saber que no tenía que hacer ningun ruido? ¡¡¡Si nunca tuve uno...!!! jajajaja.... Ya tengo mi giroscopio nuevo y nadie ha salido herido.
Wiwaedu, el dato al que te refieres, es el offset, el cual no tiene mayor importancia, se calibra y "ya ta", jejeje.
Me alegro que tu tenacidad haya resultado en que finalmente se ha detectado que tu giroscopio efectivamente estaba estropeado. A lo largo de los mensajes me ha costado a veces separar la desviación (offset) de la deriva (drift) y como a veces me ha dado la sensación de que una cosa se mezclaba con otra no acababa de ver que efectivamente estaba estropeado. Buen detalle el de la detección. Habrá que apuntarlo.
En cuanto al programa. ya había visto tus 89º/s pero me parece que está confundiendo dos cosas. Lo que tu quieres es detectar cuando el robot ha completado un giro de 90º, pero el giroscopio te va a indicar cuando el robot está girando a 90º por segundo.
Para que veas esa diferencia, coloca el giroscopio, como ya has hecho tantas veces, en la mesa en reposo y mira la lectura que te da en pantalla. Ahora gíralo suavemente 90º y dejalo de nuevo en reposo. Observarás que las lecturas aumentan mientras estás girando, pero (si lo haces suavemente) nunca llegan a 90 y que cuando dejes el giroscopio nuevamente en reposo la lectura vuelve a ser de 0.
Para hacerlo de esta manera necesitas una brújula, no un giroscopio.
C0n el giroscopio es posible calcular la distancia recorrida, pero para ello deberás hacer una media de las lecturas obtenidas y luego multiplicarlo por el tiempo que ha durado el giro para eliminar los segundos de la lectura del giroscopio (1º/s*1s=1º).
Cita de: Jetro en 30 de Marzo de 2010, 06:57:13 AM
A lo largo de los mensajes me ha costado a veces separar la desviación (offset) de la deriva (drift) y como a veces me ha dado la sensación de que una cosa se mezclaba con otra no acababa de ver que efectivamente estaba estropeado.
Debido a mi inexperiencia, no supe disociar una cosa de la otra, pero si que muchas veces recalcaba, que mi programa, el cual indica los grados girados y no la velocidad, me indicaba que estaba girando al añadir grados al total continuamente.
Aquí ha estado tu error y el de la tienda: al dar por normal el offset, dabáis por normal el resultado de este programa http://www.megaupload.com/?d=FHX0LMPW (http://www.megaupload.com/?d=FHX0LMPW) sin haberlo probado ninguno de los que dabáis el resultado por normal. Los únicos que lo probaron, fueron carlichi y wiwaedu, cuyos resultados me reafirmaron en el convencimiento del funcionamiento anómalo de mi ex-sensor.
No sé cuantas veces he repetido ya en este post, que el programa arriba indicado y mi rutina de giro, calculan
el número total de grados que se ha girado, y de la única manera que conozco, multiplicando el tiempo por la velocidad angular. Pero voy a repetirlo de nuevo y por última vez, pues si alguien no se entera ahora, queda claro que, o no presta interés a lo que escribo, o toma por falsas sin hacer ninguna prueba al respecto mis afirmaciones sobre el funcionamiento de mis programas.
Los dos programas subidos por mí hasta el momento, los dos, los dos, los dos, calculan los grados totales que se ha girado, multiplicando la velocidad (datos que salen por el giroscopio) por el tiempo transcurrido, 0,01 segundos en los dos programas. En su día, el programa incorporaba un contador de tiempo que se reseteaba después de cada medición y posterior cálculo de grados girados, pero como el tiempo calculado así, siempre era igual al tiempo que le digo al programa que espere entre repetición del bucle y repetición, opté por suprimirlo y usar como medida de tiempo el tiempo marcado por mí.
Coloco mi giroscopio en la mesa como ya he hecho tantas veces, lo giro 90 grados hacia la derecha, lo dejo quieto y marca 90, si ahora lo giro 180 grados hacia la izquierda y lo dejo parado de nuevo, me marca -90, espero que con este ejemplo quede claro que ya desde el principio del post, mis programas calculan los grados totales que gira, siendo valores postivos al girar a la derecha y negativos al girar a la izquierda.
Las brújulas, sirven para marcar al norte magnético por lo que el cálculo de grados se haría tomando al norte magnético como punto de referencia, tras lo cual calcularíamos nuestra posición inicial y final y en su diferencia estaría el número de grados girados. Con un giróscopo es mucho más sencillo, pues el punto de referencia lo pones donde te apetezca, pudiendo hacerlo coincidir con la posición inicial, lo que simplifica enormemente los cálculos. De hecho, en la actualidad, un tipo de giroscopio modificado que apunta siempre al norte geográfico, hace ya tiempo que sustituyó a las brújulas en todo lo referente a navegación.
Espero que entienda todo el mundo por qué pedía con tanta insistencia que no respondiera gente sin giroscopio hasta que se resolviera lo ya resuelto, pues sin un giroscopio en la mano es muy difícil analizarlo, como aquí está quedando patente.
Edit Me he dado cuenta de que si el tiempo se baja de 0,05 segundos, mi estimación sin el uso de un reloj empieza a dar fallos evidentes en el cálculo de grados. No me había dado cuenta antes porque el programa que calcula los grados totales y los muestra en pantalla tiene un tiempo de 0,1.