Hello, everybody,
This will be my introductory posting (I did not see a subforum specifically for that purpose) and at the same time I'll ask my first questions in it. In case this is misdirected, I'd appreciate some guidance.
I am a professional engineer currently looking to hit a few targets at once. A little background: I started programming in the 1980's on whatever platform I could get my hands on. I first did professional work on microcontrollers a decade ago (PIC) but have mostly stuck with microcomputer programming (Windows). I am currently developing an industrial-automation platform featuring high-performance distributed processing with data acquisition, signal processing, user-defined test execution and systems control. It is almost ready and I'm entering the testing stages. We use expensive input/output devices and high-end sensors and effectors (like megawatt regenerative AC motor vector drives) but I've had some unorthodox ideas that lead me here.
It is a little inconvenient to do software verification and validation on such systems. It is also impossible to take such system to a trade show where the new software would be showcased. But the geek in me would very much like a small, versatile system with similar functionality. Having been to many trade shows, it appears that most professionals are like me - judging from how the booths with the outrageous gadgets attract the most visitors.
The ubiquity of the Arduino platform, along with its development tools and extensive libraries, and now, the addition of countless reasonably-priced accessories - sensors, controls, inputs/outputs, etc., has made many professionals take notice and I certainly am no exception. My hesitation so far is only centered on the individual time investment that would be required to deal with this new platform. I have no doubt that I have all the necessary abilities to develop an Arduino-based setup; the only issue is how much of my already-crowded brain I would need to occupy with this. You see, when I need to specify new hardware for some new physical setup, I simply call our faithful industrial-controls representative and they bring a good selection of options, with all relevant information and support resources. If I run into any challenges (and, believe me, I have caused a lot of trouble with underperforming devices), I can usually communicate with development engineers that would as much as make design changes to their products; especially when software drivers and libraries are concerned.
Then it dawned on me that I could tap on the collective wisdom and expertise of the Internet community. I wouldn't be surprised if it turned out to be even more effective than the industrial suppliers. Let's see if we can make this work.
First, let me explain what I'll need. It doesn't have to all happen at once; it could very well be an incremental project. The software platform is very complex and in order to showcase its abilities it would require little intelligence at the device-end; in other words, I do not want to put too much intelligence on the Arduino end or my software would be little more than a glorified remote controller. Let me come up with an example. As attractive a robot platform would be (I was involved with an autonomous robot project in grad school), I'll pick something similar. Maybe a two-wheeled self-balancing platform. The approach here would be to isolate communication channels between the hardware setup and the PC software for the individual inputs and outputs associated with the motion controls: quadrature-encoder inputs from each motor, accelerometer inputs for three axes (possibly already converted to the Euler angles), as well as PWM outputs to the individual motor drives.
And here's the kind of questions I need to ask from the very beginning. Whether the Arduino would connect to the PC using USB or Bluetooth, it seems it will use COM ports to do all communications. If a single COM port for all input and output is defined and the maximum speed is 115000 kilobaud, would that be enough for all those channels to achieve a smooth and reliable motion control? If feasibility is established, then the questions would be: which Arduino is best for the core? What shields would best serve as sensors, drive controls? What firmware libraries to implement those? Even some suggestions on what micro-motors to get.
Does this sound like something that makes sense? Would such project garner sufficient interest to get the support necessary so I can turn this into reality? I'd appreciate your feedback on this.
Kamen