Files
ESP-Nodes/ESP-IDF_Robot/tutorial/docs/source/transmitter.rst
2025-07-05 18:52:31 -04:00

59 lines
1.7 KiB
ReStructuredText

TRANSMITTER
===========
Configuration Variables
-----------------------
.. code-block:: c
uint8_t receiver_mac[ESP_NOW_ETH_ALEN] = {0xe4, 0xb0, 0x63, 0x17, 0x9e, 0x44};
typedef struct {
int x_axis; // Joystick x-position
int y_axis; // Joystick y-position
bool nav_bttn; // Joystick push button
bool led; // LED ON/OFF state
uint8_t motor1_rpm_pwm; // PWMs for 4 DC motors
uint8_t motor2_rpm_pwm;
uint8_t motor3_rpm_pwm;
uint8_t motor4_rpm_pwm;
} __attribute__((packed)) sensors_data_t;
Sending & Ecapsulating Data
----------------------------
.. code-block:: c
void onDataReceived (const uint8_t *mac_addr, const uint8_t *data, uint8_t data_len) {
ESP_LOGI(TAG, "Data received from: %02x:%02x:%02x:%02x:%02x:%02x, len=%d", mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5], data_len);
memcpy(&buf, data, sizeof(buf));
x_axis = buf.x_axis;
y_axis = buf.y_axis
}
Main Function
-------------
.. code-block:: c
#include "freertos/FreeRTOS.h"
#include "nvs_flash.h"
#include "esp_err.h"
void app_main(void) {
// Initialize internal temperature sensor
chip_sensor_init();
// Initialize NVS
esp_err_t ret = nvs_flash_init();
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
ESP_ERROR_CHECK( nvs_flash_erase() );
ret = nvs_flash_init();
}
ESP_ERROR_CHECK( ret );
wifi_init();
joystick_adc_init();
transmission_init();
system_led_init();
}