This project is in the "thinking" stage and I am nowhere near to detailing software or hardware. I throw it out here in order to call upon your collective imagination.
The intent is to come up with a "next generation" control system for my daughter's wheelchair. Her current system includes five Dynamic DX modules connected on a CAN bus (power module DX-PM, user interface module DX-SCR, lighting and actuator module DX-CLAM, switch interface DX-4SW, and attendant joystick module DX-ACU). In addition, an Arduino Uno + MMA7361L accelerometer on a homemade shield provides stability augmentation, and other homemade mechanical and electronic elements form her head-operated swtich array and multiplex outputs to the chair and her tablet-PC (has multiple functions, the most fundamental of which is speech output as Rachele is non-verbal). This is a workable system, but for her next chair I would like to implement a controller that doesn't rely on the proprietary, and extraordinarily expensive, Dynamic DX modules.
A Roboteq HDC2450 motor controller by itself can provide almost all of the functionality of the multiple DX modules, but not quite all. Some external components are needed to ensure fail-safe/safe-fail operation, it has little means of displaying information (just a few LEDs and PC logging), and a few extra digital output pins might be needed for auxilliary, non safety-critical, functions such as lights. My thought is to use an Arduino to provide those display and auxilliary output functions.
In order to keep the chair's wiring loom manageable, I'd like interconnections to be CAN. The Roboteq already has a CANOpen compatible controller/transceiver and software, APEM (CH products) makes a joystick with an integral J1939 compliant CANbus connection, and plenty of information and the needed libraries are available for SPI to CANbus conversion by pairing an Arduino with a MCP2510/2515 controller/transceiver pair.
With all that as a preamble, I now come to my first unresolved question. With all that at least conceptually settled, what can I use for visual display? My first though was to use an Adafruit 2.2" TFT screen or similar. However, it too would be fed from the Arduino via SPI and I absolutely do not know whether it is possible to connect two different SPI controllers to one Arduino. I imagine that it is NOT possible to connect both to the physical SPI pins. Fast screen refresh is not needed, the output will mostly be text and fairly static, but I do not know if it would be possible to connect the CAN controller as physical SPI and the TFT as software SPI.
Hence, I'd like your thoughts on two questions: (1) Is there a way to connect both a CAN controller and TFT controller via SPI? and (2) If not, can you suggest how I could add a graphical screen to a UNO (or UNO equivalent) that already has SPI used for CANbus communication (and still leave a few IO pins available for other purposes)?
Ciao, Lenny Robbins Siena, Italia