Component Documentation: Fly Sky FS-i6X 2.4GHz 6CH AFHDS 2A RC Transmitter With FS-iA10B 2.4GHz 10CH Receiver
The Fly Sky FS-i6X 2.4GHz 6CH AFHDS 2A RC Transmitter and FS-iA10B 2.4GHz 10CH Receiver are a popular combination for remote control applications, particularly in the fields of robotics, drones, and model aircraft. This documentation provides a comprehensive guide on how to use this component in various contexts, along with code examples to get you started.
Transmitter (FS-i6X):
+ Frequency: 2.4GHz
+ Number of Channels: 6
+ Modulation: AFHDS 2A
+ Range: Up to 1.5 km
Receiver (FS-iA10B):
+ Frequency: 2.4GHz
+ Number of Channels: 10
+ Range: Up to 1.5 km
The FS-iA10B receiver has a 10-pin output, with the following pinout:
| Pin | Channel |
| --- | --- |
| 1 | CH1 (Throttle) |
| 2 | CH2 (Aileron) |
| 3 | CH3 (Elevator) |
| 4 | CH4 (Rudder) |
| 5 | CH5 (Aux 1) |
| 6 | CH6 (Aux 2) |
| 7 | CH7 (Aux 3) |
| 8 | CH8 (Aux 4) |
| 9 | CH9 (Aux 5) |
| 10 | CH10 (Aux 6) |
### Example 1: Basic Robot Control using Arduino
In this example, we will use the Fly Sky FS-i6X transmitter and FS-iA10B receiver to control a robot using an Arduino board.
Fly Sky FS-i6X transmitter
Fly Sky FS-iA10B receiver
Arduino board (e.g. Arduino Uno)
Robot chassis with motors and motor controllers
Code:
```cpp
#include <Servo.h>
// Define servo pins
const int servoThrottle = 9;
const int servoAileron = 10;
const int servoElevator = 11;
const int servoRudder = 12;
Servo throttleServo;
Servo aileronServo;
Servo elevatorServo;
Servo rudderServo;
void setup() {
// Initialize servo pins as outputs
pinMode(servoThrottle, OUTPUT);
pinMode(servoAileron, OUTPUT);
pinMode(servoElevator, OUTPUT);
pinMode(servoRudder, OUTPUT);
// Attach servos to pins
throttleServo.attach(servoThrottle);
aileronServo.attach(servoAileron);
elevatorServo.attach(servoElevator);
rudderServo.attach(servoRudder);
}
void loop() {
// Read receiver channels
int throttleValue = pulseIn(CH1, HIGH, 25000);
int aileronValue = pulseIn(CH2, HIGH, 25000);
int elevatorValue = pulseIn(CH3, HIGH, 25000);
int rudderValue = pulseIn(CH4, HIGH, 25000);
// Map receiver values to servo positions
int throttlePos = map(throttleValue, 1000, 2000, 0, 180);
int aileronPos = map(aileronValue, 1000, 2000, 0, 180);
int elevatorPos = map(elevatorValue, 1000, 2000, 0, 180);
int rudderPos = map(rudderValue, 1000, 2000, 0, 180);
// Set servo positions
throttleServo.write(throttlePos);
aileronServo.write(aileronPos);
elevatorServo.write(elevatorPos);
rudderServo.write(rudderPos);
delay(20);
}
```
### Example 2: Drone Control using Raspberry Pi and Python
In this example, we will use the Fly Sky FS-i6X transmitter and FS-iA10B receiver to control a drone using a Raspberry Pi and Python.
Fly Sky FS-i6X transmitter
Fly Sky FS-iA10B receiver
Raspberry Pi
Drone motors and motor controllers
Raspbian OS
Python 3.x
Drone control library (e.g. dronekit-python)
Code:
```python
import dronekit
import time
# Connect to the drone's flight controller
drone = dronekit.connect('udp:localhost:14550')
# Define receiver channels
CH1 = 0 # Throttle
CH2 = 1 # Aileron
CH3 = 2 # Elevator
CH4 = 3 # Rudder
while True:
# Read receiver channels
throttle_value = drone.channels[CH1]
aileron_value = drone.channels[CH2]
elevator_value = drone.channels[CH3]
rudder_value = drone.channels[CH4]
# Control drone motors
drone.motors[0].set speed(throttle_value)
drone.motors[1].set speed(aileron_value)
drone.motors[2].set speed(elevator_value)
drone.motors[3].set speed(rudder_value)
time.sleep(0.02)
```
These examples demonstrate the basic usage of the Fly Sky FS-i6X transmitter and FS-iA10B receiver in controlling robots and drones. You can modify and extend these examples to suit your specific project requirements.