
NORA: Nomadic Omnidirectional Reactive Automaton
📖 Overview
Overview
NORA is built on the **ESP32**, utilizing its dual-core processing to handle a custom WiFi Access Point for remote operation while simultaneously managing reactive obstacle avoidance via a 4-sensor ultrasonic array.
### Core Features
- [x] **Omnidirectional Movement:** Move in any direction without turning.
- [x] **Self-Hosted AP:** No router required for field operation.
- [x] **Reactive Safety:** 360° sensor coverage for auto-braking.
- [x] **Internal UV:** Specialized UV light disinfection capabilities.
Prerequisites
Prerequisites
### Software
- [Arduino IDE](https://docs.arduino.cc/software/ide/)
### Hardware
### Microcontrollers
| **Component** | **Details** |
|-----------|---------|
| Microcontroller 0 | ESP32 (ACEBOTT QA007 Max Controller Board) | Dev0 |
| Microcontroller 1 | Arduino UNO | Dev1 |
### Chassis & Motion
| **Component** | **Details** |
|-----------|---------|
| Chassis | Omnidirectional Robot Chassis |
| Motor Driver | 2x L298N |
| Motors | 4x 5V DC Motors |
### User Controllers
| **Component** | **Details** |
|-----------|---------|
| Interface | PC, Android, iPhone |
### Power System
| **Component** | **Details** |
|-----------|---------|
| Battery | 2s 18650|
### Sensors
| **Component** | **Details** |
|-----------|---------|
| Ultrasonic Sensors | 4x HC-SR04 (Front, Back, Left, Right)|
| Line Follower | 3-Channel Line Tracking Sensor |
Libraries:
- SoftwareSerial.h
- WiFi.h
- WebServer.h
- Preferences.h
Schematics
⚡ Technical Pinouts
[!CAUTION]
Ground Loop Warning: All modules must share a common GND. Failure to bridge grounds will cause erratic motor behavior and sensor noise.
ESP32 Motor Controller Configuration
#### L298N-0 (Front Drive)
| Motor | PWM Pin | Dir 1 | Dir 2 |
| :--- | :--- | :--- | :--- |
| **M0** | `GPIO 5` | `GPIO 16` | `GPIO 17` |
| **M1** | `GPIO 23`| `GPIO 18` | `GPIO 19` |
#### L298N-1 (Rear Drive)
| Motor | PWM Pin | Dir 1 | Dir 2 |
| :--- | :--- | :--- | :--- |
| **M2** | `GPIO 12` | `GPIO 13` | `GPIO 14` |
| **M3** | `GPIO 27` | `GPIO 26` | `GPIO 25` |
UNO Sensor Array Wiring
#### Ultrasonic Sensors
| Direction | Trigger Pin | Echo Pin |
| :--- | :--- | :--- |
| **FRONT** | `A0` | `A1` |
| **LEFT** | `D6` | `D7` |
| **BACK** | `A4` | `A5` |
| **RIGHT** | `A2` | `A3` |
#### Line Follower (left → right)
| Sensor | Pin |
| :--- | :--- |
| **Left** | `D3` |
| **Middle** | `D4` |
| **Right** | `D5` |
#### UV Light
| Component | Pin |
| :--- | :--- |
| **UV Light** | `D10` |
ESP32 ↔ Arduino Serial Link
Bidirectional UART at 9600 baud. Both devices must share a common GND.
| Signal | From | To |
| :--- | :--- | :--- |
| Sensor data (TX) | Arduino `D9` (SoftwareSerial TX) | ESP32 `RX` |
| UV commands (TX) | ESP32 `TX` | Arduino `D8` (SoftwareSerial RX) |
**Data format (Arduino → ESP32):**
```
F:23.4,L:10.1,B:45.0,R:8.3,LF:010
```
`LF:` is a 3-digit string — left/mid/right sensor states (0 or 1).
**Command format (ESP32 → Arduino):**
```
UV:1 (UV light on)
UV:0 (UV light off)
```
[!TIP]
Pro-Tip: Common GND is non-negotiable. If the motors behave erratically or the sensors give “0” readings, check your ground bridge first!
🌐 Connectivity & Controls
Connectivity & Controls
### Network Configuration
| Parameter | Value |
| :--- | :--- |
| **SSID** | `NORA` |
| **Password** | `12345678` |
### RIFT Integration
To connect via [RIFT](https://github.com/CursedPrograms/RIFT), connect to the `NORA` WiFi network then reach NORA at:
* `http://192.168.4.1:5002`
### Drive Modes
| Mode | Description |
| :--- | :--- |
| **Manual** | D-pad remote control via web UI |
| **Auto** | Omnidirectional obstacle avoidance using ultrasonic sensors |
| **Line** | Line following using the 3-channel IR sensor |
📂 Documentation & Assets
* [ACEBOTT ESP32 Max V1.0 Docs](https://acebottteam.github.io/acebott-docs-master/board/ESP32/QA007%20ESP32%20Max%20V1.0%20Controller%20Board.html)
* [CH340 Driver Download](https://acebottteam.github.io/acebott-docs-master/getting%20started/Arduino/Download%20CH340%20Driver%20on%20Windows%20System.html)
© Cursed Entertainment 2026