This commit is contained in:
2025-07-02 22:35:56 -04:00
parent c3f9de11fb
commit 95d61b037d
5 changed files with 16 additions and 8 deletions

View File

@@ -28,15 +28,19 @@ In particular, **GPIO6** and **GPIO5** provide PWM to the left- and right- side
Similarly, **GPIO4** and **GPIO7** provide PWM to the left- and right- side DC motors to rotate in a **counter-clockwise** direction. Similarly, **GPIO4** and **GPIO7** provide PWM to the left- and right- side DC motors to rotate in a **counter-clockwise** direction.
Changing PWM on each channel determines the speed and direction of the RC car. Changing PWM on each channel determines the speed and direction of the RC car.
The following images illustrate various PWM duty cycles registered by oscilloscope (duty cycles 0%, 50% and 95%, resp.). The following images illustrate various PWM duty cycles registered by oscilloscope (duty cycles 0%, 48% and 91%, resp.).
.. figure:: _static/ESP-IDF_Robot_PWM_Duty-0.bmp .. figure:: _static/ESP-IDF_Robot_PWM_Duty-0.bmp
DC Motor PWM duty cycle 0%. DC Motor PWM duty cycle 0%
.. image:: _static/ESP-IDF_Robot_PWM_Duty-50.bmp .. figure:: _static/ESP-IDF_Robot_PWM_Duty-50.bmp
.. image:: _static/ESP-IDF_Robot_PWM_Duty-95.bmp DC Motor PWM duty cycle 47.6%
.. gigure:: _static/ESP-IDF_Robot_PWM_Duty-95.bmp
DC Motor PWM duty cycle 90.8%.
.. raw:: html .. raw:: html

View File

@@ -53,15 +53,19 @@ Based on this constraint, the RC car can only move front, back, and turn/rotate
In particular, <strong>GPIO6</strong> and <strong>GPIO5</strong> provide PWM to the left- and right- side DC motors to rotate in a <strong>clockwise</strong> direction. In particular, <strong>GPIO6</strong> and <strong>GPIO5</strong> provide PWM to the left- and right- side DC motors to rotate in a <strong>clockwise</strong> direction.
Similarly, <strong>GPIO4</strong> and <strong>GPIO7</strong> provide PWM to the left- and right- side DC motors to rotate in a <strong>counter-clockwise</strong> direction. Similarly, <strong>GPIO4</strong> and <strong>GPIO7</strong> provide PWM to the left- and right- side DC motors to rotate in a <strong>counter-clockwise</strong> direction.
Changing PWM on each channel determines the speed and direction of the RC car.</p> Changing PWM on each channel determines the speed and direction of the RC car.</p>
<p>The following images illustrate various PWM duty cycles registered by oscilloscope (duty cycles 0%, 50% and 95%, resp.).</p> <p>The following images illustrate various PWM duty cycles registered by oscilloscope (duty cycles 0%, 48% and 91%, resp.).</p>
<figure class="align-default" id="id1"> <figure class="align-default" id="id1">
<img alt="_images/ESP-IDF_Robot_PWM_Duty-0.bmp" src="_images/ESP-IDF_Robot_PWM_Duty-0.bmp" /> <img alt="_images/ESP-IDF_Robot_PWM_Duty-0.bmp" src="_images/ESP-IDF_Robot_PWM_Duty-0.bmp" />
<figcaption> <figcaption>
<p><span class="caption-text">DC Motor PWM duty cycle 0%.</span><a class="headerlink" href="#id1" title="Link to this image"></a></p> <p><span class="caption-text">DC Motor PWM duty cycle 0%</span><a class="headerlink" href="#id1" title="Link to this image"></a></p>
</figcaption> </figcaption>
</figure> </figure>
<figure class="align-default" id="id2">
<img alt="_images/ESP-IDF_Robot_PWM_Duty-50.bmp" src="_images/ESP-IDF_Robot_PWM_Duty-50.bmp" /> <img alt="_images/ESP-IDF_Robot_PWM_Duty-50.bmp" src="_images/ESP-IDF_Robot_PWM_Duty-50.bmp" />
<img alt="_images/ESP-IDF_Robot_PWM_Duty-95.bmp" src="_images/ESP-IDF_Robot_PWM_Duty-95.bmp" /> <figcaption>
<p><span class="caption-text">DC Motor PWM duty cycle 47.6%</span><a class="headerlink" href="#id2" title="Link to this image"></a></p>
</figcaption>
</figure>
<br/><br/><br/><br/><table class="docutils align-default"> <br/><br/><br/><br/><table class="docutils align-default">
<thead> <thead>
<tr class="row-odd"><th class="head"><p>GPIO</p></th> <tr class="row-odd"><th class="head"><p>GPIO</p></th>

