|
| 1 | +# **Contactless delivery robot** |
| 2 | + |
| 3 | +This application is designed to show how to develop an **Contactless Delivery Robot** using embARC. The couriers first enter the customer's delivery address and mobile phone number into the chip through the keyboard, and at the same time select the robot delivery route; after the robot receives it, it will follow the prescribed route to run with obstacle avoidance and deliver the goods to the customer. After arriving at the destination, it will send a text message to the customer’s phone to inform the pickup password; the customer opens the storage box through the received pickup password and takes out the goods. |
| 4 | + |
| 5 | +* [Introduction](#introduction) |
| 6 | + * [Function](#function) |
| 7 | + * [System Architecture](#system-architecture) |
| 8 | +* [Hardware and Software Setup](#hardware-and-software-setup) |
| 9 | + * [Required Hardware](#required-hardware) |
| 10 | + * [Required Software](#required-software) |
| 11 | + * [Hardware Connection](#hardware-connection) |
| 12 | +* [User Manual](#user-manual) |
| 13 | + * [Before Running This Application](#before-running-this-application) |
| 14 | + * [Run This Application](#run-this-application) |
| 15 | + |
| 16 | +## **Introduction** |
| 17 | + |
| 18 | +- **Contactless delivery robot** |
| 19 | + |
| 20 | + |
| 21 | + |
| 22 | +### **Function** |
| 23 | + |
| 24 | +- **Human body inducing** (It will activate the system through the induction of human body ) |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | +- **Ultrasonic ranging and obstacle avoiding** |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | +- **Speech interaction** (Remind the users of the operating process) |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | +- **Communication** (This robot will send text message to the custom’s phone and call the customs, providing their pickup great convenience ) |
| 37 | + |
| 38 | + |
| 39 | + |
| 40 | +### **System Architecture** |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | + |
| 46 | +## **Hardware and Software Setup** |
| 47 | + |
| 48 | +### **Required Hardware** |
| 49 | + |
| 50 | +- 1 DesignWare ARC EM Starter Kit(EMSK) |
| 51 | + |
| 52 | +- 1 Ultrasonic Sensor Module (US-100) |
| 53 | + |
| 54 | +- 1 Human Infrared Sensor (SR501) |
| 55 | + |
| 56 | +- 1 Speech Synthesis Module(SYN6288) |
| 57 | + |
| 58 | +- 1 4*4 Keyboard |
| 59 | + |
| 60 | +- 1 GPRS Module(SIM900A) |
| 61 | + |
| 62 | +- 2 Motor Driver Module(L298N) |
| 63 | + |
| 64 | +- 4 Servo Driver Module(PCA9685) |
| 65 | + |
| 66 | +- 4 Wheel |
| 67 | + |
| 68 | +- 4 Motor |
| 69 | + |
| 70 | +- 1 SD Card |
| 71 | + |
| 72 | + The list of hardware is shown in the picture following. |
| 73 | + |
| 74 | + ### **Required Software** |
| 75 | + |
| 76 | + - Metaware or ARC GNU Toolset |
| 77 | + |
| 78 | + - Serial port terminal, such as putty, tera-term or minicom |
| 79 | + |
| 80 | + |
| 81 | +### **Hardware Connection** |
| 82 | + |
| 83 | +1. The **contactless delivery robot** will process the data returned by the keyboard and ultrasonic sensor, and send instructions to motor driver module and servo driver module. It can also send data to the communication module and send text message. |
| 84 | + |
| 85 | +2. Connect **Servo driver module** to **PMOD2[6:3]** (Using IIC0 interface), connect **Motor driver module** to **PMOD6[4:1]** and **PMOD6[10:7]** (Using GPIO interface), connect **Ultrasonic sensor** to **PMOD5[2:1]** (Using GPIO interface). |
| 86 | + |
| 87 | + Connect **Human infrared sensor** to **PMOD[1:7]** (Using GPIO interface), connect **GPRS **to **PMOD1[3:2]** (Using UART0 interface ), connect **Keyboard** to **PMOD3[4:1]** and **PMOD3[10:7]** (using GPIO interface), connect **Speech Synthesis Module** to **PMOD5[9:8]** (using UART2 interface). |
| 88 | + |
| 89 | + | **ARC** **interface** | **Device** | **Links of style** | |
| 90 | + | ------------------------------- | ---------- | ------------------------------------------ | |
| 91 | + | **PMOD1[3:2]** | SIM900a | UART0 | |
| 92 | + | **PMOD1[7]** | SR501 | GPIO(PORTA[8]) | |
| 93 | + | **PMOD2[6:3]** | PCA9685 | I2C0 | |
| 94 | + | **PMOD3[4:1]** **PMOD3[10:7]** | 4*4 keypad | GPIO(PORTC[19:16]) GPIO(PORTA[19:16]) | |
| 95 | + | **PMOD5[2:1]** | US-100 | GPIO(PORTC[25:24]) | |
| 96 | + | **PMOD5[9:8]** | SYN6288 | UART2 | |
| 97 | + | **PMOD6[4:1]** **PMOD6[10:7]** | L298N | GPIO(PORTC[31:28]) GPIO(PORTA[31:28]) | |
| 98 | + |
| 99 | +3. Configure your EMSKs with proper core configuration. |
| 100 | + |
| 101 | + |
| 102 | + |
| 103 | +## **User Manual** |
| 104 | + |
| 105 | +### **Before Running This Application** |
| 106 | + |
| 107 | +Download source code of **Contactless delivery robot** from github. |
| 108 | + |
| 109 | +In order to open **UART2**,**IIC0**,**UART0**, we need to modify following files. |
| 110 | + |
| 111 | +``` |
| 112 | +set_pmod_mux(mux_regs, PM1_UR_UART_0 | PM1_LR_GPIO_A| PM2_I2C_HRI\ |
| 113 | + | PM3_GPIO_AC\ |
| 114 | + | PM4_I2C_GPIO_D\ |
| 115 | + | PM5_UR_GPIO_C | PM5_LR_SPI_M2 \ |
| 116 | + | PM6_UR_GPIO_C | PM6_LR_GPIO_A |
| 117 | + ); |
| 118 | +) |
| 119 | +``` |
| 120 | + |
| 121 | +The functions corresponding to each module driver code are as follows. |
| 122 | + |
| 123 | +| **file** | **function** | |
| 124 | +| ------------ | ------------------------------------------------------------ | |
| 125 | +| keypad.c | Keyboard initialization and information transcoding storage | |
| 126 | +| motordrive.c | Motor initialization and status control | |
| 127 | +| pwm.c | Servo initialization and state control | |
| 128 | +| sim900.c | SMS sending and dialing configuration | |
| 129 | +| sr501.c | Human sensor initialization and detection | |
| 130 | +| syn6288.c | Speech synthesis output | |
| 131 | +| tdriver.c | IIC initialization and configuration | |
| 132 | +| ultradrive.c | Ultrasonic module initialization and detection | |
| 133 | +| main.c | Main entry of embARC Application | |
| 134 | +| makefile | Makefile of embARC Application | |
| 135 | + |
| 136 | +## Run This Application |
| 137 | + |
| 138 | +### makefile |
| 139 | + |
| 140 | +Target options about EMSK and toolchain: |
| 141 | + |
| 142 | +``` |
| 143 | +# Current Board And Core |
| 144 | +## |
| 145 | +BOARD ?= emsk |
| 146 | +BD_VER ?= 22 |
| 147 | +CUR_CORE ?= arcem7d |
| 148 | +TOOLCHAIN ?= gnu |
| 149 | +## |
| 150 | +
|
| 151 | +``` |
| 152 | + |
| 153 | +Then `make run`. |
| 154 | + |
| 155 | +## **DemoVideo** |
| 156 | + |
| 157 | +https://v.youku.com/v_show/id_XNDkwODM0MzUyNA==.html?firsttime=65 |
0 commit comments