0% found this document useful (0 votes)
66 views30 pages

Flysky Curriculum

The document provides a comprehensive guide for operating and setting up the FlySky transmitter and receiver, including battery installation, binding, and adjusting display settings. It also includes instructions for reading data from the transmitter using a microcontroller, controlling motors, and configuring auxiliary switches. Additionally, it outlines wiring details and code examples for various motor control scenarios with Arduino integration.

Uploaded by

mkiransatyasai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views30 pages

Flysky Curriculum

The document provides a comprehensive guide for operating and setting up the FlySky transmitter and receiver, including battery installation, binding, and adjusting display settings. It also includes instructions for reading data from the transmitter using a microcontroller, controlling motors, and configuring auxiliary switches. Additionally, it outlines wiring details and code examples for various motor control scenarios with Arduino integration.

Uploaded by

mkiransatyasai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

Fly Sky

1. Transmitter Overview
2. Receiver Overview
3. Transmitter Battery Installation
4. Operation Instructions
5. Binding
6. Display brightness adjustment
7. Channel Assignments
8. Aux Switches
9. Factory Reset
10.Reading data

Transmitter Overview
Battery Indicator
The status indicator is used to indicate the power and status of the transmitter and
receiver. If a receiver is not connected or bound to the transmitter no battery status
will be displayed for the receiver.
Receiver Overview

Connectors
The connectors are used to connect the parts of the model and the receiver.
• CH1 to CH6: used to connect the servos, microcontroller other parts.
• B/VCC: used to connect the bind cable for binding, and the power cable
during normal operation
Whenever you power the receiver it shows the LED indication. It should blink
until the transmitter gets connected. it shows a solid LED indication it means it is
connected to the transmitter.
CHANNELS

VCC

GND

Transmitter Battery Installation


Transmitter Battery Installation
Follow the steps to install the transmitter battery:
1. Open the battery compartment.
2. Insert 4 fully-charged AA batteries into the compartment. Make sure that the
batteries makes good contact with the battery compartments' contacts, with the
correct polarity.
3. Replace the battery compartment cover

Operation Instructions
Follow the steps below to turn on the system:
1. Check the system and make sure that:
• The batteries are fully charged and installed properly.
• The receiver is off and correctly installed.
2. Toggle the power switch to its upward position. Connect the receiver
power supply to the B/VCC port on the receiver.
3. The system is now powered on.
4. Make sure that all controls position to default then only the receiver
connects to the transmitter otherwise it will give some beep sound.

Binding

The transmitter and receiver have been pre-bound before delivery. If you are
using another transmitter or receiver, follow the steps below to bind the
transmitter and receiver:
1. Connect the supplied bind cable to the B/VCC port on the receiver.

2. Insert power into any other port.


3. Hold the bind key while powering on the transmitter to enter the bind mode.
4. Now the transmitter and receiver get paired.
5. The transmitter shows the receiver battery indication on display.
6. Remove the power and bind the cable from the receiver. Then connect the
power cable to the B/VCC port.
7. Check the servos' operation. If anything does not work as expected, restart this
procedure from the beginning.
Display brightness adjustment
Setup:

1. Hold the "OK" key

2. Press “ok” to enter inter into system settings


3. Press “Down” to come to Display (9 times)
4. Press “ok”

5. Use “UP” to increase brightness


6. Use “DOWN” to decrease brightness

7. Press “Cancel” to get back to home screen.


Channel Assignments
Setup:

8. Hold the "OK" key

9. Press “UP” to shift to functions setup


10. Press “ok”

11. Press “Down” to come to Display (2 times)


12. Press “ok”

13. Now you can observe channels

14. Press the "CANCEL" key to exit.


Aux Switches
The auxiliary channels function can be used to assign switches to extra
channels to control additional parts of our system like servos/motors/lights.
Setup:

1. Hold the "OK" key

2. Press “UP” to shift to functions setup


3. Press “ok”

4. Press “Down” to come to aux channels. (3 times)


5. press “ok”

6. now use “UP” and “DOWN” buttons to set it to desired switch of CH 5


(channel 5).

7. press “OK”
8. now use “UP” and “DOWN” buttons to set it to desired switch of CH 6
(channel 6).
9. Hold the "CANCEL" key to save and return to the previous menu.
Factory Reset
1. Press and hold “ok”

2. Press “ok” to go to system settings

