From 85425b40149ac76e036e0652cbc334969e7b47b0 Mon Sep 17 00:00:00 2001
From: Alexandre Bobkov
Date: Sun, 6 Jul 2025 11:42:25 -0400
Subject: [PATCH] grammar
---
.../tutorial/docs/build/doctrees/data.doctree | Bin 11248 -> 11256 bytes
.../docs/build/doctrees/environment.pickle | Bin 28434 -> 28376 bytes
.../docs/build/doctrees/intro.doctree | Bin 8749 -> 8241 bytes
.../docs/build/html/_sources/data.rst.txt | 2 +-
.../docs/build/html/_sources/intro.rst.txt | 32 ++++++++---------
.../tutorial/docs/build/html/data.html | 2 +-
.../tutorial/docs/build/html/intro.html | 33 ++++++++----------
.../tutorial/docs/build/html/searchindex.js | 2 +-
8 files changed, 32 insertions(+), 39 deletions(-)
diff --git a/ESP-IDF_Robot/tutorial/docs/build/doctrees/data.doctree b/ESP-IDF_Robot/tutorial/docs/build/doctrees/data.doctree
index 7386ba9c9522831a26ed5ad68c0cd1d855ae3682..2c0dacf216cc90bfb64a008d331ff1d59356484a 100644
GIT binary patch
delta 44
qcmewm{v({FfpzNJjV#L;881$5Wb$CjNS*wVu^*Y!vDu$_p#}h^#u4iP
delta 38
qcmewn{vn*DfpzNBjV#L;8P85$&FC@tB2(MsS|)Y~Z}UYabxi<9Q4f0n
diff --git a/ESP-IDF_Robot/tutorial/docs/build/doctrees/environment.pickle b/ESP-IDF_Robot/tutorial/docs/build/doctrees/environment.pickle
index b203e2345c2830e1cca1616fab6f6cd97c83ea4b..cd2f46cc976676574e1f30890320562b51c2042a 100644
GIT binary patch
literal 28376
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
IAubO6AHdA_@c;k-
diff --git a/ESP-IDF_Robot/tutorial/docs/build/doctrees/intro.doctree b/ESP-IDF_Robot/tutorial/docs/build/doctrees/intro.doctree
index 4e0dbcd477193883b3b42fffbacb1f487e09e8c0..528577e9772df51ee2e1db339bf0070f7e4c5170 100644
GIT binary patch
delta 1593
zcmd^9&rcIU7-dT;QotaAV%3l@5CxKgKk&fCNG!&aNU#PxXq@hj%*gJ{vNPM-gP}J9
zAwij%=-G=NOeDSQUtoxyyh%9wFBtr$`XXWlS%w^ViTU&Z3eF1hAoasCd>8posON#8wCZ*NRi8fJ+-h!I1ZQ}CqFsFylhV=
zvS8k~SIo6k+R4_YQUeYGF18i^-1GWqeZssu^{r#mX==(#pn?>9YI0`=#%FTik|+zB
zQBY;2X#hGRLit2f1y3a|ad!c@2xG1Ar6o+y-hm-=r89kd7!;ou#8=o(G`LdeNcwfG
z$s7by%Ser;@{B54?
zI+7cMfV+|0W9(DpS!FE`tE^}4f6{35?=&*MPUjPATjo+a^T--z-yVYs=70zf9-s$g
z&=x~cp-pT0g7ejqdVG{rJx<3blxY%Q5
z>!%@M=yP-|*WjV$U5%Py;B3QTo*>UKBd!dBSa6qUj;?;<%TkK?_-w#8Qf+%9szQlE
z@g<=&5qpTSqERE$SqO+A^EOl}q^P!4wK3cRm$+s!*0@@Rkd+k<^eu6L1f
hTC1=YFNaiBpI3+2#tK_qi5b}Mb=Jm~Yv19%^BbSSHje-R
delta 2004
zcmdT_&5IOA6t{OX8Eu0Zb#^z|g!Q3;?83|<3LykSG%*kajgSrQC5M{sw_By%Rc%%E
zmK>h-Xw%P4BQ
z`@4U2*Y`|KfONmSvF1LAr$gcJOnfAAm-cp^E!p_T@(Fiy-yi*tqFuXATCf};Q5r$5
z(6ca5XmtS-3z3bILtF@C7WNC6O(W
z!c33Y$N}>rQ#}Kpe|4^X_RI4v_fumo0(ZO7o@{}2bM@)zAT<0o;Y_aLHaD@`I`H1?
zB7CYWhZMUa@!BNxJIs(cmHVy!Rv$cJIU~a9=at)&3D-)B@2I4dDap}NiPuojIzA)n
z*ea5=7Z4a^d4|RdDbGtupnGwSMey9I;+HcPd+B4jznV)E*Y3HK2jA{rAa<-sE|P7E
zlFSpVWQ8nMX~?V^SsMBYKJms+y}{JjQ(cyoXuL1cAXNVXQDk$uGcZQ`=ygoyOmRg>
zI?J7I>}x!|AQ&-qcbjv&EBpPoyPS8MGskD%<+J=We}_+&9o}B}VetK6p4XO}?vtsH
z`zf~n6`Etnz4BXOcuFYB99xCzD1y>$Gy~q0elW_f#kc}{JI=f<0@|gw#tv>QKT68>
z`5G=s1)Ur+cjSg05si{{GBS$$@y#RqyGU7_;aL6u-%*<5QLYRsVrKaj_w&rL=+N-@
ynP@V)JG?jhU~*xLZ}JVkUS8WH{dcTapb0c?UF92BOAemWO}>|}5C5F|I{F(7rq*`=
diff --git a/ESP-IDF_Robot/tutorial/docs/build/html/_sources/data.rst.txt b/ESP-IDF_Robot/tutorial/docs/build/html/_sources/data.rst.txt
index 843e5874c..ba235a801 100644
--- a/ESP-IDF_Robot/tutorial/docs/build/html/_sources/data.rst.txt
+++ b/ESP-IDF_Robot/tutorial/docs/build/html/_sources/data.rst.txt
@@ -1,7 +1,7 @@
DATA STRUCTS
============
-The struct serves as the data payload for sending control signals from transmitting device to the receiver using ESP-NOW.
+The struct serves as the data payload for sending control signals from the transmitting device to the receiver using ESP-NOW.
In addition, it may contain additional data such as telemetry, battery status, etc.
The *sensors_data_t* struct is designed as a data payload that encapsulates all control commands and sensor states relevant to the vehicle's operation.
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 c8a0470af..e4f20c148 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
@@ -1,32 +1,28 @@
OVERVIEW
============
-At the heart of this project is a customizable remote-controlled car that responds to real-time control inputs — capable of handling speed adjustments,
+At the heart of this project is a customizable remote-controlled car that responds to real-time control inputs, capable of handling speed adjustments,
directional changes, and even extended features like lights or sensors. The foundational setup uses ESP-NOW for transmitter and receiver devices,
-allowing you to wirelessly guide the car's behavior. While the design and physical appearance of the RC car can vary wildly depending on your
+allowing you to wirelessly guide the car's behaviour. While the design and physical appearance of the RC car can vary wildly depending on your
creativity and available hardware, the control system remains elegantly efficient. To facilitate wireless communication between devices, the system employs
-ESP-NOW, a lightweight and connection-free protocol ideal for fast, low-latency data transmission between ESP32 microcontrollers. Though ESP-NOW is used under
+ESP-NOW is a lightweight and connection-free protocol ideal for fast, low-latency data transmission between ESP32 microcontrollers. Though ESP-NOW is used under
the hood, the spotlight remains on the RC car itself: how it moves, adapts, and evolves with your ideas.
-An ESP-NOW-based remote-controller sends control data wirelessly using the ESP-NOW protocol to the remote-controlled car. ESP-NOW enables fast and
-efficient communication between ESP32 devices without the need for Wi-Fi router, network nor pairing. The provided tutorial demonstrates a functional
-setup where a transmitter sends data to a receiver to define the car's speed and direction — forming the core communication loop. While the baseline
+An ESP-NOW-based remote controller sends control data wirelessly using the ESP-NOW protocol to the remote-controlled car. ESP-NOW enables fast and
+efficient communication between ESP32 devices without the need for a Wi-Fi router, network, or pairing. The provided tutorial demonstrates a functional
+setup where a transmitter sends data to a receiver to define the car's speed and direction, forming the core communication loop. While the baseline
implementation focuses on movement, additional features like lights, sensors, or telemetry can easily be integrated by expanding the source code. This
-modular design gives users the freedom to customize both the appearance and behavior of their RC car, resulting in endless creative possibilities.
+modular design gives users the freedom to customize both the appearance and behaviour 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.
+To enable real-time remote operation of the RC car, the system translates joystick inputs into PWM (Pulse Width Modulation) signals that control the DC motors.
+These PWM values are stored in a predefined data structure, which is then transmitted wirelessly using ESP-NOW — a low-latency, connectionless
+communication protocol developed by Espressif. Both the transmitter and receiver modules are based on ESP32-C3 microcontrollers.
-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, the joystick's X and Y coordinates are continuously monitored and converted into PWM parameters. These values are packed into the
+data structure and sent via ESP-NOW to the receiver.
-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
+The receiver module listens for incoming ESP-NOW packets, extracts the PWM control data, and applies it directly to the DC motors. This communication flow
+allows the RC car to respond instantly to user input, managing speed and direction without any physical connection between the devices.
\ No newline at end of file
diff --git a/ESP-IDF_Robot/tutorial/docs/build/html/data.html b/ESP-IDF_Robot/tutorial/docs/build/html/data.html
index b43a2ae45..dbfaf7314 100644
--- a/ESP-IDF_Robot/tutorial/docs/build/html/data.html
+++ b/ESP-IDF_Robot/tutorial/docs/build/html/data.html
@@ -35,7 +35,7 @@
DATA STRUCTS
-The struct serves as the data payload for sending control signals from transmitting device to the receiver using ESP-NOW.
+
The struct serves as the data payload for sending control signals from the transmitting device to the receiver using ESP-NOW.
In addition, it may contain additional data such as telemetry, battery status, etc.
The sensors_data_t struct is designed as a data payload that encapsulates all control commands and sensor states relevant to the vehicle’s operation.
It’s intended to be sent from a transmitting device (like a remote control or master controller) to a receiver (such as a microcontroller onboard the vehicle).
diff --git a/ESP-IDF_Robot/tutorial/docs/build/html/intro.html b/ESP-IDF_Robot/tutorial/docs/build/html/intro.html
index 9a7370534..26ce3c829 100644
--- a/ESP-IDF_Robot/tutorial/docs/build/html/intro.html
+++ b/ESP-IDF_Robot/tutorial/docs/build/html/intro.html
@@ -35,29 +35,26 @@
OVERVIEW
-At the heart of this project is a customizable remote-controlled car that responds to real-time control inputs — capable of handling speed adjustments,
+
At the heart of this project is a customizable remote-controlled car that responds to real-time control inputs, capable of handling speed adjustments,
directional changes, and even extended features like lights or sensors. The foundational setup uses ESP-NOW for transmitter and receiver devices,
-allowing you to wirelessly guide the car’s behavior. While the design and physical appearance of the RC car can vary wildly depending on your
+allowing you to wirelessly guide the car’s behaviour. While the design and physical appearance of the RC car can vary wildly depending on your
creativity and available hardware, the control system remains elegantly efficient. To facilitate wireless communication between devices, the system employs
-ESP-NOW, a lightweight and connection-free protocol ideal for fast, low-latency data transmission between ESP32 microcontrollers. Though ESP-NOW is used under
+ESP-NOW is a lightweight and connection-free protocol ideal for fast, low-latency data transmission between ESP32 microcontrollers. Though ESP-NOW is used under
the hood, the spotlight remains on the RC car itself: how it moves, adapts, and evolves with your ideas.
-An ESP-NOW-based remote-controller sends control data wirelessly using the ESP-NOW protocol to the remote-controlled car. ESP-NOW enables fast and
-efficient communication between ESP32 devices without the need for Wi-Fi router, network nor pairing. The provided tutorial demonstrates a functional
-setup where a transmitter sends data to a receiver to define the car’s speed and direction — forming the core communication loop. While the baseline
+
An ESP-NOW-based remote controller sends control data wirelessly using the ESP-NOW protocol to the remote-controlled car. ESP-NOW enables fast and
+efficient communication between ESP32 devices without the need for a Wi-Fi router, network, or pairing. The provided tutorial demonstrates a functional
+setup where a transmitter sends data to a receiver to define the car’s speed and direction, forming the core communication loop. While the baseline
implementation focuses on movement, additional features like lights, sensors, or telemetry can easily be integrated by expanding the source code. This
-modular design gives users the freedom to customize both the appearance and behavior of their RC car, resulting in endless creative possibilities.
+modular design gives users the freedom to customize both the appearance and behaviour 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.
+To enable real-time remote operation of the RC car, the system translates joystick inputs into PWM (Pulse Width Modulation) signals that control the DC motors.
+These PWM values are stored in a predefined data structure, which is then transmitted wirelessly using ESP-NOW — a low-latency, connectionless
+communication protocol developed by Espressif. Both the transmitter and receiver modules are based on ESP32-C3 microcontrollers.
+On the transmitter side, the joystick’s X and Y coordinates are continuously monitored and converted into PWM parameters. These values are packed into the
+data structure and sent via ESP-NOW to the receiver.
+The receiver module listens for incoming ESP-NOW packets, extracts the PWM control data, and applies it directly to the DC motors. This communication flow
+allows the RC car to respond instantly to user input, managing speed and direction without any physical connection between the devices.
@@ -93,7 +90,7 @@ These signals are then used to control the speed and direction of the DC motors,
HOW DOES IT WORK?
-DATA STRUCT
+DATA STRUCTS
TRANSMITTER
RECEIVER
WORK-IN-PROGRESS WALK THROUGH
diff --git a/ESP-IDF_Robot/tutorial/docs/build/html/searchindex.js b/ESP-IDF_Robot/tutorial/docs/build/html/searchindex.js
index ce96220a8..e6d76aaf1 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 STRUCTS":[[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]],"Reading Joystick x- and y- Axis Values":[[7,"reading-joystick-x-and-y-axis-values"]],"Receiving & Extracting Data":[[5,"receiving-extracting-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],"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":1,"back":3,"bacl":3,"bandwidth":0,"base":[2,3],"baselin":2,"batteri":0,"behavior":2,"being":3,"below":3,"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,"counterclockwis":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":[],"de":2,"declar":3,"decod":0,"decreas":3,"dedic":3,"defin":[2,3],"deletep":3,"deliv":3,"demonstr":2,"depend":2,"descript":3,"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],"discret":3,"displai":3,"doe":1,"drive":0,"duti":3,"e":[0,3],"each":[3,7],"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,"extract":1,"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,"forward":3,"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":[],"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,1,2,3,5],"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":[0,3,5],"move":[2,3],"movement":[2,3],"multi":0,"nav_btn":7,"nav_bttn":[0,3,5],"need":[2,3],"network":2,"node":6,"nor":2,"note":3,"now":[0,2,3,7],"num":[],"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,"per":3,"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":[1,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,3],"remov":0,"repres":0,"requir":[],"reserv":1,"resp":3,"respond":2,"respons":[0,3],"restructuredtext":[],"result":[2,3,7],"ret":[5,7],"revers":3,"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],"spin":3,"spotlight":2,"stand":3,"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":[1,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,1,5],"x_axi":[0,3,5,7],"y":[0,1,5],"y_axi":[0,3,5,7],"you":[0,2],"your":2},"titles":["DATA STRUCTS","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,7],"byterid":1,"chassi":4,"configur":[5,7],"data":[0,5,7],"de":[],"direct":3,"document":1,"doe":3,"ecapsul":7,"encapsul":[],"extract":5,"finish":4,"function":[5,7],"fusion":3,"github":6,"gpio":3,"har":4,"hardwar":3,"how":3,"i":3,"introduct":[],"joystick":7,"main":[5,7],"motor":4,"overview":2,"pack":0,"payload":0,"pin":3,"progress":4,"pwm":3,"read":7,"receiv":5,"refer":6,"reserv":3,"schemat":3,"send":7,"softwar":3,"speed":3,"struct":0,"through":4,"transmitt":7,"us":0,"valu":7,"variabl":[5,7],"walk":4,"walkthrough":[],"what":3,"why":0,"wire":4,"work":[3,4],"x":[3,7],"y":[3,7]}})
\ 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 STRUCTS":[[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]],"Reading Joystick x- and y- Axis Values":[[7,"reading-joystick-x-and-y-axis-values"]],"Receiving & Extracting Data":[[5,"receiving-extracting-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],"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,2,3],"app_main":[5,7],"appear":2,"appli":2,"ar":[2,3],"architectur":[],"arg":3,"assign":3,"attribut":0,"avail":[2,3],"axi":1,"back":3,"bacl":3,"bandwidth":0,"base":[2,3],"baselin":2,"batteri":0,"behavior":[],"behaviour":2,"being":3,"below":3,"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":[2,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":[],"const":5,"constraint":3,"contain":0,"content":[],"contin":3,"continu":2,"control":[0,2,3,4],"convert":2,"coordin":2,"core":2,"correspond":3,"counter":3,"counterclockwis":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":[],"de":[],"declar":3,"decod":0,"decreas":3,"dedic":3,"defin":[2,3],"deletep":3,"deliv":3,"demonstr":2,"depend":2,"descript":3,"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],"directli":2,"discret":3,"displai":3,"doe":1,"drive":0,"duti":3,"e":[0,3],"each":[3,7],"easili":2,"ecapsul":1,"effect":3,"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,"espressif":2,"etc":0,"even":[0,2],"event":3,"everi":3,"evok":3,"evolv":2,"exact":0,"exchang":[],"exist":[],"expand":2,"expect":0,"extend":2,"extract":[1,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],"flow":2,"focus":2,"follow":3,"form":2,"forward":3,"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":[],"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,"instantli":2,"int":[0,3,5,7],"integr":2,"intend":0,"intern":7,"interpret":0,"interv":0,"introduct":[],"itself":2,"joystick":[0,1,2,3,5],"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":[],"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":[],"make":0,"manag":2,"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,"monitor":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":[0,3,5],"move":[2,3],"movement":[2,3],"multi":0,"nav_btn":7,"nav_bttn":[0,3,5],"need":[2,3],"network":2,"node":6,"nor":[],"note":3,"now":[0,2,3,7],"num":[],"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":[2,5,7],"packet":[0,2,3],"pad":0,"pair":[0,2,3],"paramet":2,"particular":3,"payload":1,"pcb":[3,6],"peer_addr":5,"per":3,"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":1,"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,3],"remov":0,"repres":0,"requir":[],"reserv":1,"resp":3,"respond":2,"respons":[0,3],"restructuredtext":[],"result":[2,3,7],"ret":[5,7],"revers":3,"right":3,"robot":0,"rotat":3,"router":2,"row":[],"run":3,"same":[],"schemat":[1,6],"seamless":[],"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,2,3],"serial":0,"serv":0,"setup":2,"share":[],"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":[],"speed":[0,2],"spin":3,"spotlight":2,"stand":3,"state":[0,3,5,7],"static":3,"statu":[0,3],"store":[2,3],"stream":0,"string":5,"struct":[1,3,5,7],"structur":2,"suffici":3,"summar":3,"summari":3,"support":0,"switch":3,"synchron":[],"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":[],"up":0,"updat":3,"us":[2,3],"user":[0,2],"valu":[1,2,3],"vari":2,"variabl":1,"variou":3,"vehicl":0,"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,1,2,5],"x_axi":[0,3,5,7],"y":[0,1,2,5],"y_axi":[0,3,5,7],"you":[0,2],"your":2},"titles":["DATA STRUCTS","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,7],"byterid":1,"chassi":4,"configur":[5,7],"data":[0,5,7],"de":[],"direct":3,"document":1,"doe":3,"ecapsul":7,"encapsul":[],"extract":5,"finish":4,"function":[5,7],"fusion":3,"github":6,"gpio":3,"har":4,"hardwar":3,"how":3,"i":3,"introduct":[],"joystick":7,"main":[5,7],"motor":4,"overview":2,"pack":0,"payload":0,"pin":3,"progress":4,"pwm":3,"read":7,"receiv":5,"refer":6,"reserv":3,"schemat":3,"send":7,"softwar":3,"speed":3,"struct":0,"through":4,"transmitt":7,"us":0,"valu":7,"variabl":[5,7],"walk":4,"walkthrough":[],"what":3,"why":0,"wire":4,"work":[3,4],"x":[3,7],"y":[3,7]}})
\ No newline at end of file