Skip to content

Commit

Permalink
in progress, new lib versions + platformio
Browse files Browse the repository at this point in the history
  • Loading branch information
joshua-8 committed Jun 19, 2022
1 parent 9dcb0a9 commit e174d0d
Show file tree
Hide file tree
Showing 6 changed files with 83 additions and 35 deletions.
41 changes: 21 additions & 20 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@
{
"name": "PlatformIO",
"includePath": [
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/include",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/RCMv2",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/ESP32_easy_wifi_data/include",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/ESP32_easy_wifi_data/src",
"c:/Users/Joshua/Desktop/RCMv2/include",
"c:/Users/Joshua/Desktop/RCMv2/RCMv2",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/ESP32_easy_wifi_data/include",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/ESP32_easy_wifi_data/src",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/JMotor/include",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/JMotor/src",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/JMotor/include",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/JMotor/src",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/Derivs_Limiter/include",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/Derivs_Limiter/src",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/Derivs_Limiter/include",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/Derivs_Limiter/src",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/config",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/newlib/platform_include",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include",
Expand Down Expand Up @@ -189,8 +189,8 @@
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fb_gfx/include",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/cores/esp32",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/variants/esp32",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/EnableInterrupt",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/EnableInterrupt/utility",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/EnableInterrupt",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/EnableInterrupt/utility",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
Expand Down Expand Up @@ -225,16 +225,16 @@
"browse": {
"limitSymbolsToIncludedHeaders": true,
"path": [
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/include",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/RCMv2",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/ESP32_easy_wifi_data/include",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/ESP32_easy_wifi_data/src",
"c:/Users/Joshua/Desktop/RCMv2/include",
"c:/Users/Joshua/Desktop/RCMv2/RCMv2",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/ESP32_easy_wifi_data/include",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/ESP32_easy_wifi_data/src",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/JMotor/include",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/JMotor/src",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/JMotor/include",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/JMotor/src",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/libraries/Wire/src",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/Derivs_Limiter/include",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/Derivs_Limiter/src",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/Derivs_Limiter/include",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/Derivs_Limiter/src",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/config",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/newlib/platform_include",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/freertos/include",
Expand Down Expand Up @@ -406,8 +406,8 @@
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/include/fb_gfx/include",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/cores/esp32",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/variants/esp32",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/EnableInterrupt",
"g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/libdeps/esp32dev/EnableInterrupt/utility",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/EnableInterrupt",
"c:/Users/Joshua/Desktop/RCMv2/.pio/libdeps/esp32dev/EnableInterrupt/utility",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/libraries/ArduinoOTA/src",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src",
"C:/Users/Joshua/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src",
Expand Down Expand Up @@ -443,6 +443,7 @@
"defines": [
"PLATFORMIO=60002",
"ARDUINO_ESP32_DEV",
"CORE_DEBUG_LEVEL=0",
"HAVE_CONFIG_H",
"MBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"",
"UNITY_INCLUDE_CONFIG_H",
Expand Down
6 changes: 3 additions & 3 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug",
"executable": "g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/build/esp32dev/firmware.elf",
"executable": "c:/Users/Joshua/Desktop/RCMv2/.pio/build/esp32dev/firmware.elf",
"projectEnvName": "esp32dev",
"toolchainBinDir": "C:/Users/Joshua/.platformio/packages/[email protected]+2021r2-patch3/bin",
"internalConsoleOptions": "openOnSessionStart",
Expand All @@ -25,7 +25,7 @@
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug (skip Pre-Debug)",
"executable": "g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/build/esp32dev/firmware.elf",
"executable": "c:/Users/Joshua/Desktop/RCMv2/.pio/build/esp32dev/firmware.elf",
"projectEnvName": "esp32dev",
"toolchainBinDir": "C:/Users/Joshua/.platformio/packages/[email protected]+2021r2-patch3/bin",
"internalConsoleOptions": "openOnSessionStart"
Expand All @@ -34,7 +34,7 @@
"type": "platformio-debug",
"request": "launch",
"name": "PIO Debug (without uploading)",
"executable": "g:/My Drive/JoshuaFiles/Current/Projects/rcmgames/RCMv2/.pio/build/esp32dev/firmware.elf",
"executable": "c:/Users/Joshua/Desktop/RCMv2/.pio/build/esp32dev/firmware.elf",
"projectEnvName": "esp32dev",
"toolchainBinDir": "C:/Users/Joshua/.platformio/packages/[email protected]+2021r2-patch3/bin",
"internalConsoleOptions": "openOnSessionStart",
Expand Down
6 changes: 5 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
{
"cSpell.words": [
"millis"
"Hotspot",
"millis",
"STACONNECTED",
"STADISCONNECTED",
"STAIPASSIGNED"
]
}
61 changes: 52 additions & 9 deletions RCMv2/RCMv2.ino
Original file line number Diff line number Diff line change
@@ -1,33 +1,66 @@
// https://github.com/rcmgames/RCMv2
#include "rcm.h" //defines pins
#include <ESP32_easy_wifi_data.h> //https://github.com/joshua-8/ESP32_easy_wifi_data
#include <ESP32_easy_wifi_data.h> //https://github.com/joshua-8/ESP32_easy_wifi_data >=v1.0.0
#include <JMotor.h> //https://github.com/joshua-8/JMotor

// set up motors and anything else you need here

float speed = 0;
float turn = 0;

float lSpeed = 0;
float rSpeed = 0;

const int dacUnitsPerVolt = 380;
JVoltageCompMeasure<10> voltageComp = JVoltageCompMeasure<10>(batMonitorPin, dacUnitsPerVolt);

// https://github.com/joshua-8/JMotor/wiki/How-to-set-up-a-drivetrain
JMotorDriverEsp32L293 leftDriver = JMotorDriverEsp32L293(portA); // left motor is connected to port A
// motor_stop_voltage, motor_stop_speed, motor_start_voltage, motor_start_speed, motor_high_voltage, motor_high_speed, start_boost_time
JMotorCompStandardConfig leftMotorConfig = JMotorCompStandardConfig(1.9, .553, 3.2, 1.24, 4.6, 1.89, 100);
JMotorCompStandard leftMotorCompensator = JMotorCompStandard(voltageComp, leftMotorConfig, 100);
JMotorControllerOpen lMotor = JMotorControllerOpen(leftDriver, leftMotorCompensator);

JMotorDriverEsp32L293 rightDriver
= JMotorDriverEsp32L293(portD); // right motor is connected to port D
// motor_stop_voltage, motor_stop_speed, motor_start_voltage, motor_start_speed, motor_high_voltage, motor_high_speed, start_boost_time
JMotorCompStandardConfig rightMotorConfig = JMotorCompStandardConfig(1.9, .553, 3.2, 1.24, 4.6, 1.89, 100);
JMotorCompStandard rightMotorCompensator = JMotorCompStandard(voltageComp, rightMotorConfig, 100);
JMotorControllerOpen rMotor = JMotorControllerOpen(rightDriver, rightMotorCompensator);

JDrivetrainTwoSide drivetrain = JDrivetrainTwoSide(lMotor, rMotor, 0.15); // width
JDrivetrainControllerBasic drive = JDrivetrainControllerBasic(drivetrain, { INFINITY, INFINITY, INFINITY }, { .05, 0, 1 }, { 0, 0, 0 });

void configWifi()
{ // see https://github.com/joshua-8/ESP32_easy_wifi_data/blob/master/examples/fullExample/fullExample.ino
EWD::routerName = " "; // name of the wifi network you want to connect to
EWD::routerPass = " "; // password for your wifi network (enter "-open-network-" if the network has no password) (default: -open-network-)
EWD::wifiPort = 25220; // what port the esp32 communicates on if connected to a wifi network (default: 25210)
{

EWD::mode = EWD::Mode::connectToNetwork;
EWD::routerName = "router";
EWD::routerPassword = "password";
EWD::routerPort = 25210;

// EWD::mode = EWD::Mode::createAP;
// EWD::APName = "rcm0";
// EWD::APPassword = "rcmpassword";
// EWD::APPort = 25210;
}

void Enabled()
{
// code to run while enabled
drive.moveVel({ speed * drive.getMaxVel().x, 0, turn * drive.getMaxVel().theta });
}

void Enable()
{
// turn on outputs
drive.enable();
}

void Disable()
{
// shut off all outputs
drive.disable();
}

void PowerOn()
Expand All @@ -38,17 +71,22 @@ void PowerOn()
void Always()
{
// always runs if void loop is running, JMotor run() functions can be put here
drive.run();
delay(1);
}

void WifiDataToParse()
{
enabled = EWD::recvBl();
// add data to read here: (EWD::recvBl, EWD::recvBy, EWD::recvIn, EWD::recvFl)(boolean, byte, int, float)
speed = EWD::recvFl();
EWD::recvFl();
turn = -EWD::recvFl(); // inverted to translate from standard rcmDS reference frame to JMotor/ROS standard
}
void WifiDataToSend()
{
EWD::sendFl(voltageComp.getSupplyVoltage());
// add data to send here:
// add data to send here: (EWD::sendBl(), EWD::sendBy(), EWD::sendIn(), EWD::sendFl())(boolean, byte, int, float)
}

void setup()
Expand All @@ -64,7 +102,7 @@ void setup()
void loop()
{ // don't edit
EWD::runWifiCommunication();
if (EWD::timedOut()) {
if (!EWD::wifiConnected || EWD::timedOut()) {
enabled = false;
}
Always();
Expand All @@ -76,9 +114,14 @@ void loop()
}
if (enabled) {
Enabled();
digitalWrite(ONBOARD_LED, millis() % 500 < 250);
digitalWrite(ONBOARD_LED, millis() % 500 < 250); // flash, enabled
} else {
digitalWrite(ONBOARD_LED, HIGH);
if (!EWD::wifiConnected)
digitalWrite(ONBOARD_LED, millis() % 1000 <= 100); // short flash, wifi connection fail
else if (EWD::timedOut())
digitalWrite(ONBOARD_LED, millis() % 1000 >= 100); // long flash, no driver station connected
else
digitalWrite(ONBOARD_LED, HIGH); // on, disabled
}
wasEnabled = enabled;
}
File renamed without changes.
4 changes: 2 additions & 2 deletions platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@
default_envs = esp32dev
src_dir = RCMv2


[env:esp32dev]
framework = arduino
platform = espressif32@^4.2.0
board = esp32dev
build_flags = -DCORE_DEBUG_LEVEL=0
monitor_speed = 115200
lib_deps =
joshua1024/JMotor@^0.11.0
joshua1024/ESP32_easy_wifi_data@^0.3.0
joshua1024/ESP32_easy_wifi_data@^1.0.0

0 comments on commit e174d0d

Please sign in to comment.