https://github.com/tomash1234/rc-car
Modifing RC Car to be controllable via internet. Using on board Android phone it can receive commands, send GPS location and stream live camera footage.
https://github.com/tomash1234/rc-car
android arduino car esp8266 rc-car remote-control-car
Last synced: about 1 month ago
JSON representation
Modifing RC Car to be controllable via internet. Using on board Android phone it can receive commands, send GPS location and stream live camera footage.
- Host: GitHub
- URL: https://github.com/tomash1234/rc-car
- Owner: tomash1234
- License: mit
- Created: 2023-10-02T16:58:47.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-08T23:10:57.000Z (over 1 year ago)
- Last Synced: 2023-11-09T00:23:18.766Z (over 1 year ago)
- Topics: android, arduino, car, esp8266, rc-car, remote-control-car
- Language: Java
- Homepage:
- Size: 10.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
- License: LICENSE
Awesome Lists containing this project
README
# RC Car
# ! PROJECT IN PROGRESS !
## Overview
- Hardware
- Car
- Phone
- Esp8266
- Software
- Computer Program to control
- Android app
- Board program
## Hardware[See instructions here](doc/hardware.md)
## Computer program
- Shall be able to connect to phone (ip address, port) in local network
- Shall be able to control car movement (forward / backward [-1.0, 1.0], steering [-1.0, 1.0])
- Shall be able to receive images from camera
- Shall be able to record it camera image
- Shall be able to receive GPS info, accelerometer value (?)
- Shall be able to receive phone info - battery percent
- Control usingKeyboard / Gamepad / Wheel ?## Android App
- Shall be able to run http server
- Shall be able to receive command for car movement
- Shall be able to stream camera to computer program in real time
- Shall be able to send GPS and other phone info
- Shall be able to connect the board and send command (speed, steering)
### API
- `GET /camera` - return image
- `GET /info` - return phone info
- `GET /camerapREVIEW` - return a small image
- `GET /position?timeout=` - return GPS position
- `GET /drive?motor=[speed]&steering[angle]` - control car
- `POST /setStream?ipAddress=[ipAddress]&port[port]` - set the stream receiver
- `POST /startStream` - start stream to the set receiver
- `POST /stopStream` - stop stream## Board program
- Shall receive info from phone and set motors and steering according it.
- Communication using Wifi (hotspot) or serial port
- WIFI:
- In board program `USE_WIFI true`
- Run on port `5101`
- UDP Packet structure (3 bytes) - `[1, STEERING, MOTOR]`
- `STEERING` - `1` - LEFT, `2` - RIGHT, `3` - STRAIGHT, other values does not change current status
- `MOTOR` - `1` - FORWARD, `2` - BACKWARD, `3` - STOP, other values does not change current status
- Serial Port
- In board program `USE_WIFI false`
- Communication via USB Serial.
- Packet structure (3 bytes) - `[1, STEERING, MOTOR]`
- `STEERING` - `1` - LEFT, `2` - RIGHT, `3` - STRAIGHT, other values does not change current status
- `MOTOR` - `1` - FORWARD, `2` - BACKWARD, `3` - STOP, other values does not change current status