LEGO mindstorm - which product to use to make projects mentioned below I'm planning to buy a Lego Mindstorms kit for the following projects. I haven't really used Lego before - my friend asked me to consult him about projects (I use microcontrollers and build robots from material I find in my garage).


Two track tank with a distance sensor to create a map of a room. A gyroscope sensor to measure the angle of slope would also be very useful. It would use fuzzy-logic, A* algorithm and OpenCV if I decide to put a web camera on top of the tank.
Inverted pendulum (PID controller). It needs an encoder and a rather high speed motor which can change it's direction of rotation.
Some crawler (like a snake or spider) - models with holonomic constraints.


Now I'm considering the EV3 basic educational kit and I think it doesn't fit my needs. I also can't understand some things about software - if I buy a kit for home use, I suppose I shouldn't buy any software.

Questions


Which kit would be the best fit? Maybe two kits or even three?
Is the servo limited in rotation or can it be used as a simple electric motor? If no, then which motor can be?
Can I program the models using free software (downloaded from a website)? C or Java is preferable. NXC is nice too (it looks like C, but I haven't used it before).
How to remote control the robots? Should I buy additional Wi-Fi adapters?
A basic EV3 seems to be enough for most of the basic projects, but you might find yourself in need of a handful of extra parts (gears, beams, etc). The basic kit does not include a gyroscope, but you can buy an extra one separately. The same stands for the ultrasonic distance sensor.
The alternative is the educational set which already includes the ultrasonic sensor.

All EV3 sets come with the official software, but for any serious project you should indeed look for a more capable software. For Java there is LeJOS, for C there is NXC. Both are free and open source.

The motors sold in EV3 kits are capable of continuous rotation, but also have position encoders in them, making them capable of moving with 1° precision. For more precision you can always use gearing or other mechanics to reduce movement.

Remote controlling is possible with Bluetooth (built in) or with WiFi (via an external USB dongle).