I need to build a USB motor controller that can simultaneously manipulate speed and direction of 48 12Volt 15Amp brushed DC motors while having full support for up to 96 motors. This controller will always be PC connected and I prefer not to use arduino. I have some basic electronics and logic circuit knowledge, but most of my experience is in software programming.
I've read up on the basics for PWM circuits and for working with USB for PWM. Since my background is in software, bitbanging seems like an appealing method for handling PWM, but I am not sure how to handle that across 48-96 channels. USB GPIO modules may offer a possible solution, but so far I've only seen 32 channel modules and I assume polarity switching would require double the number of IO channels.
I'm willing to design new circuitry to handle this, but I'm not sure where I should begin. I've never worked with microcontrollers before, but if it's necessary, I am interested in learning how to use them.
Here are my requirements in a nutshell:
- USB (always PC connected)
- External power supply
- 96 independent PWM channels
- Polarity switching for each channel
Does anyone have suggestions or resources and tutorials for handling PWM motor control over such a large number of channels?