A Python-based CAN motor control system featuring a real-time GUI interface for precise position control and monitoring.
This project provides a comprehensive solution for controlling and monitoring CAN-based motors with features including:
- Real-time position and velocity monitoring
- Interactive GUI control panel
- Dynamic motion parameter adjustment
- Real-time data visualization with auto-scaling charts
- Comprehensive logging system
- Python 3.8 or higher
- CAN interface hardware
- Linux operating system (for CAN support)
- Clone the repository:
git clone https://github.com/yourusername/motor-control-system.git
cd motor-control-system
- Install required packages:
pip install -r requirements.txt
MultiMotorControl_PP.py
: Core motor control implementationmotor_control_gui.py
: GUI implementationrequirements.txt
: Python package dependenciesLICENSE
: MIT license file
- Configure CAN interface:
sudo ip link set can0 type can bitrate 1000000
python eRobControl_PP.py
python MultiMotorControl_PP.py
- Position control with angle input
- Velocity, acceleration, and deceleration parameter adjustment
- Real-time position and velocity monitoring
- Real-time position and velocity plots
- Auto-scaling axes for optimal data visualization
- Operation logging panel
- Parameter input validation
- Dynamic chart scaling
- 10-second time window display
- Dual-axis display for position and velocity
- Anti-aliased rendering
Default motor parameters:
- Encoder resolution: 524288 pulses/revolution
- Default velocity: 5°/s
- Default acceleration: 5°/s²
- Default deceleration: 5°/s²
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
[Your Name] - Initial work
- PyQt5 team for the GUI framework
- python-can developers for CAN support
- CANopen community for protocol implementation