DCC1000 User Guide: Difference between revisions
No edit summary |
|||
Line 46: | Line 46: | ||
{{ugAddressingInformation}} | {{ugAddressingInformation}} | ||
{{ugUsingYourOwnProgram| | {{ugUsingYourOwnProgram|DCC1000}} | ||
}} | |||
==Technical Details== | ==Technical Details== |
Revision as of 16:41, 17 October 2019
Getting Started
Welcome to the DCC1000 user guide! In order to get started, make sure you have the following hardware on hand:
- DCC1000 DC Motor Phidget
- VINT Hub
- Phidget cable
- USB cable and computer
- Power supply (8-30V DC)
- DC motor
Next, you will need to connect the pieces:
- Connect the DCC1000 to the VINT Hub using the Phidget cable.
- Connect the motor to the Phidget's output terminals.
- Connect the VINT Hub to your computer with a USB cable.
- (Optional) If your motor has an encoder, connect it to the encoder port on the DCC1000.
- Connect the power supply to the power terminals.
Now that you have everything together, let's start using the DCC1000!
Using the DCC1000
Phidget Control Panel
In order to demonstrate the functionality of the DCC1000, the Phidget Control Panel running on a Windows machine will be used.
The Phidget Control Panel is available for use on both macOS and Windows machines.
Windows
To open the Phidget Control Panel on Windows, find the icon in the taskbar. If it is not there, open up the start menu and search for Phidget Control Panel
macOS
To open the Phidget Control Panel on macOS, open Finder and navigate to the Phidget Control Panel in the Applications list. Double click on the icon to bring up the Phidget Control Panel.
For more information, take a look at the getting started guide for your operating system:
Linux users can follow the getting started with Linux guide and continue reading here for more information about the DCC1000.
First Look
After plugging the DCC1000 into your computer and opening the Phidget Control Panel, you will see something like this:
The Phidget Control Panel will list all connected Phidgets and associated objects, as well as the following information:
- Serial number: allows you to differentiate between similar Phidgets.
- Channel: allows you to differentiate between similar objects on a Phidget.
- Version number: corresponds to the firmware version your Phidget is running. If your Phidget is listed in red, your firmware is out of date. Update the firmware by double-clicking the entry.
The Phidget Control Panel can also be used to test your device. Double-clicking on an object will open an example.
The objects associated with the DCC1000 are as follows:
- Current Sensor: Measures the amount of current flowing through the motor's coils.
- DC Motor Controller: Controls the velocity and current of the motor, and the on-board fan.
- Encoder Input: Reads encoder input so you can implement closed-loop control of the motor.
- Position Controller: A built-in position controller.
- Temperature Sensor: Measures the temperature of the DCC1000 so you can tell if it's overheating.
- Voltage Ratio: Measures the sensor input of the "Analog In" port of the DCC1000. Intended for use with feedback potentiometers that some motors and actuators are equipped with.
DC Motor
Double-click on the DC Motor object, labelled DC Motor Phidget, in order to run the example:
General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:
- Drag the Target Velocity slider from -1 (full reverse) to 1 (full forward) to make the motor move.
- Manipulate the Acceleration slider to increase/decrease the amount of time it takes the DC Motor to reach a target velocity.
- Manipulate the Current Limit slider to limit the amount of current provided to the motor. Higher current means more torque, but more power consumption.
- Manipulate the Braking Duty Cycle slider to change how hard the motor brakes.
- Manipulate the Current Regulator Gain: see the technical section for details on this.
- Turn the fan on and off by selecting the fan mode. Auto mode will have the fan turn on whenever the controller starts to heat up.
Current Input
Double-click on the Current Input object Current Sensor in order to run the example:
General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:
- Modify the change trigger and/or data interval value by dragging the sliders. For more information on these settings, see the data interval/change trigger page.
Encoder
Double-click on the Encoder object, labelled Encoder Input, in order to run the example:
General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:
- Position Change: the number of ticks (or quadrature cycles) that have occurred since the last change event.
- Time Change: the amount of time in milliseconds that has elapsed since the last change event.
- Position: the total position in ticks relative to where the encoder was when the window was opened.
- Index Position: the position where the index channel was last encountered. Some encoders do not support index, check your encoder's datasheet for more information.
- Velocity: the average velocity in rotations per second. A CPR must be specified to enable this functionality.
- Specify a counts per revolution (CPR) value to enable velocity calculation.
- Modify the change trigger and/or data interval value by dragging the sliders. For more information on these settings, see the data interval/change trigger page.
- Modify the IO Mode with the drop-down menu. For more information on IO Mode, see the technical section.
Position Controller
Double-click on the Position Controller object in order to run the example:
General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:
Note: a video describing the use of this program is available below in the Technical Details section.
Configuration
- It is recommended to set the Rescale Factor first. This will change the units of your controller. For information on the rescale factor, visit the technical details section below.
- You can set the control parameters Kp, Ki and Kd in order to change the behavior of the control loop. You can save these variables into the program so you don't have to re-enter them manually (NOTE: This does not store the settings on the DCC1000, it simply saves them inside the control panel program, so you'll have to re-enter them if it's used on another computer).
- The Velocity Limit and '"Acceleration can be set in the top right. These values will be used to create a motion profile that the controller will try to track.
- Use the Deadband to determine how exactly the controller will try to reach the target position. View the API for a detailed description of how Deadband works.
- Click on Show Other Motor Settings' to access Stall Velocity. This is a safety feature which protects your hardware. View the API for a detailed description of how Stall Velocity works.
Other
- Change the Target Position to select which position you want the motor to try to reach.
- Press the Engage Motor button to allow the motor to start, and press again to stop it.
- You can Zero Position to add a position offset which will return the motor's position to 0.
Graph:
- You can view the control data on the graph. The green line is the selected target position, and the blue line is the motor's actual position as reported by the Hall Effect sensors. When the two lines meet, the motor will stop moving and attempt to hold that position, even if moved by an external force. You can Clear the graph, and customize the number of data points shown at any given time.
Temperature Sensor
Double-click on the Temperature Sensor object , labelled Temperature Sensor, in order to run the example:
General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:
- Modify the change trigger and/or data interval value by dragging the sliders. For more information on these settings, see the data interval/change trigger page.
- The measured temperature can be seen next to the Temperature label. Cover the board with your hands to see the temperature quickly rise.
Voltage Ratio Input
Double-click on a Voltage Ratio Input object in order to run the example:
General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:
- The voltage ratio is reported in Volts per Volt. For example, if the Phidget is providing 5V and the sensor is sending back 2.5V, the ratio will be 0.5V/V.
- Modify the change trigger and/or data interval value by dragging the sliders. For more information on these settings, see the data interval/change trigger page.
- If you have an analog sensor connected that you bought from us, you can select it from the Sensor Type drop-down menu. The example will then convert the voltage into a more meaningful value based on your sensor, with units included, and display it beside the Sensor Value label. Converting voltage to a Sensor Value is not specific to this example, it is handled by the Phidget libraries, with functions you have access to when you begin developing!
For more information about Voltage Ratio Inputs, check out the Voltage Ratio Input Primer.
Finding The Addressing Information
Before you can access the device in your own code, and from our examples, you'll need to take note of the addressing parameters for your Phidget. These will indicate how the Phidget is physically connected to your application. For simplicity, these parameters can be found by clicking the button at the top of the Control Panel example for that Phidget.
In the Addressing Information window, the section above the line displays information you will need to connect to your Phidget from any application. In particular, note the Channel Class field as this will be the API you will need to use with your Phidget, and the type of example you should use to get started with it. The section below the line provides information about the network the Phidget is connected on if it is attached remotely. Keep track of these parameters moving forward, as you will need them once you start running our examples or your own code.
Using Your Own Program
You are now ready to start writing your own code for the device. The best way to do that is to start from our Code Samples.
Select your programming language of choice from the drop-down list to get an example for your device. You can use the options provided to further customize the example to best suit your needs.
Once you have your example, you will need to follow the instructions on the page for your programming language to get it running. To find these instructions, select your programming language from the Programming Languages page.
Technical Details
Control Loop Parameters
In order to get the desired behavior from your controller, you will have to tune your control parameters. This video explains the tuning procedure and gives information on how the controller works.
Current Regulator Gain
Depending on power supply voltage and motor coil inductance, current through the motor can change relatively slowly or extremely rapidly. A physically larger DC Motor will typically have a lower inductance, requiring a higher current regulator gain. A higher power supply voltage will result in motor current changing more rapidly, requiring a higher current regulator gain. If the current regulator gain is too small, spikes in current will occur, causing large variations in torque, and possibly damaging the motor controller. If the current regulator gain is too high, the current will jitter, causing the motor to sound 'rough', especially when changing directions.
Interfacing Encoders
The DCC1000 can connect to any of the encoders we sell without any modification just by setting the EncoderIOMode property to Push-Pull . If you're trying to use your own encoder, you may need to change the IO mode to Open Collector or Line Driver mode. Have a look at the Encoder Primer for more details on what to use.
Further Reading
For more information, have a look at the DC Motor and Controller Primer.
What to do Next
- Programming Languages - Find your preferred programming language here and learn how to write your own code with Phidgets!
- Phidget Programming Basics - Once you have set up Phidgets to work with your programming environment, we recommend you read our page on to learn the fundamentals of programming with Phidgets.