# e_drone_sp
Rust library for BYROBOT drones.
* Tested
- Windows 10 (x64)
- Ubuntu linux 20.04 (x64)
- macOS Big Sur
- Raspberry Pi OS (Raspberry PI Compute Module 4)
- Raspberry Pi OS Lite (Raspberry PI Zero)
* Support
- [E-Drone](http://dev.byrobot.co.kr/documents/kr/products/e_drone/)
- [Coding Drone](http://dev.byrobot.co.kr/documents/kr/products/coding_drone/)
- [Battle Drone](http://dev.byrobot.co.kr/documents/kr/products/battle_drone/)
## Dependencies
### Linux
If you see an error when you build your project,
```
error: failed to run custom build command for `libudev-sys v0.1.4`
```
You need to install '**libudev-dev**'.
```
sudo apt-get install libudev-dev
```
## Example
### Cargo.toml
```toml
[dependencies]
e_drone_sp="21.*"
e_drone="21.*"
```
### main.rs
```rust
extern crate e_drone_sp;
use e_drone::system::{*};
use e_drone::protocol::{*};
use e_drone_sp::{*};
fn main() {
let mut drone: Drone = Drone::new("COM75"); // Windows 10
//let mut drone: Drone = Drone::new("/dev/ttyACM0"); // linux, Raspberry PI USB
//let mut drone: Drone = Drone::new("/dev/serial0"); // Raspberry PI UART
if drone.is_connected() == false {
return;
}
drone.request(DeviceType::Controller, DataType::Information);
loop {
handler(&drone.check());
if drone.get_time_passed_from_last_transfer() > 1200 {
break;
}
}
}
fn handler(data: &Data) {
match data {
Data::Information(information) => {
println!("{:?}", information);
},
_ => {},
}
}
```
## Examples in library
### Source code
https://github.com/byrobot-rust/e_drone_sp/tree/master/examples
### Show in github1s.com
* Drone
- Flight
* Controller
- Button
- Buzzer
- Display
- Joystick
- Light
- Request
- Vibrator
### Clone Library
```
git clone https://github.com/byrobot-rust/e_drone_sp/
```
### Run
```
cargo run --example flight
```
```
cargo run --example button
```
```
cargo run --example buzzer
```
```
cargo run --example display
```
```
cargo run --example joystick
```
```
cargo run --example light
```
```
cargo run --example request
```
```
cargo run --example vibrator
```