Not eXactly C

Not eXactly C (kurz NXC) ist eine Programmiersprache für Lego Mindstorms NXT. Die Sprache hat eine C-ähnliche Syntax. NXC wird ständig weiterentwickelt, daher können auf der Webseite verschiedene Versionen heruntergeladen werden. Im Gegensatz zur IDE BricxCC ist der NXC-Compiler für diverse Betriebssysteme erhältlich.

Entstehung

Die erste Version von NXC wurde 2007, kurz nach der Veröffentlichung des NXT, unter der Mozilla Public License veröffentlicht. Der Erfinder, John Hansen, hatte bereits für das Vorgängermodell, den RCX, die Sprache NQC entwickelt. Hansen ist auch für die BricxCC IDE verantwortlich.

Besonderheiten

Eine der Besonderheiten von NXC war, dass es zu Beginn der Entwicklung keinen Datentyp für Gleitkommazahlen gab, da solche Werte bei Verwendung der Motoren und Sensoren des NXT nicht vorkamen. Mit Erscheinen der LEGO MINDSTORMS NXT Firmware-Version 1.26 wurden offiziell Gleitkommazahlen eingeführt, die auch in der aktuellen Version von NXC unterstützt werden.

Außerdem bietet NXC zwar die Möglichkeit mehrdimensionale Arrays zu erstellen, bietet jedoch keine Möglichkeit direkt auf die einzelnen Elemente der unteren Ebenen zuzugreifen. Abhilfe schafft eine von J. Hansen angebotene modifizierte Firmware, die auf dem Original von LEGO aufbaut. Erweiterte Array-Funktionen sind in Firmware 1.07 und 1.27 enthalten.

Die neueren Versionen von NXC beinhalten auch NXT-2.0-spezifische Befehle, zum Beispiel zum Ansprechen des neu eingeführten Farbsensors.[1]

Literatur

  • John C. Hansen: Lego Mindstorms NXT Power Programming: Robotics in C, Variant Press, 2007, ISBN 978-0973864922
  • Daniel Braun: Roboter programmieren mit NXC für LEGO Mindstorms NXT, MITP-Verlag, 2009, ISBN 978-3826650703
  • Frank Knefel: LEGO Mindstorms NXT: Einführung in die Roboter-Programmierung mit NXC und Roberta, Open Source Press, 2013, ISBN 978-3941841857
  • Thorsten Leimbach, Sebastian Trella: Roberta Programmieren mit NXC, Fraunhofer IRB Verlag, 2012, ISBN 978-3-8396-0446-5

Einzelnachweise

  1. Informationen zur Verwendung eines NXT 2.0 [1]

Weblinks