2009-12-18 9 views
8

Hace un tiempo, conseguí un set LEGO Mindstorms NXT para Navidad, y ahora me gustaría programarlo en C++.Biblioteca C++ OOP para programar el Lego NXT

He mirado alrededor, aquí y en otros lugares, y no pude encontrar una biblioteca multiplataforma, de código abierto OOP C++ que "se sentía bien", incluyendo lestat y nxtOSEK.

Por lo tanto, he decidido que a menos que pueda encontrar uno que me guste, entonces sería una gran experiencia de aprendizaje para mí escribir mi propia biblioteca.

Investigué un poco y decidí que sería más fácil comunicarme con él por bluetooth, en lugar de compilar mis programas con el código de máquina NXT.

También me gustaría que esto se haga en estilo OOP, lo que significa que el ladrillo NXT, motores, sensores, etc. existirían como objetos.

Entonces, mi pregunta es: ¿qué necesito saber antes de embarcarme en esto? ¿Dónde puedo obtener buenas referencias (además de aquí y específicas para el NXT)? ¿Cuáles son otras bibliotecas decentes "básicas" * para cosas como la comunicación por Bluetooth?

* Estoy totalmente de acuerdo con el uso del boost y el STL, si es necesario, por cierto.

Alternativamente, creo que no reinventar la rueda si no es necesario, así que si hay una biblioteca NXT decente que comunique con bluetooth C++ OOP, ¡háganmelo saber!

Respuesta

3

He echado un vistazo a hacer esto antes.

Comience a buscar aquí: http://bricxcc.sourceforge.net/

En esta página se puede descargar el código fuente de la misma. Lo que terminé haciendo es compilar mi código fuente C hasta códigos de bytes que el bloque NXT puede entender.

Esto me permitió añadir algunas extensiones personalizadas a C, aunque lo hice pasar mucho tiempo compilar C hasta una forma lo suficientemente compacto como en códigos de bytes que se ajustan en la memoria del NXT :)

Si desea utilizar una Implementación existente de C luego revisa este cuadro: http://www.teamhassenplug.org/NXT/NXTSoftware.html

Para obtener una lista de los NBC (códigos de próximo byte) comience con esta página. Lo encontré extremadamente útil.

http://bricxcc.sourceforge.net/nbc/

1

que utiliza éste, no sé si se ha comprobado a cabo o no:

http://www.norgesgade14.dk/bluetoothlibrary.php

Esta biblioteca proporciona soporte para la lectura de diversos datos del sensor a través de una conexión Bluetooth así como soporte para controlar motores.

Además, la biblioteca se puede modificar fácilmente, y me resultó extremadamente fácil reconfigurarla.

1

Me encontré con este hilo el año pasado, mientras trabajaba en un proyecto usando C++ para controlar un brazo de robot. Usé 2 ladrillos NXT y 5 motores.

Puede encontrar el NXT ++ 0 original.6 biblioteca aquí:
http://nxtpp.clustur.com
https://sourceforge.net/projects/nxtpp/forums/
Lamentablemente, este sitio no se está actualizando.

I bifurcadas una nueva versión NXT ++ 0.7 con algunas correcciones y soporte para múltiples ladrillos, a través de USB o Bluetooth: https://github.com/dbworth/nxt-plus-plus
consulte el archivo Léame para obtener más información.

otro usuario, Piotr, ha añadido soporte para NXT ++ 0,6-2 para el multiplexor sensor HiTechnic y sensor de color Lego:
http://wmii.uwm.edu.pl/~artem/downloads.html

Regards,
David.