Lego Mindstorms NXT: Difference between revisions
m rv vandalism |
|||
Line 10: | Line 10: | ||
==NXT Brick== |
==NXT Brick== |
||
Zach likes men! |
|||
The main component in the kit is a brick-shaped [[computer]] called the NXT brick. It can take input from up to four [[sensor]]s and control up to three [[electric motor|motor]]s, via [[RJ12]] cables, very similar to but incompatible with [[RJ11]] phone cords. The brick has a 100x64 pixel [[monochrome]] [[LCD display]] and four buttons that can be used to navigate a user interface using hierarchical menus. It also has a [[Loudspeaker|speaker]] and can play sound files at sampling rates up to 8 kHz. Power is supplied by 6 [[AA battery|AA]] (1.5 V each) [[battery (electricity)|batteries]] in the consumer version of the kit and by a [[Li-Ion]] rechargeable battery and charger in the educational version. |
The main component in the kit is a brick-shaped [[computer]] called the NXT brick. It can take input from up to four [[sensor]]s and control up to three [[electric motor|motor]]s, via [[RJ12]] cables, very similar to but incompatible with [[RJ11]] phone cords. The brick has a 100x64 pixel [[monochrome]] [[LCD display]] and four buttons that can be used to navigate a user interface using hierarchical menus. It also has a [[Loudspeaker|speaker]] and can play sound files at sampling rates up to 8 kHz. Power is supplied by 6 [[AA battery|AA]] (1.5 V each) [[battery (electricity)|batteries]] in the consumer version of the kit and by a [[Li-Ion]] rechargeable battery and charger in the educational version. |
||
Revision as of 18:47, 25 March 2009
Lego Mindstorms NXT is a programmable robotics kit released by Lego in late July 2006.[1] It replaces the first-generation Lego Mindstorms kit, which was called the Robotics Invention System. The base kit ships in two versions: The Retail Version[2] and the Education Base Set.[3] These can be used to compete in FIRST Lego League competitions. It comes with a programming software called NXT-G, but a variety of others languages such as: NXC, NBC, RobotC, and BricxCC exist. A new version of the set, MIndstorms NXT 2.0 was announced in January 2009, featuring an advanced colour sensor and many upgraded capabilities. This set is not yet available but will be numbered 8547. More details at www.robotsnob.com[4]
NXT Brick
Zach likes men!
The main component in the kit is a brick-shaped computer called the NXT brick. It can take input from up to four sensors and control up to three motors, via RJ12 cables, very similar to but incompatible with RJ11 phone cords. The brick has a 100x64 pixel monochrome LCD display and four buttons that can be used to navigate a user interface using hierarchical menus. It also has a speaker and can play sound files at sampling rates up to 8 kHz. Power is supplied by 6 AA (1.5 V each) batteries in the consumer version of the kit and by a Li-Ion rechargeable battery and charger in the educational version.
Technical specifications
- 32-bit AT91SAM7S256 main microprocessor @ 48 MHz (256 KB flash memory, 64 KB RAM)
- 8-bit ATmega48 microcontroller @ 4 MHz (4 KB flash memory, 512 Bytes RAM)
- CSR BlueCore 4 Bluetooth controller @ 26 MHz (8 MBit external flash memory, 47 KB RAM)
- 100×64 pixel LCD matrix display
- Can be programmed using Windows or Mac OS (NBC/NXC supports Linux as well)
- Users create a program with new software, powered by LabVIEW from National Instruments
- A single USB 2.0 port full speed (12 Mbit/s)
- Bluetooth (Class II) wireless connectivity, to transfer programs to the NXT wirelessly or offer ways to control robots remotely (through mobile phones and possibly by PDA's)
- 4 input ports, 6-wire cable digital platform (One port includes a IEC 61158 Fieldbus Type 4/EN 50 170 (P-NET) compliant expansion port for future use)
- 3 output ports, 6-wire cable digital platform
- Digital Wire Interface, allowing for third-party development of external devices
Other software can also be used.
Firmware and developer kits
Lego has released the firmware for the NXT Intelligent Brick as Open Source.[5]
Several developer kits are available that contain documentation for the NXT:
- Software Developer Kit (SDK), includes information on host USB drivers, executable file format, and bytecode reference
- Hardware Developer Kit (HDK), includes documentation and schematics for the NXT brick and sensors
- Bluetooth Developer Kit (BDK), documents the protocols used for Bluetooth communications
Programming
Very simple programs can be written using the menu on the NXT. More complicated programs and sound files can be downloaded using a USB port or wirelessly using Bluetooth. Files can also be copied between two NXT bricks wirelessly, and some mobile phones can be used as a remote control. Up to four NXT bricks can communicate simultaneously via Bluetooth when user created programs are run.
The retail version of the kit includes software for writing programs that run on PC and Macintosh personal computers. The software is based on National Instruments LabVIEW and provides a visual programming language for writing simple programs and downloading them to the NXT Brick.
NXT-G
This section possibly contains original research. (October 2008) |
NXT-G v1.0 is the programming software that comes bundled with the NXT. There are two different programming interfaces. One is included with the retail and educational kits and the other can be purchased separately. This software is adequate for basic programming, such as driving motors, incorporating sensor inputs, doing calculations, and learning simplified programming structures and flow control. Here are some advantages and disadvantages of using version 1.0 of this software:
Pros:
|
Cons:
|
Most of these issues have been addressed in NXT-G v1.1 version of the software.[6]
LabVIEW Toolkit
NXT-G is powered by LabVIEW, an industry standard in programming. Created by National Instruments, LabVIEW uses data flow programming to create a virtual instrument. To allow for more advanced programming, in the graphical sense, National Instruments released a Toolkit for the NXT. Version 1.0 came out in December 2006. Since its release, several bugs have been found and new sensors have been created. While the toolkit does allow for the creation of new sensors, National Instruments is yet to formally release an update.
Next Byte Codes & Not eXactly C
Next Byte Codes (NBC) is a simple open-source language with an assembly language syntax that can be used to program the NXT brick.
Not eXactly C (NXC) is a high level open-source[7] language, similar to C, built on top of the NBC compiler. It can also be used to program the NXT brick. NXC is basically NQC for the NXT.[8]
RobotC
RobotC is another programming-language based on C for Vex, First Tech Challenge, and Lego Mindstorms.
URBI
URBI is yet another language and is a parallel and event-driven language, with interfaces to C++/Java and Matlab. It also has a component architecture (UObject) for distributed computation. Urbi is compatible with many robots, including Nao (cf Robocup), Bioloid or Aibo.[9].
leJOS NXJ
leJOS NXJ is a high level open source language based on Java that uses custom firmware developed by the leJOS team.[10]
LEJOS OSEK
To be able to write in C/C++, LEJOS OSEK can be used, but that requires custom firmware too. [11]
MATLAB and Simulink
- MATLAB is a high-level programming language for numerical computing, data acquisition and analysis. It can be used to control LEGO NXT robots over a Bluetooth serial port (serial port communication is part of the base functionality of MATLAB).
- Simulink is a MATLAB-based environment for modeling and simulating dynamic systems. Using Simulink, a user can design control algorithms, automatically generate C code for those algorithms, and download the compiled code onto the LEGO NXT.
MATLAB and Simulink code for NXT programming is freely available.
Lua
pbLua is a port of the Lua programming language, a general purpose scripting language, for Lego Mindstorms.
FLL NXT Navigation
FLL Nxt Navigation An open source program to help navigation on the FLL competition table. Uses NXT-G and .txt files to write programs.
Sensors
This is what the Lego Mindstorms base kit includes:[12]
- Three identical servo motors that have built-in reduction gear assemblies with internal optical rotary encoders that sense their rotations within one degree of accuracy.[13]
- The touch sensor detects whether it is currently pressed, has been bumped, or released. The orange Enter button and the gray right and left NXT buttons can be programmed to serve as touch sensors. In the NXT-G programming software, a value of 0 is given out when it isn't pressed, and a value of 1 is given out if it is pressed down.[14]
- The light sensor detects the light level in one direction, and also includes an LED for illuminating an object. The light sensor can sense ambient light with the LED set to off, or it can sense reflected light with the LED set to generate light. In the NXT-G programming software the sensor senses light on a scale of 100, 100 being very bright and 0 being dark.[15]
- The sound sensor has a microphone and can be used to detect a sound's amplitude (loudness or volume). In the NXT-G programming software, it senses sound by a scale of 0 to 100, 0 being no sound, and 100 being a very loud sound. Using the sound sensor, you could program a robot to move when you clap.[16]
- The ultrasonic sensor can measure the distance from the sensor to something that it is facing, and detect movement. It can show the distance in both centimeters and inches. The maximum distance it can measure is 233 cm with a precision of 3 centimeters. The ultrasonic sensor works by sending out ultrasonic sound waves that bounce off an object ahead of it and then back. It senses the time it took for that to happen.[17]
These parts are not included in the Lego Mindstorms NXT base kit and may be bought separately:[18]
- The temperature sensor can measure temperature in Celsius or Fahrenheit.
- Third-party companies also manufacture sensors such as the color, compass, gyroscopic, RFID reader and accelerometer sensors sold by Lego.
The sensors come assembled and programmed. In the software mindstorms you can decide what to do with the information that comes from the sensors (for example you can program the robot move forward until it touches something).
Lego also sells an adapter to the Vernier sensor product line. Vernier produces data collection devices and related software for use in education.
Connector
Sensors are connected to the NXT brick using a 6-position modular connector that features both analog and digital interfaces. The analog interface is backward-compatible (using an adapter) with the older Robotics Invention System. The digital interface is capable of both I2C and RS-485 communication.
Pin | Name | Function | Color | Pin Numbering |
---|---|---|---|---|
1 | ANA | Analog interface, +9V Supply | white |
File:Rj11 connector.jpg |
2 | GND | Ground | black | |
3 | GND | Ground | red | |
4 | IPOWERA | +4.3V Supply | green | |
5 | DIGIAI0 | I2C Clock (SCL), RS-485 A | yellow | |
6 | DIGIAI1 | I2C Data (SDA), RS-485 B | blue |
Parts
Included in the base kit:
- 519 LEGO Technic parts (and Bionicle parts, including Visorak pincers)
- NXT Intelligent Brick
- Three servo motors
- Ultrasonic distance and movement sensor
- Sound sensor, with sound pattern
- Light sensor, detecting light intensity
- Touch sensor (press/release/bump detection)
Included in the education base set:
- 431 LEGO Technic parts including:
- NXT Intelligent Brick
- Rechargeable lithium battery
- 3 servo motors
- 1 ultrasonic distance and movement sensor
- 1 sound sensor, with sound pattern
- 1 light sensor, detecting light intensity
- 2 touch sensors (press/release/bump detection)
- 3 converter cables, for using Mindstorms RIS 2.0 sensors and motors with the NXT brick (each 39cm)
- 7 connector cables (one 20cm, four 35cm, two 50cm)
- 3 lamps
Additional parts are sold separately:
- Compass sensor
- Color sensor
- Accelerometer sensor
- Infrared seeker
- Gyroscopic sensor
- Infrared link sensor
- Vernier sensor adapter
Notes
- ^ "What's NXT? LEGO Group Unveils LEGO® MINDSTORMS™ NXT Robotics Toolset at Consumer Electronics Show" (Press release). Las Vegas, NV: Lego Group. January 4, 2006. Retrieved 2007-09-17.
- ^ "8527Mindstorms® NXT® Kit". Mindstorms Website. Lego Group. Retrieved 2008-12-26.
- ^ "LEGO® MINDSTORMS® Education NXT Base Set". LEGO Education Website. Lego Group. Retrieved 2008-12-26.
- ^ http://www.robotsnob.com/archives/2009/02/at-last-lego-mindstorms-nxt-20.php
- ^ "All the tools to take your LEGO MINDSTORMS NXT to the Extreme!".
- ^ The LEGO MINDSTORMS NXT Software version 1.1 to be released in August 2007 (LEGO.com MINDSTORMS NXT News. 2007-05-07) - Retrieved 2007-06-12
- ^ Not eXactly C
- ^ NBC/NXC - NeXT Byte Codes and Not eXactly C
- ^ URBI NXT Page
- ^ LeJOS, Java for Lego Mindstorms
- ^ http://lejos-osek.sourceforge.net/index.php
- ^ Lego Mindstorms NXT base kit parts
- ^ Servo motors
- ^ Touch sensor
- ^ Light sensor
- ^ Sound sensor
- ^ Ultrasonic sensor
- ^ Extra parts
See also
Further reading
- More information can be found on the Lego Mindstorms website
- All the current Lego Mindstorms NXT books can be found at the Lego Mindstorms NXT book repository
- Lego FAQ website.