mirror of
https://github.com/alexandrebobkov/ESP-Nodes.git
synced 2025-08-09 05:55:26 +00:00
RC Robot Tutorial
This commit is contained in:
@@ -8,9 +8,30 @@ The bitByteRider RC car operates using two main units: the *transmitter*, which
|
||||
the *receiver*, which interprets these values and converts them into PWM signals to control the DC motors. Both units communicate
|
||||
via **ESP-NOW**, a low-latency, connectionless wireless protocol that requires no Wi-Fi network or pairing.
|
||||
|
||||
In addition to enabling real-time control, using ESP-NOW introduces to key networking concepts such as **data encapsulation** and
|
||||
In addition to enabling real-time control, using ESP-NOW introduces key networking concepts such as **data encapsulation** and
|
||||
structured communication. By using data structures to group control variables, you gain hands-on experience with how information
|
||||
is packaged and transmitted — laying the groundwork for understanding the fundamentals of network communication in embedded systems.
|
||||
is packaged and transmitted, laying the groundwork for understanding the fundamentals of network communication in embedded systems.
|
||||
|
||||
The joystick used in the bitByteRider RC car remote unit outputs analog voltages ranging from 0V to 3.3V on both the x- and y- axes,
|
||||
depending on the position of the joystick. These voltage levels are read by the ESP32-C3's ADC (Analog-to-Digital Converter) inputs.
|
||||
|
||||
When the joystick is in its neutral (centered) position, the ADC inputs on the ESP32-C3 receive approximately 1.65V on both axes.
|
||||
This midpoint voltage is interpreted and interpolated into a PWM (Pulse Width Modulation) value of 0, indicating no movement or
|
||||
motor activity.
|
||||
|
||||
As the joystick is pushed to its maximum positions along the x- and y- axis, the voltage increases up to 3.3V. This maximum voltage
|
||||
is interpolated to a PWM value of 1024, which corresponds to a 100% duty cycle on the receiver side—resulting in full-speed
|
||||
operation of the DC motors.
|
||||
|
||||
To transmit control data, the X and Y axis values are encapsulated in a C struct, along with the receiver's **MAC** address, and sent
|
||||
wirelessly using ESP-NOW. This protocol enables low-latency, connectionless communication between the transmitter and receiver
|
||||
without requiring a Wi-Fi network or pairing.
|
||||
|
||||
Upon reception, the RC car's receiver decapsulates the data, extracts the joystick values, and interpolates them into PWM
|
||||
signals. These signals are then used to control the rotation speeds of the DC motors, enabling smooth and responsive remote control.
|
||||
|
||||
This process not only facilitates real-time control but also introduces you to key networking concepts such as data
|
||||
encapsulation, data structs, and the fundamentals of wireless data transmission in embedded systems.
|
||||
|
||||
.. _GitHub: https://github.com/alexandrebobkov/ESP32-C3_Breadboard-Adapter
|
||||
|
||||
|
Reference in New Issue
Block a user