RC Robot Tutorial

This commit is contained in:
2025-07-19 01:40:18 -04:00
parent f79408f8f5
commit 67cf517b4b
9 changed files with 31 additions and 28 deletions

View File

@@ -13,13 +13,14 @@ The following table summarizes GPIOs and pins reserved for operations purposes.
The GPIO numbers correspond to those on the ESP32-C3 WROOM microcontroller. The Pin number corresponds to the pin on the Breadboard and Power adapter development board. The GPIO numbers correspond to those on the ESP32-C3 WROOM microcontroller. The Pin number corresponds to the pin on the Breadboard and Power adapter development board.
x- and y- axis Reading the Joystick x- and y- axis
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
The **GPIO0** and **GPIO1** assigned to measuring the voltage of x- and y- axis of the Joystick. Lastly, there is a group of GPIO pairs responsible for PWM for DC motors. To determine the position of the Joystick, the BitRider RC car uses ADC to measure voltage on two GPIOs connected to the joystic
x- and y- axis potentionometers (**GPIO0** and **GPIO1**).
Direction and Speed Controlling the Direction and Speed
~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The pairs of DC motors on the left side are wired to the dedicated PWM channels. This means that *ESP32-C3 Breadboard DevBoard* can control rotation speed and direction of DC motors in pairs only (i.e. left and right side). The pairs of DC motors on the left side are wired to the dedicated PWM channels. This means that *ESP32-C3 Breadboard DevBoard* can control rotation speed and direction of DC motors in pairs only (i.e. left and right side).
Consequently, only four PWM channels are sufficient for controlling the direction of the RC car. Consequently, only four PWM channels are sufficient for controlling the direction of the RC car.

View File

@@ -43,8 +43,8 @@
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="overview.html">2. HOW DOES IT WORK?</a><ul> <li class="toctree-l1"><a class="reference internal" href="overview.html">2. HOW DOES IT WORK?</a><ul>
<li class="toctree-l2"><a class="reference internal" href="overview.html#reserved-pins-gpios">2.1. Reserved Pins &amp; GPIOs</a><ul> <li class="toctree-l2"><a class="reference internal" href="overview.html#reserved-pins-gpios">2.1. Reserved Pins &amp; GPIOs</a><ul>
<li class="toctree-l3"><a class="reference internal" href="overview.html#x-and-y-axis">2.1.1. x- and y- axis</a></li> <li class="toctree-l3"><a class="reference internal" href="overview.html#reading-the-joystick-x-and-y-axis">2.1.1. Reading the Joystick x- and y- axis</a></li>
<li class="toctree-l3"><a class="reference internal" href="overview.html#direction-and-speed">2.1.2. Direction and Speed</a></li> <li class="toctree-l3"><a class="reference internal" href="overview.html#controlling-the-direction-and-speed">2.1.2. Controlling the Direction and Speed</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="overview.html#fusion-of-software-with-hardware">2.2. Fusion of Software with Hardware</a></li> <li class="toctree-l2"><a class="reference internal" href="overview.html#fusion-of-software-with-hardware">2.2. Fusion of Software with Hardware</a></li>

View File

