|
| 1 | +# Intelligent-Wheelchair |
| 2 | + |
| 3 | +This application is designed to apply to the person who can’t use arms or legs well but |
| 4 | +without language barriers. The intelligent wheelchair is based on voice control |
| 5 | +and can be operated independently through voice commands. Moreover, |
| 6 | +the application has a collision- avoidance and warning system. Wheelchair also can be control by smartphone APP through |
| 7 | +Bluetooth. The feature of this application is front-end processing rather than |
| 8 | +cloud computing. |
| 9 | + |
| 10 | +- [Introduction](https://github.com/YuaniLee/Intelligent-Wheelchair/blob/master/README.md#introduction) |
| 11 | + - [Function](https://github.com/YuaniLee/Intelligent-Wheelchair/blob/master/README.md#function) |
| 12 | + - [System Architecture](https://github.com/YuaniLee/Intelligent-Wheelchair/blob/master/README.md#system-architecture) |
| 13 | + - [APP UI](https://github.com/YuaniLee/Intelligent-Wheelchair/blob/master/README.md#app-ui) |
| 14 | +- [HW/SW Setup](https://github.com/YuaniLee/Intelligent-Wheelchair/blob/master/README.md#hwsw-setup) |
| 15 | + - [Required Hardware](https://github.com/YuaniLee/Intelligent-Wheelchair/blob/master/README.md#required-hardware) |
| 16 | + - [Required Software](https://github.com/YuaniLee/Intelligent-Wheelchair/blob/master/README.md#required-software) |
| 17 | + - [Hardware Connection](https://github.com/YuaniLee/Intelligent-Wheelchair/blob/master/README.md#hardware-connection) |
| 18 | +- [User manual](https://github.com/YuaniLee/Intelligent-Wheelchair/blob/master/README.md#user-manual) |
| 19 | + - [Before Running This Application](https://github.com/YuaniLee/Intelligent-Wheelchair/blob/master/README.md#before-running-this-application) |
| 20 | + - [Run This Application](https://github.com/YuaniLee/Intelligent-Wheelchair/blob/master/README.md#run-this-application) |
| 21 | + |
| 22 | +## Introduction |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +### Function |
| 27 | + |
| 28 | +- Voice control through front-end processing |
| 29 | +- Communicate with APP |
| 30 | +- Collision auto-avoidance and warning system |
| 31 | + |
| 32 | +### System Architecture |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | +### APP UI |
| 37 | + |
| 38 | + |
| 39 | + |
| 40 | +## HW/SW Setup |
| 41 | + |
| 42 | +### Required Hardware |
| 43 | + |
| 44 | +- 1 DesignWare ARC EM Starter Kit(EMSK) |
| 45 | +- 1 WEGASUN-M6(Speech recognition) |
| 46 | +- 1 HM-10 Bluetooth |
| 47 | +- 1 Pmod AD2: 4-channel 12-bit A/D Converter(AD7991) |
| 48 | +- 2 Infrared range sensor |
| 49 | +- 1 L298N Two lines of motor driver |
| 50 | +- 2 Dc Motor |
| 51 | +- 1 Speaker |
| 52 | +- 1 Inclination Sensor |
| 53 | +- 1 MIC |
| 54 | +- 1 SD Card |
| 55 | +- 1 LED Light |
| 56 | +- 1 buzzer |
| 57 | +- 1 5V Booster module |
| 58 | + |
| 59 | +### Required Software |
| 60 | + |
| 61 | +- embARC Open Software Platform(OSP) |
| 62 | +- ARC GNU Tool Chain |
| 63 | +- Serial port terminal, such as putty |
| 64 | +- [HMSoft](https://github.com/YuaniLee/embarc_applications/blob/master/arc_design_contest/2019/XDU_iWheelchair/app/app-release.apk) |
| 65 | +- [M6SE-IDE](https://github.com/YuaniLee/embarc_applications/blob/master/arc_design_contest/2019/XDU_iWheelchair/app/M6SE-IDE.exe) |
| 66 | + |
| 67 | +### Hardware Connection |
| 68 | + |
| 69 | +- Connect Bluetooth to J1 |
| 70 | +- Connect Pmod AD2 to J2 |
| 71 | +- Connect Infrared range sensor and Inclination Sensor to Pmod AD2 |
| 72 | +- Connect buzzer and LED Light to J3 |
| 73 | +- Connect WEGASUN-M6 to J5 |
| 74 | +- Connect L298N motor driver to J6 |
| 75 | +- Connect Speaker and MIC to WEGASUN-M6 |
| 76 | + |
| 77 | + |
| 78 | + |
| 79 | +## User Manual |
| 80 | + |
| 81 | +### Before Running This Application |
| 82 | + |
| 83 | +In order to open **UART2** we need to modify following files |
| 84 | + |
| 85 | +- Modify mux.c (/board/emsk/common/emsk_init.c) |
| 86 | + |
| 87 | +``` |
| 88 | +set_pmod_mux(PM1_UR_UART_0 | PM1_LR_SPI_S \ |
| 89 | + | PM2_I2C_HRI \ |
| 90 | + | PM3_GPIO_AC \ |
| 91 | + | PM4_I2C_GPIO_D \ |
| 92 | + | PM5_UR_SPI_M1 | PM5_LR_SPI_M2 \ |
| 93 | + | PM6_UR_GPIO_C | PM6_LR_GPIO_A ); |
| 94 | +``` |
| 95 | + |
| 96 | +- Replace following files: |
| 97 | + |
| 98 | + [dw_uart_obj.h(board\emsk\drivers)](https://github.com/YuaniLee/Intelligent-Wheelchair/blob/master/dw_uart_obj.h ) |
| 99 | + |
| 100 | + [dw_uart_obj.c(board\emsk\drivers)](https://github.com/YuaniLee/Intelligent-Wheelchair/blob/master/dw_uart_obj.c) |
| 101 | + |
| 102 | +#### Speech recognition config |
| 103 | + |
| 104 | +Connect WEGASUN-M6 to PC by USB to serial port |
| 105 | + |
| 106 | + |
| 107 | + |
| 108 | +Open [M6SE-IDE](https://github.com/YuaniLee/embarc_applications/blob/master/arc_design_contest/2019/XDU_iWheelchair/app/M6SE-IDE.exe) with the following settings: |
| 109 | + |
| 110 | + |
| 111 | + |
| 112 | +| Settings | Specification | |
| 113 | +| ------------------------ | ------------------------------------------------------------ | |
| 114 | +| @Baud#9600$ | Baud rate | |
| 115 | +| @AsrSET#1,4,06000,6000,$ | data1: recognized distance(20 cm);data2: match degree; data3: waiting time; data4: recording time | |
| 116 | + |
| 117 | +#### Build and run |
| 118 | + |
| 119 | +| file | function | |
| 120 | +| :--------------- | ------------------------------------ | |
| 121 | +| ble.c | Bluetooth initialization and control | |
| 122 | +| M6.c | Voice initialization and control | |
| 123 | +| buzzer.c | Warning system | |
| 124 | +| driver_control.c | Control L298N drive motor | |
| 125 | +| main.c | Main entry of embARC Application | |
| 126 | +| makefile | Makefile of embARC Application | |
| 127 | + |
| 128 | + |
| 129 | + |
| 130 | +##### Makefile |
| 131 | + |
| 132 | +- Target options about EMSK and toolchain: |
| 133 | + |
| 134 | + ``` |
| 135 | + BOARD ?= emsk |
| 136 | + TOOLCHAIN ?= gnu |
| 137 | + OLEVEL ?= 02 |
| 138 | + BD_VER ?= 22 |
| 139 | + CUR_CORE ?= arcem7d |
| 140 | + ``` |
| 141 | + |
| 142 | +- DEV config |
| 143 | + |
| 144 | + ``` |
| 145 | + EXT_DEV_LIST += ble/hm1x |
| 146 | + DEV_CSRCDIR += $(EMBARC_ROOT)/device/peripheral/adc/ad7991 |
| 147 | + DEV_INCDIR += $(EMBARC_ROOT)/device/peripheral/adc/ad7991 |
| 148 | + ``` |
| 149 | + |
| 150 | +- The middleware used in your application: |
| 151 | + |
| 152 | + ``` |
| 153 | + MID_SEL = common |
| 154 | + ``` |
| 155 | + |
| 156 | +- Directories of source files and header files: |
| 157 | + |
| 158 | + ``` |
| 159 | + # application source dirs |
| 160 | + APPL_CSRC_DIR = . |
| 161 | + APPL_ASMSRC_DIR = . |
| 162 | + |
| 163 | + # application include dirs |
| 164 | + APPL_INC_DIR = . |
| 165 | + |
| 166 | + # include current project makefile |
| 167 | + COMMON_COMPILE_PREREQUISITES += makefile |
| 168 | + |
| 169 | + ### Options above must be added before include options.mk ### |
| 170 | + # include key embARC build system makefile |
| 171 | + override EMBARC_ROOT := $(strip $(subst \,/,$(EMBARC_ROOT))) |
| 172 | + include $(EMBARC_ROOT)/options/options.mk |
| 173 | + ``` |
| 174 | + |
| 175 | +Then`make run` |
| 176 | + |
| 177 | +## Video |
| 178 | + |
| 179 | +[Show video](https://v.youku.com/v_show/id_XNDI5MjAyNzUwOA==.html?spm=a2h0k.11417342.soresults.dtitle |
| 180 | +) |
0 commit comments