3#include <driver/spi_master.h>
72 float readLine(
bool white_line =
false,
float line_threshold = 0.20f)
const;
103 void calibrateResults(uint16_t* dest)
const;
104 inline uint16_t calibrateValue(
int chan, uint16_t val)
const;
106 CalibrationData m_calibration;
The MCP3008 driver.
Definition: mcp3008_driver.h:15
static constexpr int CHANNELS
Amount of channels on the chip.
Definition: mcp3008_driver.h:17
This class represents a single sensor calibration session.
Definition: mcp3008_linesensor.h:124
void save()
Store the calibrated values to the parent LineSensor.
Definition: mcp3008_linesensor.cpp:167
void reset()
Reset this calibrator to the initial state.
Definition: mcp3008_linesensor.cpp:137
~LineSensorCalibrator()
Definition: mcp3008_linesensor.cpp:134
esp_err_t record()
Record current sensor values.
Definition: mcp3008_linesensor.cpp:144
The LineSensor device, based on MCP3008 chip.
Definition: mcp3008_linesensor.h:18
uint16_t calibratedReadChannel(uint8_t channel, esp_err_t *result=nullptr) const
Same as Driver::readChannel(), but returns calibrated data.
Definition: mcp3008_linesensor.cpp:124
const CalibrationData & getCalibration() const
Get the calibration data used by linesensor, feel free to save this structure somewhere and load it a...
Definition: mcp3008_linesensor.h:47
LineSensorCalibrator startCalibration()
Start the sensor line calibration procedure.
Definition: mcp3008_linesensor.cpp:21
struct mcp3008::LineSensor::CalibrationData __attribute__((packed))
bool setCalibration(const CalibrationData &data)
Set calibration data used by the line sensor.
Definition: mcp3008_linesensor.cpp:75
esp_err_t calibratedRead(std::vector< uint16_t > &results) const
Same as Driver::read(), but returns calibrated result if possible.
Definition: mcp3008_linesensor.cpp:110
virtual ~LineSensor()
Definition: mcp3008_linesensor.cpp:18
float readLine(bool white_line=false, float line_threshold=0.20f) const
Try to determine a black line's position under the sensors.
Definition: mcp3008_linesensor.cpp:25
LineSensor()
Definition: mcp3008_linesensor.cpp:10
Definition: mcp3008_driver.cpp:8
The LineSensor's calibration data.
Definition: mcp3008_linesensor.h:26
uint16_t range[Driver::CHANNELS]
Definition: mcp3008_linesensor.h:28
uint16_t min[Driver::CHANNELS]
Definition: mcp3008_linesensor.h:27