Modulus Prawn Wireless Remote Car
Project by Alan Lee, James Shuster, and Neil Semidin
There were several levels of software involved in the project. The functionality of the nintendo 64 controller and LCD display were all done in hardware. When the hardware finished gathering all the necessary data it was stored in a global variable. Then an interrupt flag was triggered calling the ISR. The ISR then parsed the data stored in the global variable and converted it to a standard ISA that we agreed upon. Since we currently have no use for 32-bit instructions, we sent 4 8-bit commands at a time. The 32-bit instructions maybe useful in the future as we scale this car to handle more features. After the parsing was finished, the sendTo555 function was call trigger a series of sends and acknowledgements. RS232 can only send 8-bits at a time so a series of 4 transactions were required in order to send all 32-bits of an instruction. Then after the data arrived at the MPC55 end, the opcodes were parsed and the appropriate motor and/or servo was driven. The actual servo and motor driving functionality was provided as C functions by freescale and enabled us to simply call PWM functions in with several arguements in order to drive the servos and motors. The following is a flow chart showing the flow of the program: