From 72a190aa16c835dff1b90ec6ad8d6a5a711e41d0 Mon Sep 17 00:00:00 2001 From: Alexandre Bobkov Date: Sat, 5 Jul 2025 22:40:32 -0400 Subject: [PATCH] manual --- .../docs/build/doctrees/environment.pickle | Bin 27596 -> 27789 bytes .../docs/build/doctrees/intro.doctree | Bin 6100 -> 8765 bytes .../docs/build/html/_sources/intro.rst.txt | 16 +++++++++++++++- .../tutorial/docs/build/html/intro.html | 10 ++++++++++ .../tutorial/docs/build/html/searchindex.js | 2 +- .../tutorial/docs/build/simplepdf/.buildinfo | 2 +- .../tutorial/docs/build/simplepdf/index.html | 18 ++++++++++++++++++ 7 files changed, 45 insertions(+), 3 deletions(-) diff --git a/ESP-IDF_Robot/tutorial/docs/build/doctrees/environment.pickle b/ESP-IDF_Robot/tutorial/docs/build/doctrees/environment.pickle index 318c55b33f01056f7cdf51dbb668e63c857fa941..1dd3c8e892a148fcaa30459237320a02b5572320 100644 GIT binary patch literal 27789 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 LMg@jLTpavA^4OU; literal 27596 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 diff --git a/ESP-IDF_Robot/tutorial/docs/build/doctrees/intro.doctree b/ESP-IDF_Robot/tutorial/docs/build/doctrees/intro.doctree index f2c3cd96b8a514ee98c60b3c09ac8497b48f592d..2720dd053f23236cd8e1d21bdb0ef24c66980908 100644 GIT binary patch delta 2517 zcmd6p-%C_M6vs2Oatnp95VJb=q_Dez^we9WFM&TGMIj1i?>*~`-aB)dnY-Hta_hkd z!M9z(7r}oae2o5sda6I5za%;{ch@yFL{aELSebk8%=wO%Y6jfvAdrMNz{o z3JqFWW`&Y&4MS5b)VT;a(AM-?=(h+VHA1eyd>R>qB@tQjJ@Q8pdJ_7$=cx7?^%NUz(j;DiW%Zs+U}WGH4WCPbFbYXhdin0CAj3V$M@Wj9V2D zsUg-dQVD5NX~480DvWt5sztC0sw@zZAW9JGLZknT9|L?Ja3)ujzaMHI$;AV&*t}sJ;sAha^I0J`K%m_pJa}(B(0oO{353V&bq_MH|h-2N)Bpw;Q z0-Y`A8Vs`dczFkCo+w#%8Je9zvVK2X|DR@E3WZ~jkIwQ3vuTC#hwH88w}G*2_#`a1 ze#{;72{0nWBCHagRs?HgI7v#j<6X!KnX1%~@o8kCN5MNxKA6OWI&h;Ji&6&@K~IKP z%lyBdCgM#VcHhu>nsRnkAc8}z3P~s(v1~_O*UUnw3Dy}NM?1ZI%-jAdE^E8sSYU zQ6El`=*$Xr5!-Nx-G0=>I)jP4rcli$APPh7{yE8QsH2#9Nx5;-l SQx5L3w##qv?fvZDV$UB?shJ!A delta 79 zcmdn%az&rDfpzLh@r|s^{F6EP^B5C1Kal*##5i^HeVGT$ni(0X83`G&r9GT^iMgpI il?AEAQ);JZWMp(^By^T$D1g|h8QdAMn_nn|G6Dd(mma79 diff --git a/ESP-IDF_Robot/tutorial/docs/build/html/_sources/intro.rst.txt b/ESP-IDF_Robot/tutorial/docs/build/html/_sources/intro.rst.txt index 37113c3c6..cbdef4fbf 100644 --- a/ESP-IDF_Robot/tutorial/docs/build/html/_sources/intro.rst.txt +++ b/ESP-IDF_Robot/tutorial/docs/build/html/_sources/intro.rst.txt @@ -15,4 +15,18 @@ implementation focuses on movement, additional features like lights, sensors, or modular design gives users the freedom to customize both the appearance and behavior of their RC car, resulting in endless creative possibilities. ABSTRACT --------- \ No newline at end of file +-------- + +At the core of this project lies a shared data structure that encapsulates the control parameters for the DC motors, specifically their rotation speeds, +which are modulated using Pulse Width Modulation (PWM). This structure ensures consistent interpretation of control signals between the transmitter +and receiver. + +The system employs ESP-NOW, a low-latency, connectionless communication protocol developed by Espressif, to facilitate wireless data exchange between +the transmitter and receiver modules. Both devices are based on ESP32 microcontrollers and maintain a synchronized understanding of the data structure +to ensure seamless communication. + +On the transmitter side, joystick input is continuously read and translated into control values. These values are then encapsulated into the +predefined data structure and transmitted via ESP-NOW to the receiver. + +The receiver module listens for incoming ESP-NOW packets, de-encapsulates the joystick data, and converts the received values into PWM signals. +These signals are then used to control the speed and direction of the DC motors, enabling real-time remote operation of the vehicle. \ No newline at end of file diff --git a/ESP-IDF_Robot/tutorial/docs/build/html/intro.html b/ESP-IDF_Robot/tutorial/docs/build/html/intro.html index 2d657a5e7..a48241ac6 100644 --- a/ESP-IDF_Robot/tutorial/docs/build/html/intro.html +++ b/ESP-IDF_Robot/tutorial/docs/build/html/intro.html @@ -48,6 +48,16 @@ implementation focuses on movement, additional features like lights, sensors, or modular design gives users the freedom to customize both the appearance and behavior of their RC car, resulting in endless creative possibilities.

