From cb1b7d1446e8e16c9b986620becf5f1091609577 Mon Sep 17 00:00:00 2001 From: Alexandre Bobkov Date: Sat, 5 Jul 2025 23:17:31 -0400 Subject: [PATCH] manual --- .../docs/build/doctrees/environment.pickle | Bin 27735 -> 27735 bytes .../docs/build/doctrees/overview.doctree | Bin 25534 -> 26411 bytes .../docs/build/html/_sources/overview.rst.txt | 9 ++++++--- .../tutorial/docs/build/html/overview.html | 8 +++++--- .../tutorial/docs/build/html/searchindex.js | 2 +- .../tutorial/docs/build/simplepdf/.buildinfo | 2 +- .../tutorial/docs/build/simplepdf/index.html | 13 ++++++++++--- 7 files changed, 23 insertions(+), 11 deletions(-) diff --git a/ESP-IDF_Robot/tutorial/docs/build/doctrees/environment.pickle b/ESP-IDF_Robot/tutorial/docs/build/doctrees/environment.pickle index 0217aad016425b676a89cbb8938f6abbcb7bbacf..ca4d566b96337918574b10f211d7327db852d73b 100644 GIT binary patch delta 652 zcmYk2PiPZC6vnejB+=ApQ$fX82_$LVNDUMeJc+1a1hJxMt#p}grpYYHPMDpvR+3Wb7D6@>cd;Klaj#e)YA9`)$FsI8aZ_uhQ(&3w%IhOxe3ES}Dc z?(`&)%(jT3O%YG| zJ+dw+sag$glScSBv(`J3l7hHilSxU1zJ^axF~#V#@^=V2Nds7;yPhUNT8V+nrchm8&#DP)ZR&K0tKi_u8LS=R7-HYan1J$KSu z&kPAqs=Mlva-MDu@A@y^mcO9=w!hn|a@!?MYDsRjh^(vIYS3B2-4(<$#7jg6v5E)~ zZxG!;Z}(&Q9I=MzKKuczg)m?2#8NnaKXI%5-aG+c4qt&;GYiA!c^EVMAYD(u3p0~S z$0Ct?I`+I1z$dc;{VV~Mk_pAqK{!xKg|ejL(I5)rLpk_(^$=9bff0m1%e5k&&YfxM z(;Ai|XZM8{u9=2*XGSlgyt_V)a_UBJRLkY@IqW`LuTUP5*_f8S^obT&sUJ^Z*m-9F xR_jF_BK5b=L75#r_Q%V2qqZODf9ltzgS|6=_?pznVf6#6?}%^7@F9C0{SByC;Yt7i delta 636 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 J;Fs$+`~&vZiJ$-g diff --git a/ESP-IDF_Robot/tutorial/docs/build/html/_sources/overview.rst.txt b/ESP-IDF_Robot/tutorial/docs/build/html/_sources/overview.rst.txt index 1b8cdc844..713878e50 100644 --- a/ESP-IDF_Robot/tutorial/docs/build/html/_sources/overview.rst.txt +++ b/ESP-IDF_Robot/tutorial/docs/build/html/_sources/overview.rst.txt @@ -27,9 +27,12 @@ Based on this constraint, the RC car can only move front, back, and turn/rotate .. admonition:: What is PWM? - PWM (Pulse Width Modulation) is a technique used to simulate analog voltage levels using digital signals. It works by rapidly switching a - digital pin between HIGH (on) and LOW (off) states at a fixed frequency. The duty cycle—the percentage of time the signal is HIGH in one - cycle—determines the effective voltage delivered to a device. + **PWM** (Pulse Width Modulation) is a technique used to simulate analog voltage levels using ddiscrete igital signals. It works by rapidly switching a + digital pin between HIGH (on) and LOW (off) states at a fixed frequency (often, at base frequency of 5 kHz). The duty cycle—the percentage of time the signal is HIGH in one + cycle determines the effective voltage delivered to a device. + + A higher duty cycle increases the motor speed, and a lower duty cycle decreases the motor speed. This allows for fine-grained speed control + without needing analog voltage regulators. A pair of PWM channels are required for defining rotation speed and direction of the DC motors on each side. In particular, **GPIO6** and **GPIO5** provide PWM to the left- and right- side DC motors to rotate in a **clockwise** direction. diff --git a/ESP-IDF_Robot/tutorial/docs/build/html/overview.html b/ESP-IDF_Robot/tutorial/docs/build/html/overview.html index 57f6128df..dd4abab51 100644 --- a/ESP-IDF_Robot/tutorial/docs/build/html/overview.html +++ b/ESP-IDF_Robot/tutorial/docs/build/html/overview.html @@ -52,9 +52,11 @@ Consequently, only four PWM channels are sufficient for controlling the directio 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).

