including homing sensor
This commit is contained in:
Vendored
+2
@@ -1,4 +1,6 @@
|
|||||||
{
|
{
|
||||||
|
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -2, NamespaceIndentation: All, FixNamespaceComments: false }",
|
||||||
|
|
||||||
"C_Cpp.intelliSenseEngine": "default",
|
"C_Cpp.intelliSenseEngine": "default",
|
||||||
"idf.adapterTargetName": "esp32",
|
"idf.adapterTargetName": "esp32",
|
||||||
"idf.customExtraPaths": "C:\\Tools\\ESP\\tools\\xtensa-esp-elf-gdb\\14.2_20240403\\xtensa-esp-elf-gdb\\bin;C:\\Tools\\ESP\\tools\\riscv32-esp-elf-gdb\\14.2_20240403\\riscv32-esp-elf-gdb\\bin;C:\\Tools\\ESP\\tools\\xtensa-esp-elf\\esp-13.2.0_20240530\\xtensa-esp-elf\\bin;C:\\Tools\\ESP\\tools\\riscv32-esp-elf\\esp-13.2.0_20240530\\riscv32-esp-elf\\bin;C:\\Tools\\ESP\\tools\\esp32ulp-elf\\2.38_20240113\\esp32ulp-elf\\bin;C:\\Tools\\ESP\\tools\\cmake\\3.24.0\\bin;C:\\Tools\\ESP\\tools\\openocd-esp32\\v0.12.0-esp32-20240318\\openocd-esp32\\bin;C:\\Tools\\ESP\\tools\\ninja\\1.11.1;C:\\Tools\\ESP\\tools\\idf-exe\\1.0.3;C:\\Tools\\ESP\\tools\\ccache\\4.8\\ccache-4.8-windows-x86_64;C:\\Tools\\ESP\\tools\\dfu-util\\0.11\\dfu-util-0.11-win64;C:\\Tools\\ESP\\tools\\esp-rom-elfs\\20240305",
|
"idf.customExtraPaths": "C:\\Tools\\ESP\\tools\\xtensa-esp-elf-gdb\\14.2_20240403\\xtensa-esp-elf-gdb\\bin;C:\\Tools\\ESP\\tools\\riscv32-esp-elf-gdb\\14.2_20240403\\riscv32-esp-elf-gdb\\bin;C:\\Tools\\ESP\\tools\\xtensa-esp-elf\\esp-13.2.0_20240530\\xtensa-esp-elf\\bin;C:\\Tools\\ESP\\tools\\riscv32-esp-elf\\esp-13.2.0_20240530\\riscv32-esp-elf\\bin;C:\\Tools\\ESP\\tools\\esp32ulp-elf\\2.38_20240113\\esp32ulp-elf\\bin;C:\\Tools\\ESP\\tools\\cmake\\3.24.0\\bin;C:\\Tools\\ESP\\tools\\openocd-esp32\\v0.12.0-esp32-20240318\\openocd-esp32\\bin;C:\\Tools\\ESP\\tools\\ninja\\1.11.1;C:\\Tools\\ESP\\tools\\idf-exe\\1.0.3;C:\\Tools\\ESP\\tools\\ccache\\4.8\\ccache-4.8-windows-x86_64;C:\\Tools\\ESP\\tools\\dfu-util\\0.11\\dfu-util-0.11-win64;C:\\Tools\\ESP\\tools\\esp-rom-elfs\\20240305",
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
cmake_minimum_required(VERSION 3.16)
|
||||||
|
|
||||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||||
project(X_WatchController-FW)
|
project(X_WatchController_FW)
|
||||||
|
|||||||
@@ -128,17 +128,17 @@ class StepperMotor {
|
|||||||
|
|
||||||
void findRef() {
|
void findRef() {
|
||||||
ESP_LOGI("Stepper", "Homing ...");
|
ESP_LOGI("Stepper", "Homing ...");
|
||||||
// if (_initSensor.read()) {
|
if (_initSensor.read()) {
|
||||||
// _mode = Mode::HomingFromSensor;
|
_mode = Mode::HomingFromSensor;
|
||||||
// ESP_LOGI("Stepper", "First leave HomePos");
|
ESP_LOGI("Stepper", "First leave HomePos");
|
||||||
// } else {
|
} else {
|
||||||
// _mode = Mode::HomingToSensorBegin;
|
_mode = Mode::HomingToSensorBegin;
|
||||||
// ESP_LOGI("Stepper", "Find start of HomePos");
|
ESP_LOGI("Stepper", "Find start of HomePos");
|
||||||
// }
|
}
|
||||||
|
|
||||||
// while (_mode != Mode::Idle) {
|
while (_mode != Mode::Idle) {
|
||||||
// fos::Task::delayTicks(1);
|
fos::Task::delayTicks(1);
|
||||||
// }
|
}
|
||||||
|
|
||||||
int fullStep = _config.resolution / 4;
|
int fullStep = _config.resolution / 4;
|
||||||
_driver.setPos(0);
|
_driver.setPos(0);
|
||||||
@@ -252,7 +252,7 @@ class StepperMotor {
|
|||||||
Trajectory _trajectory{};
|
Trajectory _trajectory{};
|
||||||
Position<50, 5> _indexPos{};
|
Position<50, 5> _indexPos{};
|
||||||
|
|
||||||
static bool IRAM_ATTR TimerCallParam(HwTimerT<StepperMotor &> &, StepperMotor &stepper) {
|
static bool TimerCallParam(HwTimerT<StepperMotor &> &, StepperMotor &stepper) {
|
||||||
switch (stepper._mode) {
|
switch (stepper._mode) {
|
||||||
case Mode::HomingFromSensor: {
|
case Mode::HomingFromSensor: {
|
||||||
if (stepper._initSensor.read() == false) {
|
if (stepper._initSensor.read() == false) {
|
||||||
@@ -302,6 +302,7 @@ class StepperMotor {
|
|||||||
} break;
|
} break;
|
||||||
|
|
||||||
case Mode::Idle:
|
case Mode::Idle:
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
idf_component_register(SRCS "watch_main.cpp"
|
idf_component_register(SRCS "watchMain.cpp"
|
||||||
INCLUDE_DIRS ".")
|
INCLUDE_DIRS ".")
|
||||||
|
|||||||
+19
-3
@@ -26,10 +26,12 @@
|
|||||||
#include "ethernet_init.h"
|
#include "ethernet_init.h"
|
||||||
#include "esp_netif.h"
|
#include "esp_netif.h"
|
||||||
#include "esp_eth.h"
|
#include "esp_eth.h"
|
||||||
|
|
||||||
// Component header
|
// Component header
|
||||||
#include "Task.hpp"
|
#include "Task.hpp"
|
||||||
#include "PwmExpanderPca9685.hpp"
|
#include "PwmExpanderPca9685.hpp"
|
||||||
#include "StepperDrv8833.hpp"
|
#include "StepperDrv8833.hpp"
|
||||||
|
#include "stepperMotor.hpp"
|
||||||
|
|
||||||
static const char *TAG = "Watch";
|
static const char *TAG = "Watch";
|
||||||
static esp_eth_handle_t s_eth_handle = NULL;
|
static esp_eth_handle_t s_eth_handle = NULL;
|
||||||
@@ -151,17 +153,31 @@ void MovementTask() {
|
|||||||
StepperDriverDrv8833 stepperDriver(stepperPins, MicroSteps);
|
StepperDriverDrv8833 stepperDriver(stepperPins, MicroSteps);
|
||||||
stepperDriver.setPos(0);
|
stepperDriver.setPos(0);
|
||||||
|
|
||||||
while (true) {
|
StepperMotor::Config stepperCfg{1.8F, MicroSteps};
|
||||||
|
InputPort initSens(GPIO_NUM_33);
|
||||||
|
initSens.setLogic(GpioPort::Logic::Inverted);
|
||||||
|
StepperMotor stepper(stepperCfg, stepperDriver, initSens);
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
while (i++ < 80) {
|
||||||
stepperDriver.step(1);
|
stepperDriver.step(1);
|
||||||
stepperDriver.getSubPos();
|
stepperDriver.getSubPos();
|
||||||
fos::Task::delayMs(100);
|
fos::Task::delayMs(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ESP_LOGI("Stepper", "Find Home");
|
||||||
|
stepper.findRef();
|
||||||
|
ESP_LOGI(TAG, "Fist Position is %f.2", stepper.getScaledPos() * 6);
|
||||||
|
fos::Task::delayMs(1000);
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
fos::Task::delayMs(100);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IoTest()
|
void IoTest()
|
||||||
{
|
{
|
||||||
ESP_LOGI(TAG, "Start IO");
|
ESP_LOGI(TAG, "Start IO");
|
||||||
InputPort in1(GPIO_NUM_33);
|
|
||||||
InputPort in2(GPIO_NUM_32);
|
InputPort in2(GPIO_NUM_32);
|
||||||
InputPort mFault(GPIO_NUM_35);
|
InputPort mFault(GPIO_NUM_35);
|
||||||
|
|
||||||
@@ -169,7 +185,7 @@ void IoTest()
|
|||||||
OutputPort nReset(GPIO_NUM_5);
|
OutputPort nReset(GPIO_NUM_5);
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
ESP_LOGI("Light", "InValues %i %i %i", in1.read(), in2.read(), mFault.read());
|
ESP_LOGI("Light", "InValues %i %i", in2.read(), mFault.read());
|
||||||
nEnable.write(true);
|
nEnable.write(true);
|
||||||
nReset.write(true);
|
nReset.write(true);
|
||||||
fos::Task::delayMs(500);
|
fos::Task::delayMs(500);
|
||||||
|
|||||||
Reference in New Issue
Block a user