Skip to content

Commit a3a5203

Browse files
committed
loss image
1 parent daef13e commit a3a5203

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+13941
-0
lines changed
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
# In-air Handwritten Characters Recognition
2+
This application is a concrete example of deploying a **neural network** on a wearable device. This application can **recognize air-handwritten characters** through wearable devices and display them on the wearable terminal. In addition, the recognition result can be transmitted to another terminal via **WIFI**, and people can perform simple text editing on this terminal through **gesture control**. And it can also broadcast voice, record temperature and time data, etc. This application can help researchers record data while doing experiments without the need to hold a pen or keyboard to input with gloves.
3+
4+
@[toc](content)
5+
6+
## Introduction
7+
**In-air Handwritten characters Recognition**
8+
9+
### Function
10+
**1.Sending terminal**
11+
- **In-air handwritten characters recognition**. At present, the in-air handwritten characters that it can recognize through the neural network are numbers 0-9 and capital letters A-Z. When the button is pressed, the air handwritten characters will be recognized, and when the button is released, the characters will not be recognized
12+
- **Oled real-time display**. Oled displays the recognized in-air handwritten characters in real time
13+
- **Wifi transmission**. Transmit the recognized in-air handwrittencharacters to the receiving terminal via wifi
14+
15+
**2.Receiving terminal**
16+
- **Wifi transmission**. Receive recognized in-air handwritten characters from the sending terminal
17+
- **Serial screen display**. Serial screen records in-air handwritten characters, current ambient temperature data and real-time clock information
18+
- **Voice broadcast**. The received air handwritten characters are read out by the voice module
19+
- **Gesture Recognition**. The infrared gesture recognition module can perform the operations of "previous line", "next line", "clear a character", "clear the entire line", "copy this line" and "paste this line" on the characters displayed on the serial screen. The detailed control commands are as followed:
20+
21+
| Command | Gesture |
22+
| ---------------------- | -------------- |
23+
| previous row | up |
24+
| Next line | down |
25+
| Clear a character | left |
26+
| Clear the entire line | right |
27+
| Copy this line | forward |
28+
| Paste this line | backward |
29+
### System Architecture
30+
#### Hardware Architecture
31+
![system_architecture][1]
32+
#### Software Flow
33+
![Software Flow][2]
34+
#### Neural network structure
35+
![Neural network structure][4]
36+
### UI
37+
38+
![UI][3]
39+
40+
## Hardware and Software Setup
41+
### Required Hardware
42+
43+
- 2 ARC IoT Development Kit(IoTDK)
44+
- 2 NRF24L01 Wireless communication module
45+
- 1 MPU9250(IoTDK include it)
46+
- 1 Button
47+
- 1 OLED module
48+
- 1 PAJ7620U2 gesture sensor
49+
- 1 DGUS serial screen
50+
- 1 I2C to UART module
51+
- 1 Power converter module for the serial screen
52+
- 1 SYN6288 speech synthesis module
53+
- 1 DHT11 temperature and relative humidity sensor
54+
- 1 DS1302 real-time clock module
55+
- 2 Micro SD Card for IoTDK second bootloader
56+
- 1 Micro SD Card for the initialization of the serial screen
57+
58+
### Required Software
59+
- [embARC Open Software Platform(OSP)](https://github.com/foss-for-synopsys-dwc-arc-processors/embarc_osp)
60+
- [embARC Machine Learning Inference Library (MLI)](https://github.com/foss-for-synopsys-dwc-arc-processors/embarc_osp/tree/embarc_mli)
61+
- ARC GNU Tool Chain
62+
- Serial port terminal, such as putty, tera-term or minicom
63+
- [DGUS_V3788](http://www.dwin.com.cn/home/Index/download_file?download_id=1753) for serial screen UI development
64+
65+
### Hardware Connection
66+
1. IoTDK1——Sending terminal
67+
68+
| Device | Bus | Connector | Description |
69+
| ------------------ | ------ | ------------ | ---------------------------------------------- |
70+
| Button| | GPIO_4B1(2) | Control the operation of the neural network |
71+
| OLED | I2C0 | |Display characters|
72+
| NFR2101 | | GPIO_8B10[0:5] | wifi transmission |
73+
| MPU9250 | I2C_0 || In_air handwritten character data reading |
74+
2. IoTDK2——Receiving terminal
75+
76+
| Device | Bus | Connector | Description |
77+
| ------------------ | ------ | ------------ | ---------------------------------------------- |
78+
| SYN6288 | UART1 | | Speech synthesis |
79+
| DHT11 | | GPIO_4B1(3) | Read temperature data|
80+
| DS1302 | | GPIO_4B1[0:2] |Read time data|
81+
|DGUS | I2C0 | | Serial screen |
82+
|NFR2101| | GPIO_8B10[0:5] | wifi transmission |
83+
|PAJ7620| I2C0 | | Gesture Recognition |
84+
85+
## User Manual
86+
### Before Running This Application
87+
- download source code of **In-air Handwritten Characters Recognition**
88+
89+
- Initialize Smart Screen UI Copy the whole directory /DGUS_Project/DWIN_SET to an empty Micro SD card, and then insert it to the slot on the smart screen. Power up the screen and complete the initialization, then pull out the Micro SD card and reboot the screen. the UI project file can be modified with DGUS_V7388 IDE.
90+
- Make sure all connection is correct again.
91+
### Run This Application
92+
Here take IoTDK, CUR_CORE = arcem9d with ARC GNU Toolchain 2020.09 for example to show how to run this application.
93+
1. To build this applicaiton, use this command `make run`
94+
2. Open your serial terminal such as Putty on PC, and configure it to right COM port and 115200bps.
95+
3. Wear the sending terminal on the palm of your hand, press the button and write in the air, release the button to see the recognition result of the air handwritten characters.
96+
#### Makefile
97+
98+
- Selected embarc_mli here, then you can use [embarc_mli API][4] in your application:
99+
100+
# Library
101+
LIB_SEL = embarc_mli
102+
103+
- Target options about EMSK and toolchain:
104+
105+
BOARD ?= iotdk
106+
BD_VER ?= 10
107+
CUR_CORE ?= arcem9d
108+
TOOLCHAIN ?= gnu
109+
110+
- The relative series of the root directory, here the path of the Makefile is `./embarc_osp-embarc_mli/embarc_applications/XDU_In-air_handwritten_characters_recognition/src/In-air_handwritten_characters_recognition_tx/makefile`:
111+
112+
#
113+
# root dir of embARC
114+
#
115+
EMBARC_ROOT = ../../../..
116+
- The relative series of the root directory, here the path of the Makefile is `./embarc_osp/embarc_applications/XDU_In-air_handwritten_characters_recognition/src/In-air_handwritten_characters_recognition_rx/makefile`:
117+
118+
#
119+
# root dir of embARC
120+
#
121+
EMBARC_ROOT = ../../../..
122+
123+
- The middleware used in your application:
124+
125+
MID_SEL = common
126+
- Directories of source files and header files:
127+
128+
# application source dirs
129+
APPL_CSRC_DIR = .
130+
APPL_ASMSRC_DIR = .
131+
132+
# application include dirs
133+
APPL_INC_DIR = .
134+
135+
# application defines
136+
APPL_DEFINES =
137+
138+
# include current project makefile
139+
COMMON_COMPILE_PREREQUISITES += makefile
140+
141+
### Options above must be added before include options.mk ###
142+
# include key embARC build system makefile
143+
override EMBARC_ROOT := $(strip $(subst \,/,$(EMBARC_ROOT)))
144+
include $(EMBARC_ROOT)/options/options.mk
42.3 KB
Loading
429 KB
Loading
889 KB
Loading
62.1 KB
Loading

0 commit comments

Comments
 (0)