Good Day to to you all,
Hope this note finds you well. As I am still fairly new in robotics, my attempt completing my 4WD robotic model has come to stall due to number of hardware/software compatibility issues. Below is my current configuration, but haven't been able to make this bundle work together. Unfortunately, my main issue is not being able to find the right library that would work in either environment (ESP32 / Arduino). There seem to be lot of outdated information out there.
1 - ESP32-WROOM-32U Development Board OR Arduino uno R4 WiFi board (open to other suggestions)
2 - L298N motor controller (open to other suggestions)
4 - DC motor 1.5V – 9V 23000 RPM Brush motor
4 - Mecanum Wheels
1 – HC-SR04 (open to other suggestions)
1 – PS3 Controller OR WiFi manager
Please Note: This is for a K9-12 project and I am also open to pay for consultation fee to make this work.
Thanks and I look forward to getting some experts opinion.
Reza.
Good Day to to you all,
Hope this note finds you well. As I am still fairly new in robotics, my attempt completing my 4WD robotic model has come to stall due to number of hardware/software compatibility issues. Below is my current configuration, but haven't been able to make this bundle work together. Unfortunately, my main issue is not being able to find the right library that would work in either environment (ESP32 / Arduino). There seem to be lot of outdated information out there.
1 - ESP32-WROOM-32U Development Board OR Arduino uno R4 WiFi board (open to other suggestions)
2 - L298N motor controller (open to other suggestions)
4 - DC motor 1.5V – 9V 23000 RPM Brush motor
4 - Mecanum Wheels
1 – HC-SR04 (open to other suggestions)
1 – PS3 Controller OR WiFi managerPlease Note: This is for a K9-12 project and I am also open to pay for consultation fee to make this work.
Thanks and I look forward to getting some experts opinion.
Reza.
First of all, do NOT offer to pay, we are a group of hobbyists.
You have not told us what is wrong, if you can't compile, show us your source code (copy then paste into the box after pressing <>)
First use the enter key to create some blank lines (4 to 6) then move the cursor back up to the first empty line and
Copy the first few lines in RED, it can even be a screen grab for the first post. Use the Attach Files link at the bottom for that. If instead you copied those lines, use the " tool. The box will expand as needed.
Now copy your code, and paste it into the box that opens after pressing the <> tool.
First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, 360, fairly knowledge in PC plus numerous MPU's & MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
My personal scorecard is now 1 PC hardware fix (circa 1982), 1 open source fix (at age 82), and 2 zero day bugs in a major OS.
First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, 360, fairly knowledge in PC plus numerous MPU's & MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
My personal scorecard is now 1 PC hardware fix (circa 1982), 1 open source fix (at age 82), and 2 zero day bugs in a major OS.
Hi i have installed demo code from bills video but its failing it comes up with failed I have put the eps32 this is my code what am I missing out? How do I ask bill to help as well .
/*
ESP-NOW Demo - Receive
esp-now-demo-rcv.ino
Reads data from Initiator
DroneBot Workshop 2022
https://dronebotworkshop.com
*/
// Include Libraries
#include <esp_now.h>
#include <WiFi.h>
// Define a data structure
typedef struct struct_message {
char a[32];
int b;
float c;
bool d;
} struct_message;
// Create a structured object
struct_message myData;
// Callback function executed when data is received
void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) {
memcpy(&myData, incomingData, sizeof(myData));
Serial.print("Data received: ");
Serial.println(len);
Serial.print("Character Value: ");
Serial.println(myData.a);
Serial.print("Integer Value: ");
Serial.println(myData.b);
Serial.print("Float Value: ");
Serial.println(myData.c);
Serial.print("Boolean Value: ");
Serial.println(myData.d);
Serial.println();
}
void setup() {
// Set up Serial Monitor
Serial.begin(115200);
// Set ESP32 as a Wi-Fi Station
WiFi.mode(WIFI_STA);
// Initilize ESP-NOW
if (esp_now_init() != ESP_OK) {
Serial.println("Error initializing ESP-NOW");
return;
}
// Register callback function
esp_now_register_recv_cb(OnDataRecv);
}
void loop() {
}
/*
ESP-NOW Demo - Transmit
esp-now-demo-xmit.ino
Sends data to Responder
DroneBot Workshop 2022
https://dronebotworkshop.com
*/
// Include Libraries
#include <esp_now.h>
#include <WiFi.h>
// Variables for test data
int int_value;
float float_value;
bool bool_value = true;
// MAC Address of responder - edit as required
uint8_t broadcastAddress[] = {0xC8, 0xF0, 0x9E, 0x52, 0x66, 0x44};
// Define a data structure
typedef struct struct_message {
char a[32];
float c;
bool d;
} struct_message;
// Create a structured object
struct_message myData;
// Peer info
esp_now_peer_info_t peerInfo;
// Callback function called when data is sent
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {
Serial.print("\r\nLast Packet Send Status:\t");
Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail");
}
void setup() {
// Set up Serial Monitor
Serial.begin(115200);
// Set ESP32 as a Wi-Fi Station
WiFi.mode(WIFI_STA);
// Initilize ESP-NOW
if (esp_now_init() != ESP_OK) {
Serial.println("Error initializing ESP-NOW");
return;
}
// Register the send callback
esp_now_register_send_cb(OnDataSent);
// Register peer
memcpy(peerInfo.peer_addr, broadcastAddress, 6);
peerInfo.channel = 0;
peerInfo.encrypt = false;
// Add peer
if (esp_now_add_peer(&peerInfo) != ESP_OK){
Serial.println("Failed to add peer");
return;
}
}
void loop() {
// Create test data
// Generate a random integer
int_value = random(1,20);
// Use integer to make a new float
float_value = 1.3 * int_value;
// Invert the boolean value
bool_value = !bool_value;
// Format structured data
strcpy(myData.a, "Welcome to the Workshop!");
myData.b = int_value;
myData.c = float_value;
myData.d = bool_value;
// Send message via ESP-NOW
esp_err_t result = esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData));
if (result == ESP_OK) {
Serial.println("Sending confirmed");
}
else {
Serial.println("Sending error");
}
delay(2000);
}
@videogame95 First of all you are again in someone else's Topic. You need to pick a Forum, I recommend the Help Wanted forum, then click New Topic. I have enclosed screen grabs to show you what that looks like.
Secondly, you need to do a screen grab or worst case copy the error messages here. DO NOT ATTEMPT TO TYPE THEM IN.
3rd, Bill is very busy, the chances that he will see your post is low, and he probably doesn't;t have the time.
This is a community, we are all here to help one another, Bill is the host.
I tried your code above and can see you have TWO sketches, the Receive sketch and the Transmit sketch. Separate that into two files and it will be fine.
First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, 360, fairly knowledge in PC plus numerous MPU's & MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
My personal scorecard is now 1 PC hardware fix (circa 1982), 1 open source fix (at age 82), and 2 zero day bugs in a major OS.
@videogame95 I just discovered the Transmit sketch is missing the int b member from struct_message.
A far better way to do this is to create a file that both sketches include that contains the struct typedef. This way both sketches are 'seeing' the same thing.
This may be the first time you are dealing with external data rather than just global data so I understand if it is a new concept.
First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, 360, fairly knowledge in PC plus numerous MPU's & MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
My personal scorecard is now 1 PC hardware fix (circa 1982), 1 open source fix (at age 82), and 2 zero day bugs in a major OS.