What is PWM?

-

PWM (Pulse Width Modulation) is a technique used to simulate analog voltage levels using digital signals. It works by rapidly switching a -digital pin between HIGH (on) and LOW (off) states at a fixed frequency. The duty cycle—the percentage of time the signal is HIGH in one -cycle—determines the effective voltage delivered to a device.

+

PWM (Pulse Width Modulation) is a technique used to simulate analog voltage levels using ddiscrete igital signals. It works by rapidly switching a +digital pin between HIGH (on) and LOW (off) states at a fixed frequency (often, at base frequency of 5 kHz). The duty cycle—the percentage of time the signal is HIGH in one +cycle determines the effective voltage delivered to a device.

+

A higher duty cycle increases the motor speed, and a lower duty cycle decreases the motor speed. This allows for fine-grained speed control +without needing analog voltage regulators.

A pair of PWM channels are required for defining rotation speed and direction of the DC motors on each side. In particular, GPIO6 and GPIO5 provide PWM to the left- and right- side DC motors to rotate in a clockwise direction. diff --git a/ESP-IDF_Robot/tutorial/docs/build/html/searchindex.js b/ESP-IDF_Robot/tutorial/docs/build/html/searchindex.js index b947495ee..a01821bc4 100644 --- a/ESP-IDF_Robot/tutorial/docs/build/html/searchindex.js +++ b/ESP-IDF_Robot/tutorial/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles":{"ABSTRACT":[[2,"abstract"]],"ByteRider documentation":[[1,null]],"Chassis":[[4,"chassis"]],"Configuration Variables":[[5,"configuration-variables"],[7,"configuration-variables"]],"DATA STRUCT":[[0,null]],"Data Payload":[[0,"data-payload"]],"Direction and Speed":[[3,"direction-and-speed"]],"Finished Work":[[4,"finished-work"]],"Fusion of Software with Hardware":[[3,"fusion-of-software-with-hardware"]],"GitHub":[[6,"github"]],"HOW DOES IT WORK?":[[3,null]],"Main Function":[[5,"main-function"],[7,"main-function"]],"Motor Wires Harness":[[4,"motor-wires-harness"]],"OVERVIEW":[[2,null]],"RECEIVER":[[5,null]],"REFERENCES":[[6,null]],"Receiving & De-Ecapsulating Data":[[5,"receiving-de-ecapsulating-data"]],"Reserved Pins & GPIOs":[[3,"reserved-pins-gpios"]],"Schematic":[[3,"schematic"]],"Sending & Ecapsulating Data":[[7,"sending-ecapsulating-data"]],"TRANSMITTER":[[7,null]],"WORK-IN-PROGRESS WALK THROUGH":[[4,null]],"What is PWM?":[[3,null]],"Why use __attribute((packed))?":[[0,"why-use-attribute-packed"]],"Wiring":[[4,"wiring"]],"x- and y- axis":[[3,"x-and-y-axis"]]},"docnames":["data","index","intro","overview","progress","receiver","references","transmitter"],"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":["data.rst","index.rst","intro.rst","overview.rst","progress.rst","receiver.rst","references.rst","transmitter.rst"],"indexentries":{},"objects":{},"objnames":{},"objtypes":{},"terms":{"":[0,2],"0":[3,5],"02x":5,"04x":3,"0x":3,"0x14":5,"0x17":7,"0x44":7,"0x54":5,"0x63":7,"0x6e":5,"0x9c":5,"0x9e":[5,7],"0xb0":7,"0xb5":5,"0xe4":7,"1":[3,5],"100":3,"15":3,"16":3,"2":[3,5],"250":0,"3":[3,5],"4":[0,3,5,7],"47":3,"48":3,"5":[3,5],"50":[],"6":3,"7":3,"8":3,"90":3,"91":3,"95":[],"A":3,"As":0,"At":2,"IN":1,"IT":1,"If":3,"In":[0,3],"It":[0,3],"NOT":3,"ON":[0,5,7],"On":2,"The":[0,2,3],"These":2,"To":2,"__attribut":[],"__attribute__":[0,5,7],"__gpio6__":[],"_gitbub":[],"_static":[],"abstract":1,"across":0,"ad":0,"adapt":[2,3,6],"adc1_ch0":3,"adc1_ch1":3,"add":0,"addit":[0,2],"address":[3,7],"adjust":2,"alexandrebobkov":[3,6],"align":0,"all":0,"alloc":3,"allow":[0,2],"an":[0,2],"analog":[0,3],"ani":[0,3],"app_main":[5,7],"appear":2,"ar":[2,3],"architectur":[],"arg":3,"assign":3,"attribut":0,"avail":[2,3],"axi":[],"back":3,"bacl":3,"bandwidth":0,"base":[2,3],"baselin":2,"batteri":0,"behavior":2,"being":3,"below":[],"between":[0,2,3],"bitbyterid":3,"blob":6,"board":3,"bool":[0,5,7],"both":2,"breadboard":3,"brief":3,"buf":[3,5],"buffer":[3,7],"button":[0,3,5,7],"byte":0,"c3":3,"c3_breadboard":[3,6],"call":[3,7],"can":[2,3],"capabl":2,"captur":0,"car":[2,3],"chang":[2,3],"channel":[3,5],"chassi":1,"chip_sensor_init":7,"clockwis":3,"code":[2,3,6],"column":[],"com":[3,6],"command":0,"commun":[0,2],"compact":0,"compat":0,"compil":0,"complet":[4,6],"configur":[0,1],"connect":2,"connectionless":2,"consequ":3,"consist":2,"const":5,"constraint":3,"contain":0,"content":[],"contin":3,"continu":2,"control":[0,2,3,4],"convert":2,"core":2,"correspond":3,"counter":3,"crc":3,"creativ":2,"current":5,"custom":2,"customiz":2,"cycl":3,"d":5,"data":[1,2,3],"data_len":[3,5],"dc":[0,2,3,4,5,7],"de":[1,2],"declar":3,"decod":0,"dedic":3,"defin":[2,3],"deletep":3,"deliv":3,"demonstr":2,"depend":2,"design":[0,2,6],"detail":[],"determin":[0,3],"devboard":3,"develop":[2,3],"developmemt":3,"devic":[0,2,3],"diagon":3,"differenti":0,"digit":3,"direct":[0,2],"displai":3,"doe":1,"drive":0,"duti":3,"e":[0,3],"each":3,"easili":2,"ecapsul":1,"effect":3,"effici":2,"elegantli":2,"els":3,"embed":0,"emploi":2,"enabl":[0,2],"encapsul":[0,2],"encod":0,"encrypt":5,"end":0,"endless":2,"ensur":[0,2],"error":3,"esp":[0,2,3,6,7],"esp32":[2,3,6],"esp_err":[5,7],"esp_err_nvs_new_version_found":[5,7],"esp_err_nvs_no_free_pag":[5,7],"esp_err_t":[5,7],"esp_error_check":[5,7],"esp_if_wifi_sta":5,"esp_log":3,"esp_logi":[3,5],"esp_logw":3,"esp_now_add_p":5,"esp_now_eth_alen":[5,7],"esp_now_init":5,"esp_now_is_peer_exist":3,"esp_now_peer_info_t":5,"esp_now_register_recv_cb":5,"esp_now_send":[3,7],"esp_now_send_status_t":3,"espressif":2,"etc":0,"even":[0,2],"event":3,"everi":3,"evok":3,"evolv":2,"exact":0,"exchang":2,"exist":[],"expand":2,"expect":0,"extend":2,"facilit":2,"fals":5,"fast":2,"featur":2,"fi":2,"field":0,"file":6,"final":0,"fine":0,"finish":1,"fix":[0,3],"focus":2,"follow":3,"form":2,"foundat":2,"four":[0,3],"free":2,"freedom":2,"freerto":[5,7],"frequenc":3,"from":[0,5],"front":3,"function":[1,2,3],"fusion":1,"g":0,"get":3,"github":[1,3],"github_":[],"give":2,"gpio":1,"gpio0":3,"gpio1":3,"gpio4":3,"gpio5":3,"gpio6":3,"gpio7":3,"grain":0,"group":3,"guid":2,"h":[5,7],"handl":2,"har":1,"hardwar":[0,1,2],"harn":4,"heart":2,"hexadecim":3,"high":3,"hold":[3,7],"hood":2,"how":[1,2],"http":[3,6],"i":[0,2],"idea":2,"ideal":[0,2],"idf_robot":6,"idf_robot_schemat":[],"ifidx":5,"illustr":3,"imag":3,"implement":2,"includ":[5,7],"incom":2,"indic":0,"individu":0,"initi":[5,7],"input":[0,2],"insid":4,"instal":4,"int":[0,3,5,7],"integr":2,"intend":0,"intern":7,"interpret":[0,2],"interv":0,"introduct":[],"itself":2,"joystick":[0,2,3,5,7],"joystick_adc_init":7,"kicad":[3,6],"lastli":3,"latenc":[0,2],"layout":0,"led":[0,5,7],"ledc_channel_0":3,"ledc_channel_1":3,"ledc_channel_2":3,"ledc_channel_3":3,"left":3,"len":5,"length":[3,7],"level":3,"li":2,"light":2,"lightweight":2,"like":[0,2],"listen":2,"loop":2,"low":[0,2,3],"mac":[3,7],"mac_addr":[3,5],"mai":0,"main":[1,6],"maintain":2,"make":0,"maneuv":0,"master":0,"maxim":0,"md":6,"mean":3,"measur":3,"memcpi":5,"memori":[0,3,7],"messag":3,"microcontrol":[0,2,3],"minim":0,"modul":[2,3],"modular":2,"motor":[0,1,2,3,5,7],"motor1_rpm_pcm":[],"motor1_rpm_pwm":[0,3,5,7],"motor2_rpm_pcm":[],"motor2_rpm_pwm":[0,3,5,7],"motor3_rpm_pcm":[],"motor3_rpm_pwm":[0,3,5,7],"motor4_rpm_pcm":[],"motor4_rpm_pwm":[0,3,5,7],"motors_rpm":3,"move":[2,3],"movement":[2,3],"multi":0,"nav_bttn":[0,3,5,7],"need":2,"network":2,"node":6,"nor":2,"note":3,"now":[0,2,3,7],"number":3,"nv":[5,7],"nvs_flash":[5,7],"nvs_flash_eras":[5,7],"nvs_flash_init":[5,7],"off":[0,3,5,7],"ok":3,"omni":0,"onboard":0,"ondatareceiv":[3,5],"ondatas":3,"one":3,"onli":[3,4],"oper":[0,2,3],"oscilloscop":3,"other":3,"over":0,"overview":1,"pack":[5,7],"packet":[0,2,3],"pad":0,"pair":[0,2,3],"paramet":2,"particular":3,"payload":1,"pcb":[3,6],"peer_addr":5,"percentag":3,"period":3,"physic":2,"pin":1,"platform":0,"png":[],"pointer":[3,7],"porttick_period_m":3,"posit":[0,3,5,7],"possibl":[2,3],"power":3,"precis":0,"predefin":2,"predict":0,"progress":1,"project":2,"protocol":[0,2],"provid":[0,2,3],"puls":[2,3],"purpos":3,"push":[0,3,5,7],"pwm":[0,2,5,7],"rapidli":3,"rc":[2,3],"rc_send_data_task":3,"read":2,"readm":6,"real":2,"receiv":[0,1,2,3,7],"receiver_mac":[3,7],"record":[],"refer":1,"regist":3,"regular":0,"relev":0,"remain":2,"remot":[0,2],"remov":0,"repres":0,"requir":3,"reserv":1,"resp":3,"respond":2,"respons":[0,3],"restructuredtext":[],"result":[2,3,7],"ret":[5,7],"right":3,"robot":0,"rotat":[2,3],"router":2,"row":[],"run":3,"same":[],"schemat":[1,6],"seamless":2,"second":3,"secur":4,"see":[],"send":[0,1,2,3],"senddata":[3,7],"sensor":[0,2,7],"sensors_data_t":[0,3,5,7],"sent":[0,3],"serial":0,"serv":0,"setup":2,"share":2,"side":[2,3],"sidewai":3,"signal":[0,2,3],"similarli":3,"simul":3,"size":0,"sizeof":[3,5,7],"softwar":1,"sourc":[2,6],"specif":2,"speed":[0,2],"spotlight":2,"state":[0,3,5,7],"static":3,"statu":[0,3],"store":3,"stream":0,"string":5,"struct":[1,3,5,7],"structur":2,"suffici":3,"summar":3,"summari":3,"support":0,"switch":3,"synchron":2,"syntax":[],"system":[0,2],"system_led_init":[5,7],"tabl":3,"tag":[3,5],"task":3,"techniqu":3,"telemetri":[0,2],"tell":0,"temperatur":7,"thi":[0,2,3],"those":3,"though":2,"through":1,"time":[2,3],"toggl":0,"translat":2,"transmiss":[0,2],"transmission_init":7,"transmit":[0,2,3],"transmitt":[0,1,2],"transmitter_mac":5,"transmitterinfo":5,"true":3,"turn":3,"tutori":2,"two":3,"typedef":[0,5,7],"uart":0,"uint8_t":[0,3,5,7],"under":2,"understand":2,"up":0,"updat":3,"us":[2,3],"user":[0,2],"valu":[2,3],"vari":2,"variabl":1,"variou":3,"vehicl":[0,2],"via":2,"void":[3,5,7],"voltag":3,"vtaskdelai":3,"wa":3,"walk":1,"walkthrough":[],"warn":0,"well":[],"what":[],"wheel":0,"when":[0,3],"where":2,"which":2,"while":[2,3],"why":[],"wi":2,"width":[2,3],"wifi":5,"wifi_init":[5,7],"wildli":2,"wire":[1,3],"wireless":2,"wirelessli":2,"without":2,"work":1,"wroom":3,"x":[0,5,7],"x_axi":[0,3,5,7],"y":[0,5,7],"y_axi":[0,3,5,7],"you":[0,2],"your":2},"titles":["DATA STRUCT","ByteRider documentation","OVERVIEW","HOW DOES IT WORK?","WORK-IN-PROGRESS WALK THROUGH","RECEIVER","REFERENCES","TRANSMITTER"],"titleterms":{"IN":4,"IT":3,"__attribut":0,"abstract":2,"axi":3,"byterid":1,"chassi":4,"configur":[5,7],"data":[0,5,7],"de":5,"direct":3,"document":1,"doe":3,"ecapsul":[5,7],"encapsul":[],"finish":4,"function":[5,7],"fusion":3,"github":6,"gpio":3,"har":4,"hardwar":3,"how":3,"i":3,"introduct":[],"main":[5,7],"motor":4,"overview":2,"pack":0,"payload":0,"pin":3,"progress":4,"pwm":3,"receiv":5,"refer":6,"reserv":3,"schemat":3,"send":7,"softwar":3,"speed":3,"struct":0,"through":4,"transmitt":7,"us":0,"variabl":[5,7],"walk":4,"walkthrough":[],"what":3,"why":0,"wire":4,"work":[3,4],"x":3,"y":3}}) \ No newline at end of file +Search.setIndex({"alltitles":{"ABSTRACT":[[2,"abstract"]],"ByteRider documentation":[[1,null]],"Chassis":[[4,"chassis"]],"Configuration Variables":[[5,"configuration-variables"],[7,"configuration-variables"]],"DATA STRUCT":[[0,null]],"Data Payload":[[0,"data-payload"]],"Direction and Speed":[[3,"direction-and-speed"]],"Finished Work":[[4,"finished-work"]],"Fusion of Software with Hardware":[[3,"fusion-of-software-with-hardware"]],"GitHub":[[6,"github"]],"HOW DOES IT WORK?":[[3,null]],"Main Function":[[5,"main-function"],[7,"main-function"]],"Motor Wires Harness":[[4,"motor-wires-harness"]],"OVERVIEW":[[2,null]],"RECEIVER":[[5,null]],"REFERENCES":[[6,null]],"Receiving & De-Ecapsulating Data":[[5,"receiving-de-ecapsulating-data"]],"Reserved Pins & GPIOs":[[3,"reserved-pins-gpios"]],"Schematic":[[3,"schematic"]],"Sending & Ecapsulating Data":[[7,"sending-ecapsulating-data"]],"TRANSMITTER":[[7,null]],"WORK-IN-PROGRESS WALK THROUGH":[[4,null]],"What is PWM?":[[3,null]],"Why use __attribute((packed))?":[[0,"why-use-attribute-packed"]],"Wiring":[[4,"wiring"]],"x- and y- axis":[[3,"x-and-y-axis"]]},"docnames":["data","index","intro","overview","progress","receiver","references","transmitter"],"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":["data.rst","index.rst","intro.rst","overview.rst","progress.rst","receiver.rst","references.rst","transmitter.rst"],"indexentries":{},"objects":{},"objnames":{},"objtypes":{},"terms":{"":[0,2],"0":[3,5],"02x":5,"04x":3,"0x":3,"0x14":5,"0x17":7,"0x44":7,"0x54":5,"0x63":7,"0x6e":5,"0x9c":5,"0x9e":[5,7],"0xb0":7,"0xb5":5,"0xe4":7,"1":[3,5],"100":3,"15":3,"16":3,"2":[3,5],"250":0,"3":[3,5],"4":[0,3,5,7],"47":3,"48":3,"5":[3,5],"50":[],"6":3,"7":3,"8":3,"90":3,"91":3,"95":[],"A":3,"As":0,"At":2,"IN":1,"IT":1,"If":3,"In":[0,3],"It":[0,3],"NOT":3,"ON":[0,5,7],"On":2,"The":[0,2,3],"These":2,"To":2,"__attribut":[],"__attribute__":[0,5,7],"__gpio6__":[],"_gitbub":[],"_static":[],"abstract":1,"across":0,"ad":0,"adapt":[2,3,6],"adc1_ch0":3,"adc1_ch1":3,"add":0,"addit":[0,2],"address":[3,7],"adjust":2,"alexandrebobkov":[3,6],"align":0,"all":0,"alloc":3,"allow":[0,2,3],"an":[0,2],"analog":[0,3],"ani":[0,3],"app_main":[5,7],"appear":2,"ar":[2,3],"architectur":[],"arg":3,"assign":3,"attribut":0,"avail":[2,3],"axi":[],"back":3,"bacl":3,"bandwidth":0,"base":[2,3],"baselin":2,"batteri":0,"behavior":2,"being":3,"below":[],"between":[0,2,3],"bitbyterid":3,"blob":6,"board":3,"bool":[0,5,7],"both":2,"breadboard":3,"brief":3,"buf":[3,5],"buffer":[3,7],"button":[0,3,5,7],"byte":0,"c3":3,"c3_breadboard":[3,6],"call":[3,7],"can":[2,3],"capabl":2,"captur":0,"car":[2,3],"chang":[2,3],"channel":[3,5],"chassi":1,"chip_sensor_init":7,"clockwis":3,"code":[2,3,6],"column":[],"com":[3,6],"command":0,"commun":[0,2],"compact":0,"compat":0,"compil":0,"complet":[4,6],"configur":[0,1],"connect":2,"connectionless":2,"consequ":3,"consist":2,"const":5,"constraint":3,"contain":0,"content":[],"contin":3,"continu":2,"control":[0,2,3,4],"convert":2,"core":2,"correspond":3,"counter":3,"crc":3,"creativ":2,"current":5,"custom":2,"customiz":2,"cycl":3,"d":5,"data":[1,2,3],"data_len":[3,5],"dc":[0,2,3,4,5,7],"ddiscret":3,"de":[1,2],"declar":3,"decod":0,"decreas":3,"dedic":3,"defin":[2,3],"deletep":3,"deliv":3,"demonstr":2,"depend":2,"design":[0,2,6],"detail":[],"determin":[0,3],"devboard":3,"develop":[2,3],"developmemt":3,"devic":[0,2,3],"diagon":3,"differenti":0,"digit":3,"direct":[0,2],"displai":3,"doe":1,"drive":0,"duti":3,"e":[0,3],"each":3,"easili":2,"ecapsul":1,"effect":3,"effici":2,"elegantli":2,"els":3,"embed":0,"emploi":2,"enabl":[0,2],"encapsul":[0,2],"encod":0,"encrypt":5,"end":0,"endless":2,"ensur":[0,2],"error":3,"esp":[0,2,3,6,7],"esp32":[2,3,6],"esp_err":[5,7],"esp_err_nvs_new_version_found":[5,7],"esp_err_nvs_no_free_pag":[5,7],"esp_err_t":[5,7],"esp_error_check":[5,7],"esp_if_wifi_sta":5,"esp_log":3,"esp_logi":[3,5],"esp_logw":3,"esp_now_add_p":5,"esp_now_eth_alen":[5,7],"esp_now_init":5,"esp_now_is_peer_exist":3,"esp_now_peer_info_t":5,"esp_now_register_recv_cb":5,"esp_now_send":[3,7],"esp_now_send_status_t":3,"espressif":2,"etc":0,"even":[0,2],"event":3,"everi":3,"evok":3,"evolv":2,"exact":0,"exchang":2,"exist":[],"expand":2,"expect":0,"extend":2,"facilit":2,"fals":5,"fast":2,"featur":2,"fi":2,"field":0,"file":6,"final":0,"fine":[0,3],"finish":1,"fix":[0,3],"focus":2,"follow":3,"form":2,"foundat":2,"four":[0,3],"free":2,"freedom":2,"freerto":[5,7],"frequenc":3,"from":[0,5],"front":3,"function":[1,2,3],"fusion":1,"g":0,"get":3,"github":[1,3],"github_":[],"give":2,"gpio":1,"gpio0":3,"gpio1":3,"gpio4":3,"gpio5":3,"gpio6":3,"gpio7":3,"grain":[0,3],"group":3,"guid":2,"h":[5,7],"handl":2,"har":1,"hardwar":[0,1,2],"harn":4,"heart":2,"hexadecim":3,"high":3,"higher":3,"hold":[3,7],"hood":2,"how":[1,2],"http":[3,6],"i":[0,2],"idea":2,"ideal":[0,2],"idf_robot":6,"idf_robot_schemat":[],"ifidx":5,"igit":3,"illustr":3,"imag":3,"implement":2,"includ":[5,7],"incom":2,"increas":3,"indic":0,"individu":0,"initi":[5,7],"input":[0,2],"insid":4,"instal":4,"int":[0,3,5,7],"integr":2,"intend":0,"intern":7,"interpret":[0,2],"interv":0,"introduct":[],"itself":2,"joystick":[0,2,3,5,7],"joystick_adc_init":7,"khz":3,"kicad":[3,6],"lastli":3,"latenc":[0,2],"layout":0,"led":[0,5,7],"ledc_channel_0":3,"ledc_channel_1":3,"ledc_channel_2":3,"ledc_channel_3":3,"left":3,"len":5,"length":[3,7],"level":3,"li":2,"light":2,"lightweight":2,"like":[0,2],"listen":2,"loop":2,"low":[0,2,3],"lower":3,"mac":[3,7],"mac_addr":[3,5],"mai":0,"main":[1,6],"maintain":2,"make":0,"maneuv":0,"master":0,"maxim":0,"md":6,"mean":3,"measur":3,"memcpi":5,"memori":[0,3,7],"messag":3,"microcontrol":[0,2,3],"minim":0,"modul":[2,3],"modular":2,"motor":[0,1,2,3,5,7],"motor1_rpm_pcm":[],"motor1_rpm_pwm":[0,3,5,7],"motor2_rpm_pcm":[],"motor2_rpm_pwm":[0,3,5,7],"motor3_rpm_pcm":[],"motor3_rpm_pwm":[0,3,5,7],"motor4_rpm_pcm":[],"motor4_rpm_pwm":[0,3,5,7],"motors_rpm":3,"move":[2,3],"movement":[2,3],"multi":0,"nav_bttn":[0,3,5,7],"need":[2,3],"network":2,"node":6,"nor":2,"note":3,"now":[0,2,3,7],"number":3,"nv":[5,7],"nvs_flash":[5,7],"nvs_flash_eras":[5,7],"nvs_flash_init":[5,7],"off":[0,3,5,7],"often":3,"ok":3,"omni":0,"onboard":0,"ondatareceiv":[3,5],"ondatas":3,"one":3,"onli":[3,4],"oper":[0,2,3],"oscilloscop":3,"other":3,"over":0,"overview":1,"pack":[5,7],"packet":[0,2,3],"pad":0,"pair":[0,2,3],"paramet":2,"particular":3,"payload":1,"pcb":[3,6],"peer_addr":5,"percentag":3,"period":3,"physic":2,"pin":1,"platform":0,"png":[],"pointer":[3,7],"porttick_period_m":3,"posit":[0,3,5,7],"possibl":[2,3],"power":3,"precis":0,"predefin":2,"predict":0,"progress":1,"project":2,"protocol":[0,2],"provid":[0,2,3],"puls":[2,3],"purpos":3,"push":[0,3,5,7],"pwm":[0,2,5,7],"rapidli":3,"rc":[2,3],"rc_send_data_task":3,"read":2,"readm":6,"real":2,"receiv":[0,1,2,3,7],"receiver_mac":[3,7],"record":[],"refer":1,"regist":3,"regul":3,"regular":0,"relev":0,"remain":2,"remot":[0,2],"remov":0,"repres":0,"requir":3,"reserv":1,"resp":3,"respond":2,"respons":[0,3],"restructuredtext":[],"result":[2,3,7],"ret":[5,7],"right":3,"robot":0,"rotat":[2,3],"router":2,"row":[],"run":3,"same":[],"schemat":[1,6],"seamless":2,"second":3,"secur":4,"see":[],"send":[0,1,2,3],"senddata":[3,7],"sensor":[0,2,7],"sensors_data_t":[0,3,5,7],"sent":[0,3],"serial":0,"serv":0,"setup":2,"share":2,"side":[2,3],"sidewai":3,"signal":[0,2,3],"similarli":3,"simul":3,"size":0,"sizeof":[3,5,7],"softwar":1,"sourc":[2,6],"specif":2,"speed":[0,2],"spotlight":2,"state":[0,3,5,7],"static":3,"statu":[0,3],"store":3,"stream":0,"string":5,"struct":[1,3,5,7],"structur":2,"suffici":3,"summar":3,"summari":3,"support":0,"switch":3,"synchron":2,"syntax":[],"system":[0,2],"system_led_init":[5,7],"tabl":3,"tag":[3,5],"task":3,"techniqu":3,"telemetri":[0,2],"tell":0,"temperatur":7,"thi":[0,2,3],"those":3,"though":2,"through":1,"time":[2,3],"toggl":0,"translat":2,"transmiss":[0,2],"transmission_init":7,"transmit":[0,2,3],"transmitt":[0,1,2],"transmitter_mac":5,"transmitterinfo":5,"true":3,"turn":3,"tutori":2,"two":3,"typedef":[0,5,7],"uart":0,"uint8_t":[0,3,5,7],"under":2,"understand":2,"up":0,"updat":3,"us":[2,3],"user":[0,2],"valu":[2,3],"vari":2,"variabl":1,"variou":3,"vehicl":[0,2],"via":2,"void":[3,5,7],"voltag":3,"vtaskdelai":3,"wa":3,"walk":1,"walkthrough":[],"warn":0,"well":[],"what":[],"wheel":0,"when":[0,3],"where":2,"which":2,"while":[2,3],"why":[],"wi":2,"width":[2,3],"wifi":5,"wifi_init":[5,7],"wildli":2,"wire":[1,3],"wireless":2,"wirelessli":2,"without":[2,3],"work":1,"wroom":3,"x":[0,5,7],"x_axi":[0,3,5,7],"y":[0,5,7],"y_axi":[0,3,5,7],"you":[0,2],"your":2},"titles":["DATA STRUCT","ByteRider documentation","OVERVIEW","HOW DOES IT WORK?","WORK-IN-PROGRESS WALK THROUGH","RECEIVER","REFERENCES","TRANSMITTER"],"titleterms":{"IN":4,"IT":3,"__attribut":0,"abstract":2,"axi":3,"byterid":1,"chassi":4,"configur":[5,7],"data":[0,5,7],"de":5,"direct":3,"document":1,"doe":3,"ecapsul":[5,7],"encapsul":[],"finish":4,"function":[5,7],"fusion":3,"github":6,"gpio":3,"har":4,"hardwar":3,"how":3,"i":3,"introduct":[],"main":[5,7],"motor":4,"overview":2,"pack":0,"payload":0,"pin":3,"progress":4,"pwm":3,"receiv":5,"refer":6,"reserv":3,"schemat":3,"send":7,"softwar":3,"speed":3,"struct":0,"through":4,"transmitt":7,"us":0,"variabl":[5,7],"walk":4,"walkthrough":[],"what":3,"why":0,"wire":4,"work":[3,4],"x":3,"y":3}}) \ No newline at end of file diff --git a/ESP-IDF_Robot/tutorial/docs/build/simplepdf/.buildinfo b/ESP-IDF_Robot/tutorial/docs/build/simplepdf/.buildinfo index 0ce5c7a3a..d57bb3aa4 100644 --- a/ESP-IDF_Robot/tutorial/docs/build/simplepdf/.buildinfo +++ b/ESP-IDF_Robot/tutorial/docs/build/simplepdf/.buildinfo @@ -1,4 +1,4 @@ # 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. -config: bef41d84121e5e50ab7da6d5c687e1c6 +config: 4cc9ee0f9f77e14cf8c7713a4bf8af68 tags: 62a1e7829a13fc7881b6498c52484ec0 diff --git a/ESP-IDF_Robot/tutorial/docs/build/simplepdf/index.html b/ESP-IDF_Robot/tutorial/docs/build/simplepdf/index.html index 3c636cabd..6821d2e87 100644 --- a/ESP-IDF_Robot/tutorial/docs/build/simplepdf/index.html +++ b/ESP-IDF_Robot/tutorial/docs/build/simplepdf/index.html @@ -330,9 +330,16 @@ Based on this constraint, the RC car can only move front, back, and turn/rotate What is PWM?

- PWM (Pulse Width Modulation) is a technique used to simulate analog voltage levels using digital signals. It works by rapidly switching a -digital pin between HIGH (on) and LOW (off) states at a fixed frequency. The duty cycle—the percentage of time the signal is HIGH in one -cycle—determines the effective voltage delivered to a device. + + PWM + + (Pulse Width Modulation) is a technique used to simulate analog voltage levels using ddiscrete igital signals. It works by rapidly switching a +digital pin between HIGH (on) and LOW (off) states at a fixed frequency (often, at base frequency of 5 kHz). The duty cycle—the percentage of time the signal is HIGH in one +cycle determines the effective voltage delivered to a device. +

+

+ A higher duty cycle increases the motor speed, and a lower duty cycle decreases the motor speed. This allows for fine-grained speed control +without needing analog voltage regulators.