ESP32 Joystick Hand Controller ESP-NOW
I designed an ESP32 joystick hand controller to wirelessly control the ESP32 Mecanum Wheels (ESP32-Mecanum-Wheels-Robot-and-Bluetooth-Gamepad) robot without using an app. This hand controller is bat-themed and features two thumb joysticks and 4 push-buttons. Check out the video to see how it works...
How It Works?
As seen in the video, I control the mecanum wheels robot wirelessly using joysticks. Here, no radio frequency or Wi-Fi was used for communication, communication was provided via the MAC address, which is easier and safer. There is a way to facilitate this communication ESP-NOW... We can communicate with two ESP32 boards, one-way and two-way.
Printed Circuit Board
The joystick hand controller was made by many makers, usually using an Arduino Nano board and the nRF24L01 or Bluetooth option for communication.
I preferred a bat theme while designing the PCB to have a unique design. I also preferred the ESP32 board, which many of us have heard of, but have some worries about using. In fact, the ESP32 board is more efficient than other boards in terms of communication options. Because an ESP32 board allows Bluetooth, Wi-Fi, MAC address and more wireless communication ways. I also think that it is sufficient on the number of pins compared to other boards. Finally, an ESP32 board is pretty easy to use...
Thank you PCBWay for support and sponsorship in ordering the printed circuit board. For high-quality PCBs, you can choose PCBWay. If you want to get this printed circuit board easily, you can download the PCB Gerber file or order it directly.
Components and Soldering
If you look at the bill of material (BOM), easily solderable components were preferred, so you can easily assembly your printed circuit board by following the circuit diagram designator.
You need few components for the printed circuit board:
- 1x Diode SB560
- 3x Capacitor 100uf 25V
- 2x Thumb Joystick
- 1x Regulator 7805CV
- 2x LED 3mm
- 2x Resistor 330R
- 6x Resistor 4.7K
- 1x ESP32 Devkit V1
- 2x Female Header 1x4 2.54
- 1x Connector 1x2
- 4x Momentary Switch 12mm
Breadboard Circuit
For those who want to experience communicating from ESP32 to ESP32 using ESP-NOW before ordering the printed circuit board, I built two breadboard circuits as sender and receiver. You can build your circuit and test the source code by following the shared circuit diagram.
Getting Board MAC Address
To communicate via ESP-NOW, you need to know the MAC Address of the ESP32 receiver. To get your board’s MAC Address, upload the shared following code. That’s how you know to which device you’ll send the data to. Each ESP32 has a unique MAC Address and this is used to send data using ESP-NOW.
After uploading the code, open the Serial Monitor at a baud rate of 115200 and press the ESP32 RST/EN button. The MAC address should be printed. Save your board MAC address because you’ll need it to send data to the right board. If you want to establish two-way communication between both boards, you will also need the MAC address of the second board.
One-way Point to Point Communication
Let's examine the button-to-motor source code created for the breadboard circuit to simply explain the operation of the source code and ESP-NOW. The circuit to which the button is connected uses the 'Sender' code, while the circuit to which the motor is connected uses the 'Receiver' code.
Once you understand the working principle of these simple codes, you can more easily edit the source code created for Joystick Hand Controller and L293D Motor Board.
Open the shared source code for the Sender-ESP32-Button
- The GPIO pin that the "button" is connected to is defined in the code. Then a variable is defined to read the "button state".
- Next, the MAC address of the receiver-board is entered.
- Then, create a structure that contains the type of data we want to send. Called this structure "struct_message" and it contain an integer variable type (int buttonValue). You can change this to send other types of variables (like char, float, bool).
- When the button is pressed, the value of the button is read and the button state is determined. The button state is sent with the message structure as the button value.
Open the shared source code for the Receiver-ESP32-Motor
- Define the GPIO pin that the "motor" is connected
- Define the message structure to be received from the sender. Must match the sender structure.
- Define a variable for motor state.
- The button value read from the sender is written to the motor state variable, and the motor state variable controls the pin of the motor.
Upload the sender and receiver source codes. Then test it and see how it works. If all is well, you can edit and use the source codes created and shared for Joystick Hand Controller and L293D Motor Driver board.
L293D Motor Driver Board
If you need more details about the L293D Motor Driver board, check out the PCBWay page here: ESP32-Mecanum-Wheels-Robot-and-Bluetooth-Gamepad
In this article, you can find the installation of the mecanum wheels robot and the build and use of the L293D Motor Driver board.
If you have any ideas, please let them know in the comment section. Follow to be informed about the next projects.
ESP32 Joystick Hand Controller ESP-NOW
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
- Comments(16)
- Likes(16)
- Engineer Jun 27,2024
- Engineer Mar 18,2024
- Engineer Feb 22,2024
- MBW13 Jan 23,2024
- Engineer Nov 04,2023
- Engineer Oct 24,2023
- Engineer Jun 28,2023
- Engineer May 30,2023
- Engineer May 20,2023
- Engineer Mar 24,2023
- Engineer Nov 30,2022
- Engineer Nov 09,2022
- Tom26 Oct 22,2022
- MERT KILIC Aug 03,2022
- Abdullah Yıldırım Jul 03,2022
- (DIY) C64iSTANBUL Jun 17,2022
- 1 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
-
8design
-
8usability
-
8creativity
-
8content
More by MERT KILIC
- Build a simple 3D printed CNC plotter machine Hi friends, do you remember this Mini CNC Plotter machine that uses hobby stepper motors and a few 3...
- Circuit Activity Board - Educational Electronics Circuit Activity Board – A Hands-On Project to Learn Basic ElectronicsIn this project, we're going t...
- Build a Simple 3D Wall Lighting Hi friends, this project shows how to make and control 3D hexagonal LED lighting panels. The project...
- Robot Sumo Board Robot-sumo, or pepe-sumo, is a sport in which two robots attempt to push each other out of a circle ...
- ESP32 Mecanum Wheels Robot and Bluetooth Gamepad Controller In this project we will see how to make an ESP32 Mecanum Wheels Robot which is capable of moving in ...
- DIY Motorized WiFi Roller Blind - ESP8266 & Blynk In this project we will see how to control a roller blind via a smartphone application. The reason w...
- Pet Feeder Controlled Via WiFi - ESP8266 How It Works?As you can see, a 3D design was used for the pet feeder. ESP8266-based Wemos D1 Mini bo...
- ESP8266 Two Wheel Robot (NodeMCU and Stepper Motor) Generally, robot cars are built on a chassis with 2 DC motor wheels and a bovine wheel. While surfin...
- 3D Printed Rotating Table Board with Arduino Nano and 28BYJ-48 Stepper Motor This project shows how to make a 3D printed Rotating Table using Arduino and a hobby stepper motor. ...
- Hand Gesture Controller for Robotic Hand Gesture Controller for RoboticThe hand gesture controller makes it possible to control applicat...
- How To Make DIY Remote Control Hoverboat at Home In this video, I showed you how to make your own hoverboat from materials available at home and chea...
- How to Make DIY Arduino Gesture Control Robot at Home Parts Required for Receiver (Tank):1) Robot Tank Chassis - https://bit.ly/3j8y2Q52) Arduino Nano V3 ...
- DIY Circuit Activty Board with Paperclips | MAKER | STEM You can be creative and design your own circuit and add different sensors (other LEDs...). The idea ...
- ATtiny85 Wearable Activity Tracking Watch How to make the wearable activity tracking watch? This is a wearable gadget designed to vibrate when...
- Face With Animatronic Eyes, Motion Detection and Voice Are you ready to create something both eerie and captivating? This project combines 3D printing, ser...
- Build a simple 3D Arduino Mini CNC Plotter Hi friends, we will see how to make a simple and awesome mini CNC plotter machine in this project. I...
- Build a simple 3D Sphere Drawing Robot (SphereBot - EggBot - EggDuino) Hi friends in this video we will see how to make a simple and awesome sphere drawing robot. Actually...
- Multiple Stepper Motor Controller Board I will show you how to turn such a complex Arduino multi-step motor circuit into a professional prot...
-
-
-
Sega Master System RGB Encoder Switcher Z80 QSB v1.2
18 0 0 -
18650 2S2P Battery Charger, Protection and 5V Output Board
20 0 0 -
High Precision Thermal Imager + Infrared Thermometer | OpenTemp
271 0 4 -
Sony PlayStation Multi Output Frequency Oscillator (MOFO) v1
94 0 2 -
-
XRC PRO: Open-Source RC Transmitter and Receiver System
117 0 2