DCC1100 User Guide: Difference between revisions
No edit summary |
|||
(22 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
__NOINDEX__ | |||
__NOTOC__ | |||
<metadesc>Control one brushless DC motor with the BLDC Motor Phidget. The hall effect input provides precise position control. Connects to a VINT Hub.</metadesc> | <metadesc>Control one brushless DC motor with the BLDC Motor Phidget. The hall effect input provides precise position control. Connects to a VINT Hub.</metadesc> | ||
[[Category:UserGuide]] | [[Category:UserGuide]] | ||
== | ==Part 1: Setup== | ||
{{ | {{PT1 Deck Sequence}} | ||
== Part 2: Using Your Phidget == | |||
===About=== | |||
The DCC1100 lets you control one brushless DC motor with hall-effect feedback. With this Phidget, you can set the velocity (forward or reverse) and acceleration of your motor, or set a specific target position using the position controller built into the Phidgets software libraries. You can also monitor the controller temperature for cooling management and safety. | |||
The DCC1100 requires an 8-30V DC power supply. | |||
= | [[Image:DCC1100_About.jpg|link=|center]] | ||
===Explore Your Phidget Channels Using The Control Panel=== | |||
You can use your Control Panel to explore your Phidget's channels. | |||
'''1.''' Open your Control Panel, and you will find the following channels: | |||
= | [[Image:DCC1100_Panel.jpg|link=|center]] | ||
'''2.''' Double click on a channel to open an example program. Each channel belongs to a different channel class: | |||
{{UGC-Start}} | |||
{{UGC-Entry|Brushless DC Motor Controller:| Controls the velocity and acceleration of the motor | |||
| | |||
In your Control Panel, double click on "Brushless DC Motor Controller": | |||
[[Image:DCC1100-BLDC.jpg|center|link=]]}} | |||
{{UGC-Entry|Position Controller:| A built-in PID position controller | |||
| | |||
In your Control Panel, double click on "Position Controller": | |||
{{ | [[Image:DCC1100-PositionController.jpg|center|link=]]}} | ||
{{UGC-Entry|Temperature Sensor:| Measures the board temperature so you can tell if the DCC1100 is overheating | |||
| | |||
In your Control Panel, double click on "Temperature Sensor": | |||
[[Image:DCC1100-TemperatureSensor.jpg|center|link=]]}} | |||
{{UGC-End}} | |||
{{UG-Part3}} | |||
== Part 4: Advanced Topics and Troubleshooting == | |||
{{UGC-Start}} | |||
{{UGC-Addressing}} | |||
{{UGC-DataInterval}} | |||
{{UGC-Firmware}} | |||
{{UGC-Entry|Stall Velocity| | |||
| | |||
If the load on your motor is large, your motor may begin rotating more slowly, or even fully stall. Depending on the voltage across your motor, this may result in a large amount of current through both the controller and the motor. In order to prevent damage in these situations, you can use the '''StallVelocity''' property. | |||
The '''StallVelocity''' should be set to the lowest velocity you would expect from your motor. The controller will then monitor the motor's velocity, as well as the '''Velocity''', and prevent a 'dangerous stall' from occuring. If the controller detects a dangerous stall, it will immediately reduce the '''Velocity''' (i.e. average voltage) to 0 and an error will be reported to your program. | |||
* A 'dangerous stall' will occur faster when the '''Velocity''' is higher (i.e. when the average voltage across the motor is higher) | |||
* A 'dangerous stall' will occur faster as ('''StallVelocity''' - motor velocity) becomes larger . | |||
Setting '''StallVelocity''' to 0 will turn off stall protection functionality. | |||
}} | |||
{{UGC-Entry|Rescale Factor| | |||
| | |||
Rescale Factor can be set to change the motor position units into something more useful, such as degrees or rotations. The following video explains how to set the Rescale Factor using a stepper controller as an example. | |||
{{#ev:youtube|NngB-OR7Ga8|||||rel=0}} | |||
Instead of steps, brushless DC motors work in ''commutations''. The number of commutations per rotation is equal to the number of poles multiplied by the number of phases. So, if you have an 8-Pole, 3-Phase motor, the motor will have 24 commutations per rotation. For this motor, to change the target position units from communications to rotations, you would set the rescale factor to 1/24, or 0.0416. | |||
}} | |||
{{UGC-ControlLoopParams}} | |||
{{UGC-Entry|My motor moves away from the target position in Position Controller mode.| | |||
| | |||
This behaviour can be caused by two different problems: | |||
* Check your motor wires are hooked up correctly to the A B C terminals. Of the six possible wiring permutations, only one will result in normal rotation. Four of the wiring permutations will cause the motor to stall, and the other will cause reverse rotation. Check your motor’s datasheet for the correct wiring. | |||
* Due to the way the coils are wound inside some motors, you may have to set negative P, I and D values when using the MotorPositionController object. | |||
}} | |||
{{UGC-End}} |
Latest revision as of 22:05, 5 April 2024
Part 1: Setup
Part 2: Using Your Phidget
About
The DCC1100 lets you control one brushless DC motor with hall-effect feedback. With this Phidget, you can set the velocity (forward or reverse) and acceleration of your motor, or set a specific target position using the position controller built into the Phidgets software libraries. You can also monitor the controller temperature for cooling management and safety.
The DCC1100 requires an 8-30V DC power supply.
Explore Your Phidget Channels Using The Control Panel
You can use your Control Panel to explore your Phidget's channels.
1. Open your Control Panel, and you will find the following channels:
2. Double click on a channel to open an example program. Each channel belongs to a different channel class:
In your Control Panel, double click on "Brushless DC Motor Controller":
In your Control Panel, double click on "Position Controller":
In your Control Panel, double click on "Temperature Sensor":
Part 3: Create your Program
Part 4: Advanced Topics and Troubleshooting
Before you open a Phidget channel in your program, you can set these properties to specify which channel to open. You can find this information through the Control Panel.
1. Open the Control Panel and double-click on the red map pin icon:
2. The Addressing Information window will open. Here you will find all the information you need to address your Phidget in your program.
See the Phidget22 API for your language to determine exact syntax for each property.
The Change Trigger is the minimum change in the sensor data needed to trigger a new data event.
The Data Interval is the time (in ms) between data events sent out from your Phidget.
The Data Rate is the reciprocal of Data Interval (measured in Hz), and setting it will set the reciprocal value for Data Interval and vice-versa.
You can modify one or both of these values to achieve different data outputs. You can learn more about these properties here.
Firmware Upgrade
MacOS users can upgrade device firmware by double-clicking the device row in the Phidget Control Panel.
Linux users can upgrade via the phidget22admin tool (see included readme for instructions).
Windows users can upgrade the firmware for this device using the Phidget Control Panel as shown below.
Firmware Downgrade
Firmware upgrades include important bug fixes and performance improvements, but there are some situations where you may want to revert to an old version of the firmware (for instance, when an application you're using is compiled using an older version of phidget22 that doesn't recognize the new firmware).
MacOS and Linux users can downgrade using the phidget22admin tool in the terminal (see included readme for instructions).
Windows users can downgrade directly from the Phidget Control Panel if they have driver version 1.9.20220112 or newer:
Firmware Version Numbering Schema
Phidgets device firmware is represented by a 3-digit number. For firmware patch notes, see the device history section on the Specifications tab on your device's product page.
- If the digit in the 'ones' spot changes, it means there have been bug fixes or optimizations. Sometimes these changes can drastically improve the performance of the device, so you should still upgrade whenever possible. These upgrades are backwards compatible, meaning you can still use this Phidget on a computer that has Phidget22 drivers from before this firmware upgrade was released.
- If the digit in the 'tens' spot changes, it means some features were added (e.g. new API commands or events). These upgrades are also backwards compatible, in the sense that computers running old Phidget22 drivers will still be able to use the device, but they will not be able to use any of the new features this version added.
- If the digit in the 'hundreds' spot changes, it means a major change has occurred (e.g. a complete rewrite of the firmware or moving to a new architecture). These changes are not backwards compatible, so if you try to use the upgraded board on a computer with old Phidget22 drivers, it will show up as unsupported in the Control Panel and any applications build using the old libraries won't recognize it either. Sometimes, when a Phidget has a new hardware revision (e.g. 1018_2 -> 1018_3), the firmware version's hundreds digit will change because entirely new firmware was needed (usually because a change in the processor). In this case, older hardware revisions won't be able to be upgraded to the higher version number and instead continue to get bug fixes within the same major revision.
If the load on your motor is large, your motor may begin rotating more slowly, or even fully stall. Depending on the voltage across your motor, this may result in a large amount of current through both the controller and the motor. In order to prevent damage in these situations, you can use the StallVelocity property.
The StallVelocity should be set to the lowest velocity you would expect from your motor. The controller will then monitor the motor's velocity, as well as the Velocity, and prevent a 'dangerous stall' from occuring. If the controller detects a dangerous stall, it will immediately reduce the Velocity (i.e. average voltage) to 0 and an error will be reported to your program.
- A 'dangerous stall' will occur faster when the Velocity is higher (i.e. when the average voltage across the motor is higher)
- A 'dangerous stall' will occur faster as (StallVelocity - motor velocity) becomes larger .
Setting StallVelocity to 0 will turn off stall protection functionality.
Rescale Factor can be set to change the motor position units into something more useful, such as degrees or rotations. The following video explains how to set the Rescale Factor using a stepper controller as an example.
Instead of steps, brushless DC motors work in commutations. The number of commutations per rotation is equal to the number of poles multiplied by the number of phases. So, if you have an 8-Pole, 3-Phase motor, the motor will have 24 commutations per rotation. For this motor, to change the target position units from communications to rotations, you would set the rescale factor to 1/24, or 0.0416.
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.
This behaviour can be caused by two different problems:
- Check your motor wires are hooked up correctly to the A B C terminals. Of the six possible wiring permutations, only one will result in normal rotation. Four of the wiring permutations will cause the motor to stall, and the other will cause reverse rotation. Check your motor’s datasheet for the correct wiring.
- Due to the way the coils are wound inside some motors, you may have to set negative P, I and D values when using the MotorPositionController object.