Ich habe ein ESP32-Cameramodul
(https://www.waveshare.com/esp32-cam.htm), welches ich unter idf 5.2
programmiere. Bilder aufnehmen und auf SD-Card speichern funktioniert
soweit.
Allerdings wird für jede Aufnahme die Blitzlicht-LED eingeschaltet, was
ich nicht möchte. Die LED hängt an GPIO4.
Ich sehe aber nicht, wie ich dieses deaktivieren könnte, und fände es
seltsam, wenn das wirklich nicht gehen würde.
Hier sind die wichtigsten Code-Zeilen in meinem Testprogramm
1
static camera_config_t camera_config = {
2
.pin_pwdn = CAM_PIN_PWDN,
3
.pin_reset = CAM_PIN_RESET,
4
.pin_xclk = CAM_PIN_XCLK,
5
.pin_sccb_sda = CAM_PIN_SIOD,
6
.pin_sccb_scl = CAM_PIN_SIOC,
7
8
.pin_d7 = CAM_PIN_D7,
9
.pin_d6 = CAM_PIN_D6,
10
.pin_d5 = CAM_PIN_D5,
11
.pin_d4 = CAM_PIN_D4,
12
.pin_d3 = CAM_PIN_D3,
13
.pin_d2 = CAM_PIN_D2,
14
.pin_d1 = CAM_PIN_D1,
15
.pin_d0 = CAM_PIN_D0,
16
.pin_vsync = CAM_PIN_VSYNC,
17
.pin_href = CAM_PIN_HREF,
18
.pin_pclk = CAM_PIN_PCLK,
19
20
// XCLK 20MHz or 10MHz for OV2640 double FPS (Experimental)
Ablöten möchte ich die LED erst mal nicht.
Als Input Konfigurieren könnte gehen.
Ich finde es einfach seltsam, dass es im Kamera-Code dafür keine
Konfigurationsoption gibt.
Anon X. schrieb:> Ich finde es einfach seltsam, dass es im Kamera-Code dafür keine> Konfigurationsoption gibt.
In China ist es üblich, Produkte (auch Software) zu verkaufen sobald
sie verkaufbar sind. Oft endet damit auch die Entwicklung. Findet man
nachträglich Mängel, geht man eher mit dem Preis runter, als sie zu
korrigieren. Es kommt ift vir, daß mangelhafte Produkte 10 Jahre lang
von eechselnden Firmen produziert werden. Man baut noch weiteren
Schnickschnack dazu, die Basis bleibt aber wie beim ersten Entwurf.
Deswegen ist es für deutsche Softwarefirmen so schwer, mit Chinesischen
programmierern zu arbeiten. Die liefern nach kurzer Zeit 80% ab und
sehen nicht ein, das Ding in deutschem Sinn fertig zu stellen.
Abgeliefert heisst für den Chinesen "fertig". Über unsere Interpretation
von Pareto lachen die nur.
Joachim B. schrieb:> Das wäre doch mal ein Grund die Finger stillzuhalten?
Du könntest auch mal aufhören, jeden Käse zu kommentieren. Insbesondere
was nichts mit dem Thread zu tun hat.
Mache doch einen eigenen Thread dafür auf, mit dem Titel "Joachim will
reden!". Oder noch passender "Joachim kommentiert Stefan". Da kannst du
dann all deine Flames sammeln, ohne andere Threads zu stören. Ich werde
dir auch ab und zu Feedback gegeben, damit das nicht wie ein krankes
Selbstgespräch aussieht.
> Ich finde es einfach seltsam, dass es im Kamera-Code dafür keine> Konfigurationsoption gibt.
Es liegt daran, dass die Flash-LED am GPIO4 (HS2_DATA1) hängt, der eben
auch mit Data1 des SD-Card Slots verbunden ist. (Schau mal hier:
https://github.com/SeeedDocument/forum_doc/blob/master/reg/ESP32_CAM_V1.6.pdf
)
Ein Möglichkeit wäre die SD im 1-Bit Modus zu betreiben, dann wird GPIO4
frei für die LED, wie hier (https://esp32.com/viewtopic.php?t=13141)
vorgeschlagen wurde.
Oder einen kleinen Hack, der die kleine rote Status-LED opfert und den
GPIO33 als Ansteuerung der Flash-LED verwendet. --> Link:
https://www.youtube.com/watch?v=loet1ndG8Sg
*edit: alternative Lösung angehängt.*
Danke für all die Inputs !
Hadmut F. schrieb:> Diue led wird mit ledc angesteuert.> Suchen, löschen. Det:> .ledc_timer = LEDC_TIMER_0,> .ledc_channel = LEDC_CHANNEL_0,
Das hat nicht funktioniert.
Am Ende habe ich den GPIO als Input konfiguriert:
1
esp_err_t err = esp_camera_init(&camera_config);
2
if (err != ESP_OK)
3
{
4
ESP_LOGE(TAG, "Camera Init Failed");
5
return err;
6
}
7
8
gpio_config_t cfg = {
9
.pin_bit_mask = 1 << 4,
10
.mode = GPIO_MODE_INPUT,
11
.pull_down_en = GPIO_PULLDOWN_ONLY,
12
};
13
err = gpio_config(&cfg);
14
if (err != ESP_OK) {
15
ESP_LOGE(TAG, "Camera Init: GPIO config failed");
16
return err;
17
}
...und das SD-Card-Interface auf 1 Bit Breite gesetzt: