Wheelchair Control Interface
---- Mobility Aid Remote Control Interface ---- Summary: An Android handset is used as part of an engineering design acting as a user interface to control an electrically powered wheelchair. For this particular application, an assistive-type wheelchair is under development at F'SATI (French South African Technology Institute) in the Enabled Environment. The handset virtual joystick and/or Inertial Measurement Unit (IMU) are interfaced with the wheelchair mobility aid control system (National Instruments myRIO-1900) to detect the user's intended control of the electric wheelchair. The handset may be used as a development and/or demonstration tool on a project that requires reliable wireless control of mobility aids or similar systems. * Server = National Instruments (NI) myRIO-1900 * Client = Android 6.0 (Tested on Samsung S7 Edge) Step 1: Setup NI 'myRIO-1900' hardware (or similar NI product) wireless connectivity by enabling RIO as an access point. This is accomplished by plugging a USB cable into the myRIO-1900 and host computer. Open a web browser and type the default myRIO-1900 IP address: 172.22.11.2 in the address bar. A 'Wireless Mode' connection is made under the 'Network Configurations' menu. Step 2: Setup server information: Server address: 127.16.0.1 (myRIO-1900 wireless) Port address:1234 Note, each string received is separated by a comma delimiter (",") as shown in the server code. Errors in the data transmission are checked and will notify the user when a communication error is detected between hardware. The app also continually detects if a connection is lost to the server. <<< Outputs from Android to myRIO-1900 >>> String 1: 'ACCELEROMETER X-AXIS' String 2: 'ACCELEROMETER Y-AXIS' String 3: 'ACCELEROMETER Z-AXIS' String 4: 'GYROSCOPE X-AXIS' String 5: 'GYROSCOPE Y-AXIS' String 6: 'GYROSCOPE Z-AXIS' String 7: 'MAGNETOMETER X-AXIS' String 8: 'MAGNETOMETER Y-AXIS' String 9: 'MAGNETOMETER Z-AXIS' String 10: 'PROXIMITY' String 11: 'AZIMUTH ORIENTATION' (unfiltered) String 12: 'PITCH ORIENTATION' (unfiltered) String 13: 'ROLL ORIENTATION' (unfiltered) String 14: 'JOYSTICK X1-AXIS' String 15: 'JOYSTICK Y1-AXIS' String 16: 'ASSISTANCE CMD' (0-100%) String 17: 'SPEED CMD' (0-100%) <<< Inputs from Android to myRIO-1900 >>> String 1: 'BATTERY CHARGE STATUS' (0-100%) String 2: 'WHEEL VELOCITY - RIGHT' String 3: ''WHEEL VELOCITY - LEFT' String 4: 'WHEEL TORQUE - RIGHT' String 5: 'WHEEL TORQUE - LEFT' * Note: If applicable, additional electronics such as the wheelchair battery charge status, velocity and torque data may be needed for reading outputs from the myRIO-1900. This project was specifically designed with these sensors in mind for monitoring on Android. Alternatively, the developer may use different data to send over the network for display on the device. For this project, a user command on Android enables assistance ('ASSISTANCE CMD') by supplying additional torque to the wheels (by external motors mounted on the wheels of the chair), which aids the user to move easily through difficult terrains. Step 3: Enable WIFI on Android under settings and connect to the myRIO-1900 access point. Step 4: Press either 'SIMULATE' or the 'SENSOR' button first before establishing a connection. Random data is sent over the network in 'SIMULATE' mode and displayed on Android. IMU, orientations and joystick data are sent over the network in 'SENSOR' mode and displayed on Android. Step 5: Press 'CONNECT' button to connect server. A message will appear on Android indicating when a connection has been established with the server. Data transmission now commences between hardware devices. Step 6: Press 'JOYSTICK' button to send joystick axis data to the server. ('MAINTENANCE' button becomes inactive) *** Additional information *** If server is implemented on myRIO-1900 or similar NI hardware -> See LabVIEW code attached on the setup of server communication.