ABSTRACTΒΆ

+

At the core of this project lies a shared data structure that encapsulates the control parameters for the DC motors, specifically their rotation speeds, +which are modulated using Pulse Width Modulation (PWM). This structure ensures consistent interpretation of control signals between the transmitter +and receiver.

+

The system employs ESP-NOW, a low-latency, connectionless communication protocol developed by Espressif, to facilitate wireless data exchange between +the transmitter and receiver modules. Both devices are based on ESP32 microcontrollers and maintain a synchronized understanding of the data structure +to ensure seamless communication.

+

On the transmitter side, joystick input is continuously read and translated into control values. These values are then encapsulated into the +predefined data structure and transmitted via ESP-NOW to the receiver.

+

The receiver module listens for incoming ESP-NOW packets, de-encapsulates the joystick data, and converts the received values into PWM signals. +These signals are then used to control the speed and direction of the DC motors, enabling real-time remote operation of the vehicle.

diff --git a/ESP-IDF_Robot/tutorial/docs/build/html/searchindex.js b/ESP-IDF_Robot/tutorial/docs/build/html/searchindex.js index cc2bb3099..f40cf35d5 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]],"INTRODUCTION":[[2,null]],"Main Function":[[5,"main-function"],[7,"main-function"]],"Motor Wires Harness":[[4,"motor-wires-harness"]],"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]],"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,"NOT":3,"ON":[0,5,7],"The":[0,2,3],"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,"ani":[0,3],"app_main":[5,7],"appear":2,"ar":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],"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,"consequ":3,"const":5,"constraint":3,"contain":0,"content":[],"contin":3,"control":[0,2,3,4],"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,3,4,5,7],"de":1,"declar":3,"decod":0,"dedic":3,"defin":[2,3],"deletep":3,"demonstr":2,"depend":2,"design":[0,2,6],"detail":[],"determin":[0,3],"devboard":3,"develop":3,"developmemt":3,"devic":[0,2],"diagon":3,"differenti":0,"direct":[0,2],"displai":3,"doe":1,"drive":0,"duti":3,"e":[0,3],"each":3,"easili":2,"ecapsul":1,"effici":2,"elegantli":2,"els":3,"embed":0,"emploi":2,"enabl":[0,2],"encapsul":0,"encod":0,"encrypt":5,"end":0,"endless":2,"ensur":0,"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,"etc":0,"even":[0,2],"event":3,"everi":3,"evok":3,"evolv":2,"exact":0,"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,"focus":2,"follow":3,"form":2,"foundat":2,"four":[0,3],"free":2,"freedom":2,"freerto":[5,7],"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,"hold":[3,7],"hood":2,"how":[1,2],"http":[3,6],"i":[0,2,3],"idea":2,"ideal":[0,2],"idf_robot":6,"idf_robot_schemat":[],"ifidx":5,"illustr":3,"imag":3,"implement":2,"includ":[5,7],"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,"interv":0,"introduct":1,"itself":2,"joystick":[0,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],"light":2,"lightweight":2,"like":[0,2],"loop":2,"low":[0,2],"mac":[3,7],"mac_addr":[3,5],"mai":0,"main":[1,6],"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,"modular":2,"motor":[0,1,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,5,7],"ok":3,"omni":0,"onboard":0,"ondatareceiv":[3,5],"ondatas":3,"onli":[3,4],"oper":[0,3],"oscilloscop":3,"other":3,"over":0,"pack":[5,7],"packet":[0,3],"pad":0,"pair":[0,2,3],"particular":3,"payload":1,"pcb":[3,6],"peer_addr":5,"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,"predict":0,"progress":1,"project":2,"protocol":[0,2],"provid":[0,2,3],"purpos":3,"push":[0,3,5,7],"pwm":[0,3,5,7],"rc":[2,3],"rc_send_data_task":3,"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":3,"router":2,"row":[],"run":3,"same":[],"schemat":[1,6],"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,"side":3,"sidewai":3,"signal":0,"similarli":3,"size":0,"sizeof":[3,5,7],"softwar":1,"sourc":[2,6],"speed":[0,2],"spotlight":2,"state":[0,5,7],"static":3,"statu":[0,3],"store":3,"stream":0,"string":5,"struct":[1,3,5,7],"suffici":3,"summar":3,"summari":3,"support":0,"syntax":[],"system":[0,2],"system_led_init":[5,7],"tabl":3,"tag":[3,5],"task":3,"telemetri":[0,2],"tell":0,"temperatur":7,"thi":[0,2,3],"those":3,"though":2,"through":1,"time":2,"toggl":0,"transmiss":[0,2],"transmission_init":7,"transmit":[0,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,"up":0,"updat":3,"us":2,"user":[0,2],"valu":3,"vari":2,"variabl":1,"variou":3,"vehicl":0,"void":[3,5,7],"voltag":3,"vtaskdelai":3,"wa":3,"walk":1,"walkthrough":[],"warn":0,"well":[],"wheel":0,"when":[0,3],"where":2,"which":[],"while":[2,3],"why":[],"wi":2,"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","INTRODUCTION","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,"introduct":2,"main":[5,7],"motor":4,"pack":0,"payload":0,"pin":3,"progress":4,"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":[],"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]],"INTRODUCTION":[[2,null]],"Main Function":[[5,"main-function"],[7,"main-function"]],"Motor Wires Harness":[[4,"motor-wires-harness"]],"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]],"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,"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,"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],"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,"demonstr":2,"depend":2,"design":[0,2,6],"detail":[],"determin":[0,3],"devboard":3,"develop":[2,3],"developmemt":3,"devic":[0,2],"diagon":3,"differenti":0,"direct":[0,2],"displai":3,"doe":1,"drive":0,"duti":3,"e":[0,3],"each":3,"easili":2,"ecapsul":1,"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,"focus":2,"follow":3,"form":2,"foundat":2,"four":[0,3],"free":2,"freedom":2,"freerto":[5,7],"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,"hold":[3,7],"hood":2,"how":[1,2],"http":[3,6],"i":[0,2,3],"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":1,"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],"li":2,"light":2,"lightweight":2,"like":[0,2],"listen":2,"loop":2,"low":[0,2],"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,"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,5,7],"ok":3,"omni":0,"onboard":0,"ondatareceiv":[3,5],"ondatas":3,"onli":[3,4],"oper":[0,2,3],"oscilloscop":3,"other":3,"over":0,"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,"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,"purpos":3,"push":[0,3,5,7],"pwm":[0,2,3,5,7],"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],"similarli":3,"size":0,"sizeof":[3,5,7],"softwar":1,"sourc":[2,6],"specif":2,"speed":[0,2],"spotlight":2,"state":[0,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,"synchron":2,"syntax":[],"system":[0,2],"system_led_init":[5,7],"tabl":3,"tag":[3,5],"task":3,"telemetri":[0,2],"tell":0,"temperatur":7,"thi":[0,2,3],"those":3,"though":2,"through":1,"time":2,"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,"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":[],"wheel":0,"when":[0,3],"where":2,"which":2,"while":[2,3],"why":[],"wi":2,"width":2,"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","INTRODUCTION","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,"introduct":2,"main":[5,7],"motor":4,"pack":0,"payload":0,"pin":3,"progress":4,"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":[],"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 fd03819a0..62f3a6c0b 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: 9a6a760a17c59ce2724ac88b748b4785 +config: 4e4561c741c8b5e01a115ab6f3cc20f3 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 ce7fb1c79..5a33ec269 100644 --- a/ESP-IDF_Robot/tutorial/docs/build/simplepdf/index.html +++ b/ESP-IDF_Robot/tutorial/docs/build/simplepdf/index.html @@ -237,6 +237,24 @@ modular design gives users the freedom to customize both the appearance and beha ¶ +

+ At the core of this project lies a shared data structure that encapsulates the control parameters for the DC motors, specifically their rotation speeds, +which are modulated using Pulse Width Modulation (PWM). This structure ensures consistent interpretation of control signals between the transmitter +and receiver. +

+

+ The system employs ESP-NOW, a low-latency, connectionless communication protocol developed by Espressif, to facilitate wireless data exchange between +the transmitter and receiver modules. Both devices are based on ESP32 microcontrollers and maintain a synchronized understanding of the data structure +to ensure seamless communication. +

+

+ On the transmitter side, joystick input is continuously read and translated into control values. These values are then encapsulated into the +predefined data structure and transmitted via ESP-NOW to the receiver. +

+

+ The receiver module listens for incoming ESP-NOW packets, de-encapsulates the joystick data, and converts the received values into PWM signals. +These signals are then used to control the speed and direction of the DC motors, enabling real-time remote operation of the vehicle. +