@@ -41,12 +41,13 @@ The Schematic and KiCAd PCB board are available on <a class="reference external"
<h2><span class="section-number">2.1. </span>Reserved Pins &amp; GPIOs<a class="headerlink" href="#reserved-pins-gpios" title="Link to this heading"></a></h2> <h2><span class="section-number">2.1. </span>Reserved Pins &amp; GPIOs<a class="headerlink" href="#reserved-pins-gpios" title="Link to this heading"></a></h2>
<p>The following table summarizes GPIOs and pins reserved for operations purposes.</p> <p>The following table summarizes GPIOs and pins reserved for operations purposes.</p>
<p>The GPIO numbers correspond to those on the ESP32-C3 WROOM microcontroller. The Pin number corresponds to the pin on the Breadboard and Power adapter development board.</p> <p>The GPIO numbers correspond to those on the ESP32-C3 WROOM microcontroller. The Pin number corresponds to the pin on the Breadboard and Power adapter development board.</p>
<section id="x-and-y-axis"> <section id="reading-the-joystick-x-and-y-axis">
<h3><span class="section-number">2.1.1. </span>x- and y- axis<a class="headerlink" href="#x-and-y-axis" title="Link to this heading"></a></h3> <h3><span class="section-number">2.1.1. </span>Reading the Joystick x- and y- axis<a class="headerlink" href="#reading-the-joystick-x-and-y-axis" title="Link to this heading"></a></h3>
<p>The <strong>GPIO0</strong> and <strong>GPIO1</strong> assigned to measuring the voltage of x- and y- axis of the Joystick. Lastly, there is a group of GPIO pairs responsible for PWM for DC motors.</p> <p>To determine the position of the Joystick, the BitRider RC car uses ADC to measure voltage on two GPIOs connected to the joystic
x- and y- axis potentionometers (<strong>GPIO0</strong> and <strong>GPIO1</strong>).</p>
</section> </section>
<section id="direction-and-speed"> <section id="controlling-the-direction-and-speed">
<h3><span class="section-number">2.1.2. </span>Direction and Speed<a class="headerlink" href="#direction-and-speed" title="Link to this heading"></a></h3> <h3><span class="section-number">2.1.2. </span>Controlling the Direction and Speed<a class="headerlink" href="#controlling-the-direction-and-speed" title="Link to this heading"></a></h3>
<p>The pairs of DC motors on the left side are wired to the dedicated PWM channels. This means that <em>ESP32-C3 Breadboard DevBoard</em> can control rotation speed and direction of DC motors in pairs only (i.e. left and right side). <p>The pairs of DC motors on the left side are wired to the dedicated PWM channels. This means that <em>ESP32-C3 Breadboard DevBoard</em> can control rotation speed and direction of DC motors in pairs only (i.e. left and right side).
Consequently, only four PWM channels are sufficient for controlling the direction of the RC car. Consequently, only four PWM channels are sufficient for controlling the direction of the RC car.
Based on this constraint, the RC car can only move front, back, and turn/rotate left and right. Any other movements are not possible (i.e. diagonal or sideways).</p> Based on this constraint, the RC car can only move front, back, and turn/rotate left and right. Any other movements are not possible (i.e. diagonal or sideways).</p>
@@ -278,8 +279,8 @@ Right DC Motors spin clockwise</p></td>
<li class="toctree-l1"><a class="reference internal" href="intro.html">1. OVERVIEW</a></li> <li class="toctree-l1"><a class="reference internal" href="intro.html">1. OVERVIEW</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">2. HOW DOES IT WORK?</a><ul> <li class="toctree-l1 current"><a class="current reference internal" href="#">2. HOW DOES IT WORK?</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#reserved-pins-gpios">2.1. Reserved Pins &amp; GPIOs</a><ul> <li class="toctree-l2"><a class="reference internal" href="#reserved-pins-gpios">2.1. Reserved Pins &amp; GPIOs</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#x-and-y-axis">2.1.1. x- and y- axis</a></li> <li class="toctree-l3"><a class="reference internal" href="#reading-the-joystick-x-and-y-axis">2.1.1. Reading the Joystick x- and y- axis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#direction-and-speed">2.1.2. Direction and Speed</a></li> <li class="toctree-l3"><a class="reference internal" href="#controlling-the-direction-and-speed">2.1.2. Controlling the Direction and Speed</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l2"><a class="reference internal" href="#fusion-of-software-with-hardware">2.2. Fusion of Software with Hardware</a></li> <li class="toctree-l2"><a class="reference internal" href="#fusion-of-software-with-hardware">2.2. Fusion of Software with Hardware</a></li>

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
# Sphinx build info version 1 # Sphinx build info version 1
# This file records the configuration used when building these files. When it is not found, a full rebuild will be done. # This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
config: d725fe0eaf62cd0cc82e71f548b78064 config: 1584acc0da0952bbe91b77f110c060a0
tags: 62a1e7829a13fc7881b6498c52484ec0 tags: 62a1e7829a13fc7881b6498c52484ec0

View File

@@ -83,13 +83,13 @@
</a> </a>
<ul> <ul>
<li class="toctree-l3"> <li class="toctree-l3">
<a class="reference internal" href="#x-and-y-axis"> <a class="reference internal" href="#reading-the-joystick-x-and-y-axis">
2.1.1. x- and y- axis 2.1.1. Reading the Joystick x- and y- axis
</a> </a>
</li> </li>
<li class="toctree-l3"> <li class="toctree-l3">
<a class="reference internal" href="#direction-and-speed"> <a class="reference internal" href="#controlling-the-direction-and-speed">
2.1.2. Direction and Speed 2.1.2. Controlling the Direction and Speed
</a> </a>
</li> </li>
</ul> </ul>
@@ -309,15 +309,16 @@ The Schematic and KiCAd PCB board are available on
<p> <p>
The GPIO numbers correspond to those on the ESP32-C3 WROOM microcontroller. The Pin number corresponds to the pin on the Breadboard and Power adapter development board. The GPIO numbers correspond to those on the ESP32-C3 WROOM microcontroller. The Pin number corresponds to the pin on the Breadboard and Power adapter development board.
</p> </p>
<section id="x-and-y-axis"> <section id="reading-the-joystick-x-and-y-axis">
<h4> <h4>
x- and y- axis Reading the Joystick x- and y- axis
<a class="headerlink" href="#x-and-y-axis" title="Link to this heading"> <a class="headerlink" href="#reading-the-joystick-x-and-y-axis" title="Link to this heading">
&para; &para;
</a> </a>
</h4> </h4>
<p> <p>
The To determine the position of the Joystick, the BitRider RC car uses ADC to measure voltage on two GPIOs connected to the joystic
x- and y- axis potentionometers (
<strong> <strong>
GPIO0 GPIO0
</strong> </strong>
@@ -325,13 +326,13 @@ The Schematic and KiCAd PCB board are available on
<strong> <strong>
GPIO1 GPIO1
</strong> </strong>
assigned to measuring the voltage of x- and y- axis of the Joystick. Lastly, there is a group of GPIO pairs responsible for PWM for DC motors. ).
</p> </p>
</section> </section>
<section id="direction-and-speed"> <section id="controlling-the-direction-and-speed">
<h4> <h4>
Direction and Speed Controlling the Direction and Speed
<a class="headerlink" href="#direction-and-speed" title="Link to this heading"> <a class="headerlink" href="#controlling-the-direction-and-speed" title="Link to this heading">
&para; &para;
</a> </a>
</h4> </h4>