mirror of
https://gitlab.dit.htwk-leipzig.de/phillip.kuehne/dezibot.git
synced 2025-05-20 11:31:48 +02:00
add basic PT Reading
This commit is contained in:
parent
dbe97dc94c
commit
1d074f26d1
@ -7,7 +7,12 @@ Dezibot dezibot = Dezibot();
|
|||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
dezibot.begin();
|
dezibot.begin();
|
||||||
|
Serial.begin(9600);
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
Serial.println("FooBarBaz");
|
||||||
|
Serial.println(dezibot.lightDetection.getValue(DL_FRONT));
|
||||||
|
delay(1000);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -26,57 +26,5 @@ Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
|
|||||||
#define GPIO_LED 48
|
#define GPIO_LED 48
|
||||||
|
|
||||||
void Dezibot::begin(void) {
|
void Dezibot::begin(void) {
|
||||||
Adafruit_NeoPixel ledStrip = Adafruit_NeoPixel(3, GPIO_LED, NEO_GRB + NEO_KHZ800);
|
lightDetection.begin();
|
||||||
Wire.begin(1, 2);
|
|
||||||
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
|
|
||||||
Serial.println("SSD1306 allocation failed");
|
|
||||||
for (;;); // Don't proceed, loop forever
|
|
||||||
}
|
|
||||||
|
|
||||||
display.display();
|
|
||||||
vTaskDelay(2000);
|
|
||||||
display.clearDisplay();
|
|
||||||
vTaskDelay(2000);
|
|
||||||
|
|
||||||
// Draw a single pixel in white
|
|
||||||
display.drawPixel(10, 10, SSD1306_WHITE);
|
|
||||||
|
|
||||||
// Show the display buffer on the screen. You MUST call display() after
|
|
||||||
// drawing commands to make them visible on screen!
|
|
||||||
display.display();
|
|
||||||
vTaskDelay(2000);
|
|
||||||
|
|
||||||
Serial.begin(9600);
|
|
||||||
Serial.println("start");
|
|
||||||
|
|
||||||
|
|
||||||
vTaskDelay(1000);
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
/* Blink off (output low) */
|
|
||||||
ledStrip.setPixelColor(1, ledStrip.Color(100, 100, 100));
|
|
||||||
ledStrip.show(); // Aktualisiere die Farbe des Pixels
|
|
||||||
vTaskDelay(1000);
|
|
||||||
/* Blink on (output high) */
|
|
||||||
ledStrip.setPixelColor(1, ledStrip.Color(0, 0, 0));
|
|
||||||
ledStrip.show(); // Aktualisiere die Farbe des Pixels
|
|
||||||
vTaskDelay(1000);
|
|
||||||
|
|
||||||
struct timeval tv_now;
|
|
||||||
gettimeofday(&tv_now, NULL);
|
|
||||||
int64_t time_us = (int64_t) tv_now.tv_sec * 1000000L + (int64_t) tv_now.tv_usec;
|
|
||||||
|
|
||||||
|
|
||||||
Serial.println(time_us);
|
|
||||||
|
|
||||||
display.clearDisplay();
|
|
||||||
|
|
||||||
display.setTextSize(2); // Draw 2X-scale text
|
|
||||||
display.setTextColor(SSD1306_WHITE);
|
|
||||||
display.setCursor(10, 0);
|
|
||||||
display.println(F("scroll"));
|
|
||||||
display.display(); // Show initial text
|
|
||||||
vTaskDelay(1000);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -17,6 +17,7 @@
|
|||||||
#include "multiColorLight/MultiColorLight.h"
|
#include "multiColorLight/MultiColorLight.h"
|
||||||
#include "motionDetection/MotionDetection.h"
|
#include "motionDetection/MotionDetection.h"
|
||||||
|
|
||||||
|
|
||||||
class Dezibot {
|
class Dezibot {
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
@ -1,8 +1,83 @@
|
|||||||
|
/**
|
||||||
|
* @file LightDetection.h
|
||||||
|
* @author Hans Haupt (hans.haupt@dezibot.de)
|
||||||
|
* @brief Class for Reading the values of the different Phototransistors, both IR, and DaylightSensors are supported.
|
||||||
|
* @version 0.1
|
||||||
|
* @date 2024-04-26
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2024
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef LightDetection_h
|
#ifndef LightDetection_h
|
||||||
#define LightDetection_h
|
#define LightDetection_h
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
enum photoTransistors{
|
||||||
|
IR_LEFT,
|
||||||
|
IR_RIGHT,
|
||||||
|
IR_FRONT,
|
||||||
|
IR_BACK,
|
||||||
|
DL_FRONT,
|
||||||
|
DL_BOTTOM
|
||||||
|
};
|
||||||
|
|
||||||
|
enum ptType{
|
||||||
|
IR,
|
||||||
|
DAYLIGHT
|
||||||
|
};
|
||||||
|
|
||||||
//beinhaltet IR + Tageslicht
|
|
||||||
class LightDetection{
|
class LightDetection{
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* @brief initialize the Lightdetection Compnent, must be called before the other methods are used.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void begin(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief reads the Value of the specified sensor
|
||||||
|
*
|
||||||
|
* @param sensor which sensor to read
|
||||||
|
* @return uint the reading of the sensor. between 0-4095
|
||||||
|
*/
|
||||||
|
uint16_t getValue(photoTransistors sensor);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief can be used to determine which sensor is exposed to the greatest amount of light
|
||||||
|
* Can distingish between IR and Daylight
|
||||||
|
*
|
||||||
|
* @param type select which PTTransistors to compare
|
||||||
|
* @return photoTransistors which sensor is exposed to the greatest amount of light
|
||||||
|
*/
|
||||||
|
photoTransistors getBrightest(ptType type);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the Average of multiple measurments of a single PT
|
||||||
|
*
|
||||||
|
* @param sensor Which Phototransistor should be read
|
||||||
|
* @param measurments how many measurements should be taken
|
||||||
|
* @param timeBetween which time should elapse between
|
||||||
|
* @return the average of all taken meaurments
|
||||||
|
*/
|
||||||
|
uint32_t getAverageValue(photoTransistors sensor, uint32_t measurments, uint32_t timeBetween);
|
||||||
|
protected:
|
||||||
|
static const uint8_t IR_PT_FRONT_ADC = 3;
|
||||||
|
static const uint8_t IR_PT_LEFT_ADC = 4;
|
||||||
|
static const uint8_t IR_PT_RIGHT_ADC = 5;
|
||||||
|
static const uint8_t IR_PT_BACK_ADC = 6;
|
||||||
|
|
||||||
|
static const uint8_t DL_PT_FRONT_ADC = 7;
|
||||||
|
static const uint8_t DL_PT_BOTTOM_ADC = 8;
|
||||||
|
|
||||||
|
static const uint8_t DL_PT_ENABLE = 41;
|
||||||
|
static const uint8_t IR_PT_ENABLE = 40;
|
||||||
|
void beginInfrared(void);
|
||||||
|
void beginDaylight(void);
|
||||||
|
uint16_t readIRPT(photoTransistors sensor);
|
||||||
|
uint16_t readDLPT(photoTransistors sensor);
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
#endif //LightDetection_h
|
#endif //LightDetection_h
|
Loading…
x
Reference in New Issue
Block a user