« Back to the SERA Actuator home page
Contents |
For the initial prototypes, the team used a platform from National Instruments called CompactRIO (CRIO). Though not intended for the final actuator design, it allowed the team to sidestep the issue of electrical design by using an off the shelf CRIO motor controller module and digital I/O module to connect to the sensor adapter board from Austrian Microsystems. Therefore, most of the initial actuator software design work was done in LabView written for both the Power PC and the FPGA on the CRIO, and is essentially a PID block and a lot of protocol wrapper code sitting on the FPGA to grab sensor data over a serial protocol and control the motor over PWM.
In the standalone version of the actuator, the team intended to use a PIC microcontroller in the 33F family and write the code for it in C. The PIC would be responsible for an Ethernet peripheral on its SPI bus and would serve a webpage for configuration as well as supporting RC PWM input and an API over TCP. The majority of the code for this would be taken directly from Mirochip's TCP/IP stack which they freely provide for this purpose; Matt Aasted already had extensive experience working with this codebase and therefore was prepared to use it. All of the following is specifications for what the standalone actuator was planned to do.
The actuator, on wakeup, would first examine its ethernet line for a DHCP server. If one was found, it would DHCP and await further instructions over Ethernet. If no DHCP server was found, the actuators would, over UDP, look for which IP addresses in a private subnet are taken. Each would sequentially assign itself an address in the subnet based on finding the least unassigned address; the assumption is that if no DHCP module is found the network is entirely actuators and they can form their own IP address structure.
The communication design of the actuator is such that, if the actuator is plugged into a network with a host pc on it, the host pc can visit the actuator's web page to configure and test the actuator. The planned web page would be able to set up limits, a name for the actuator, a static address if desired, etc.
In addition to the webpage interface, all commands would be accessible through a protocol built on TCP on port other than port 80. It would be a get/set protocol for the various parameters of the actuator.
The default setting of the actuator would allow it to be a position controlled actuator over RC PWM, a standard hobbyist protocol. This would be a concession to that market so that the actuator could be integrated into existing systems as a high-powered servo rather than as a force-controlled actuator.