Noticias:

¿Aún no eres socio de HispaLUG? Entra en HAZTE SOCIO y únete

Menú Principal

Ayuda, con la programacion de NXT

Iniciado por fhenix666, 10 de Febrero de 2008, 05:07:49 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

fhenix666

Hola ke tall amigos,, estoy de estreno con este foro,,, espero ke me den la bienbenidaaaaa.... ejje
bueno estoy tratando de aprender la programacion del NXT,,, es nuevo para mi ,,, si se programar pero no en este lenguaje,, y me gustaria ke me orientaran,,, ya sea con ejemplos, manuales o tutoriales. tal ves me puedan ayudar a ver donde puedo consular codigo de ejemplo,,,

keri aprender desde lo basico,,, tengo a mi cargo un NXT con el cual tengo ke realizar algunas tareas de la escuela,,,

mi primer tarea es programar el SNAKE el clasico juegito de la serpientee,,,, comelona.. ok
nunca he programado un juegoo ya eso es un obstaculo,,, asi ke empese por buscar el juego para otros lenguajes,,, lo encontre para c, pero ovio no es lo mismo programarlo en la pc ke en el NXT, por eso de los recursos linitados cono son la memoria y las dimenciones de LCD por citar algunas.

Estoy usando el compilador Bricx Command Center ke es muy parecido a c

bueno es pero ke me puedan ayudar ,, por su atencion de antemano mil gracias.... :confundido:

Jetro

Hola fhenix666,

lo primero, bienvenido. Te sugiero que te pases por la sección de bienvenida para presentarte al resto del foro y de paso leas el FAQ del "novato".

Supongo que con el NXT tengas también el software NXT-G. Simplemente leyendo las páginas de ayuda (empieza por las que tratan sobre la pantalla) puedes programar esa serpiente en poco tiempo.
Hay unos buenos ejemplos de lo que se puede hacer con NXT-G en BrickShelf, por ejemplo de Brian Davis, pero ne son especificamente para la tarea que tienes entre manos. (de todas formas sería hacer trampa hacerte los deberes :D)

Si prefieres usar BricxCC la elección mas lógica es el lenguaje NXC. Hay un buen tutorial en inglés junto con el código de los ejemplos en esta página.


Ya nos contarás como avanzas!

fhenix666

Mil gracias por la ayuda y la pronta atencion,,, y mil disculpas por no responde antesss... bueno me encantaria segir trabajando en linux, estoy tratando de encontrar la version para linux. pero no entiendo bien como es esto.

ya tengo la version para windows pero no me agrada usar la plataforma linux, solo lo aria en ultima instancia, pues estoy tratando de desligarme de windows.

Me gustari ke me platicaras un poco mas sobre estos lenguajes; es decir que opciones tengo, ke diferencias tienen y las ventajas ke me ofrecen, es decir si me facilita la vida estar sobre windows adelante pero si en linux tengo las mismas ventajas me gustaria seguir en el.

aber si estoy bien; NXT-G es el lenguaje que biene pos default en el NXT, o no,, y NXC es una opcion alternativa que para la cual es necesario el uso de BricxCC (que es el compilador para NXC, o puede serlo para otros lenguajes- es decir esta casado con el NXC?). Y para linux ke hay? existe un ID para el NXC? por que he encontrado algo que se llama NBC/NXC que es esto exactamente?

mil diculpar por la molestia,, es que no domino el ingles y me es dificil entender rapido sobre esto.


Jetro

Cita de: fhenix666 en 21 de Febrero de 2008, 06:36:06 AM
Mil gracias por la ayuda y la pronta atencion,,, y mil disculpas por no responde antesss... bueno me encantaria segir trabajando en linux, estoy tratando de encontrar la version para linux. pero no entiendo bien como es esto.

ya tengo la version para windows pero no me agrada usar la plataforma linux, solo lo aria en ultima instancia, pues estoy tratando de desligarme de windows.

Me gustari ke me platicaras un poco mas sobre estos lenguajes; es decir que opciones tengo, ke diferencias tienen y las ventajas ke me ofrecen, es decir si me facilita la vida estar sobre windows adelante pero si en linux tengo las mismas ventajas me gustaria seguir en el.
Estoy contigo, pero la única razón por la que sigo teniendo un PC con Windows es .... LEGO  ::)
Dicho esto si hay algunas posibilidades en linux, pero requieren un esfuerzo bastante mayor. Un par de links de ejemplo:

