Im Rahmen eines Studienprojekts entwickeln wir einen Funktionsprototyp für eine minimalistische Digitalkamera. Die Kamera wird keinen Bildschirm haben und Videos in einfacher SD- oder HD-Qualität aufnehmen. Eine "ältere" Bildästhetik ist vollkommen in Ordnung, da der Fokus auf der Funktionalität liegt.
Zielsetzung:
Einfache Architektur: Die Kamera soll aus wenigen Modulen bestehen (z. B. Mikrocontroller, Kameramodul, Micro-Sd Speicher, Taster (Ausläsen), Kippschalter (An/Aus), LED, Akku, Ladeanschluss.
Prototyping mit Microcontroller: Erstmal testen wir die Funktionen mit einem Controller, der leicht programmierbar ist.
Ausbaufähigkeit: Für spätere Verbesserungen (bessere Qualität, mehr Leistung) wäre ein nahtloser Übergang zu leistungsfähigeren Bauteilen ideal, ohne die Programmierlogik komplett neu aufsetzen zu müssen.
Zukunftsvision: Langfristig könnte ein speziell angepasster Mikrocontroller entworfen werden, der nur die Funktionen enthält, die wir benötigen.
Aktueller Stand:
Ich habe bereits Erfahrungen mit Arduino und Adafruit ItsyBitsy gesammelt. Diese Plattformen gefallen mir wegen ihrer Einfachheit, sind aber je nach Projekt nicht leistungsfähig genug. Besonders bei der Videoaufnahme bin ich mir unsicher, welche Hardware ausreicht.
Meine Frage an euch:
Welche Mikrocontroller und Kameramodule könnt ihr empfehlen, die gut zusammen funktionieren und einfach anzusteuern sind?
Wichtig: Es sollte für Einsteiger verständlich und kostengünstig sein.
Optional: Eine Plattform, die später auch mit mehr Leistung skalierbar ist, wäre ideal.
Ich freue mich über Erfahrungswerte und Tipps für die Auswahl der Komponenten. Vielen Dank im Voraus für eure Unterstützung! 😊
Oder Milk-V Risc-V Board. Oder STM32H743 mit DCMI Kamera. Oder ESP32 Cam.
Gibt es doch schon alles in Schüttgutmengen für kleines Geld. Für eine eigene Arbeit reicht es nur wenn man mal recherchiert welche Kameraschnittstellen es gibt, welche Rechenpower nötig ist usw. Nur einen Sketch von ChatGPT diktieren lassen ist wohl keine Arbeit wert.
Ist eine solche Auswahl nicht zentraler Bestandteiler EURER
Projektarbeit?
Nein, das ist nicht Bestandteil unserer Studienarbeit, es soll lediglich funktionieren. Wie ich aus deinen Antworten herauslesen kann, hast du sicher schon gemerkt, dass das für uns ein fachfremder Bereich ist. Aber es ist ja schön, dass jeder andere Schwerpunkte setzt. Deshalb hatte ich gehofft, hier ein paar Tipps von Leuten zu bekommen, die sich damit auskennen.
Die Aufgabe sieht eher nach einem Schulprojekt 10. Klasse aus. Hoffe ihr
studiert nicht wirklich.
Wenn du eine andere Anlaufstelle kennst, wo man auch für so einfache Projekte Unterstützung bekommt, bin ich für Tipps sehr offen.
Nein, das ist nicht Bestandteil unserer Studienarbeit, es soll lediglich
funktionieren.
Soso. Das scheint eine merkwürdige Arbeit zu sein. D.h. nämlich ihr könntet das ganze auch einfach fertig kaufen und damit trotzdem alle Vorrausetzungen der Arbeit erfüllen. Das wird aber wohl nicht so sein. Falls doch: Kauft was fertiges.
Wie ich aus deinen Antworten herauslesen kann, hast du
sicher schon gemerkt, dass das für uns ein fachfremder Bereich ist.
Bleibt die Frage warum man ein Studienprojekt, und dann quasi ein Entwicklungsprojekt aus HW und SW, aus einem fachfremden Bereich macht. Wie kommt es dazu?
Wenn du eine andere Anlaufstelle kennst, wo man auch für so einfache
Projekte Unterstützung bekommt, bin ich für Tipps sehr offen.
Wie kommst du auf "einfach"? Wenn es einfach wäre könntet ihr es doch einfach machen oder?
Ein Tipp: lies auch die anderen Antworten, nicht nur die, wo dir einer unflätig quer kommt.
so einfache Projekte
Lustigerweise ist genau das, was du beschreibst, keineswegs ein irgendwie "einfaches" Projekt. Und man kann das als Einsteiger auch nicht in einem Forum Remote in Betrieb nehmen. Du brauchst sachkundige Hilfe vor Ort. Habt ihr an eurer HS nicht irgendwelche Leute, die sich mit sowas auskennen?
Das ist ein ARM64 Linux-System mit einem Ubuntu-Linux drauf, ähnlich einem Raspberry Pi. Im Unterschied zum Pi ist da aber noch eine verhältnismäßig fette GPU drauf, die gerne für solche Sachen wie Bildverarbeitung genutzt wird. Leistungsmäßig versägen die größeren Module einen Pi5 sehr deutlich.
Kameras kannst Du über CSI2, USB oder PCIe anschließen. Die üblichen Pi-Kameras sollten benutzbar sein. Ansonsten gibts auch CamLink und SDI Framegrabber dafür.
Mein Arbytegeber benutzt diese Prozessormodule für KI und Kameraanwendungen. Das ganze ist schon anerkannt in der Industrie, und bei KI ist NVidia Marktführer.
Vor einigen Jahren(zehnten) habe ich mal den Bericht von jemanden
gelesen, der sich mit einem Vollformatsensor und einem FPGA seine
Kamera selbst gebaut hat. Der war davor "elektronischer Laie".
Dessen Hirn war aber auch noch nicht von dem "Arduinosandkastenzeug"
vergiftet. Der konnte u.a. auch rechnen, naemlich was er an Leistung
brauchen wird, und was dazu imstande ist.
Anfangen würde ich mit einem Atmega328 (Arduino-Nano), 240x360 Lcd-Modul und vga-camera.
Da lernst du, wie das mit dem Transport der von der camera aufgenommenen Bildpunkte zum Bildschirm oder zur Speicherkarte funktioniert.
Auch nach 20 Jahren kann ich fuer solche Aufgaben den DSP-Hybriden Blackfin (BF527-Brettle sollte man noch kriegen) von Analog Devices empfehlen.
Kann man was bei lernen, und Stromverbrauch pro Leistung ist relativ gering. Bare-Metal-Code findet man noch in alten Code-Repos zum SRV1 Roboter vom JPEG-Pionier (RIP) Howard Gordon. Damit koennt ihr schon mal etwas VGA-MJPEG streamen.
Nachteil: Nische. Auch wenn die Dinger immer noch in vielen Industriekameras stecken, wie auch in alten Leica M8.
Mit STM32 gehen manche Loesungen auch, allerdings mit deutlich weniger Verarbeitungspower.
Bei "fertigen" Linux-Ansaetzen lernt man nur bedingt was oder debuggt sich an anderen Themen einen Wolf. Bei Studienprojekten ist es eher wichtig, den Fokus nicht zu verlieren.
Bei den Sensoren haben sich die Micron/Aptina, schliesslich ON-Semi fuers Prototyping mit dem paralellen Videointerface fuers Lernen gut bewaehrt und man kriegt die Datenblaetter ohne NDA-Theater, das ist bei Sony anders.
Neuere Consumer-Sensoren nutzen meist MIPI, davon wuerde ich in diesem Rahmen unbedingt die Finger von lassen.
Ansonsten gibt es schon interessante FPGA-Bretter, um Sensoren dranzustecken, aber da faengt man oft ganz von vorne an und braucht definitiv mehr Betreuung. Schliesslich sollte euch die ganzen Fragen ein Betreuer an Ort und Stelle beantworten, sonst wird das schnell eine Bauchlandung.
Neuere Consumer-Sensoren nutzen meist MIPI, davon wuerde ich in diesem
Rahmen unbedingt die Finger von lassen.
Man könnte natürlich den "Microcontroller" sehr flexibel auslegen und z.B. einen Raspberry Pi Zero verwenden. Der kann MIPI, denn die verschiedenen Raspberry-Pi-Camera-Module nutzen diese Drecksschnittstelle*.
*) Dreck nicht wegen der Technik, sondern Dreck wegen der Dokumentationshandhabung durch die Drecksorganisation MIPI.
Lies deinen Post. Das ist für mich aggressives, rüpelhaftes Benehmen.
Das ist es, wenngleich ich die Motivation verstehen kann.
Dieses "Eigentlich weiß ich schon alles und brauche nur eine klitzekleine Hilfe", gepaart mit einem handgemalten Bildchen. Das hat schon eine gewisse Arroganz.
Sicher würde ich das mit Kamera hin bekommen, da ich das alles auch schon eine Weile mache, wenn auch mit großer Unterbrechung. Aber ich würde lieber etwas Fertiges kaufen oder erstmal ein Tutorial lesen, Videos schauen und dann vielleicht nochmal fragen.
Nur bei diesen ganzen Leuten, die hier immer wieder so ankommen, die können nicht mal richtig ehrlich eingangs sein und sagen was der wirkliche Grund ist und dass sie null Ahnung haben.
Von Kamera direkt auf SD Karte ist schon anspruchsvoll. Dazu muesste man auch etwas zu Aufloesung wissen. Und zum Anwendungsfall.
Man ist schnell bei HDR, quasi Autobelichtung, und aufwendiger Bildverarbeitung. Denn auf SD Karte schreiben, mit vielleicht moeglichen 50 MByte/s ist nicht geschenkt.
Darf nach 20sec schon 1 GByte weg sein, oder doch lieber nicht ? Ein Sensor von zB 1000x1000 bringt bei 30 Frames/s schon 90MByte/s bei 3 Farben und 8 bit/farbe
Wenn man sowas nehmen dürfte, könnte man auch gleich eine fertige Digitalkamera nehmen. Da der HW Entwicklungsteil komplett wegfällt.
Da das Wesen dieser "Studienarbeit" aber nicht klar ist, und ja sowieso alles fachfremd sein soll, bleibt es völlig unklar, was überhaupt Aufgabe und Ziel ist.
da bleibt noch das große Problem wie man mit dem Druckknopf das Ausläsen
startet, das ist ja nicht im Beispielcode drin.
Das kommt später.
Fang mal mit Schalter, Taster, und der LED an einem Arduino an. Wenn das zufriedenstellend blinkt, kannst du dich ja hier nochmal melden. Das Forum wirds auch in 2-3 Jahren noch geben.
da bleibt noch das große Problem wie man mit dem Druckknopf das Ausläsen
startet, das ist ja nicht im Beispielcode drin.
Das ist doch einfach. Der Ausläseknopf geht an den Bediener (der soll wohl MIRCO heißen) und der steckt die Mirco-SD Karte dann in ein Ausläsegerät. Fertig. Video kommt später, Schritt für Schritt :)
*) Dreck nicht wegen der Technik, sondern Dreck wegen der
Dokumentationshandhabung durch die Drecksorganisation MIPI.
Die Dokumentation kriegt man ja ohne Probleme. Shenzhen ist da innovativ.
Das Problem sind eher die Hersteller der SoCs, die einen haufenweise nutzlose NDAs unterschreiben lassen, man dann die Bugs aber selber finden darf. Bei MIPI gibt es so einige corner cases, die die Entwicklung beim Mittelstandsentwickler mal um ein halbes Jahr zurueckwerfen kann, wenn man kein Simulationsmodell oder kein richtig, richtig teures Oszi hat.
Teils wissen die FAE der Hersteller nicht mal selber Bescheid. Ich wuerde somit nur noch SoCs nutzen, wo der IP-Core-Lieferant bekannt ist und eine klare Doku vorliegt, wie das Interfacing mit DMA vonstatten geht und die Clocks konfiguriert werden.
Da geht aber das naechste Problem los, dass man ohne Mitglied in der MIPI-Family auch wieder keine Hilfe auf den offiziellen Kanaelen erwarten kann.
Und ja, es gibt zig Raspi und ESP-Frickelloesungen, die als Schwalbennestkamera fuer die Ferienhuette taugen moegen. Ein Produkt wird daraus kaum. Lernt man zudem keine Basics bei, und genau Entwickler, die das koennen und die entsprechende Lesekompetenz inkl. Reverse-Engineering-Faehigkeiten aufweisen, sind gefragt.