Skip to content

A generic transmitter based on the nrf24l01 module using ESP32 and Arduino microcontrollers.

License

Notifications You must be signed in to change notification settings

walcht/nRF-transmitter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents
  1. About
  2. Getting Started
  3. Usage
  4. Contributing
  5. License

About

Transmitter Picture

A generic transmitter based on ESP32 \ Arduino boards using nRF24 transceiver module. This project aims to provide an extremely simple-to-use-and-build transmitter for remotelly controlling RC vehicles: be it a drone, an RC airplane or even an RC car. The components used in this project are the cheapest available. They are also _super easy to find anywhere. This project proves that you can build a somewhat decent remote controller with the cheapest available components.

This remote controller was mainly used to control drones and RC airplanes thus you'll hear the terms: Throttle, Pitch, Roll and Yaw a lot! You don't need to be familiar with these terms. These are just 4 values that this remote controller sends for controlling a drone \ RC airplane.

(back to top)

Getting Started

This project was built using PlatformIO. In order to use this project, you only need to have a basic knowledge of how PlatformIO works. Otherwise, if you're using ArduinoIDE then all you need to do is to copy the arduino/transmitter.ino into a local repository.

Components

This project uses the following components:

  • X1 ESP32s as a microcontroller
  • X1 nrf24l01+ transceiver module as a radio-frequency transceiver module
  • X2 1K Ohm Linear Potentiometer
  • X2 KY-023 Joystick Module as 2-axis analog input
  • X1 LCD display 16x2 WITH i2c Interface (or any other display)
  • X1 2-Way Toggle Switch as an ON \ OFF switch

The folder schematics contain ESP32 and Arduino circuit schematics.

Prerequisites

All essential libraries are provided in the lib folder. Thus, thus there is no need to look for any prerequisites, everything this project needs (in terms of code) is included in this project.

If you're using ArduinoIDE then make sure to install the libraries existing in lib folder.

Installation

  1. Clone the repo
    git clone https://github.com/github_username/repo_name.git
  2. Open the source code file src/transmitter.cpp
  3. Upload code to your microcontroller

(back to top)

Usage

The source code file src/transmitter.cpp is well-explained and well-documented.

As the above picture shows, there are two joysticks thus a total of 4 controlling values can be sent.

  • Left Joystick: Horizontal Axis is used for Yaw. Vertical Axis is used for Throttle
  • Right Joystick: Horizontal Axis is used for Roll. Vertical Axis is used for Pitch
  • Top Left Potentiometer: Used for controlling the sensitivity of both joysticks. This is useful for cases where subtle change in values is needed.
  • Top Right Potentiometer: Used for switching between different channels (default: 3 channels). This is useful for rapidly switching between controlling different RC vehicles.
  • LCD Display: Displays information. See source code for more details.

(back to top)

Contributing

Any contributions are more than welcome! 🤠

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

About

A generic transmitter based on the nrf24l01 module using ESP32 and Arduino microcontrollers.

Topics

Resources

License

Stars

Watchers

Forks