2009-12-18 10 views
8

Qualche tempo fa ho ricevuto un set LEGO Mindstorms NXT per Natale e ora vorrei programmarlo in C++.Libreria OOP C++ per la programmazione del Lego NXT

Mi sono guardato intorno, qui e in altri luoghi, e non ho trovato una libreria cross-platform, open source, OOP C++ che "sentisse bene", compresi lestat e nxtOSEK.

Quindi, ho deciso che, a meno che non riesca a trovarne uno che mi piace, sarebbe per me una grande esperienza di apprendimento scrivere la mia biblioteca.

Ho fatto una piccola ricerca e ho deciso che sarebbe stato più semplice comunicare con esso via Bluetooth, piuttosto che compilare i miei programmi con il codice macchina NXT.

Mi piacerebbe anche che fosse fatto in stile OOP, il che significa che il mattone, i motori, i sensori, ecc. NXT esisterebbero come oggetti.

Quindi, la mia domanda è: cosa devo sapere prima di intraprendere questo? dove posso ottenere buoni riferimenti (oltre a questo, e specifici per NXT)? Quali sono altre librerie "base" decenti * per cose come la comunicazione Bluetooth?

* Sono tutto per l'utilizzo di boost e STL, se necessario, tra l'altro.

In alternativa, credo di non reinventare la ruota se non è necessario, quindi se c'è una libreria NXT di comunicazione bluetooth C++ OOP decente là fuori, fammi sapere!

risposta

3

Ho dato un'occhiata a questo prima.

Iniziate a guardare qui: http://bricxcc.sourceforge.net/

In questa pagina è possibile scaricare il sorgente per esso. Quello che ho finito è compilare il mio codice sorgente C in codici byte che il mattone NXT può capire.

Questo mi ha permesso di aggiungere alcune estensioni personalizzate per C anche se ho passato un sacco di tempo la compilazione di C fino a una forma abbastanza compatta in bytecode che si adattano nella memoria del NXT :)

Se si desidera utilizzare un implementazione C esistente quindi consultare questa tabella: http://www.teamhassenplug.org/NXT/NXTSoftware.html

Per un elenco di NBC (Next Byte Codes) iniziare con questa pagina. L'ho trovato estremamente utile.

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

1

Ho usato questa, non so se hai controllato fuori o no:

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

Questa libreria fornisce il supporto per la lettura di vari dati dei sensori tramite una connessione Bluetooth così come il supporto per il controllo dei motori.

Inoltre la libreria può essere facilmente modificata e ho trovato estremamente facile riconfigurarlo.

1

Mi sono imbattuto in questo thread l'anno scorso mentre lavoravo a un progetto che utilizzava C++ per controllare un braccio di un robot. Ho usato 2 mattoni NXT e 5 motori.

È possibile trovare l'originale NXT ++ 0.6 libreria qui:
http://nxtpp.clustur.com
https://sourceforge.net/projects/nxtpp/forums/
Purtroppo questo sito non viene aggiornato.

ho biforcuta una nuova versione NXT ++ 0.7 con alcune correzioni, e il supporto per più mattoni, tramite USB o Bluetooth: https://github.com/dbworth/nxt-plus-plus
Vedere il file Leggimi per i dettagli.

altro utente, Piotr, ha aggiunto il supporto per NXT ++ 0,6-2 per il sensore e il sensore multiplatore HiTechnic colore Lego:
http://wmii.uwm.edu.pl/~artem/downloads.html

saluti,
David.