3. Use “Down” key to select “Factory reset” (press 11 times)


4. Press “ok” .
5. Again it will ask for confirmation. Press “ok”.
Reading Values from a FlySky Transmitter
This guide explains how to read values from a FlySky transmitter using a
compatible receiver and microcontroller, such as an Arduino. We will detail the
necessary connections, code, and explanations to make your project functional.
Components Required

• FlySky Transmitter
• FlySky Receiver
• Microcontroller
• Male-to-female jumper wires
• Power source (e.g., 5V )

Connections Between Receiver and Microcontroller

• VCC: Power input


• GND: Ground
• Individual Channel Pins (CH1, CH2, ...): Outputs each channel separately
in PWM mode

Code:
// Pin definitions
#define CH1_PIN 2
#define CH2_PIN 3
#define CH3_PIN 4
#define CH4_PIN 5

void setup() {
Serial.begin(9600);
pinMode(CH1_PIN, INPUT);
pinMode(CH2_PIN, INPUT);
pinMode(CH3_PIN, INPUT);
pinMode(CH4_PIN, INPUT);
}

void loop() {
// Read PWM signals from each channel
int ch1 = pulseIn(CH1_PIN, HIGH);
int ch2 = pulseIn(CH2_PIN, HIGH);
int ch3 = pulseIn(CH3_PIN, HIGH);
int ch4 = pulseIn(CH4_PIN, HIGH);

// Print the values to the Serial Monitor


Serial.print("CH1: ");
Serial.print(ch1);
Serial.print(" | CH2: ");
Serial.print(ch2);
Serial.print(" | CH3: ");
Serial.print(ch3);
Serial.print(" | CH4: ");
Serial.println(ch4);

delay(100); // Small delay for stability


}
Controlling single motor
Wiring Details
Arduino UNO
• D8 connected to L293D M2IN2
• D9 connected to L293D M2IN1
• D10 connected to L293D EN2
• D2 connected to Flysky Receiver CH2
• 5V connected to Flysky Receiver VCC
• GND connected to Flysky Receiver GND
L293D Motor Driver
• M2A connected to Motor with Reducer 3 - 6 VCC
• M2B connected to Motor with Reducer GND
• M2IN1 connected to Arduino UNO D9
• M2IN2 connected to Arduino UNO D8
• EN2 connected to Arduino UNO D10
• V+ connected to 18650 Li-ion Battery x 2 +
• V- connected to 18650 Li-ion Battery x 2 -
18650 Li-ion Battery x 2
• + connected to L293D V+
• - connected to L293D V-
Flysky Receiver
• CH2 connected to Arduino UNO D2
• VCC connected to Arduino UNO 5V
• GND connected to Arduino UNO GND
// Pin definitions
#define CH2_PIN 2

const int motorIn1Pin = 8; // Input pin for motor control 1


const int motorIn2Pin = 9; // Input pin for motor control 2
const int motorEnablePin = 10; // Enable pin for motor control (PWM)

void setup() {
Serial.begin(9600);

pinMode(CH2_PIN, INPUT);
pinMode(motorIn1Pin, OUTPUT);
pinMode(motorIn2Pin, OUTPUT);
pinMode(motorEnablePin, OUTPUT);

// Initialize motor to stopped state


analogWrite(motorEnablePin, 0);
digitalWrite(motorIn1Pin, LOW);
digitalWrite(motorIn2Pin, LOW);
}

void loop() {
// Read PWM signals from the RC receiver
int ch = pulseIn(CH2_PIN, HIGH); // Timeout after 25ms

if (ch == 0) {
// Signal lost or invalid, stop the motor
analogWrite(motorEnablePin, 0);
digitalWrite(motorIn1Pin, LOW);
digitalWrite(motorIn2Pin, LOW);
return; // Exit early
}

if (ch > 1500) {


// Forward motion
int pulse = map(ch, 1500, 1990, 0, 255); // Map PWM to motor speed range
analogWrite(motorEnablePin, pulse);
digitalWrite(motorIn1Pin, HIGH);
digitalWrite(motorIn2Pin, LOW);
} else if (ch < 1490) {
// Reverse motion
int pulse = map(ch, 1490, 990, 0, 255); // Map PWM to motor speed range
analogWrite(motorEnablePin, pulse);
digitalWrite(motorIn1Pin, LOW);
digitalWrite(motorIn2Pin, HIGH);
} else {
// Neutral zone, stop the motor
analogWrite(motorEnablePin, 0);
digitalWrite(motorIn1Pin, LOW);
digitalWrite(motorIn2Pin, LOW);
}

// Debugging output
Serial.print("CH2: ");
Serial.println(ch);

delay(100); // Small delay for stability


}

