https://github.com/cagataycali/tello-drone-controller
Ryze Tello Drone Controller API - Made for Tiny AI
https://github.com/cagataycali/tello-drone-controller
drone tello tello-drone
Last synced: 5 months ago
JSON representation
Ryze Tello Drone Controller API - Made for Tiny AI
- Host: GitHub
- URL: https://github.com/cagataycali/tello-drone-controller
- Owner: cagataycali
- License: mit
- Created: 2024-02-12T01:55:27.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-12T02:21:52.000Z (about 1 year ago)
- Last Synced: 2024-05-01T13:23:47.793Z (12 months ago)
- Topics: drone, tello, tello-drone
- Language: JavaScript
- Homepage:
- Size: 10.7 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Tello Drone Controller API
- This project provides a API interface to control a Tello drone using Express.js.
- It allows users to send commands to the Tello drone through HTTP GET requests, making it easier to integrate drone control into web applications or services.# Install Globally
```
npx tello-drone-controller
```or
```
npm install -g tello-drone-controller
```This will install the package globally and you can run the server from any directory.
# Usage
```
tello-drone-controller # starts the server on port 9000
```## Development
## Prerequisites
Before you begin, ensure you have met the following requirements:
- Node.js (version 12 or newer recommended)
- A Tello drone connected to your computer's Wi-Fi network## Installation
To install the Tello Drone Controller API, follow these steps:
1. Clone the repository to your local machine:
```bash
git clone [email protected]:cagataycali/tello-drone-controller.git
```2. Navigate to the project directory:
```bash
cd tello-drone-controller
```3. Install the required npm packages:
```bash
npm install
```## Usage
To start the server, run the following command in your project directory:
```bash
npm start
```The server will listen on port 9000. You can change the port by modifying the `port` variable in the server script.
## API Endpoints
The API currently supports the following endpoints:
- **GET** `/:command` - Send a command to the Tello drone.
- `command`: The command to send to the drone (e.g., `takeoff`, `land`, `up`, `down`, etc.).
- Query Parameters:
- `value`: (Optional) The value for commands that require it (e.g., distance, angle).
- Additional command-specific parameters as needed.### Example Request
To make the drone take off:
```http
GET http://localhost:9000/takeoff
```To move the drone up by 30 cm:
```http
GET http://localhost:9000/up?value=30
```| Command | Description or Example Usage |
|---------------|-------------------------------------------------------------------|
| `command` | Initializes the command mode. `GET http://localhost:9000/command` |
| `takeoff` | Commands the drone to take off. `GET http://localhost:9000/takeoff`|
| `land` | Commands the drone to land. `GET http://localhost:9000/land` |
| `streamon` | Turns on video streaming. `GET http://localhost:9000/streamon` |
| `streamoff` | Turns off video streaming. `GET http://localhost:9000/streamoff` |
| `emergency` | Stops all motors immediately. `GET http://localhost:9000/emergency`|
| `up` | Moves the drone up. Example: `GET http://localhost:9000/up?value=30`|
| `down` | Moves the drone down. Example: `GET http://localhost:9000/down?value=30`|
| `left` | Moves the drone left. Example: `GET http://localhost:9000/left?value=30`|
| `right` | Moves the drone right. Example: `GET http://localhost:9000/right?value=30`|
| `forward` | Moves the drone forward. Example: `GET http://localhost:9000/forward?value=30`|
| `back` | Moves the drone back. Example: `GET http://localhost:9000/back?value=30`|
| `cw` | Rotates the drone clockwise. Example: `GET http://localhost:9000/cw?value=90`|
| `ccw` | Rotates the drone counterclockwise. Example: `GET http://localhost:9000/ccw?value=90`|
| `flip` | Flips the drone. Example: `GET http://localhost:9000/flip?value=l` (l for left)|
| `go` | Sends the drone to coordinates. Example: `GET http://localhost:9000/go?x=20&y=20&z=20&speed=10`|
| `curve` | Commands the drone to fly in a curve. Example: `GET http://localhost:9000/curve?x1=20&y1=20&z1=20&x2=30&y2=30&z2=30&speed=10`|
| `speed` | Sets the speed of the drone. Example: `GET http://localhost:9000/speed?value=10`|
| `rc` | Remote control the drone with more granularity. Example: `GET http://localhost:9000/rc?a=0&b=0&c=0&d=0`|
| `wifi` | Sets the Wi-Fi SSID and password. Example: `GET http://localhost:9000/wifi?ssid=yourSSID&pass=yourPass`|
| `speed?` | Queries the current speed. `GET http://localhost:9000/speed?` |
| `battery?` | Queries the current battery percentage. `GET http://localhost:9000/battery?`|
| `time?` | Queries the current flight time. `GET http://localhost:9000/time?`|
| `wifi?` | Queries the current Wi-Fi SNR. `GET http://localhost:9000/wifi?` |
| `sdk?` | Queries the SDK version. `GET http://localhost:9000/sdk?` |
| `sn?` | Queries the serial number. `GET http://localhost:9000/sn?` |Note: For commands that require parameters (like `up`, `down`, `left`, `right`, `go`, `curve`, etc.), replace the `value=30`, `x=20`, `y=20`, `z=20`, `speed=10`, `a=0`, `b=0`, `c=0`, `d=0`, `ssid=yourSSID`, and `pass=yourPass` with actual values you intend to use. The example parameters provided here are for illustration purposes only.
## Contributing
Contributions to the Tello Drone Controller API are welcome. To contribute, please fork the repository and create a new branch for your feature or fix.
## License
This project is licensed under the [MIT License](LICENSE.md) - see the LICENSE file for details.