mirror of
https://github.com/alexandrebobkov/ESP-Nodes.git
synced 2025-08-08 11:50:53 +00:00
79 lines
1.9 KiB
ReStructuredText
79 lines
1.9 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_btn; // Joystick push button
|
|
bool led; // LED ON/OFF state
|
|
uint8_t motor1_rpm_pwm; // PWMs for each DC motor
|
|
uint8_t motor2_rpm_pwm;
|
|
uint8_t motor3_rpm_pwm;
|
|
uint8_t motor4_rpm_pwm;
|
|
} __attribute__((packed)) sensors_data_t;
|
|
|
|
Reading Joystick x- and y- Axis Values
|
|
--------------------------------------
|
|
|
|
Sending & Ecapsulating Data
|
|
----------------------------
|
|
|
|
.. code-block:: c
|
|
|
|
void sendData (void) {
|
|
|
|
... ... ...
|
|
... ... ...
|
|
|
|
buffer.x_axis = x_axis;
|
|
buffer.y_axis = y_axis;
|
|
|
|
// Call ESP-NOW function to send data (MAC address of receiver, pointer to the memory holding data & data length)
|
|
uint8_t result = esp_now_send((uint8_t*)receiver_mac, (uint8_t *)&buffer, sizeof(buffer));
|
|
|
|
... ... ...
|
|
... ... ...
|
|
}
|
|
|
|
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();
|
|
|
|
... ... ...
|
|
... ... ...
|
|
} |