mirror of
https://github.com/alexandrebobkov/ESP-Nodes.git
synced 2025-08-10 21:24:22 +00:00
RC Robot Tutorial
This commit is contained in:
@@ -168,7 +168,24 @@ Right DC Motors spin clockwise</p></td>
|
||||
<p><span class="caption-text">DC Motor PWM duty cycle 90.8%</span><a class="headerlink" href="#id3" title="Link to this image">¶</a></p>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<br/><br/><br/><br/><table class="docutils align-default">
|
||||
<br/><br/><br/><br/></section>
|
||||
</section>
|
||||
<section id="fusion-of-software-with-hardware">
|
||||
<h2><span class="section-number">2.2. </span>Fusion of Software with Hardware<a class="headerlink" href="#fusion-of-software-with-hardware" title="Link to this heading">¶</a></h2>
|
||||
<p>On one hand, we have the hardware designed so that the joystic x- and y- axis, and DC motors are wired to the proper GPIOs on the
|
||||
ESP32-C3 WROOM microcontroller. On the other hand, we have the software that reads the joystick x- and y- axis, sends the data
|
||||
to the receiver device, and converts that to PWM values on the receiver device.</p>
|
||||
<p>In essense, the direction and speed of the bitByte Rider car is controlled by the two variables. On the remote controller device,
|
||||
the joystic x- and y- axis values are sent to the receiver device in a raw format (i.e. analog voltages, “as-is”). On the receover
|
||||
device, these two values are converted to the two PWM values; one for each pair of DC motors on left and right side.</p>
|
||||
<p>When the joystick is pushed forward, the X-axis voltage remains at 1.65V (neutral), while the Y-axis voltage rises to 3.3V. The
|
||||
receiver on the RC car interprets this input and generates 100% PWM duty cycle signals on both sides, driving the car forward at
|
||||
full speed.</p>
|
||||
<p>Similarly, when the joystick is pushed fully to the left or right, the X-axis voltage shifts while the Y-axis remains neutral. For a
|
||||
left turn, the receiver translates the signal into 100% PWM on the left-side motors and 0% on the right-side motors, causing the car
|
||||
to pivot. The opposite occurs for a right turn, with 100% PWM on the right and 0% on the left, enabling precise directional control.</p>
|
||||
<p>The table below summarizes the reserved GPIOs.</p>
|
||||
<table class="docutils align-default">
|
||||
<thead>
|
||||
<tr class="row-odd"><th class="head"><p>GPIO</p></th>
|
||||
<th class="head"><p>Pin</p></th>
|
||||
@@ -214,10 +231,6 @@ Right DC Motors spin clockwise</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
</section>
|
||||
<section id="fusion-of-software-with-hardware">
|
||||
<h2><span class="section-number">2.2. </span>Fusion of Software with Hardware<a class="headerlink" href="#fusion-of-software-with-hardware" title="Link to this heading">¶</a></h2>
|
||||
<p>The <em>struct</em> for storing motors PWM values.</p>
|
||||
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span><span class="w"> </span><span class="nc">motors_rpm</span><span class="w"> </span><span class="p">{</span>
|
||||
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">motor1_rpm_pwm</span><span class="p">;</span>
|
||||
|
Reference in New Issue
Block a user