diff --git a/arduino/leads_vec_power/Pedal.cpp b/arduino/leads_vec_power/Pedal.cpp new file mode 100644 index 0000000..e444cbe --- /dev/null +++ b/arduino/leads_vec_power/Pedal.cpp @@ -0,0 +1,10 @@ +#include "Pedal.h" + +Pedal::Pedal(const ArrayList &pins, float restValue, float maxValue) : Device(pins), _restValue(restValue), _maxValue(maxValue) {} + +Pedal::initialize(const ArrayList &parentTags) { + Device::initialize(parentTags); + pinMode(_pins[0], INPUT); +} + +float Pedal::read() { return ((float) analogRead(_pins[0]) / 1023 - _restValue) / _maxValue; } diff --git a/arduino/leads_vec_power/Pedal.h b/arduino/leads_vec_power/Pedal.h new file mode 100644 index 0000000..e945660 --- /dev/null +++ b/arduino/leads_vec_power/Pedal.h @@ -0,0 +1,18 @@ +#ifndef PEDAL_H +#define PEDAL_H + + +#include "Device.h" + +class Pedal : public Device { +protected: + float _restValue, _maxValue; + +public: + VoltageSensor(const ArrayList &pins, float restValue, float maxValue); + void initialize(const ArrayList &parentTags) override; + float read() override; +}; + + +#endif // PEDAL_H \ No newline at end of file diff --git a/arduino/leads_vec_power/leads_vec_power.ino b/arduino/leads_vec_power/leads_vec_power.ino index abb6447..4b2dc0e 100644 --- a/arduino/leads_vec_power/leads_vec_power.ino +++ b/arduino/leads_vec_power/leads_vec_power.ino @@ -1,4 +1,5 @@ #include "LEADS.h" +#include "Pedal.h" const int PIN_VOT[] = {A0}; diff --git a/leads_arduino/__init__.py b/leads_arduino/__init__.py index fedf6cb..c26b661 100644 --- a/leads_arduino/__init__.py +++ b/leads_arduino/__init__.py @@ -7,5 +7,6 @@ from leads_arduino.arduino_proto import * from leads_arduino.arduino_nano import * from leads_arduino.arduino_micro import * +from leads_arduino.pedal import * from leads_arduino.voltage_sensor import * from leads_arduino.wheel_speed_sensor import * diff --git a/leads_arduino/pedal.py b/leads_arduino/pedal.py new file mode 100644 index 0000000..dc1186e --- /dev/null +++ b/leads_arduino/pedal.py @@ -0,0 +1,27 @@ +from typing import override as _override + +from leads import Device as _Device + + +class Pedal(_Device): + """ + See LEADS-Arduino. + + Supports: + - Any analog pedal + """ + + def __init__(self) -> None: + super().__init__() + self._position: float = 0 + + @_override + def update(self, data: str) -> None: + self._position = float(data) + + @_override + def read(self) -> float: + """ + :return: pedal position that ranges from 0 to 1 + """ + return self._position