Guten Abend,
ich habe noch keine Erfahrung im Bereich Micro-Controller und
Hardware-Auswahl, daher ist diese erste Beschreibung etwas schwammig.
Ich lese mich parallel zu diesem Thread ein.
Ich möchte ein einfaches, sehr schlichtes Kameramodul an einen STM32F4xx
im LQFP-64 Gehäuse anschließen. Mit der Kamera sollen lediglich Bilder
aufgenommen werden (Raw) und auf dem µC soll eben eine Verarbeitung
stattfinden.
Meine Fragen und ersten Gedanken:
Der µC wird externen Speicher brauchen.
Habt ihr vielleicht günstige Empfehlungen für Kameramodule? Die
Möglichkeit zur Raw-Aufnahme sollte da sein.
Nach erstem Blick durch das Datenblatt bietet der STM eine
USB-Schnittstelle.
Daher eignet sich eben ein Kameramodul mit USB, vielleicht sogar eine
Webcam?
Ich habe gesehen, dass bei sehr vielen Modulen eine
MIPI-CSI-Schnittstelle angeboten werden.
Ist es ohne allzu viel Aufwand möglich, daraus auf USB zu gehen? Ist es
notwendig, um die Daten auf dem µC zu verarbeiten.
Wenn man so oberflächig im Thema ist, ist es leider schwer konkrete
Fragen zu stellen. Ich hoffe, dass ich bei Rückfragen konkreter werden
kann.
Ich erwarte natürlich keine KOmplettlösung, aber vllt hat ja jemand
Tipps, wo man sich die Grundlagen dazu erlesen kann oder oder
Freundliche Grüße
>ich habe noch keine Erfahrung im Bereich Micro-Controller und>Hardware-Auswahl
Dann fängt man ganz bestimmt nicht mit einer Kamera am Controller an.
Eher mit einer blinkenden LED.
>>ich habe noch keine Erfahrung im Bereich Micro-Controller und>>Hardware-Auswahl>>Dann fängt man ganz bestimmt nicht mit einer Kamera am Controller an.>Eher mit einer blinkenden LED.
Noch vergessen: Mit einer Kamera an einem Raspberry Pi bestünde
zumindest
die Möglichkeit einer Chance das du da was mit machen kannst;)
Nop schrieb:> USB auf STM32.. oh je.
Hallo, könntest Du bitte kurz erläutern, was du damit meinst?
Das ist jetzt nur aus dem Deckblatt des Datenblatts:
Advanced connectivity
– USB 2.0 full-speed device/host/OTG
controller with on-chip PHY
– USB 2.0 high-speed/full-speed
device/host/OTG controller with dedicated
DMA, on-chip full-speed PHY and ULPI
newbugstm schrieb:> Hallo, könntest Du bitte kurz erläutern, was du damit meinst?
Die Hardware ist schon OK, das kann ST schon gut. Das Problem ist die
Softwareseite. Der Stack von ST selber ist alles andere als überzeugend,
und das selber zu machen ist für einen Anfänger IMO nicht umsetzbar.
holger schrieb:> Noch vergessen: Mit einer Kamera an einem Raspberry Pi bestünde> zumindest> die Möglichkeit einer Chance das du da was mit machen kannst;)
Denke Raspberry Pi ist da fast schon "trivial" mit Modell 3 und den
gängigen Tutorials.
Da ginge ja echt eine x-beliebige Webcam
Erstmal danke für die Antworten.
Also Blinklichter und A/D-Wandlungen habe ich schon über Microcontroller
laufen lassen. Mit dem Raspberry Pi habe ich auch schon mit einer Kamera
gearbeitet, allerdings wird man hier ja schon geleitet.
Das wäre jetzt die erste Aufgabe, die nicht per Kurzlösung umsetzbar
ist. Ich muss mir hier mehr zusammenbauen.
Allerdings hätte ich so auf Anhieb gedacht, dass es von erfahrenen
Nutzer grundsätzlich ein Schema dazu gibt.
Was ist das wesentliche Problem bei der Verbindung
Kamera/Microcontroller?
Was bedeutet der "schlechte" Stack für mich?
Gruß
USB-Kamera am STM32 ist ziemlich sicher der falsche Weg. Bestimmte Typen
haben ein paralleles Kamerainterface (+ I2C zur Konfiguration des
Kameramoduls), damit läßt sich einiges machen. Als Anfänger braucht man
allerdings eine solide Frustrationstoleranz, um sich mit solchen Themen
auseinanderzusetzen.
Schau Dir mal OpenMV an, das benutzt eine Kamera am STM32Fxx.
Das Problem, das Du immer hast:
Das interne RAM des STM32F4xx ist für hohe Auflösungen zu gering. Ein
320*240 Pixel Image hat bei 8+8+8Bit Pixelauflösung schon knapp 240kByte
Speicherverbrauch, das passt in die größten STM32F4xx gerade so rein.
Gruß, Stefan
Hallo, vielen Dank für eure Antworten.
Sebastian schrieb:> USB-Kamera am STM32 ist ziemlich sicher der falsche Weg. Bestimmte> Typen> haben ein paralleles Kamerainterface (+ I2C zur Konfiguration des> Kameramoduls), damit läßt sich einiges machen. Als Anfänger braucht man> allerdings eine solide Frustrationstoleranz, um sich mit solchen Themen> auseinanderzusetzen.
Ich habe die Anforderung, dass ich einen relativ langen Weg (ca.2-3m)
überbrücken muss und habe daher eine parallele Schnittstelle erstmal
ausgeschlossen.
Außerdem habe ich durch USB auf eine einfache Webcam gehofft.
An und für sich hätte ich dafür aber was hier im Forum gefunden.
diodetobi schrieb:> Was spricht gegen DCMI der STM32F4x7?
hm, das wäre ja auch parallel. Ich sehe, dass sehr viele Leute was
darüber machen, aber ich habe das noch nicht ganz durchschaut - werde
mich da einlesen. Brauche eben eine lange Leitung
Stefan K. schrieb:>> Das Problem, das Du immer hast:> Das interne RAM des STM32F4xx ist für hohe Auflösungen zu gering.
Gut, das ist klar. Hatte ich im Eingangspost kurz erwähnt
Vielleicht mal eine andere Herangehensweise:
Sagen wir mal ich möchte eine USB-KAMERA an einen MICRO-CONTROLLER
anschließen: welchen würdet ihr empfehlen?
diodetobi schrieb:> Was spricht gegen DCMI der STM32F4x7?
Ich hatte einmal den Versuch mit DCMI des STM32F4 Discovery und einem
OV9655 Kameramodul gemacht. Da das RAM zu klein war, wollte ich die
Daten per USB and den PC senden. Leider hat ST aber einen riesen BUG was
der DMA anbelangt (ich finde gerade den Eintrag im Errata nicht mehr):
Sobald eine hohe Datenmenge von mehreren DMA Kanälen übertragen werden
muss, schmiert das ganze ab. Ich habe da sicher 3 Monate mit diesem
saudoofen HW Fehler verbracht (wer sucht schon den Fehler beim
Controller).
@ newbugstm
Für ein Schulprojekt habe ich dann das selbe Kameramodul an ein
STM32F429 Discovery angeschlossen (hat schon externes RAM verbaut).
Leider war hier eine riesige Bastelaktion nötig, da die Pins ohne
Konzept belegt wurden. Das I2C zum Steuern der Kamera musste ich selber
nachbilden. Ebenso musste ich die Kamera selber initialisieren (das
Datenblatt ist komplett unbrauchbar), da die Beispiele für die komplette
Auflösung fehlten.
Auch mussten diverse Funktionen in Assembler geschrieben werden, damit
der Controller das verkleinerte Bild auf dem Display darstellen konnte.
Wegen der langen Leitung... Ist doch kein Problem: Der uC sitzt beim
Kameramodul (also 2-3cm Leiterbahnen bei >50MHz). Die Daten werden dann
über ein USB oder Ethernet versendet.
Unterm Strich: Wenn du wenig Anhung von uC, Datenblättern und Löten
hast, dann nimm ein Raspberry und ein Kameramodul. Da musst du weder
basteln noch mühsam in den Datenblättern herumsuchen (was sehr
Zeitaufwendig ist, wenn sie nichtmal stimmen). Ausserdem werden dir
durch das OS gleich Filesystem, USB- und Ethernet-Stack mitgegeben.
Nochwas: Wieso kaufst du dir nicht gleich eine Web-Cam? Die kosten doch
heute fast gleich viel wie du für die Hardware eines Eigenbau-Projektes
ausgeben würdest.