Activity 1 : change the channel to left joystick


Double motor control

Wiring Details
Arduino UNO
• D2 connected to Flysky Receiver CH2
• D6 and D7 connected to L293D M1IN2 and M1IN1 respectively (Motor 1
control)
• D8 and D9 connected to L293D M2IN2 and M2IN1 respectively (Motor 2
control)
• D10 and D11 connected to L293D EN2 and EN1 respectively (Motor
enable)
• 5V and GND connected to Flysky Receiver VCC and GND
L293D Motor Driver
• M1A and M1B connected to one Motor with Reducer VCC and GND
• M2A and M2B connected to the other Motor with Reducer VCC and GND
• M1IN1, M1IN2, EN1, M2IN1, M2IN2, EN2 connected to Arduino UNO
D6, D7, D11, D8, D9, D10 respectively
• V+ connected to 18650 Li-ion Battery +
• V- connected to 18650 Li-ion Battery -
18650 Li-ion Battery x 2
• + connected to L293D V+
• - connected to L293D V-
Flysky Receiver
• CH2 connected to Arduino UNO D2
• VCC connected to Arduino UNO 5V
• GND connected to Arduino UNO GND

Code:
// Pin definitions for RC Receiver
#define CH2_PIN 2 // PWM signal for controlling both motors

// Motor 1 control pins


const int motor1In1Pin = 8; // Input pin 1 for Motor 1
const int motor1In2Pin = 9; // Input pin 2 for Motor 1
const int motor1EnablePin = 10; // Enable pin for Motor 1 (PWM)

// Motor 2 control pins


const int motor2In1Pin = 6; // Input pin 1 for Motor 2
const int motor2In2Pin = 7; // Input pin 2 for Motor 2
const int motor2EnablePin = 11; // Enable pin for Motor 2 (PWM)

void setup() {
Serial.begin(9600);

// RC receiver input pin


pinMode(CH2_PIN, INPUT);

// Motor 1 control pins


pinMode(motor1In1Pin, OUTPUT);
pinMode(motor1In2Pin, OUTPUT);
pinMode(motor1EnablePin, OUTPUT);

// Motor 2 control pins


pinMode(motor2In1Pin, OUTPUT);
pinMode(motor2In2Pin, OUTPUT);
pinMode(motor2EnablePin, OUTPUT);

// Initialize both motors to stopped state


stopMotors();
}

void loop() {
// Read PWM signal from the RC receiver
int ch = pulseIn(CH2_PIN, HIGH); // Timeout after 25ms

if (ch > 1500) {


// Forward motion
int pulse = map(ch, 1500, 1990, 0, 255); // Map PWM to motor speed range
analogWrite(motor1EnablePin, pulse);
analogWrite(motor2EnablePin, pulse);
digitalWrite(motor1In1Pin, HIGH);
digitalWrite(motor1In2Pin, LOW);
digitalWrite(motor2In1Pin, HIGH);
digitalWrite(motor2In2Pin, LOW);
} else if (ch < 1490) {
// Reverse motion
int pulse = map(ch, 1490,990, 0, 255); // Map PWM to motor speed range
analogWrite(motor1EnablePin, pulse);
analogWrite(motor2EnablePin, pulse);
digitalWrite(motor1In1Pin, LOW);
digitalWrite(motor1In2Pin, HIGH);
digitalWrite(motor2In1Pin, LOW);
digitalWrite(motor2In2Pin, HIGH);
} else if (ch == 0) {
// No signal, stop motors
stopMotors();
} else {
// Neutral zone, stop motors
stopMotors();
}

// Debugging output
Serial.print("CH2: ");
Serial.println(ch);

// delay(100); // Small delay for stability


}

// Function to stop both motors


void stopMotors() {
analogWrite(motor1EnablePin, 0);
analogWrite(motor2EnablePin, 0);
digitalWrite(motor1In1Pin, LOW);
digitalWrite(motor1In2Pin, LOW);
digitalWrite(motor2In1Pin, LOW);
digitalWrite(motor2In2Pin, LOW);
}

Activity: make one bot with four motors with four-direction


control

You might also like