Hopefully, if things go well, I will be mentoring for local rookie FLL teams sponsored by our team next year. First of all, I want to know if the programming is done graphically like LabView, or will it be very simple pseudo C? Where can I learn the ins and outs of it? Now, I am very hard wired for written languages, but I am pretty sure I will have no trouble transitioning, but teaching is one thing. So any advice on how to teach?
As I understand it, it’s pretty much all graphical if the “stock” programming interface is used. I’ve only used the old RCX, but I’ve seen the NXT. Not certain what else is allowed, though.
Start by looking through and seeing what everything does.
FLL teams use a program called NXT-G, which is a simplified version of Labview. According to the rules however, “NXT Software” is allowed. The RCX is also allowed.
A program called RobotC is used in FTC which is high-level C programming for NXT.
I’m curious as to why you’ve assumed between graphical and ‘pseudo C’ without even looking at documentation. Interesting two choices as there are several programming environments available for the NXT controller.
You can pick up an NXT 2.0 kit for around $300 US, this would have enough in it to become quite fluent in the software.
I believe the two allowed environments are NXT-G and Robolab which are both graphical. NXT-G being more common but you should be reading on the official FLL website.
NXT-G is based on LabVIEW.
You’re limited in what you can use; my teams use NXT-G. This is a graphical language that’s built on the LabView engine and has a number of similarities. And a lot less capability. NXT-G comes with the Mindstorms kits, and the kit you should order with your team registration also comes with a CD with a pretty decent tutorial. Note that the commercial kit (Mindstorms 2.0) is not the same kit that comes with the educational version. They have slightly different parts, and a different version of NXT-G. Close, but there are a few things that a just a bit off. But for all practical purposes they’re the same.
There are a LOT of on-line resources you can use. Here’s a small subset of what I have bookmarked:
Your problem is not going to be finding info. It’s going to be deciding which info you want to use.
There are some pretty decent books out there on a number of Mindstorms topics. How to build, how to program, etc. One book that I do recommend as a supplement to the FLL coaches’ handbook (a must read, for many reasons) is First Lego League: The Unofficial Guide. See http://www.amazon.com/First-LEGO-League-Unofficial-Guide/dp/1593271859/ref=sr_1_1?ie=UTF8&s=books&qid=1303787631&sr=8-1
I’m an old programmer, and I’ve been using text-based languages for well over 30 years. I’m getting used to both NXT-G and LabView and it’s really not that bad. Once I got over my “I really want to type this” roadblock. Although I will say that I’ve just implemented a general-purpose subroutine (a “my block” in NXT-G) that took about 20 lines of nicely structured, easy-to-read, Perl. The NXT-G version is UGLY. But it can be done.
If you’d like more info, let me know here or PM me. Odds are we’re nowhere near each other, but you never know, and there’s a lot that can be accomplished via email.
Good luck with the team. I found our involvement (my wife, the 5th-grade teacher, started a team this year; we ended up with so many kids that we had to register 3 teams) to be very rewarding. Plus it gave me the excuse I needed to buy my own Mindstorms; I’ve been looking for a valid reason for years. One warning: when you’re trying to teach kids to program NXT-G, the more robots you have available, the better. We only had 1 robot for every 7 kids; they spent a LOT of time waiting for robot time. Our goal is 1 for every 2 kids, but it’s going to take a lot of fundraising & a number of years to get to that point.
I assumed pseudo C because of Arduinos. I do not think it would be practical to be teaching middle and elementary school children assembly or raw C/C++.
FLL doesn’t use Arduinos, at least not directly.
Nor do Arduinos use pseudo C or a dialect of C, Arduino’s SDK is based on Processing and Wiring.
There is a labview extention that will let you program NXTs, but you’ll have to ask your local team what language they use. Unless, of course, you want to completely reteach them.
About teaching: listen to your school teachers. They know how to teach, so learn from them. Try to remember what your elementary teachers were like, and act like them. Be patient, be kind, and make the kids think. Just remember: You’re not that different from them, so teach them as you would have wanted to be taught.
I know from my experiance that the best teaching is by giving the kids small projects like: moning forward 10 centimeters and turn 50 degress,tracking the black line.
They will do intuetively and if they have won’t succeed show them the solution. This is the bestway they remember the program, so if there will be a day they will be without you(and there will be) they will know what to do.
I’ve graduated form FLL and yes, NXT-G is very similar to Labview. It is powered by Labview and is visual with blocks. It’s simplified. THere are other programs you can use like Robot-C, Robolab, Labview, and Java but NXT-G is the standard. (in fact, in FLL I believe only NXT-G and Robolab are allowed)
I used RoboLAB for 6 years of FLL competition and teams I have helped with since then, and wholeheartedly recommend it. Like NXT-G, it is based on labview, but in its most powerful form, a bit more “raw.” RoboLAB has two different environments, the “Pilot” mode, and “Inventor” mode, which are each further subdivided into four levels of sophistication. Working upward from pilot 1 to inventor 4 makes for a great learning curve, gradually exposing students to more and more advanced features.
NXT-G is a good one. In my experience if you go deep enough you can come up with very nice things with it.
We have a lot of tips on programming on our website. www.team1322.org.
We have numerous teams who use the site. Just look under the Lego tab. Good luck!