Hey there,I have a working model, but it is very disproportional and it looks weird.. I got some smaller motors than the ones that came with the NXT set, but they are not THAT small.. does anyone know of some small motors... maybe custom or something?

mattallen37 wrote:If you are looking for lego brand motors, Philo has a lot of technical info on almost all (if not all) lego 9v motors here.

You should be able to see what all lego motors there are, and find one to suit your needs.

Most of them don't provide a tacho count and need adapters to work with the NXT.I guess, for any NXT robot, you want a motor with a built in tacho counter so that they are regulated to a constant speed. I think, only the NXT motor has this feature up to now.

mattallen37 wrote:If you are looking for lego brand motors, Philo has a lot of technical info on almost all (if not all) lego 9v motors here.

You should be able to see what all lego motors there are, and find one to suit your needs.

Most of them don't provide a tacho count and need adapters to work with the NXT.I guess, for any NXT robot, you want a motor with a built in tacho counter so that they are regulated to a constant speed. I think, only the NXT motor has this feature up to now.

You won't find a motor that doesn't need an adapter to work with the NXT (except the NXT motors).

Well, if it is for a lego robot, it would be a lot easier to connect an encoder to a lego motor, than to use a non-lego motor and try to mechanically interface it.

bullestock wrote:If you don't insist of using LEGO motors, and you don't need speed control, you could consider using standard servomotors using a controller such as this one.

A servo usually only has 90-180 degrees of motion, and it is based on absolute position (but without feedback to the NXT). A modified servo (or continuous rotation servo) is yet even worse. You don't get any feedback from it, and it's speed isn't as defined as using PWM with a normal DC motor.

If you need encoder feedback, you really should use the NXT motors. They are by far the cheapest solution I know of, and are specifically for use with the lego system. They are also one of the most powerful lego motors, and are actually fairly small considering the gear train, encoder, connectors...

Why do you need motors smaller than NXT motors, as well as encoder feedback?

You can attach any 9V DC motor directly to the NXT computer (pin 1 and 2) if you do not need the odometry sensor, which is used to measure rotation angle and speed. There is no need of special adapter or software. Just cut the plug of a cable and solder the DC motor to the white and black wires. Use the MotorPort class to control the power.You can buy original cables for a few euro directly from Lego.

mattallen37:Thanks a lot for the link! I found that pages before, but I was not sure which of those motors I could use..and for your second response:if the feedback and measurements for servomotors are so bad/non-existant, are there adapters or something, to make them better?

skoehler:Where do I get these adapters you speak of? And are they the same one or are there several different types of adapters I need?

bullestock:I also found that page before.. but that is a controller for a motor (def important) but where is the actualy motor that attaches to? or do I use whatever motor I want?

s.frings:That sounds great, but I foresee a lot of problems with things like, having more than one motor attached, and then controlling them separately.. can the NXT recognize them as different motors?

FALL3N1 wrote:mattallen37:Thanks a lot for the link! I found that pages before, but I was not sure which of those motors I could use..and for your second response:if the feedback and measurements for servomotors are so bad/non-existant, are there adapters or something, to make them better?

The normal servo motors (with 90-180 degrees rotation) do indeed have a position feedback sensor. They use a potentiometer connected to the output shaft. The circuit inside the servo uses a PID (or sometimes just P) controller to regulate the position to a point specified by the pulse length of the signal pin, usually between 500 and 2500 uS. These are actually pretty cool. You can specify the position, and it will try with all its might to get to that position. However, there is no way for the controller to know the current position, so it doesn't know when it reaches the position, or if it stalled trying.

A modified (or continuous rotation) servo is basically identical in appearance to a standard servo. Actually, you can convert a standard servo into a continuous rotation servo. To convert it, you need to disconnect the POT, and glue it in a relatively center position. You also need to remove any mechanical interference with it rotating infinitely in either direction. In this manner, the internal circuit/processor will always see the same position from the POT, so the further from that position you specify the new location, the faster the motor runs trying to catch up. Of course it never will catch up, and it will just run. Thus, this type of servo not only doesn't allow you to know it's position, but it also doesn't allow you do modify the PWM specifics. You are stuck using whatever controller circuit/processor that the manufacturer put in it. You can't specify a certain PWM duty cycle.

