Understanding Simple Motor Controller acceleration

Hello,

I have similar application as Peter and I will use the Simple Motor Controller (18v7). I found from the latest user manual shown that both max. accel and decal are available but I do not fully understand the description as it has some discrepancy in that section. I am thinking about to use analog control only. As the 18v7 has two analog inputs. If one use for joystick for speed and direction. Is it possible to add the second potentiometer for ramp control? We can accept if this apply to both accel and decel.

The section of manual I do not understand is “Max. acceleration is a number between 0 and 3200 that specifies …” and “If an acceleration value of 1 is too fast…” on page 50

Thank,

Charles.

Hello, Charles.

I split your post off from the topic you originally posted it in because that topic is about the jrk.

As you saw, the acceleration and deceleration features are described in the “Motor Settings” section of the Simple Motor Controller user’s guide, which says:

I read it over carefully just now and I don’t see a discrepancy. Could you please tell me the first word or phrase you don’t understand, and why?

The SMC only has two analog inputs, so if you are already using them for your joystick then will not be able to connect another potentiometer.

The SMC has no built-in feature for changing the acceleration/deceleration limits based on the value of a potentiometer, but you could do that if you hooked it up to a microcontroller or computer. Your microcontroller or computer could read the value of an analog input and use the information from that to send a command to the SMC to set the acceleration/deceleration limits. You should consider turning the joystick by 45 degrees instead of using the mixing feature of the SMC; that would free up the second analog input (A2) for this purpose.

–David

David,

Thank you for your explanation. But I still not full understand and may be my English is not good enough. If the Accel/Decel limit is 0 ~ 3200 in given value of speed update period. Is that means if I set it to 100 and speed update period is 10mS then it will increase the speed of motor from 0 to 100 in 10mS?

For the second potentiometer. The reason for my question is we do not want to use a micro controller or computer online when the motor is running. I have attached a drawing from a analog motor controller that shows how they make the accel works. You will find the VR11 is connecting a capacitor to ground with the control voltage it generates a ramp. Can I do similar to the speed/direction potentiometer for analog input of your motor controller to perform similar?

Charles
Analog Motor Controller.pdf (109 KB)

That is correct.

If you want to just set the acceleration and deceleration limits to something ahead of time, then you can easily do that using the Simple Motor Control Center. If you want to be able to change the acceleration and deceleration limits on the fly without using a microcontroller, then yes, you could make a circuit like the one in that PDF. The circuit would go between your joystick and the analog input of the controller. Helping you design that circuit is beyond the scope of our technical support, but you will probably need an opamp on the output of that circuit, or else the output impedance will be very high and the Simple Motor Controller’s ADC might not be able to read it properly.

–David

David,

After review your comment and information. I think it is better to use micro controller. Please take a look on the drawing and recommend a suitable controller for me. I prefer to have LCD display for set up and status monitor. This is a pan tilt head for broadcast camera and lens.

Thanks

Charles

Hello, Charles.

It looks like you need 9 analog inputs on your microcontroller. I think the only programmable controllers we have with that many analog inputs are the Orangutan SVP-1284 and the Arduino Leonardo. I think the Orangutan SVP-1284 would be the better choice because it includes an LCD (and the necessary software libraries to use it) and it has two UARTs. I don’t know what you want to do with that “Serial I/O controller” and the 23201a Serial adapter, but it seems like it would probably be better to have them on different serial lines from your motor controllers so they don’t have to see all the commands you are sending to the motor controllers. With the Orangutan SVP, you could use one UART for the motor controllers and another UART for the other things.

There are several things wrong with your diagram: You have connected every VCC line together, which means you are shorting together the outputs of different regulators, which is a bad idea. The jrk 21v3 does NOT have a TXIN line; so you should double check the pinouts of your controllers. If you actually need to receive serial responses from the jrk controllers, you’ll need to supply some extra AND gates. If you don’t need to receive responses, you can simplify your wiring a lot. Why did you connect all the ERR lines together? It is OK to do that with the two Simple Motor Controllers, but when you add the jrks there will be so many LEDs pulling that line down that it is unlikely to go very high when an individual device has an error. Reading the ERR lines is an optional feature and if you don’t need it you can simplify your wiring.

This looks like a huge project and I recommend that you build it piece-by-piece and test each component before adding a new one.

–David

David,

