including homing sensor

This commit is contained in:
2024-11-23 22:01:01 +01:00
parent de2c0c167c
commit 2dc06e8d79
5 changed files with 35 additions and 16 deletions
+2
View File
@@ -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
View File
@@ -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)
+12 -11
View File
@@ -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
View File
@@ -1,2 +1,2 @@
idf_component_register(SRCS "watch_main.cpp" idf_component_register(SRCS "watchMain.cpp"
INCLUDE_DIRS ".") INCLUDE_DIRS ".")
+19 -3
View File
@@ -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);