FALL3N1 wrote:Where do I get these adapters you speak of? And are they the same one or are there several different types of adapters I need?

Adapters for almost anything but lego motors, you need to make yourself. Even the lego ones you can make. However, you can also buy the adapters for lego motors from lego.com. You can buy NXT -> RCX style adapters here, and RCX -> PF adapters here or here. There is no NXT -> PF adapter as an all-in-one (you need to use two adapters, or make your own).

FALL3N1 wrote:I also found that page before.. but that is a controller for a motor (def important) but where is the actualy motor that attaches to? or do I use whatever motor I want?

You can only use servo motors with that controller. Look down below for related items.

FALL3N1 wrote:That sounds great, but I foresee a lot of problems with things like, having more than one motor attached, and then controlling them separately.. can the NXT recognize them as different motors?

You can only independently control one motor per port. Connecting motors using a custom adapter does not turn it into a motor MUX. If you need more than 3 motors controlled by the NXT, there are many options available.

If you use 2 motors to build a driving robot (one for the left wheel and one for the rigth wheel) you possibly need something to control the direction (speed left versus right side). If you drive with two motors using the same power on both sides, the robot will drive a curve because two motors have never exactly the same efficiency, even if they are of the same type.

So you usually need a sensor to measure if the robot is driving to the correct direction.

You could follow a line on the floor using an optical sensor. To follow a line, you do not need to know the exact speed of each motor.

But if you want to drive without external markers, you may use custom odometry sensors that are attached to the digital inputs lines of the motor ports. In easiest case, one single optical sensor attached to a wheel with optical markers may be used. See description of the "Asuro" or "Nibobee" robots.

If you need to control more than 3 motors, I would use an Atmel microcontroller (e.g. Atmega 8 ) and communicate via I2C bus. The NJX computer could send commands to the external microcontroller, which controls the motors speed and returns the odometry counters.

Last edited by s.frings on Thu Jun 30, 2011 6:24 pm, edited 1 time in total.

FALL3N1 wrote:Where do I get these adapters you speak of? And are they the same one or are there several different types of adapters I need?

Adapters for almost anything but lego motors, you need to make yourself. Even the lego ones you can make. However, you can also buy the adapters for lego motors from lego.com. You can buy NXT -> RCX style adapters here, and RCX -> PF adapters here or here. There is no NXT -> PF adapter as an all-in-one (you need to use two adapters, or make your own).

You speak of two RCX->PF adapters (Lego 8871 and 8886). I believe, that only one of them is suitable as an RCX->PF adapter. I believe the short 20cm cable (Lego 8886) is, but the long 50cm cable (Lego 8871) is not.

skoehler wrote:You speak of two RCX->PF adapters (Lego 8871 and 8886). I believe, that only one of them is suitable as an RCX->PF adapter. I believe the short 20cm cable (Lego 8886) is, but the long 50cm cable (Lego 8871) is not.

I can 100% guarantee that they both will work. Unless Lego changed to using DBG connectors on both ends of the long cables since I bought mine 15 months ago. The site doesn't say anything about the longer one working, but both of my longs ones (as well as short ones) have a LBG and a DBG connector (LBG is the one with the RCX style bottom).

skoehler wrote:You speak of two RCX->PF adapters (Lego 8871 and 8886). I believe, that only one of them is suitable as an RCX->PF adapter. I believe the short 20cm cable (Lego 8886) is, but the long 50cm cable (Lego 8871) is not.

I can 100% guarantee that they both will work. Unless Lego changed to using DBG connectors on both ends of the long cables since I bought mine 15 months ago. The site doesn't say anything about the longer one working, but both of my longs ones (as well as short ones) have a LBG and a DBG connector (LBG is the one with the RCX style bottom).

Thanks for the clarification. Unfortunately, the picture of the long cable is a big fail. So I appreciate that you confirm that the 50cm cable also is an adapter cable, even though it doesn't have the a conclusive picture or a proper description.