View File

@@ -1 +1 @@
Search.setIndex({"alltitles":{"ByteRider documentation":[[0,null]],"Chassis":[[3,"chassis"]],"Direction and Speed":[[2,"direction-and-speed"]],"Finished Work":[[3,"finished-work"]],"Fusion of Software with Hardware":[[2,"fusion-of-software-with-hardware"]],"HOW DOES IT WORK?":[[2,null]],"INTRODUCTION":[[1,null]],"Motor Wires Harness":[[3,"motor-wires-harness"]],"Reserved Pins & GPIOs":[[2,"reserved-pins-gpios"]],"Schematic":[[2,"schematic"]],"WORK-IN-PROGRESS WALK THROUGH":[[3,null]],"Wiring":[[3,"wiring"]],"x- and y- axis":[[2,"x-and-y-axis"]]},"docnames":["index","intro","overview","progress"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["index.rst","intro.rst","overview.rst","progress.rst"],"indexentries":{},"objects":{},"objnames":{},"objtypes":{},"terms":{"0":2,"04x":2,"0x":2,"1":2,"100":2,"15":2,"16":2,"2":2,"3":2,"4":2,"5":2,"50":2,"6":2,"7":2,"8":2,"95":2,"A":2,"IN":0,"IT":0,"If":2,"In":2,"NOT":2,"The":2,"__gpio6__":[],"_static":[],"adapt":2,"adc1_ch0":2,"adc1_ch1":2,"add":0,"address":2,"ani":2,"ar":2,"arg":2,"assign":2,"axi":[],"back":2,"bacl":2,"base":2,"being":2,"below":[],"bitbyterid":2,"board":2,"breadboard":2,"brief":2,"buffer":2,"button":2,"c3":2,"call":2,"can":2,"car":2,"chang":2,"channel":2,"chassi":0,"clockwis":2,"code":2,"column":[],"complet":3,"consequ":2,"constraint":2,"content":0,"contin":2,"control":[2,3],"correspond":2,"counter":2,"crc":2,"cycl":2,"data":2,"dc":[2,3],"declar":2,"dedic":2,"defin":2,"deletep":2,"detail":0,"determin":2,"devboard":2,"develop":2,"developmemt":2,"diagon":2,"direct":[],"displai":2,"doe":0,"duti":2,"e":2,"each":2,"els":2,"error":2,"esp":2,"esp32":2,"esp_log":2,"esp_logi":2,"esp_logw":2,"esp_now_is_peer_exist":2,"esp_now_send":2,"event":2,"everi":2,"evok":2,"exist":[],"finish":0,"follow":2,"four":2,"front":2,"function":2,"fusion":0,"get":2,"gpio":0,"gpio0":2,"gpio1":2,"gpio4":2,"gpio5":2,"gpio6":2,"gpio7":2,"group":2,"har":0,"hardwar":0,"harn":3,"hexadecim":2,"hold":2,"how":0,"i":2,"idf_robot_schemat":[],"illustr":2,"imag":2,"insid":3,"instal":3,"int":2,"introduct":0,"joystick":2,"lastli":2,"ledc_channel_0":2,"ledc_channel_1":2,"ledc_channel_2":2,"ledc_channel_3":2,"left":2,"length":2,"mac":2,"mean":2,"measur":2,"memori":2,"messag":2,"microcontrol":2,"motor":[0,2],"motor1_rpm_pcm":[],"motor1_rpm_pwm":2,"motor2_rpm_pcm":[],"motor2_rpm_pwm":2,"motor3_rpm_pcm":[],"motor3_rpm_pwm":2,"motor4_rpm_pcm":[],"motor4_rpm_pwm":2,"motors_rpm":2,"move":2,"movement":2,"nav_bttn":2,"note":2,"now":2,"number":2,"ok":2,"ondatareceiv":2,"ondatas":2,"onli":[2,3],"oper":2,"oscilloscop":2,"other":2,"pair":2,"particular":2,"period":2,"pin":0,"png":[],"pointer":2,"porttick_period_m":2,"posit":2,"possibl":2,"power":2,"progress":0,"provid":2,"purpos":2,"push":2,"pwm":2,"rc":2,"rc_send_data_task":2,"receiv":2,"receiver_mac":2,"record":[],"regist":2,"requir":2,"reserv":0,"resp":2,"respons":2,"restructuredtext":0,"result":2,"right":2,"rotat":2,"row":[],"run":2,"same":[],"schemat":0,"second":2,"secur":3,"see":0,"send":2,"senddata":2,"sensors_data_t":2,"sent":2,"side":2,"sidewai":2,"similarli":2,"sizeof":2,"softwar":0,"speed":[],"static":2,"statu":2,"store":2,"struct":2,"suffici":2,"summar":2,"summari":2,"syntax":0,"tabl":2,"tag":2,"task":2,"thi":2,"those":2,"through":0,"transmit":2,"true":2,"turn":2,"two":2,"uint8_t":2,"updat":2,"us":0,"valu":2,"variou":2,"void":2,"voltag":2,"vtaskdelai":2,"wa":2,"walk":0,"well":[],"while":2,"wire":[0,2],"work":0,"wroom":2,"x":[],"x_axi":2,"y":[],"y_axi":2,"your":0},"titles":["ByteRider documentation","INTRODUCTION","HOW DOES IT WORK?","WORK-IN-PROGRESS WALK THROUGH"],"titleterms":{"IN":3,"IT":2,"axi":2,"byterid":0,"chassi":3,"direct":2,"document":0,"doe":2,"finish":3,"fusion":2,"gpio":2,"har":3,"hardwar":2,"how":2,"introduct":1,"motor":3,"pin":2,"progress":3,"reserv":2,"schemat":2,"softwar":2,"speed":2,"through":3,"walk":3,"wire":3,"work":[2,3],"x":2,"y":2}}) Search.setIndex({"alltitles":{"ByteRider documentation":[[0,null]],"Chassis":[[3,"chassis"]],"Direction and Speed":[[2,"direction-and-speed"]],"Finished Work":[[3,"finished-work"]],"Fusion of Software with Hardware":[[2,"fusion-of-software-with-hardware"]],"HOW DOES IT WORK?":[[2,null]],"INTRODUCTION":[[1,null]],"Motor Wires Harness":[[3,"motor-wires-harness"]],"Reserved Pins & GPIOs":[[2,"reserved-pins-gpios"]],"Schematic":[[2,"schematic"]],"WORK-IN-PROGRESS WALK THROUGH":[[3,null]],"Wiring":[[3,"wiring"]],"x- and y- axis":[[2,"x-and-y-axis"]]},"docnames":["index","intro","overview","progress"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["index.rst","intro.rst","overview.rst","progress.rst"],"indexentries":{},"objects":{},"objnames":{},"objtypes":{},"terms":{"0":2,"04x":2,"0x":2,"1":2,"100":2,"15":2,"16":2,"2":2,"3":2,"4":2,"47":2,"48":2,"5":2,"50":[],"6":2,"7":2,"8":2,"91":2,"95":[],"A":2,"IN":0,"IT":0,"If":2,"In":2,"NOT":2,"The":2,"__gpio6__":[],"_static":[],"adapt":2,"adc1_ch0":2,"adc1_ch1":2,"add":0,"address":2,"ani":2,"ar":2,"arg":2,"assign":2,"axi":[],"back":2,"bacl":2,"base":2,"being":2,"below":[],"bitbyterid":2,"board":2,"breadboard":2,"brief":2,"buffer":2,"button":2,"c3":2,"call":2,"can":2,"car":2,"chang":2,"channel":2,"chassi":0,"clockwis":2,"code":2,"column":[],"complet":3,"consequ":2,"constraint":2,"content":0,"contin":2,"control":[2,3],"correspond":2,"counter":2,"crc":2,"cycl":2,"data":2,"dc":[2,3],"declar":2,"dedic":2,"defin":2,"deletep":2,"detail":0,"determin":2,"devboard":2,"develop":2,"developmemt":2,"diagon":2,"direct":[],"displai":2,"doe":0,"duti":2,"e":2,"each":2,"els":2,"error":2,"esp":2,"esp32":2,"esp_log":2,"esp_logi":2,"esp_logw":2,"esp_now_is_peer_exist":2,"esp_now_send":2,"event":2,"everi":2,"evok":2,"exist":[],"finish":0,"follow":2,"four":2,"front":2,"function":2,"fusion":0,"get":2,"gpio":0,"gpio0":2,"gpio1":2,"gpio4":2,"gpio5":2,"gpio6":2,"gpio7":2,"group":2,"har":0,"hardwar":0,"harn":3,"hexadecim":2,"hold":2,"how":0,"i":2,"idf_robot_schemat":[],"illustr":2,"imag":2,"insid":3,"instal":3,"int":2,"introduct":0,"joystick":2,"lastli":2,"ledc_channel_0":2,"ledc_channel_1":2,"ledc_channel_2":2,"ledc_channel_3":2,"left":2,"length":2,"mac":2,"mean":2,"measur":2,"memori":2,"messag":2,"microcontrol":2,"motor":[0,2],"motor1_rpm_pcm":[],"motor1_rpm_pwm":2,"motor2_rpm_pcm":[],"motor2_rpm_pwm":2,"motor3_rpm_pcm":[],"motor3_rpm_pwm":2,"motor4_rpm_pcm":[],"motor4_rpm_pwm":2,"motors_rpm":2,"move":2,"movement":2,"nav_bttn":2,"note":2,"now":2,"number":2,"ok":2,"ondatareceiv":2,"ondatas":2,"onli":[2,3],"oper":2,"oscilloscop":2,"other":2,"pair":2,"particular":2,"period":2,"pin":0,"png":[],"pointer":2,"porttick_period_m":2,"posit":2,"possibl":2,"power":2,"progress":0,"provid":2,"purpos":2,"push":2,"pwm":2,"rc":2,"rc_send_data_task":2,"receiv":2,"receiver_mac":2,"record":[],"regist":2,"requir":2,"reserv":0,"resp":2,"respons":2,"restructuredtext":0,"result":2,"right":2,"rotat":2,"row":[],"run":2,"same":[],"schemat":0,"second":2,"secur":3,"see":0,"send":2,"senddata":2,"sensors_data_t":2,"sent":2,"side":2,"sidewai":2,"similarli":2,"sizeof":2,"softwar":0,"speed":[],"static":2,"statu":2,"store":2,"struct":2,"suffici":2,"summar":2,"summari":2,"syntax":0,"tabl":2,"tag":2,"task":2,"thi":2,"those":2,"through":0,"transmit":2,"true":2,"turn":2,"two":2,"uint8_t":2,"updat":2,"us":0,"valu":2,"variou":2,"void":2,"voltag":2,"vtaskdelai":2,"wa":2,"walk":0,"well":[],"while":2,"wire":[0,2],"work":0,"wroom":2,"x":[],"x_axi":2,"y":[],"y_axi":2,"your":0},"titles":["ByteRider documentation","INTRODUCTION","HOW DOES IT WORK?","WORK-IN-PROGRESS WALK THROUGH"],"titleterms":{"IN":3,"IT":2,"axi":2,"byterid":0,"chassi":3,"direct":2,"document":0,"doe":2,"finish":3,"fusion":2,"gpio":2,"har":3,"hardwar":2,"how":2,"introduct":1,"motor":3,"pin":2,"progress":3,"reserv":2,"schemat":2,"softwar":2,"speed":2,"through":3,"walk":3,"wire":3,"work":[2,3],"x":2,"y":2}})