Hallo zusammen,
leider bin ich nicht zu meinem Thema fündig geworden.
Da ich weder tiefergehnede C++ Kenntnisse habe und dies mein erstes kleines Projekt ist, bin ich mit meinem Latein am Ende. Hier erstmal ein paar hintergrund Infos: Ich möchte zwei unabhängig voneinander funktionierende Codes zusammenführen und verwenden.
Projekt:
Es soll eine Low Cost AR-Brille werden, welche mit einer Kamera einen QR-Code erkennen, decodieren und den Text auf einem Display ausgeben soll. Die Displays werden auf die Brillengläser gespiegelt.
Hardware:
- ESP32-Cam Ai-Thinker
- TFT ST7798
(Arduino 1.8.18)
Code:
Ich habe einen Code, welcher den QR-Code decodieren kann und das Ergebniss im Seriellen Monitor ausgibt. Das funktioniert soweit ganz gut. QR-CodeReader
#include <Arduino.h>
#include <ESP32QRCodeReader.h>
ESP32QRCodeReader reader(CAMERA_MODEL_AI_THINKER);
void onQrCodeTask(void *pvParameters)
{
struct QRCodeData qrCodeData;
while (true)
{
if (reader.receiveQrCode(&qrCodeData, 100))
{
Serial.println("Found QRCode");
if (qrCodeData.valid)
{
Serial.print("Payload: ");
Serial.println((const char *)qrCodeData.payload);
}
else
{
Serial.print("Invalid: ");
Serial.println((const char *)qrCodeData.payload);
}
}
vTaskDelay(100 / portTICK_PERIOD_MS);
}
}
void setup()
{
Serial.begin(115200);
Serial.println();
reader.setup();
Serial.println("Setup QRCode Reader");
reader.beginOnCore(1);
Serial.println("Begin on Core 1");
xTaskCreate(onQrCodeTask, "onQrCode", 4 * 1024, NULL, 4, NULL);
}
void loop()
{
delay(100);
}
Der zweite Code ist ein angepasstes Beispiel aus der TFT_eSPI library, welches auch eigenständig funktioniert:
#include <TFT_eSPI.h>
#include <SPI.h>
#define TDELAY 500
TFT_eSPI tft = TFT_eSPI();
void setup() {
Serial.begin(115200);
tft.init();
tft.fillScreen(TFT_BLACK);
tft.setRotation(1);
}
void loop() {
delay(TDELAY);
tft.setCursor(20, 80);
tft.setTextColor(TFT_WHITE);
tft.setTextSize(2);
tft.println("Hello World!");
}
Mein Problem ist, dass sich beim zusammenführen entweder der ESP in einem Bootloop aufhängt oder der Code in der while Schleife des QRCodeReaders befindet, jedoch keinen QR Code erkennt geschweigedenn decodiert.
Ich habe rausfinden können, dass das ganze an einer Speicherzuweisung liegen kann, hierfür fehlt mir jedoch das Know-How....
Kann mir hier jmd weiterhelfen? Falls noch weitere Informationen benötigt werden bitte einfach erfragen, Danke.