Hallo Leute,
ich habe in meinem Garten eine kleine Vogelvoliere und möchte dort am
Eingang eine Kamera anbringen. Jetzt war meine erste Idee (da ich
sowieso schon einen µC (Atmega16) in der Voliere zur Lichtsteuerung
habe) eine kleine Cam an den µC anzuschließen und per NRF24L01+ an einen
anderen µC zu senden, an dem so ein kleiner Bildschirm (10x10 cm oder
so) hängt.
Nun stelle ich mir jedoch die Frage, ob das nicht alles viel zu
aufwändig ist. Ich habe mich hier im Forum etwas umgeschaut und die
viele Beiträge zu µC und Cams hören sich so an, als wäre das wirklich
nur etwas für Profis und als wäre die Qualität der Bildaufnahmen nicht
für eine Art Überwachungskamera geeignet. Zudem müssen die Bilder ja
auch aufgezeichnet werden (auf SD Karte oder so).
Mein Gefühl nach der Recherche auf der Seite hier ist: Lass es und kauf
die ein richtige Überwachungskamera. Ich habe zwar schon etwas Erfahrung
mit µC aber nur mit Atmega8 und 16. Würde auch gern mal auf ein anderes
Modell wechseln wenn das sinnvoll und nicht all zu schiwerig ist.
Wie ist eure Meinung dazu?
VG
Flo
Das ist nicht die Welt der 8-Bitter. Nimm einen embedded Linux Rechner
wie RaspberryPi, Webcam und Motion als Software. Zu dieser Kombi gibt es
eine Menge Anleitungen im Netz.
Auf der anderen Seite habe ich so einen kleinen USB Stick mit Kamera
drin. Die macht echt gut Bilder und der ganze Kram ist auf 5 cm²
untergebracht. Das kann doch nicht so schwer sein oder?
Florian schrieb:> Das kann doch nicht so schwer sein oder?
Du unterschätzt die Datenmenge einer Videoübertragung. Solche
Datenmengen sind nichts mehr für kleine 8-Bitter.
Schau Dich mal bei den Modellfliegern um die FPV betreiben
(z.B FPV-Community.de)
Kleine Vidoe-Cam, 2,4GHz Video-Transmitter, 2,4GHz Video-Receiver,
Monitor und Video-Recorder Deiner Wahl. Gibts alles fertig für relativ
wenig Knete.
Gruß Holger...
Naja nen altes Handy hab ich auch noch rumliegen. Ein Nokia N70.
Ich habe jedoch Probleme zu verstehen, welchen µC ich nehmen soll
(bisher nur Atmega8 und 16 programmiert) und was ich dann noch alles
brauche.
Mal angenommen, ich nehme eine Handy-Kamera. Ich kann die ja sicher
nicht einfach ausbauen und an den µC ran. Man müsste ja sicher die Daten
irgendwie puffern oder so.
Am liebsten wäre mir ein Kamera-Modul und ein geeigneter µC. Auf der
anderen Seite dann ein geeigneter µC mit dem ich dann einen Bildschirm
ansteuern kann. Und dann kann ich erstmal damit anfangen. Will ja noch
etwas lernen ;)
Florian schrieb:> Auf der anderen Seite habe ich so einen kleinen USB Stick mit Kamera> drin. Die macht echt gut Bilder und der ganze Kram ist auf 5 cm²> untergebracht. Das kann doch nicht so schwer sein oder?
Da steckt aber hochspezialisierte Hardware für genau diesen einen Zweck
drin, die dabei um etliche Größenordnungen leistungsfähiger ist als dein
AVR.
Wenn es wirklich ein µC sein soll, dann noch am einfachsten ein STM32F4
- in Form der Discovery-Boards sogar sehr billig zu haben. Der Chip hat
mit DCMI ein Kamera-Interface, mit dem er die Daten sehr schnell
auslesen kann. Die STM32F429-Disco hat ein Display und 8 MByte SDRAM an
Bord. Da kann man relativ einfach ohne großen Zusatzaufwand ein Bild
puffern.
Der Knackepunkt ist die Funkübertragung, die du dir augenscheinlich
vorstellst. Rechne bitte die Datenmenge durch, die da bei 30 Bildern in
der Sekunde bei 640x480 (*3 Farben=Bytes) oder größerer Auflösung
anfallen. Der NRF2401 schafft real weniger als die 2 MBit. Ich habe zwar
davon welche da, die aber noch nicht probiert. Was man so liest, sind
200kbit/s wohl noch machbar über paar Meter. Das sind grade mal etwas
über 20 kByte/s.
Selbst mit schnellem WLAN bei optimalen 150 MBit brutto wird das mit den
Rohdaten eng. Könnte der µC das so schnell bedienen, als Voraussetzung.
Mein Vorschlag mit dem Handy ziele darauf ab
das komplette Handy als Webcam zu benutzen,
den Stream über WLAN zu übertragen und evtl.
ein 2. Handy als Anzeige zu benutzen.
Aber das ist wohl nicht das was du willst..
Wie Oliver schon geschrieben hat ist die Datenmenge
eines Videostreams für einen 8-Bitter viiiel zu groß,
da musst du schon einen ARM oder so nehmen(RaspberryPi)
und wenn du nicht auf ein OS zurückgreifen willst
dann musst du einiges an Programmierung reinstecken
http://www.mikrocontroller.net/articles/ARM
OS ist okay. Kann ja mal etwas neues ausprobieren.
Das STM32F429 scheint gar nicht so teuer zu sein. Muss mich da erstmal
einlesen ob man das auch mit C programmieren kann oder wie das alles
funktioniert.
Bezüglich der Funkübertragung: Es muss nicht NRF24L01 sein. Hab nur hier
auf der Seite nen Tutorial dazu gefunden gehabt und deshalb hat sich das
angeboten. Mal schauen eventuell gibts ja noch einen andere Möglichkeit.
Oder ich mache nur 1 Bild pro Sekunde oder sowas. Reicht ja als
Überwachungskamera.
Ich hab mir was ähnliches mit ner webcam und nem Raspi aufgebaut. Gibt
wie oben bereits erwähnt etliche tutorials. Das kannst du dann wahlweise
direkt per hdmi streamen oder dir per LAN/ WLAN in deinem Netzwerk
abrufbar machen. Raspberry kostet ca. 30 + 10 Euro Netzteil, ne billige
Webcam 10-20, wenns HD sein soll eventuell 40 oder so. Vielleicht noch
IR-LEDs um nachts was sehen zu können (besteht bei mir keine
Notwendigkeit, also keine Ahnung inwiefern das funktioniert). Ist
schnell aufgebaut, muss eigentlich nichts programmiert werden und billig
ist es auch.
Der Kommentar soll den Spaß am Basteln (anstatt einfach etwas Fertiges
zu kaufen) nicht verderben?
Macht es auch nicht, ist allerdings auch absolut nicht hilfreich und
somit sehr sinnfrei. Dass man viele Sachen fertig kaufen kann, heißt
nicht, dass das auch das Richtige für einen ist.
Höre auf zu kochen, gibt Fertiges bei McDonalds, WürgerKing & Co. Hat
dir das jetzt den Spaß an leckerem, echten Essen verdorben? Oder sagt
das vielmehr etwas über den Poster solcher Zeilen aus? ;)
Florian schrieb:> Oder ich mache nur 1 Bild pro Sekunde oder sowas. Reicht ja als> Überwachungskamera.
Warum rechnest du nicht wie vorgeschlagen mal nach, statt nur ins Blaue
zu stochern? Dann dürfte dir auffallen, daß da eher ein Bild pro Minute
drin ist, aber sicher nicht eins pro Sekunde.
Rolf Magnus schrieb:> aber sicher nicht eins pro Sekunde
der cam_sensor ov7670 liefert Bilder ab einer pixel-Taktfrequenz von
500kHz. Ein Bild 640x320 hat ca 600kByte. Das entspricht etwa 1,2
sec/Bild, die der AVR mit 16Mhz auch gut verarbeiten könnte, wenn er die
Pixel in seinen Speicher bekäme.
Man braucht also einen Zwischenspeicher, der es dem AVR ermöglicht ein
Bild zu verarbeiten. Dies kann z.B. ein LCD sein, das zumindest ein 1/4
Bild speichern kann. Gut funktioniert das, wenn mann sich auf QVGA
beschränkt.
Eine sd-karte als Speicher ist mit ca 200kByte/sec zu langsam. Man muss
den AVR also mit zusätzlichem Ram ausrüsten. 8MByte Nand-flash kosten
8€:http://www.ebay.de/itm/K9F1G08U0C-NandFlash-Board-Nand-Flash-Memory-Evaluation-Development-Module-Kit-/261006268443?pt=LH_DefaultDomain_0&hash=item3cc52f981b
Möglicherweise ist es dann sinnvoll, gleich ein Board mit ausreichend
Speicher zu Nehmen. Beim Stm32F429 ist ein externer Speicher verbaut.
Weitere Alternative wäre das LPC4357http://www.ebay.de/itm/LPC4357-Development-Board-LPC4357FET256-NXP-LPC-ARM-Cortex-M4-M0-Dual-Core-Kit-/261351867305?pt=LH_DefaultDomain_0&hash=item3cd9c903a9
. Schöner und besser als der stm-f4, aber mit rund 60€ für das Board
auch deutlich teurer.
Dass es mit einem AVR gar nicht geht, ist jedefalls nicht richtig. Da
ARMs auch in Digitalkameras eingesetzt werden, sind sie für ein
Cam-Projekt jedenfalls ausreichend geeignet.
Der Begriff ARM ist in diesem Kontext irreführend und keine
Qualität/Beschreibung, die eine ausreichende Eignung attestiert. ARM
sind IP-Cores, die in SoCs um weitere - spezialisierte! - Koprozessoren
ergänzt werden können. Ist eine derartige Peripherie, spezialisiert für
Bildbearbeitung, in Silizium gegossen, ist das sicherlich geeignet. Nur
ist das nicht ARM, sondern ein SoC mit ARM-Kern und
Bildbearbeitungskoprozessor.
vor Jahren hab ich mal was gemacht mit der ov7670 und Mega32, da hab ich
als Zwischenspeicher einfach nen ollen EDO-RAM-Riegel dran gepappt, ging
soweit einwandfrei als Puffer,
aber der Aufwand fürs Proggen PCB etc. ist schon ne Nummer.
Also entweder man hat einiges an Freizeit über und den Ehrgeiz eben
selber zu machen, oder man kauft fertiges RasPi und Cam und gut ist.
100 Stunden sind da schnell mal durch.
Vom Prinzip her ist das nicht so schwierig, die Daten kommen rein,
müssen in den Puffer geschaufelt werden, zeitgleich startet die
Übertragung, die eh langsamer ist, das Puffern und Übertragen macht man
am Einfachsten per ISR,
der Sender verwurstelt die Rohdaten soweit notwendig vor Versand (z.B.
Verkleinerung der Bildgröße), der Empfänger schaufelt in Puffer und wenn
Bild komplett aufs Display, fertig ist die Laube.
Ich versuche so etwas gerade, allerdings nicht für bewegte Bilder und
ohne dauerhafte Funkübertragung der Aufnahmen (da ich keinen
Stromanschluss in der Nähe habe muss das Ganze auf Batterie laufen, das
beißt sich mit Funkübertragung, insbesondere WLAN).
Im Industriegehäuse (IP65), Akkubetrieb, Solarlader, Aufzeichnung auf
MicroSD und Low-Power Funkverbindung (ZigBee, 6LowPAN).
Schau mal bei Uwe ( http://mikrocontroller.bplaced.net/ ) rein. Da hast
du auch libs für das stm32f4(29). Auch für die Kamera. Übertragung
kannst du dir ja aussuchen (dort gibt es auch dafür eine lib)
Gerald G. schrieb:> Schau mal bei Uwe ( http://mikrocontroller.bplaced.net/ ) rein. Da> hast> du auch libs für das stm32f4(29). Auch für die Kamera. Übertragung> kannst du dir ja aussuchen (dort gibt es auch dafür eine lib)
Dort heißt es:
Da ich die Bilder auf meine LC-Display anzeigen will, habe ich im Moment
nur die QVGA Auflösung (320×240 Pixel) und QQVGA (160×120 Pixel) in der
Library implementiert.
QVGA bekommt man auch mit einem AVR problemlos hin. Die spannende Frage
ist, wie werden höhere Auflösungen auf SD-Karte gespeichert.
Ja, aber etwas erweitern geht einfacher als komplett neu zu schreiben.
Zum speichern entweder mit dem DMA auf SPI, oder vorher evtl. In jpg
umwandeln. Ich weiß nicht wie schnell die Kompression funktioniert. Wenn
sie schneller ist als SPI vorher komprimieren, und dann per DMA auf die
SDKarte.
Edit: Es gibt bei Uwe auch eine lib die per SDIO und DMA Daten im 4bit
Modus auf die SDKarte schaufelt.
Grundschüler schrieb:> Rolf Magnus schrieb:>> aber sicher nicht eins pro Sekunde>> der cam_sensor ov7670 liefert Bilder ab einer pixel-Taktfrequenz von> 500kHz. Ein Bild 640x320 hat ca 600kByte. Das entspricht etwa 1,2> sec/Bild, die der AVR mit 16Mhz auch gut verarbeiten könnte, wenn er die> Pixel in seinen Speicher bekäme.
Ich hab mich auf die Übertragung per Funkmodul mit 20 kB/s bezogen. Da
dauert die Übertragung eines solchen Frames halt 30 Sekunden. Ok, ist
also nicht ein Bild pro Minute, sondern zwei.