Not eXactly C
Wednesday, December 13th, 2006Announcing Not eXactly C (NXC), a C-like programming language for the standard NXT firmware. Not eXactly C is built into the latest NBC compiler. If the source code file has a .nxc extension, then NBC processes the code using the NXC parser before compiling the resulting NBC assembly code. NXC is the only C-like programming solution available on Win32, Mac OSX, and Linux platforms.
http://bricxcc.sourceforge.net/nbc/
The latest test release of BricxCC also features additional support for the NXC language.
http://bricxcc.sourceforge.net/test_release.zip
Some of the features already present in NXC are:
- string variables and string literals with support for concatenation.
- while, do-while, if/else, repeat, and for loop programming constructs.
- asm block statement for writing NBC code within NXC.
- Lots of API functions for drawing, reading sensors, controlling motors, button state, etc. (More are on the way)
Posted in development, news, Programming | 8 Comments »
Now Available - Microsoft Robotics Studio v1.0
Wednesday, December 13th, 2006
Microsoft has released the first version of Robotics Studio!
New since November’s CTP:
Security Support
Security is now fully implemented and turned on by default. It is fully functional for HTTP and TCP transports.
Simulation Scenario Editing
We have added an interface for editing entities and creating scenarios scenes (configurations) directly from the Visual Simulation Environment. Now you can easily select, reposition, rotate, or add entities.
More Documentation and Tutorials
We’ve revised and added more documentation. We’ve also added some new tutorials, including tutorial demonstrating a fully distributed application and a Visual Programming Language tutorial that demonstrates how to use it to program simulated robots.
Visual Programming Language Configuration of Services
You can now configure the services you use in VPL directly or by using another service. This is in addition to using manifests. VPL now enables you to compile your project and any related, user-defined activities as services. This means you can create your own add-on services for use with VPL or other programming languages. An option even enables you to generate a C# project.
Services Improvements
We improved a lot of our sample services and their XSLTs.
Posted in development, news, software | 2 Comments »
NXT Poker Machine
Wednesday, December 6th, 2006
In an effort to learn more about NeXT Byte Codes I developed a simple poker machine for the NXT Brick. The program gives you one hundred dollars to start and lets you alter bets with the bricks buttons. Winning combinations are 4 of a kind, 3 of a kind, 2 pair and straights (straights must appear in order). My original idea was to create an old leaver style of poker machine and I will release it if people seem interested. This project helped me to further understand the implementation of subroutines, threads, graphical syscall and array handling with NeXT Byte Codes. I would encourage learners of NeXT Byte Codes to develop their own poker machine, it is very worth while.
I am providing a NXT Poker Machine file with the program and graphics so you can have a look, I will also provide the source code to people that are interested.
Posted in development, projects, knowledge | 37 Comments »
NXT-G Blocks from Steve Hassenplug
Wednesday, December 6th, 2006
Steve Hassenplug has posted in our forums that he has uploaded several NXT-G blocks that he created with the LabVIEW Toolkit. You can find these blocks on the Team Hassenplug site. Make sure you have the Dynamic Block update installed.
Line Following block
This block should be placed in a loop, and will cause drive the motors at the speed specified, so the robot can follow the edge of a line, with a single light sensor. My tests show this single block will execute about 2 to 3 times as fast as the same code in NXT-G.Display Number block
I made this block as a debugging tool. It combines several blocks that (due to program limitations) can not be compiled into a My Block. The block takes a line number, a caption, and a number as input. The Caption and Number are displayed on the given line on the screen. This block requires the “Display Performance” block be installed, in order to work.Simple Array block
The array block is a repackaged sub-block. It will allow you to Clear the array, Add values, and Get values given the index.Acceleration Sensor block
This is the first block I made. The Configuration panel is not complete. It works with one of the prototype acceleration sensors from Hi-Technic. It has outputs for X, Y & Z. It can not be used as a loop block condition, because I didn’t finish that part.
Posted in development, news | 28 Comments »
NXT LabVIEW Toolkit DirectCommand VIs
Tuesday, December 5th, 2006When the Fantom driver was released, I was somewhat disappointed that LEGO released only a low-level interface. Indeed, within a few weeks several high-level wrappers were created by the community — such as NXT#, iCommander, Ruby-NXT, SimpleNXT etc. Yet there was still no high-level VI library for LabVIEW that allowed easy PC control over Bluetooth (BT) or USB.
Now, with the release of the NXT LabVIEW Toolkit from NI, this vacancy has been filled. The NXT Toolkit has three major components: a set of VIs that can be compiled into NXT code and run on-brick, a set of support VIs that allow creating new NXT-G Blocks, and a set of VI wrapping Fantom into higher-level graphical programming library for NXT control on PC (and Mac).
Posted in development, news, knowledge | 13 Comments »
NXT LabVIEW Toolkit Overview
Tuesday, December 5th, 2006Although the “official” release is scheduled for next week, National Instruments (who developed NXT-G and the firmware running on the NXT brick) “leaked” to the NXT community that the toolkit is available online as of today, December 5th, 2006. The LabVIEW Tookit for LEGO Mindstorms NXT is available for download on NI website.
Being granted the privilege to be a member of the beta testing group, I was able to play around with some of its functionalities over the past months. A scratch overview of the toolkit is described in this post.
Posted in development, news, knowledge | 1 Comment »
It’s Here! NI LabVIEW Toolkit for LEGO Mindstorms NXT
Tuesday, December 5th, 2006National Instruments has just released the widely anticipated NI LabVIEW Toolkit for LEGO Mindstorms NXT! Click the screenshot above for a closer look. Download and enjoy!
Per National Instruments:
Users including adults, students and secondary school and university educators can now can create and download VIs to operate and control the MINDSTORMS NXT robotics platform. Third-party software and hardware developers can also use the toolkit to create native blocks for MINDSTORMS NXT software.
Once a LabVIEW program has been compiled and downloaded to the NXT, the toolkit can be used to interact with the NXT robot while a program is running. By dropping a LabVIEW control, the toolkit can send data to the robot and influence the currently executing program. By dropping an indicator, the value at that point in the program is sent back to the PC and viewed in a regular LabVIEW front panel. Developers of third-party sensors and other hardware add-ons for MINDSTORMS NXT can use LabVIEW to create native blocks that program and control their hardware for use in MINDSTORMS NXT software.
Posted in development, news | 1 Comment »
MS Robotics Studio Tutorial
Saturday, December 2nd, 2006
Another informative article has been added to the Microsoft Robotics Studio site. They’re definitely stepping up documentation and resources as the official release nears. Check it out!
Microsoft Robotics Studio Runtime – An Introduction
The Microsoft Robotics Studio is a Windows-based environment for academic, hobbyist and commercial developers to easily create robotics applications across a wide variety of hardware. The Microsoft Robotics Studio Runtime is a lightweight runtime written for CLR 2.0 that provides support for creating, hosting, and managing such applications.
Posted in development, news, knowledge | 6 Comments »
PSP-Nx NXT-G Block Preview
Friday, December 1st, 2006
How many blocks do you need to turn your NXT into a remote controlled car? three blocks (well, four if you count the loop). Here’s a screenshot of the program that does it. The first block is the PSP-Nx block I’m writing for mindsensors.com, which communicate over I2C with the PSP-Nx PS2 controller interface by mindsensors.com. This new sensor block outputs the four analog joystick values scaled to the range -100 to +100, and can also check the status of the many buttons in the PS2 controller. Of course, it can be used within a Wait block, a Loop block or Case block, just like any other sensor block.
The block is planned to be released next month, when the NXTToolkit for LabView is announced.
Posted in development, news | 2 Comments »
NBC Debugger for NXT
Wednesday, November 29th, 2006
A new debugger has surfaced for NBC and the LEGO Mindstorms NXT. Check out the wealth of features!
Basic Features
integration with BricxCC; start/stop/restart; step into/over/out; single/multi thread debugging; show/walk thread’s call stack; watch/modify variables; debug logging; unlimited soft and hardcoded break points and debugbreaks; copy to clipboard; optional periodical data collection during program execution; comm status lights; NXT keep aliveDebug logging
simple/multi-segment debug log with numeric and string supportSource code integration
jump to definition of subroutine/thread/variable/label/macro/file in the project; show/jump to next instruction; force continue anywhere; run to cursor; color coded soft/hard enabled/disabled breakpoints; user selected fontBreakpoints
unlimited hard coded unconditional/conditional/counter type with optional reset, enable/disable at run-time; unlimited soft breakpoints add/remove/enable/disable at run time; 1 soft break point enabled per subroutine; display location/type/hit count; enable all/disable all; reset hit count; jump to breakpoint; add/remove/enable/disable breakpoint for source line at run time; copy to clipboardVariable watch/modify
display/modify variable/array/cluster during execution/pause; hex/decimal base; display variable name/type/value; display array type/length/values; display array as string; expand truncated lines in tool-tip; unlimited embedded array/cluster dimensions; collapse/expand clusters/arrays; full collapse/expand; 3 modes show all variables/user selected variables/variables in currently executed section; copy to clipboard
Thread and call stack
display location with subroutine/thread name/file name/line number; expand truncated lines in tool-tip; expand threads call stack; display/walk call stack; click to jump to source code; copy to clipboard
[via nxtasy.org forums]
Posted in development, news, software | 2 Comments »
Next Bytes Code 1.0.1.b12 Now Available
Wednesday, November 29th, 2006
John Hansen has released an updated NBC beta. NBC allows users to program the LEGO Mindstorms NXT using textual code with assembly language syntax.
This beta release introduces support for two new languages related to NBC. The NPG language is a very simple 5 step declarative language for writing RPG (NXT Program) executables. NPG programs simple list the 5 steps with compiler support for C++-style comments interspersed. Unlike the built-in NXT menu system mechanism for writing NXT Programs which require alternating move and wait commands, programs written using NPG can sequence the 5 commands in any order except that the EndStop and EndLoop commands can only occur as the last step. See test.npg for a small sample. These programs require the RPGReader.sys program on the NXT. This executable is 14kb in size but a replacement version which nearly identical functionality will soon be available on the NBC site which is only ~2.5kb.
NBC also now supports a very early version of the NXC programming language. This language is a lot like NQC syntax-wise. It is still in its infancy so it is subject to substantial change and improvement. The NBC compiler converts the NXC code to NBC code and then compiles it as it would any other NBC program. See test.nxc for a basic example.
The NXTDefs.h header file has been split into NXCDefs.h and NXTDefs.h. NBC programs should still #include “NXTDefs.h” but NXC programs should #include “NXCDefs.h”.
This release also fixes a problem with unix-style line endings which made it so that multiline macros written on non-Windows platforms would not work correctly.
Posted in development, news | No Comments »
Array Block for NXT
Tuesday, November 28th, 2006Hi everyone, my name is Adam Parkes. I’m a new contributor to nxtasy.org. This is my first time working with robots, I’m a programmer normally, so I guess thats why most of my robots look really crummy. One of the first things that I noticed in the NXT standard development language is that there wasn’t an array block . After a few quick minutes of thinking about how to implement one I developed a block that handles reading and writing to a pseudo array of data. The reason I call it pseudo is that the block mimics an array, in reality the data blocks may not be located right next to each other, not that it matters much anyway for all intent and purpose it can be used exactly like an array. The block has one major drawback, it is unable to be resized at runtime. This is due to the block being hard-coded to have the exact number of data members needed in the array before compile time.
I have provided a tutorial on how the block functions and how to make your own. Using a similar structure you could implement an aggregate data type, e.g. classes or structs. If anyone wants a tutorial on how to make an aggregate data structure with NXT just drop me an email.
Till NXTime.
Posted in development, knowledge | 3 Comments »