https://es.tldp.org/Presentaciones/200002hispalinux/conf-16/16-html/

https://www.prodel.es/robolinux/default.htm
Citar
aber si estoy bien; NXT-G es el lenguaje que biene pos default en el NXT, o no,, y NXC es una opcion alternativa que para la cual es necesario el uso de BricxCC (que es el compilador para NXC, o puede serlo para otros lenguajes- es decir esta casado con el NXC?). Y para linux ke hay? existe un ID para el NXC? por que he encontrado algo que se llama NBC/NXC que es esto exactamente?

mil diculpar por la molestia,, es que no domino el ingles y me es dificil entender rapido sobre esto.


Luego te respondo mas....

Koldo

hola

si quieres ver una relación de lenguajes e informaciones sobre algunos de ellos en castellano puedes pasarte por lrobotikas.net/mediawiki

saludos

Koldo

fhenix666

Bueno despues de estar buscando un rato por web y mediante las instalaciones desde consula de linux , me Doyyy jajaj,, no he encontrado un ID para linux. solo los soportes para el NQC y algo ke se llama brickos, pero no se muy bien ke es. al pareser son soportes solo para el RCX.

Despues de instalarlo, no he podido hecharlos a andar, supongo ke se necesita el ID. Pero no lo encuentro,,, En pokas palabras e kedo en windows,,,  :'(.

Pero no encuentro ejemplos de NXC que me muestren como controlar los botones del ldrillito. anu no se como hcer el juego del snake en el display del NXT.
si algien sabe donde encuantro ejemplos de como mamipular con los botones una imagen en el display, se lo agradeseria infinitamente.
o por lomenos como hacerle para representar la serpiente en la panatalla..

