|
Re: CAN - what, why, how in 2015
From what I know, which is not a whole lot, I can answer...
1. CAN is a way to control motor controller/relays. Unlike PWM, CAN sends information, rather than just a "signal", if you kind of get what I'm going at. You can send raw numbers/information over CAN whereas PWM can only send a number (very basically stated) 0%-100% (yes I know its 0-255, or 1023 on some systems). You can, for example, send a setpoint for a PID loop where the motor controller is running the PID. You can also collect sensor data. Everything is done over 1 CAN system, where each device is connected to each other, rather than every device is connected to the RoboRIO.
2. FRC is really pushing CAN because everything uses it. Every car, uses it, airplanes (I'm pretty sure), and a whole bunch of other systems use it. To get to know it in FRC is a MAJOR advantage for students going into the real world. CAN is a very good skill to have. Also, beside education, CAN can be useful for organization. Instead of running PWM cables everywhere, you have a CAN cable running to each device from another. CAN devices also sometimes have PID controllers, so you can save some processing power.
3. A team would use 2015 components as normal. The motor controllers are still control the motors, teams just send the information a little differently. Teams could also make use of the PID functionality in the motor controllers, although if you have more than one motor controlling things, then I don't think the integrated PID controller is of much use. Teams could also monitor the power consumption of each device, and limit it if the power consumption is too high to avoid tripping the breaker or resetting the RoboRIO and D-Link. This is especially useful if they allow even more motors than they have in the past.
4. CAN, from what I hear and experienced, is both easy and hard. It's easy to hook up and program, but it's also hard to not screw up. I have heard that if a cable is loose, it can be really hard to detect and fix. As long as you somewhat know what you are doing, I think you will be fine. I have used CAN on Arduino and it is actually pretty straight forward. This can also be used to put external sensors that may need pre processing on the robot.
|