tello-drone-controller
v1.0.1
Published
Tello drone controller API using Node.js and Express, with the tello-drone library.
Maintainers
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-controlleror
npm install -g tello-drone-controllerThis will install the package globally and you can run the server from any directory.
Usage
tello-drone-controller # starts the server on port 9000Development
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:
Clone the repository to your local machine:
git clone [email protected]:cagataycali/tello-drone-controller.gitNavigate to the project directory:
cd tello-drone-controllerInstall the required npm packages:
npm install
Usage
To start the server, run the following command in your project directory:
npm startThe 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:
GET http://localhost:9000/takeoffTo move the drone up by 30 cm:
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 - see the LICENSE file for details.