he pensado tomar toda la pantalla como una matriz y con ceros y unos representar la estructura de la serpiente. Claro ke no soy experto en el uso del ladrillo y no se si esto sea un problema con respecto a la poca memoria ke tiene el ladrillo.......
ORIENTACION por favor,,, ya perdi mucho tiempo.....  :'( :'( :'( :'(

de antemano mil gracias.

Jetro

En el tutorial de NXC hay una sección sobre la pantalla (Dot Matrix Display - p49) y en el NXC Programming Guide que incluye la API hay unos cuantos comandos ara acceder al uso de los botones.

fhenix666

Gracias,,, ya los tengooo y ya estoy empesando a derle forma al programita,,, y puedo mandar a imprimir a pantalla y ya se como manipular los botonsillos, estoy en la etapa de ver la estratejia del juego. estoy buscando codigos de juegos en c para basarme de ellos... Mil gracias por la ayuda.

Una pregunta:  Como controlo la programacion con Hilos, es decir se ke se puede programar en forma concurrente en el NXT de heco asi debe de ser,,, pero Como funciona esto?

de todas manareas estoy leyendo los tutoriales auke estan en ingles y eso me alenta  ;D. 

fhenix666

#8
Hola ke taaall aun estoy atorado con lo del Snake,,,, bueno el problema ess como representar el cuerpo del snake.

Se me ocurrio hacer algo asi:


struct strPos
{
  int x;
  int y;
};

struct strSnake
{
   strPod cabeza;
   strPos cuerpo[]; // lo tenia como strPos cuerpo[30]; pero no acepta ke le ponga un numero ***
   int dimencionCuerpo;
};

pero no me funciona .... me marca errrorrr en lo del cuerpo... al parecer no se puede crear una structura de que contenga miembros de tipo arreglo,,, ni siquiera un simple arreglo como int x[10]....

como ago estooo...?


*** como funciona esto? en c pones strPos cuerpo[30]; indicando ke requieres 30 espacios del tipo strPos, pero aki ke onda?




Jetro

A ver si entiendo lo que pasa...

para empezar en NXC solo puedes usar 'task', 'sub', 'void' y 'inline ...' asi que struct no te va a acceptar

Se me ocurre que puede dar error al definir "strPos cuerpo[30]" porque imagino que se trata de un elemento que tiene dos valores necesarios, no solo uno.


P.D. procura escribir correctamente para poder entenderte mejor (k=qu/c etc).

luxman

#10
Desde la versión 28 soporta struct y typedef. Lo que creo que no soporta es arrays de structs, sólo arrays de tipos básicos.

[corrección]
Al menos los siguiente compila...
  strPos unapos;
  strPos array[];   
 
  ArrayInit(array, unapos, 10);
[/corrección]

Del readme.txt de la versión 34:
"The NXC language supports global variables, local variables, tasks with no
parameters, and functions with parameters and return values.  Currently supported
variable types are:

int, short, long, byte, char, bool, unsigned short, unsigned long, unsigned int,
mutex, string, and arrays of all these types except mutex. (int == short)."

El array se declara sin tamaño y luego se inicializa, algo así como
...
  int miarray[];
... 
  ArrayInit(miarray, 0, 10); // 10 zeros in myVector
...



Jetro

Me he perdido :'( si entendía poco ahora ya no entiendo nada  :confundido:
(tenía una versión muy antigua del NXC Guide)

Por cierto, según history.txt:
CitarVersion 1.0.1.b33
-----------------
- Fixes a bug in checking type compatibility when calling a function that
  has an array of struct as an argument.
sea lo que sea lo que eso significa. A medida que pasa el tiempo entiendo menos de este documento y me resisto a trgarme un libro de 5000 páginas para aprender a programar en c si solo quiero saber algo mas para poder usar NXC. ¿Alguien tiene una buena sugerencia?  Necesito una segunda parte del tutorial  :guino:

luxman

#12
Cita de: Jetro en 27 de Febrero de 2008, 16:48:19 PM
Me he perdido :'( si entendía poco ahora ya no entiendo nada  :confundido:
(tenía una versión muy antigua del NXC Guide)

Por cierto, según history.txt:
CitarVersion 1.0.1.b33
-----------------
- Fixes a bug in checking type compatibility when calling a function that
  has an array of struct as an argument.
sea lo que sea lo que eso significa. A medida que pasa el tiempo entiendo menos de este documento y me resisto a trgarme un libro de 5000 páginas para aprender a programar en c si solo quiero saber algo mas para poder usar NXC. ¿Alguien tiene una buena sugerencia?  Necesito una segunda parte del tutorial  :guino:

Bueno, 5.000 páginas para un manual de c creo que es excesivo :)

Tienes éste (en inglés) por sólo 100!

A NXC, aunque es muy interesante la idea, le sigo viendo demasiadas limitaciones y pegas  :-\

Sí que admite los arrays de structs, al menos compila :D
...
  strPos unapos;
  strPos array[];
   
... 
  ArrayInit(array, unapos, 10);
...


Jetro

Lo tengo pero aún no me he puesto: a ver si aprendo algo  :P

luxman

Cita de: fhenix666 en 27 de Febrero de 2008, 06:50:37 AM
Hola ke taaall aun estoy atorado con lo del Snake,,,, bueno el problema ess como representar el cuerpo del snake.

Se me ocurrio hacer algo asi:


struct strPos
{
  int x;
  int y;
};

struct strSnake
{
   strPod cabeza;
   strPos cuerpo[]; // lo tenia como strPos cuerpo[30]; pero no acepta ke le ponga un numero ***
   int dimencionCuerpo;
};

pero no me funciona .... me marca errrorrr en lo del cuerpo... al parecer no se puede crear una structura de que contenga miembros de tipo arreglo,,, ni siquiera un simple arreglo como int x[10]....

como ago estooo...?


*** como funciona esto? en c pones strPos cuerpo[30]; indicando ke requieres 30 espacios del tipo strPos, pero aki ke onda?


¿Has probado así?:

...
struct strPos
{
  int x;
  int y;   
};

struct strSnake
{
   //strPod cabeza; // lo he comentado para no inventarme otro struct :guino:
   int cuerpo[]; // lo tenia como strPos cuerpo[30]; pero no acepta ke le ponga un numero ***
   int dimencionCuerpo;
};

...

task main()
{
...
  strSnake snake;
  strPos unapos;       
 
  ArrayInit(snake.cuerpo, unapos, 10);
...
}


No he probado a ejecutarlo, sólo lo he compilado. Tengo el firmware cambiado y me da mucha pereza cambiarlo para probarlo  ::)