mirror of
https://gitlab.dit.htwk-leipzig.de/phillip.kuehne/dezibot.git
synced 2025-05-19 02:51:47 +02:00
Add power test case
This commit is contained in:
parent
59e2ec3d10
commit
2f2c6f2860
@ -0,0 +1,102 @@
|
||||
#include "Dezibot.h"
|
||||
|
||||
/*
|
||||
* Test case of varying power consumption, with logging of modeled state on
|
||||
* secondary UART.
|
||||
*/
|
||||
|
||||
Dezibot dezibot;
|
||||
|
||||
// Using alternate Serial pins to not be powered by the USB port
|
||||
#define RXD_HEADER 16
|
||||
#define TXD_HEADER 17
|
||||
|
||||
// Task for running through LED brightness levels
|
||||
void powerChange(void *pvParameters) {
|
||||
while (true) {
|
||||
dezibot.infraredLight.bottom.turnOn();
|
||||
delay(1000);
|
||||
dezibot.infraredLight.bottom.turnOff();
|
||||
delay(1000);
|
||||
}
|
||||
}
|
||||
|
||||
// Task for periodic logging of power state
|
||||
void outputCsvLine(void *pvParameters) {
|
||||
while (true) {
|
||||
Serial1.printf(
|
||||
"%d,%f,%f,%f,%f,%f,%d,%d,%d,%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%"
|
||||
"f,%f,%f,%f\r\n",
|
||||
millis(), dezibot.power.getCurrentCurrent(),
|
||||
dezibot.power.getMax3V3Current(),
|
||||
dezibot.power.getBatteryChargePercent(),
|
||||
dezibot.power.getBatteryChargeCoulombs(),
|
||||
dezibot.power.getBatteryVoltage(), dezibot.power.isUSBPowered(),
|
||||
dezibot.power.isBatteryPowered(), dezibot.power.isBatteryCharging(),
|
||||
dezibot.power.isBatteryDischarging(),
|
||||
dezibot.power.isBatteryFullyCharged(),
|
||||
dezibot.power.getConsumerCurrent(PowerParameters::PowerConsumers::ESP),
|
||||
dezibot.power.getConsumerCurrent(PowerParameters::PowerConsumers::WIFI),
|
||||
dezibot.power.getConsumerCurrent(
|
||||
PowerParameters::PowerConsumers::LED_RGB_TOP_LEFT),
|
||||
dezibot.power.getConsumerCurrent(
|
||||
PowerParameters::PowerConsumers::LED_RGB_TOP_RIGHT),
|
||||
dezibot.power.getConsumerCurrent(
|
||||
PowerParameters::PowerConsumers::LED_RGB_BOTTOM),
|
||||
dezibot.power.getConsumerCurrent(
|
||||
PowerParameters::PowerConsumers::RGBW_SENSOR),
|
||||
dezibot.power.getConsumerCurrent(
|
||||
PowerParameters::PowerConsumers::LED_IR_FRONT),
|
||||
dezibot.power.getConsumerCurrent(
|
||||
PowerParameters::PowerConsumers::LED_IR_BOTTOM),
|
||||
dezibot.power.getConsumerCurrent(
|
||||
PowerParameters::PowerConsumers::PT_IR),
|
||||
dezibot.power.getConsumerCurrent(
|
||||
PowerParameters::PowerConsumers::PT_DL),
|
||||
dezibot.power.getConsumerCurrent(
|
||||
PowerParameters::PowerConsumers::LED_UV),
|
||||
dezibot.power.getConsumerCurrent(
|
||||
PowerParameters::PowerConsumers::DISPLAY_OLED),
|
||||
dezibot.power.getConsumerCurrent(
|
||||
PowerParameters::PowerConsumers::MOTOR_LEFT),
|
||||
dezibot.power.getConsumerCurrent(
|
||||
PowerParameters::PowerConsumers::MOTOR_RIGHT),
|
||||
dezibot.power.getConsumerCurrent(PowerParameters::PowerConsumers::IMU));
|
||||
delay(100);
|
||||
}
|
||||
}
|
||||
|
||||
void setup() {
|
||||
dezibot.begin();
|
||||
Serial1.begin(115200, SERIAL_8N1, RXD_HEADER, TXD_HEADER);
|
||||
// Output CSV-Header for Timestamp and modelled current of all components
|
||||
Serial1.printf(
|
||||
"Timestamp (ms),Current (mA),calculated max current (mA),charge "
|
||||
"(%%),charge (C),voltage "
|
||||
"(V),isUSBPowered,isBatteryPowered,isBatteryCharging,"
|
||||
"isBatteryDischarging,isBatteryFullyCharged,ESP (mA),WIFI "
|
||||
"(mA),LED_RGB_TOP_LEFT (mA),"
|
||||
"LED_RGB_TOP_RIGHT (mA),LED_RGB_BOTTOM (mA),RGBW_SENSOR "
|
||||
"(mA),LED_IR_FRONT (mA),LED_IR_BOTTOM (mA),PT_IR (mA),PT_DL (mA),"
|
||||
"LED_UV (mA),DISPLAY_OLED (mA),MOTOR_LEFT (mA),MOTOR_RIGHT "
|
||||
"(mA),IMU (mA)\r\n");
|
||||
// Start logging task
|
||||
xTaskCreate(outputCsvLine, "outputCsvLine", 4096, NULL, tskIDLE_PRIORITY, NULL);
|
||||
|
||||
// Start power consumption task
|
||||
xTaskCreate(powerChange, "powerChange", 4096, NULL, tskIDLE_PRIORITY, NULL);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
while (true) {
|
||||
dezibot.multiColorLight.turnOffLed();
|
||||
for (leds led : {TOP_LEFT, TOP_RIGHT, BOTTOM, TOP, ALL}) {
|
||||
dezibot.multiColorLight.setLed(led, 255, 0, 0);
|
||||
delay(1000);
|
||||
dezibot.multiColorLight.setLed(led, 0, 255, 0);
|
||||
delay(1000);
|
||||
dezibot.multiColorLight.setLed(led, 0, 0, 255);
|
||||
delay(1000);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user