Thank you for your comment. As I am new to servo control. I just drawing up the diagram base on the info in the SVP manual. It may be wrong. Also I have no knowledge of software. We need to hire programmer or outsource it. Anyway, your suggestion on test it one by one is a must. For the serial adaptor. The reason to add this device is simply because we need to control the lens serial or analog. The lens has RS232 port for remote. I think we need some I/O interface but I can find it in your website. Also we will need to have all the control signals send on the fly. Do you think the controller is fast enough to do so? I will order some modules for test first after the plan been fixed.

Charles.

David,

According to your advise. I have make change to the drawing. Please check. On the other hand, I have read through the programming user guide of SVP controller and can not any reference on controlling multiple device. Can you explain how to do this? Or you can have some sample code for this operation?

Charles

Our manuals don’t specifically talk about controlling multiple devices from an Orangutan SVP, but the documentation of the Pololu AVR Library explains how to send and receive bytes on both UARTs. You can point your software person to the Pololu AVR C/C++ Library User’s Guide to learn about the serial port functions.

Yes, I think the Orangutan SVP will be fast enough for this application. It should be able to read 9 analog inputs, do some basic calculations, and send serial commands to all your devices in a few tens of milliseconds.

I’m not sure what you want this “I/O interface” to do. From your schematic it looks like you want some kind of microcontroller with two UARTs, so maybe you should use another Orangutan SVP? Is it possible you don’t need the I/O interface and could just do everything with a single Orangutan SVP?

–David

Regarding your diagram: You are still shorting all the VCC pins together, so that is not good. You have connected RX to RX and TX to TX, which is incorrect. TX means transmitter and RX means receiver, and you need to connect RX to TX to get something meaningful. Connecting TX to TX will cause a short circuit.

I don’t know why you connected all the RST lines of your controllers together. They are all inputs. If you want to be able to reset your motor controllers from the SVP, you should connect their reset lines to a GPIO on the SVP. This is an optional feature that you probably won’t need.

–David

David,

I think this drawing is more sensible, as we have the Pan and Tilt motor running 12V and the focus motor run at 6V. Each axis will have their own DC regulator connect to a central power supply.

For the I/O interface, this is bit complicated. This is use for interface with broadcast lens. They have three variants that we need to prepare for all of them. One type is focus control by the motor and zoom control by analog voltage swing between 2.5V to 7.5V reference to the lens voltage. Second type is both zoom and focus control by analog voltage swing. The third is serial (RS232) control that involve two type of lens protocol that is normally Canon or Fujinon. Thats why we need an I/O interface that I still can not find a suitable product that may need custom design, or I don’t know if this can be done by the SVP? As the Jrk controller do not have a TX IN, thats why I connect it to the second pair of TX/RX pin of the SVP controller.

For the multiple device control, each motor controller can assign a unique device ID. But I can not find a command can set this in the programming manual. For a beginner to the AVR programming like me, Do you think to use Amtel AVR Studio to program this project will be better?

Charles

David,

In order to let you better understand the lens and I/O interface. Please see the drawing that illustrate how the lens be controlled. You can assume this is another servo device. The difference of three types of lens are like this.

1. Only built in Zoom Servo is available, Focus by the external motor (by Jrk). RS232 is not available.
2. Both Zoom and Focus Servo built in. RS232 is not available.
3. Both Zoom and Focus Servo built in. RS232 also available.

Do you think a Baby Orangutan can do this?

David,

I also include the datasheet for motors we will use for your reference.

Charles
Maxon F2140.pdf (115 KB)
M2230.pdf (82.6 KB)

For the jrk and Simple Motor Controller, you set the device ID over USB using their respective software configuration programs (the Jrk Configuration Utility and the Simple Motor Control Center).

For your second question, if you are going to program the Orangutan SVP then I think Atmel Studio is the best IDE to use. I don’t know of any other IDEs that work with the Orangutan SVP, so the alternative is to just use a plain text editor and a Makefile.

I see you added five DC regulators to your system, and you are feeding their outputs to the VCC on the your Orangutan SVP, Simple Motor Controllers, and jrk. This is not the correct way to power these devices. You are supposed to apply power to GND and VIN, and the VIN pin has a wide range of voltages it will accept, so you probably don’t need so many regulators. Please read the user’s guide for each of these devices so you can understand how they are powered. Also, powering motors through a regulator will be challenging because you will need a regulator capable of providing a lot of current. Instead of limiting the voltage to the motor to 6V, you can provide 12 V and just limit the duty cycle to 50%, which will have the same effect.

I don’t really understand what you are asking. Could you tell me exactly what features you are looking for in a microcontroller board? For example if you said “I need to be able to read three voltages and send and receive TTL serial bytes.” then yes, the Baby Orangutan can do that.

–David