queens-satellite-team / mock-sat

Accessible open-source development platform for all QSAT prototyping needs!
2 stars 0 forks source link

Get single axis PI control loop working with maxon motor #24

Open Cal-graham opened 4 years ago

Cal-graham commented 4 years ago

Good article for basics of configuring maxon controller

Cal-graham commented 4 years ago

Motor Datasheet

Cal-graham commented 4 years ago

Page for download of maxon controller setup software

anthonysteel commented 4 years ago

Looks good.

Cal-graham commented 4 years ago

The controller requires multiple inputs as specific signals: -desired angular velocity (analog or digital PWM) -angular acceleration (analog) -direction (digital) -enable (digital) -all outputs come as analog The raspi can only create digital and PWM signals (PWM with limited accuracy), thus cannot set angular acceleration. Simplest solution is probably an i2c slave to read and write analog signals and relay back to raspi.

Cal-graham commented 4 years ago

The motor connects via flex-cable (FPC cable) and needs an adapter for prototyping. This 11-pin adapter should have the right spacing for the 5 normal width connections, and 3 wide (motor winding) connections on the flex cable.

Cal-graham commented 4 years ago

A few developments for maxon motor control: -Previous adapter is a surface mount connector for PCBs. This version should have enough space for soldering and prototyping. -This DAC currently only works with the Munich GUI Software on a laptop. This library seemed promising but hasn't worked with the raspi thus far. It should be noted that the DAC can be used as an oscilloscope and analog/digital signal IO and would be useful to have working with either raspi/arduino for both prototyping and potentially sensor/motor control in the final version of the moc-sat. -Moving forwards with the Sparkfun MCP4725 DAC. If we can create our own i2c communication protocol with the chip, we could print our own on a custom PCB based on the public design. -Moving from raspi to arduino for compatibility with the new DAC, as well as future development including RTOS and integration with the OBC subteam.

Cal-graham commented 4 years ago

Motor is now working: -acc and vel are controlled by two MCP4725 DACs -second flex-cable connection can be soldered for motor connections -All i2c connections have been tested with arduino's freeRTOS and work - see commit 09b34a6a7239b34cd3f976704b3c3b82ddb7321e -Moving forwards by creating control loop function to be run by the RTOS