Handycamera MCA-25 ansteuern - ip webcam mit mega32

Gast #287236
Lesenswert?

Hi!

Es geht darum eine mca-25 Kamera mit einem avr anzusteuern.
Mein Code erweitert ulrich radigs mega32 webserver um die webcam
funktion.
Die webcam/mca25.c Datei sollte auch standalone verwendbar sein.

WICHTIG: Baudratenquarz verwenden! (460800 baud funzt sonst nicht)

Daten:
- Ansteckcam für SE Handys
- 640x480 JPG komprimierung on board
- Ansteuerung über rs232 @460800baud

Ursprünglicher Thread:
http://www.mikrocontroller.net/forum/read-1-232801.html#new

Sourcecode:
http://avr.auctionant.de/avr-ip-webcam/avr-webserver-software.html

Generelle Infos zur HW/Ansteuerung:
http://avr.auctionant.de/avr-ip-webcam/

Viel Spaß ;)
Gast #287237
Lesenswert?

Hallo Simon,

klasse Arbeit!
Anbei ein Photo von meiner Webserver-Hardware mit Handycam.

Die Leerplatine gibt es bei:
http://www.mikrocontroller.com

Infos und Bilder zur Modifikation meines Webservers und der Kamera:
http://mikrocontroller.cco-ev.de/de/webcam.php

HEX-Files fertig compiliert für meine Webserver-Platine:
http://mikrocontroller.cco-ev.de/de/download.php#AVR_WEB

Gruss,
Holger
Angehängte Dateien:
Gast #287240
Lesenswert?

Hallo Simon,

kein Problem mit dem Kabel.
Das geht sicher auch noch länger ;-)
Wenn man es daraus ankommen lassen würde, könnte man mit einem
anständigen Kabel (z.B. Netzwerkkabel) und einem Abschlusswiderstand
auf jeder Seite bestimmt 100m überbrücken.

Gruss,
Holger (der gerade darüber nachdenkt, das Kameramodul nebst Servo auf
dem Dach zu montieren)
Gast #287243
Lesenswert?

mal 2 fragen:

1. Hast du ICQ, Yahoo, MSN oder AIM??? weil das schreiben hier ist
doch
ziemlich nervig mit der zeit.

2. Wieso legst du an AVCC keinen strom an? Der ist doch für Port A
notwendig (dataport) oder nicht???

3. Währe dankbar wenn du den watchdog im anhang einbaust
Angehängte Dateien:
Gast #287244
Lesenswert?

Hallo,

meine Cam läuft jetzt auch, ich benutze einen 11,0592 MHz Quarz und
einen Mega32.

Dafür muß allerdings bei der Umschaltung auf 460800 Baud das U2X-Bit im
UCSRA-Register gesetzt werden und die Formel für die Baudratenberechnug
ändert sich.
Hier ein Auszug aus meiner mca25.c:

void mca25_set_460800baud(){
  unsigned long i = 0;
  while (i < 60000 * 20) i++;
//  UBRR=(SYSCLK / (460800 * 16L) - 1);
  USR |= (1 << U2X);           // activate double speed
  UBRR=(SYSCLK / (460800 * 8L) - 1);
}

Im Anhang ein gerade aufgenommenes Bild der Cam, leider regnet's hier
in Hamburg, deswegen ist es etwas trübe.

Gruß
Torsten
Angehängte Dateien:
Gast #287245
Lesenswert?

Hi!

Also sollte ein:
1
#if SYSCLK==11059200
2
        USR |= (1 << U2X);           // activate double speed
3
        UBRR=(SYSCLK / (460800 * 8L) - 1);
4
#else
5
        UBRR=(SYSCLK / (460800 * 16L) - 1);
6
#endif
funktionieren, richtig ?
Dein Quarz hat doch 11,059200mhz oder ?

Dann baue ich das so in die nächste version ein ;)
Gast #287259
Lesenswert?

Na und ? Das ist ein centartikel. Den willst du doch nicht ernsthaft
zurückschicken ?
Alleine das zur Post laufen lohnt sich doch nicht dafür...
Dann leg ihn ins Regal und verbau ihn irgendwann mal woanders wo
es nicht aufs timing ankommt.
#287260
Lesenswert?

naja ich wurde in letzter zeit ziemlich von reichelt verarscht da is es
mir egal ob die nen schuhkarton für nen 20cent artikel verschicken. Und
auf das zur Post laufen kommt es mir da nimma an da kommt es mir eher
drauf an das ich sie genau so versche wie sie mich.

Aber probieren werde ich es vlt. trozdem mal die sollen den trozdem
zurücknehmen is mir egal
#287266
Lesenswert?

im anhang mein aufbau. Darauf ist auch deutlich zu sehen das es ein
7,372Mhz quarz ist. Hab nur das problem das sich die Cam nicht richtig
initialisiert. Das sieht man daran das die Netzwerkkarte immer
funktioniert aber nicht wenn die cam im code angeschaltet ist. Ich löte
jetzt noch schnell die diagnose LED's hin
Gast #287268
Lesenswert?

Hi!

Glaub mir, der Quarz ist 100%ig in Ordnung. Auf meinen steht
die letzte Ziffer auch nicht drauf.
Verpass dem mega32 aber mal 100nF so nah am ic wie möglich.
Generell pro IC immer einen 100nF spendieren ;)

Daran wirds zwar nicht liegen aber das kann manchmal echt probleme
verursachen ;)

Hastdu den enable pin der Cam auch mit dem Atmega verbunden ?
sehe da keine Verbindung ;)
Gast #287272
Lesenswert?

>das muss er ja wohl wenn er die karte initialisiert wenn keine cam
>dransteckt.
Nein, Netzwerk funktioniert auch wenn du den mega auf internen Takt
gestellt hast ...
Zieh mal den Quarz ab, läuft dann die netzwerkkarte noch dann läuft er
mit dem internen takt -> fuses richtig setzen (aufpassen!)

Ich kann dir nur helfen wenn du die Kommunikation mega->cam und
cam-->mega
mitloggst.
Erstmal mit 9600 baud, danach ggf noch mit 460kbaud.
Vorher kann ich nur spekulieren...
#287276
Lesenswert?

Das mit dem Ping liegt anscheinend an den Rechner hab es bisher immer
nim nem alten Win98 Rechner gemacht. Da dieser nicht mehr funktioniert
muss ich es mit diesem XP-Rechner machen. Hab einer eine ahnung wie ich
unter XP eine verbindung hinbekomme? Hab Crossover kabel genommen und
Windows sagt auch verbindung hergestellt.

_Wie kann ich ohne serielle schnittstelle rausfinden welche IP die cam
hat???_
Gast #287277
Lesenswert?

Hi!

Das blinken sieht gut aus.
Das erste flackern der grünen led ist die 9600baud init.
danach wird die Cam konfiguriert.

Wenn die gelbe ca im sekundentakt blinkt ist die Cam/der webserver
erfolgreich gestartet und wartet auf pakete.


IP:
siehe
http://avr.auctionant.de/avr-ip-webcam/avr-webserver-software.html
>ACHTUNG: Der Webserver ist so konfiguriert dass er 192.168.0.101 als
IP
>und 3333 als HTTP port nutzt.
Sprich: http://192.168.0.101:3333/
#287278
Lesenswert?

ich hab ihn auf 192.168.1.39:3333 umgeschrieben. dann mache ich ping
192.168.1.39 und es kommt zeitüberschreitung. Meine IP ist 192.168.1.33
also gleiches subnet. Habs auch schon mit subnetzmaske 255.255.0.0
probiert. unter TCP/IP unter Windows hab ich folgende einstellungen

IP: 192.168.1.33
Subnetmask: 255.255.255.0
Standartgateway: keine
DNS Server 1: keinen
DNS Server 2: keinen

Die Naetzwerkkarte muss ja wohl funktionieren sonst könnte sie ja nicht
mit meinem PC verbinden(der sagt ja verbindung erfolgreich hergestellt)
und außerdem funktioniert sie in einem anderen PC perfekt.
Gast #287285
Lesenswert?

achso... nee die müsse eigentlich blinken...
sonst guck halt mal mit nem netzwerksniffer ob die auflösung ip->mac
adresse klappt.
(unter linux nutze ich ethereal, giobts evtl auch für windows, ka...)
Gast #287287
Lesenswert?

starten, capture packets, eth0 bzw richtige netzwerkkarte wählen und
starten.

dann kabel an netzwerkkarte anschliessen, anpingen, mal im browser
aufrufen.
dann ethereal stop
und hier nen screenshot posten oder speichern und das logfile anhängen
Gast #287291
Lesenswert?

Hi!

Was für eine url hast du aufgerufen ?
Kann es sein dass du versuchst deine eigene ip aufzurufen ?
Laut log versuchst du 192.168.1.33 <--- aufzurufen.
Sagtest du nicht dein Server hat die .39 ?!

Also nochmal bitte die 39er ip im Browser aufrufen und loggen ;)
Gast #287293
Lesenswert?

ups, sorry, nicht genau hingeguckt, war kein arp request...

Da stimmt aber irgendwas nicht...
Hast du keinen switch den du mal testweise dazwischen packen kannst ?
Also nur normale kabel und kein crossover ?
Du müsstest sowas sehen bei Info:
>Who has 192.168.1.36? Tell 192.168.1.33
und dann halt die antwort und dann tcp/ip pakete.
#287297
Lesenswert?

ne genau so wenig hab ich schon versucht. Ulrich Radig selbst meint es
könte daran liegen:

----------------------------------
Was soll ich beim Einstelltool von RTL bei
Multiplexing und MediaType eistellen??? Der rest ist 100% richtig

Ich habe

Mediatype: Auto
Multiplexing: Disabled
----------------------------------

Hast du da ne ahnung??bzw. wie hast du es eingestellt
#287299
Lesenswert?

Da kann ich auto, Connect-T, Connect-2 und Connect-5 auswählen wobei wen
ich Connect-T (RJ45) auswähle dann is irgend so ein Modus deaktiviert
ohne den angeblich router nicht funktionieren. im anhang: programm zum
einstellen unter DOS(zuerst bit Bootdiskette/CD DOS starten) und dann
das programm starten. ist von RTL.
Angehängte Dateien:
Gast #287310
Lesenswert?

Hallo nochmal

Ich bin gerade dabei die Kamera unter uIP-AVR ans laufen zu bekommen.
Funzt so weit ganz gut. Allerdings habe ich festgestellt, daß die
Kamera bei mir mit einem Spannungsregler für 3.3V erheblich bessere
Bilder liefert als mit den 2 Dioden (ca. 3.6V?).
Gast #287311
Lesenswert?

Hi!

Ich hatte bei mir auch bei 3.3V bessere bzw hellere Bilder.
Meine 2 Dioden lieferten nur 3.3V...
Eigentlich komisch denn zum einen bekommt die Cam am Handy definitiv
3.6V oder bissl mehr
und zum anderen kann ich mir nicht vorstellen dass die eine
ungeregelte Eingangsspannung als ADC Spannung nehmen.

Ich vermute deine Bilder sind auch einfach nur heller, oder ?
Gast #287313
Lesenswert?

@Sssssss:

Also mit 3.6V habe ich in einem einigermassen hell beleuchteten Zimmer
fast nur komplett schwarze Bilder erhalten. Aufnahmen von draussen bei
Tageslicht waren bis auf Streifen ganz ok.
Gast #287314
Lesenswert?

Ist mir wie gesagt ein Rätsel...
Ich hab ähnliches beobachtet. Wobei mein Handy definitiv 3.6V an die
Cam
legt... komisch komisch...

Ich hab mit 2 Dioden ca 3.3V. (1N4148 oder so, keine shottky)
evtl 3 Dioden nehmen wenns zu dunkel ist.
Oder meinetwegen nen echten Spannungsregler ;)
#287315
Lesenswert?

da das schaut doch schon viel besser aus :-) Spannungsregeler drin.

Dazu mal wieder ne story vom C:

Also ich hab in der eile noch schnell die widerstände ausgerechnet und
alles aufgeschrieben. Dann geh ich hoch und zu dem Bauelementen. Dort
liegt immer ein Katalog aus und krieg erstmal den gewohnten
Preisschock. Dann geh ich zu dem Bitarbeiter dem ich sage das ich als
erstes ein LM317 benötige. Er antwortet mir:"Können sie die nummer
nicht selbst raussuchen??" Darauf fragte ich noch freundlich ob er das
für mich übernehmen könnte. OK das hat er dann auch bei den anderen
Teilen gemacht. Als letztes wollte ich einen Widerstand der am nähesten
an einem 398Ohm ist. Darauf erst mal ein "WIE BITTE???". Ich
wiederholte mich und er nennt mir erstmal einen 3,3k. Ich noch ganz
beruhigt:"Haben Sie den keinen 390 Ohm oder in der Richtung???" Er
sagt das sollte ich selbst machen da ich ihn bei seiner Arbeit
störe???? Dann hat es mir gereicht:"Wozu bezahle ich denn hier ihre
Wucherpreise??? Sie bieten hier weder vernünftigen Service noch gibt es
hier freundliches personal" als rache(oder dummheit) hat er mir dann
noch einen 330 Ohm eingepackt was aber nicht so schlimm war da ich noch
68 ohm da hatte. Da kauf ich nie wieder(hab ich mir schon n paar mal
vorgenommen).

Bitte nicht groß drüber diskutieren wegen Off-topic Gefahr
Angehängte Dateien:
Gast #287319
Lesenswert?

Das besetzt Picture ist extra im kleinstmöglichen Format gespeichert.

Hab echt ne menge probiert, hochskaliertes jpg mit quali 0.01 war am
kleinsten
(sogar kleiner als indiziertes sw gif!)
Ausserdem gefielen mir die Artefakte irgendwie 8)
Gast #287320
Lesenswert?

Kurze Zwischenfrage: Das Bild kann auch von der MCU geschossen werden
oder muss immer zwigend der Knopf an der Cam gedrückt werden?

Gruß, Guido

@andreas

Eine "Passwort vergessen" Funktion ist überfällig.
Eine Back Funktion ohne den Inhalt des Textfeld zu verlieren ebenfalls.
Gast #287321
Lesenswert?

Hi!

An der Kamera muss kein Knopf gedrückt werden.
Der Kameraknopf wird von meiner Software überhaupt nicht
unterstützt/benutzt ;)

Du brauchst nur die Webseite aufrufen und der mega schiesst direkt
ein aktuelles Bild und schickt es dir als jpg ;)
Gast #287322
Lesenswert?

ja ich will aber n anderes farbiges bild wo die cam auch abgebildet ist.
Speicher ist ja noch mehr als die hälfte frei also geht da schon n 6kb
Bild drauf. Fertig hab ich das bild schon in der sftware muss nur noch
auf den mega(gestern war die baterie leer, morgen kommt n netzteil dran
weil die baterie hält anscheinend nur ne std.)
Gast #287327
Lesenswert?

Hallo zusammen

Die Kamera funktioniert jetzt bei mir auch mit den 3.6V, d.h. ich
erkenne keinen Unterschied mehr in den Bildern zwischen 3.3V und 3.6V
Versorgungsspannung.
Ich habe einen TTL-Buffer (2 Inverter vom 74LS04) zwischen TXD des AVRs
und RXD der Kamera als Levelshifter gehängt. Bei mir hatte der 5V-High
Pegel aus dem AVR die Kamera (wahrscheinlich über die Schutzdiode)
zusätzlich mit Saft versorgt.
Gast #287328
Lesenswert?

Hi!

Ahhhhh das könnte natürlich DIE Erklärung sein !

Ich vermute mal du hast auch keine wagerechten Streifen mehr im Bild,
oder ?
Dann wäre auch geklärt warum die da waren und warum bestimmte
wartezeiten die Streifen minimierten (=tx war dann nciht mehr aktiv).


Was ich aber nciht verstehe:
Ich habe testweise eine Spannungsteiler benutzt um die PCtx Leitung
auf 3.3V zu bringen. Auch damit hatte ich ab und an Streifen/dunklere
Bilder.
Evtl ist es nicht die Spannung sondern sonst irgendwelche Störungen ?
Muss ich auch mal mit 2xInverter oder einem Transistor testen.
Danke !

Hast du evtl ein Foto das du mal hier hochladen kannst ?

Gruss,
Simon
#287338
Lesenswert?

Hallo,

ich habe gerade die Überspannung am RX-Eingang der MCA-25 beseitigt und
bin begeistert. Die Kamera ist nun deutlich empfindlicher und liefert
ein rauschärmeres Bild.
Ich habe zwischen TX des AVR und RX der MCA-25 einen 4k7 Widerstand
geschaltet und dann von RX eine Diode gegen Vcc der Kamera.

Gruß
Joachim
#287346
Lesenswert?

ach is das deine seite??? ich bau auch chili an!!! is ja lustig bin
schon öfter unabhängig auf der page gewesen!!! n freund bringt mir
heute warscheinlich den 74xx04 mit.

Fassen wir zusammen:

-VCC an 5V
-2 Inverter nacheinander betreiben
-Spuckt mir dann den Pegel als 3,xV aus
-unbenutzte eingaänge auf GND

Bitte berichtigt mich falls etwas nicht stimmt
Gast #287347
Lesenswert?

chili: is ja witzig :D jo, ist meine seite ;)

>-VCC an 5V
Nein! Vcc = 3.6V von der Cam.

>-2 Inverter nacheinander betreiben
>-Spuckt mir dann den Pegel als 3,xV aus
siehe oben.

>-unbenutzte eingaänge auf GND
jepp.
#287350
Lesenswert?

Sieh doch einmal auf meinen Beitrag vom 15.12 22:49.
Du brauchst nur einen Widerstand 4k7 (10k sollte auch gehen) und eine
Diode (1N4148 reicht aus, eine Schottky-Diode wäre ideal).
Damit baust Du eine Klemmschaltung. Das TX-Signal wird vom AVR über den
Widerstand auf Rx der Kamera gegeben. Die Diode führt von Rx auf Vcc der
Kamera und leitet, sobald der Pegel an Rx die Betriebsspannung der
Kamera um 0,7 V übersteigt.
Damit wird verhindert, daß der Eingangsstrom an Rx zu groß wird und
Störungen verursacht.

Gruß
Joachim
Gast #287353
Lesenswert?

avr tx o-------[10k]------<hier zur cam>--------o cam vcc (3.6v)

10k oder 4,7k ist egal. Einfach was zwischen 1k und 22k würd ich sagen
;)

Zum 74xx04 der muss an 3.6v. wie soll der denn intern die 3.6v erzeugen
?
da is doch kein spannungsreg drin ;)
#287355
Lesenswert?

Die Diode schaltest Du mit dem Ring an Vcc der Kamera, also 3,6V. Die
andere Seite kommt an RX der Kamera.
Der Widerstand dient der Strombegrenzung.
Wenn der Widerstand zu groß ist, bildet er mit der Eingangskapazität
des RX-Eingangs ein RC-Glied, das sich besonders bei hohen Datenraten
störend auswirkt.
Ich würde schätzen 10k geht genau so gut. 100k sollte Probleme machen.

Gruß
Joachim
#287363
Lesenswert?

in meinem haus is einfach kein 4,7k aufzufinden und wenn dann will ich
schon den richtigen nehmen oder noch besser den IC. Dazu müsste ich nur
wissen ob der jetzt an die 5V oder 3,xV muss.

Schaut sich bitte mal einer das datenblatt an und erklährt mir dann
falls es so ist warum das an 3,xV muss.

ich lese aus dem datenblatt 5V versorgung und der spuckt max 3,6 oder
so aus.(sie mein beitrag vom 17.12.2005 um 17:08)
#287366
Lesenswert?

Dann laß uns doch einmal auf das Datenblatt sehen.
Dort steht, daß die Betriebsspannung zwischen 4,75 und 5,25 V liegen
soll. (Das IC wird bei 3,6V auch funktionieren, jedoch sind die Daten
dann nicht garantiert. Damit können wir in unserer Anwendung leben,
weil unser Signal mit 500kHz weit unter der Frequenzgrenze des 04
liegt)
Unten steht noch etwas zur Ausgangsspannung.
Wenn die Betriebsspannung 4,75V beträgt und die Low-Eingangsspannung
2,0V und wenn in den Ausgang 400µA fließen und wir das im gesamten
zugelassenen Temperaturbereich probieren, dann können wir mit einer
Ausgangsspannung von 3,4V rechnen, werden aber mindestens eine
Ausgangsspannung von 2,7V erreichen.
Da unsere Betriebsbedingungen andere sein werden, stört das nicht.
Wir werden das Low-Singnal nicht mit ungünstigen 2V liefern, wir werden
nicht ein knappes halbes mA als Eingangsstrom für die Kamera benötigen
und wir werden auch nicht den gesamten Temperaturbereich durchlaufen.
Diese Grenzwerte sind für unsere Anwendung nur von untergeordetem
Interesse. Betreibe des Baustein einfach mit 3,6V.
Gast #287368
Lesenswert?

Hallo!

Ich find das Projekt total Klasse und hab mittlerweile auch ein paar
Cams hier.

Hardwaretechnisch läuft das soweit:
Hab ein LM317 genommen, um die Cam mit stabilen 3,6V zu versorgen.
Zwischen den drei Datenleitungen hängen 4k1 Widerstände.

Da ich noch keine Webserverplatine layoutet hab, hab ich mein
Experimentierboard mit ATMega161 hergenommen und dort einen
Baudratenquarz (7,372MHz) eingebaut. Da hab ich gleich zwei UARTs, an
einem hängt der Rechner, am anderen die Cam.

Bei der Software hakts:
Ich hab mir dann die Funktionen aus der mca25.c entsprechend
umgeschrieben, da ich für den Mega161 schon eine passende dualuart.c
geschrieben hab.

Die Kommunikation zwischen Rechner(USB-seriell Wandler)und Atmel kann
ich im UBRR0 Register bis 460800baud hochschrauben. Das geht.
Die Kommunikation zur Cam geht mit 9600bps bis zum Punkt wo die Cam mir
AT+IPR=460800 meldet und ich das UBRR1 Register auf 0 (für 460800baud)
schalte.
Danach empfängt der Atmel nichts mehr von der Cam :-(

Jubel ich der Cam maximal 9600 baud unter, geht es bis AT+CMUX=0,0,7,31
(wonach die Cam ja auf jeden Fall mit 460800 kommuniziert).

Ich hab das jetzt mit zwei Cams probiert (einmal 30cm Kabel und einmal
10cm) und beide verhalten sich gleich.

Hatte jemand von euch auch schon dieses Problem?

Gruß,
Daniel
#287369
Lesenswert?

@Daniel Bambeck: von der TX leitung der kamera zum uC keinen Wiederstand
weil die den 3,6 high pegel ja noch weiter runter schrauben würden was
vermutlich dann ganz knapp über der low grenze des uC liegt. Das ist
bei 9600 noch kein großes problem aber bei 560k eben schon ;-)

@all: Ich werde also 5V nehmen bin aber trozdem noch verwirrt^^ Vom
74LS04 nehm ich dann 4 Inverter (2 für TX uC und 2 für Enable).

Damit ihr alle zufrieden seit werde ich mal nen high und low pegel an
den 74LS04 dranhängen und ausgangsspannung messen :-)
Gast #287370
Lesenswert?

Hi!

>Die Kommunikation zur Cam geht mit 9600bps bis zum Punkt wo die Cam
mir
>AT+IPR=460800 meldet und ich das UBRR1 Register auf 0 (für
460800baud)
>schalte.
>Danach empfängt der Atmel nichts mehr von der Cam :-(
Ganz wichtig ist dass beim umschalten oder davor kein einzelnes Byte
mehr gesendet wird als im Programm beschrieben.
Wenn dir dein uart aus irgendeinem Grund noch ein Byte reinkopiert
passiert murks.
Hast du evtl einen Code drin der aus \n ein \n\r macht ? Das darf
nicht
an sein im Muxmode ;)
Ansonsten mal genau mitloggen was der avr zur Cam sendet bei 460
kbaud.
Kannst das hier entweder als hexwerte posten oder mir per mail
schicken:
devel AT auctionant.de
Dann gucke ich mal ;)

>Jubel ich der Cam maximal 9600 baud unter, geht es bis
AT+CMUX=0,0,7,31
>(wonach die Cam ja auf jeden Fall mit 460800 kommuniziert).
Jepp. Egal was du der Cam sagst, sie schaltet im muxmode immer auf
460kbaud ;)

Gruss,
Simon
Gast #287371
Lesenswert?

Danke für die schnellen Antworten.

@Ludwig
Die Idee ist gut, klingt auch logisch. Hilft aber nicht :-D

@7s
Mein Uart-Code fügt ganz sicher nix von sich aus hinzu.

Hab mal hier eine .txt mit der mitgehörten Kommunikation angehängt.
Hab z.Z. nur ein Windows-Rechner mit Hyperterminal zur Verfügung, kann
daher kein besseren Log liefern.

Es irritiert mich jetzt etwas, dass nach kurzer Zeit die Cam erneut
nachfragt, welche Baudrate geht und nach einiger Zeit auch selbst die
AT+CMUX Infos sendet.

Irgendwas hakt da bei der Geschwindigkeitsumschaltung, ich weiß nur
nicht was.

Gruß,
Daniel
Angehängte Dateien:
Gast #287373
Lesenswert?

Ich muss da nochmal ganz in Ruhe ran, irgendwie finde ich keinen Fehler

if (memcmp(buf,"AT+IPR=460800",13) == 0)
{
uart_write_str(UART1,"\r\nOK\r\n");
while (!(UCSR1A & (1<<TXC))) {}  // Warte auf leeres Senderegister
UBRR1=0;                         // setzte 460kbaud
state = 3;
PORTA &= ~(1<<PA2);              // Kontroll-LED A2 ein
}

Das sollte zuverlässig auf 460kbaud schalten, nachdem das Senderegister
wirklich leer ist. Leider läufts auch nicht.

Ich werd wohl dann doch mal direkt den Webserver nachbauen und den
fertigen Code ausprobieren. Dummerweise hab ich keine passende ISA
Netzwerkkarte.
Vielleicht liegt es z.Z. einfach an dem etwas seltsamen UART im
Mega161, der hat mich schon so manches mal genervt ;-)

Gruß,
Daniel
Gast #287375
Lesenswert?

@Ludwig:

Brauchst du nicht nachmessen. In den LS-Typen besteht der "sourcende"
Teil der Endstufe aus einem Darlington-Transistorpärchen. Somit fallen
2x Basis-Emitter-Spannung ab. Das gibt dann unter Belastung ca. 3.5V
Gast #287377
Lesenswert?

Es soll ja nur verhindert werden daß die Kamera mehrere mA über den
Eingang bekommt - und genau das macht der 74LS04.

Noch was zu den verschiedenen Auflösungen:
Bei mir mußte ich nur das 640*480 (0x36,0x34,0x30,0x2A,0x34,0x38,0x30)
in MCA25_START_JPG ändern, um die Kamera mit einer anderen Auflösung zu
betreiben.
Hat bei mir tadelos funktioniert.

Gruß, Volker
Gast #287379
Lesenswert?

>hat einer ne ahnung wie ich so ne auswahlbox erstelle und auswerte???

schau mal in der Codesammlung  nach dem Thread :
Webserver zur Temperaturmessung  von Joachim Börke ,
da siehst du ganz gut wies gehen kann.
(Ist auch mit der Webcam)
Gast #287382
Lesenswert?

Hallo!

Ich hab mittlerweile auch Teilerfolge zu vermelden :-)

Ich habe gestern und heute mir eine Platine für den Mega32 Webserver +
ISA Karte gelötet. Dummerweise hatte ich nurnoch genau eine ISA
Netzwerkkarte, die schon im PC nicht funktioniert. Natürlich tat sie es
auch nicht im Webserver :-( Ich klapper morgen mal ein paar PC Läden ab
und hoffe die lachen mich nicht aus.

Immerhin scheint sich das Kommunikationsproblem mit der Kamera gelöst
zu haben. Die letzten Ausgaben vom Cam-Init lauten <memory free="591"
free-images="10" stored-images="0" fun-layer="10"/></camera-info>
Also schonmal Mux Kommunikation mit 480kbaud.

Ich nutz übrigens zusammen mit dem Mega32 einen 11,0592 MHz Quarz und
lasse den UART im Doublespeed Modus laufen. UBBRL=2; entsprechen dann
exakt 480600baud.

Gruß,
Daniel
Gast #287383
Lesenswert?

>Ich klapper morgen mal ein paar PC Läden ab
>und hoffe die lachen mich nicht aus.

Ja, das kann dir passieren, wenn du nicht mal diese 3COM ISA Karten
möchtest. Hab in den letzten Wochen auch schon diverse Flohmärkte
leider erfolglos abgegrast. Letztlich hat das beständige Nerven seines
Umfeldes samt Werbung für so ein Projekt dazu geführt, dass Väter in
Firmen Ausschau halten. So ist mal wieder eine richtige RTL8019-Karte
aufgetaucht. Und da ich dann auch gleich die Problematik mit den
ISA-Slots erwähnt habe, kamen auch noch gleich zwei alte Mutterbretter
zum Fönen hinzu.
Gast #287384
Lesenswert?

Ich bin heute auf der Suche auch erfolglos geworden. Meinem näheren
Umfeld bin ich schon längst auf den Wecker gegangen, aber da hat keiner
was.

Frage: Mag mir jemand hier aus dem Forum eine passende ISA-Karte
verkaufen?

Momentan nutz ich den einzelnen Comport und ein paar LEDs zur
Statusausgabe und es sieht recht gut aus. Die Cam reagiert wie
vorgesehen :-)

Ich habe übrigens ein Layout für Grobmotoriker entwickelt, da ich SMD
und doppelseitige Platine erstmal vermeiden wollte. Auf eine halbe
Eurokarte habe ich es nicht hinbekommen und daher gleich die Gesamte
beansprucht und einen Bereich mit Lochrasterpunkten zugefügt.
Wenn ich das Layout mit Netzwerkkarte erfolgreich getestet hab, kann
ich es gern hochladen.

Gruß & schöne Feiertage euch allen,
Daniel
#287385
Lesenswert?

ich hab eine ohne RJ45 buchse zu verschenken wenn du den versand zahlst
(wirklich nicht mehr). Falls du einen Übertrager und ne RJ45 buchse
hast is das kein problem denn die leiterbahnen und alles andere sind
vorhanden.

Bei läden wirst du erfolglos sein und bestenfalls n angemotze bekommen.
Probiers mal auf wertstoffhöfen. wenn du nix findes kann ich welche
gegen eine kleine bezahlung holen, bei uns liegen meistens 2-3 rum oder
frag mal ebay wobei der versand weit übertrieben ist.
#287388
Lesenswert?

ok die karte wird initialisiert und dann leuchtet die 100Mbit LED. Wenn
ich connecte blinkt die ACT LED und mehr auch ned. meine CLK LED blinkt
ned im 1 sekunden takt aber auch keine error LED.
Besonders hat mich der stromverbracuh gewundert!!! die karte allein
200mA!!!!!!!!! Da wird der spannungsregler mit eingang 9V schön
heiß!!!!!

Lange rede kurzer sinn sie geht nicht!!!
Gast #287389
Lesenswert?

@Ludwig: Wegen der Netzwerkkarte schreib mir mal eine Mail. Übertrager
könnt ich von einer RTL8029combo-PCI runterlöten oder zur Not ein Hub
mit BNC zwischenhängen. Hauptsache ich kann erstmal überhaupt was
machen.

Dann noch zur 3com: Ich habe in einem der ellenlangen Threads hier
gelesen, dass diese nicht NE2000 kompatibel sind. Es sind wohl sehr
kleine Änderungen an der ISA-Slot Belegung nötig und jemand hatte einen
3com Treiber für den AVR-Webserver gepostet. Den hab ich auch
runtergeladen, aber ich sitz grad am falschen Computer.

Gruß,
Daniel
Gast #287394
Lesenswert?

Ich versuche jetzt schon seit Tagen, die Cam ans laufen zu kriegen.
Hab mal den Dialog mit 460kbit mitgeschnitten. Sieht igendwie seltsam
aus.

+CMUX: (0),(0),(1-7),(31),(10),(3),(30),(10),(1-7)

yùùï  á#šùù!ï
OK
Hùù!ï
     +CSCC: E3
°ùù!ï
OK
Hùù!ï
OK
Hùù?«ùùï     Ⴭšùùï7€Fã=•EƒtJמÅÁkãގa‚ùù!ï
OK
Hùùï?‚;I5<camera-settings versiŒùùï?on="1.0"
white-balance="OFF" coŒùùï?l
or-compensation="13" fun-layerŒùùï?="0"><monitoring-format
encodinŒùùï?g="EBMP
" pixel-size="80*60" colŒùùï?or-depth="8"/>
<thumbnail-formŒùùï?at encoding="EBMP" pixel-size="Œùùï?101*80"
color-depth="8
"/>
<natŒùùï?ive-format encoding="" pixel-siŒùùï?ze="640*480"/>
</camera-settinŒùùï
                    gs>
¯ùùï/ƒBx-bt/camera-infoù

Danach kann mal einmal mit dem Browser auf den Webserver zugreifen.
Beim Laden des CAm Bildes hängt er sich auf. Er läßt sich erst nach
einem Reset wieder anpingen.
Wer hat eine Idee, warum das nicht funktiniert?
Gast #287395
Lesenswert?

Hi!

Das muss so aussehen ;)
Die Daten sind in MUX Paketen zerstückelt untergebracht.
Log mal bitte bei 460kbaud während du im
Browser das Kamerabild aufrufst.
Das Logfile bitte speichern und hier anhängen (nicht posten wie eben).
Nur so komme ich an die genauen Daten dran ;)

Gruss,
Simon
Gast #287396
Lesenswert?

Hi,

Wenn die Seite im Browser aufgebaut ist und mit "loading" das Bild
geholt werden soll, kommt nix mehr zum mitloggen. Danach ist die
Netzwerkkarte auch nicht mehr ansprechbar. Nach dem Reset kommen dann
wieder die Zeichen, die ich oben schon geschickt habe.
Am Quarz kanns nicht liegen. Da hab ich die Baudraten Quarze alle
durch. Die 2 Cams, die ich habe, verhalten sich auch gleich.

Mit den vorcompilierten HEX Files ist das Ergebnis genauso.
Sonst hatte ich nie Probleme mit der H.Buss Schaltung und ne MMC Karte
funtioniert auch.

Wo soll ich denn nun suchen.

Gruss Wolf
Gast #287398
Lesenswert?

Hi!

Log mal bitte von einschalten webserver bis bildaufruf mit 460kbaud.
Einmal die uC->Cam Leitung und nochmal Cam->uC
Dann das ganze hier anhängen als txt datei oder so.
Mit dem oben kann ich nicht viel anfangen da 1. zu kurz und 2.
durchs posten zerstückelt ;)
Also entweder anhängen oder mir beide Files mailen:
devel AT auctionant.de

Gruss,
Simon
Gast #287399
Lesenswert?

Hi,

genau das hab ich gemacht. Der Text kommt so in Hyperterm und wurde
nicht durchs posten verändert.

Soll ich die TTL Ausgänge vom Max232tauschen? Jetzt sind CAM TX u.
M32 RX, CAM RX und M32 TX verbunden. AUf der Platine sind auch Max232
TX und M32 RX verbunden. Also sind CAM und MAX32 RX RX und TX TX
verbunden. SO kann ich doch die CAM nicht direkt mitloggen, sondern nur
den Datenverkehr, der den M32 verlässt, oder?

Gruss WOlf
Gast #287400
Lesenswert?

Hi!

>genau das hab ich gemacht. Der Text kommt so in Hyperterm und wurde
>nicht durchs posten verändert.
Doch, da sind nicht druckbare Zeichen dabei. Und davon brauche ich die
Hexwerte ;) Die verschwinden teilweise hier im Forum bzw werden durch
html kram ersetzt ;)

Öhm das mit dem max32 kram versteh ich jetzt nicht g
Am besten wär ne Skizze ;)

Für mich wäre die andere Kommunikationsrichtung wichtiger ;)

Gruss,
Simon
#287402
Lesenswert?

Hallo,

Ich habe die Idee von Volker (21.12.) ausprobiert und festgestellt,
daß die Auflösungen 160*120, 320*240 und 640*480 funktionieren.
Bei anderen Werten hängt die Kamera.
Die Funlayer von 0..8 funktionieren ebenfalls. Bei 9 wird nichts
hinzugefügt und bei zweistelligen Zahlen hängt die Kamera.

Hat jemand ähnliches probiert oder weitere Erfahrungen gamacht?

Gruß
Joachim
#287403
Lesenswert?

ja das gleiche hab ich auch(auflösung)und mache deswegen auch keine
auswahlbox weil sich der aufwand nicht lohnt.

Funlayer: hab ich noch nie probiert weil sie schrecklich aussehen aber
funlayer9 (bei dem Handy layer 10) funktioniert bei nem freund(SMS
aussage habs ned anschaun können)
#287406
Lesenswert?

Hi!

Ich vermute in der Kamera ist entweder ein IR Filter drin (hinter der
Linse, müsste man rausnehmen können)
oder sie reagiert nicht auf IR.

Wenn man den Filter rausnimmt stimmen aber bei Sonnenlicht
die Farben nicht mehr...
Für IR ausleuchtung eignen sich SW Kameras besser ;)

Gruss,
Simon
#287408
Lesenswert?

angemeldet: nur weil ich sonst neuerdings nichtmehr sehe was ich schon
gelesen habe :-X

Probiert: Nein, das waren nur Vermutungen ;)
Bzw dass die Farben dann falsch sind weiss ich von anderen Kameras ;)
Hab meine Cam nicht betriebsbereit. Zum testen musst du nur ne IR
Fernbedienung davorhalten (+fb knopf drücken)
und nen pic machen. Siehst du nen hellen Punkt dann reagiert sie auf
IR.
#287412
Lesenswert?

so jetzt mit dem 74LS04 chip zwischen (TX uC) - (RX Kamera) und (Enable
uC) - (Enable Kamera) hat sich bei mir rausgestellt das die kamera

1. Sehr gute bilder liefert
2. doch IR aktiv ist(siehe bild im anhang)
3. schon einige male angestürzt ist

ich werde in nächster zeit mal meinen watchdog testen ob der was taugt
Angehängte Dateien:
Gast #287414
Lesenswert?

Hallo

Also ich habe mal einen Dauertest mit der Kamera gemacht: Einen Tag
lang alle 7 sec ein Bild angefordert (mittels Skript - nicht manuell
:-)
Dabei ist die Kamera an der Rückseite ein wenig warm geworden, aber
abgestürzt ist da nix. Hat wunderbar funktioniert.


Volker
#287415
Lesenswert?

was mir auch schon 2-3 mal pasiert ist das am oberen ende der
angezeigten Seite ein teil der RS232 verbindung zu sehen ist(z.B. das
anfordern des 640x480 Bildes)
Das bild wird aber korrekt geladen und reim refresh der seite ist auch
alles wieder normal.

Watchdog probier ich heut mal, wird aber warscheinlich nicht perfekt
funktionieren da mein freund mit 56k modem länger als die 2 Sekunden
für ein 512byte Paket braucht. Hat jemand ein vorschlag was ich machen
kann das sie sich resettet falls sie abstürz troz der dauer von z.b. 10
sekunden eines paketes?
Weil ich würde die Cam über den Urlaub gerne laufen lassen so das ich
mich davon überzeugen kann das zu hause alles ok ist. Dazu müsste sie
sich aber beim absturz resetten aber das bild bei einer langsamen,
ausländischen verbndung ohne reset übertragen.

Gibt es vlt. eine Stelle (z.b. nach jedem byte) wo ich ein
Watchdogtimerreset auslöse??? Das ganze sollte stabil und zuverlässig
funktionieren.

Noch besser währe es natürlich das aufhängen zu vermeiden. Bei mir
hängt sich die Cam entweder beim anfordern eines bildes oder beim
letzten paket des bildes auf.

auch den servo werde ich heute WARSCHEINLICH testen(bin mir noch nicht
ganz sicher)
#287417
Lesenswert?

so watchdog drinn, wird am ende vom netzwerkkarte init aktiviert.

Dann bei jedem blinken und preview ein Watchdog Reset.

würde teoretisch auch sicher gut funktionieren aber praktisch macht er
was bevor er anfängt zu blinken.

Jetzt kommt meine Frage: WAS macht er vom zeitpunkt wo er mit dem init
fertig ist und bevor er anfängt zu blinken. Sind so ca. 10 sekunden
also da müsste ich so 6 mal resetten.

Ich müsste nur wissen was er macht und wo ich den code dazu finde das
ich den watchdog an dieser stelle ein paar mal resetten kann.

Falls es jemanden interessiert lade ich den fertigen code auch gerne
hoch (bin C anfänger ich denke wenn jemand erfahrung hat macht er das
in nicht mal 10 minuten)
#287419
Lesenswert?

>Wenn die cam ein init nur nach einem Strom aus-strom an zulässt bringt
>das ja alles nichts.
dafür hat die cam diese kontroll Leitung (pin7 glaubbich)
Hi = cam aktiv
Lo = cam aus

Wenn du im betrieb von Hi nach Lo , warten, und dann wieder nach high
gehst sollte sie sich resetten.
Brauchst evtl nur am begin der main ein
pin7 = lo
wait(xms);
machen ;)
#287423
Lesenswert?

eine 20mA led (hab grad keine andere) glimmt nur schwach aber von
blinken keine spur (bei mehr als 100hz auch etwas schwer)

komisch ist das die 2,75V vom anlegen der spannung bis zum bildabrufen
konstant da sind.

Bei der seite ist neben dem refresh jetzt ne auswahlbox wobei der servo
beim verstellen nix tut.
#287424
Lesenswert?

>komisch ist das die 2,75V vom anlegen der spannung bis zum bildabrufen
>konstant da sind.
Wo misst du die ?
Am Servo ? Womit ? Messgerät ? Das ist zu träge... Da wir in 20ms
Pulsen gearbeitet...
Musste mit nem Oszi gucken ;)
Wenn Servo ganz in eine Richtung ist hast du 1ms high, 19ms low
in die andere 2ms high und 18ms low (oder so in der Art ;) )

Servo + an 5V
Servo - an GND
Servo sig an die signalleitung.

Servo war getestet und funktionierte.
Manche brauchen aber ein invertiertes Signal (selten)
#287425
Lesenswert?

meiner brauch kein invert. signal(extra gefragt)

oszi hab ich ned und anschlussbelegung ist richtig.

Aber es sind doch nur 8,8ms delay oder??? Aber wenn das ned passen
würde dan müsste der servo doch wenigstens ruckeln oder so.

Das was mich so wundert ist das er ÜBERHAUPT NIX macht.

USE_SERVO ist auf 1
Gast #287427
Lesenswert?

Hallo!

Testest du in der kompletten Webserver-Webcam-Schaltung?
Zur Not schreib doch ein kleines Progrämmchen nur für die
Servoansteuerung, ohne die andere Hardware anzusprechen. Das dürfte mit
einem 10 Zeiler hinkommen.

Leider kann ich momentan selbst nix testen, da ich auf die Deutsche
Schneckenpost warte... Deine Netzwerkkarte ist noch unterwegs, der
Servo kommt auch nicht und Reichelt lässt sich auch verdammt viel Zeit
:-(

Gruß,
Daniel
#287428
Lesenswert?

>achja: der servo funktioniert auch bei angeschlossener cam???
natürlich, dazu ist er da !

>weil irgendwo im code steht das gegenteil
huh ? nee

Also kann auch 8.8ms sein, servos steuert man so:
____|`|_______
1ms = ganz nach links (oder r)
2ms = ganz nach rechts
1.5ms = mitte

Das musst du spätestens alle 20ms wiederholen.
Kannste auch alle 8ms wiederholen, macht nix ;)

Also beim anstecken an + und minus ohne signal müsste der
Servo ganz kurz zucken...

Oder mach zum testen das hier:
1
void main(){
2
portinit();
3
char delay = 1;
4
int count = 0;
5
while(1){
6
 servo_pin_high();
7
 delay_ms(delay);
8
 servo_pin_low();
9
 delay_ms(15);
10
 count++;
11
 if (count == 66){
12
  //63*16ms = ~1s
13
  count = 0;
14
  delay = 3 - delay; //abwechselnd 2,1,2,1,2,... ms
15
  }
16
}

dabei sollte der servo alle sekunde von rechts nach links gehen
Dann das ganze nochmal mit high und low ausgetausch
#287433
Lesenswert?

ich weis das ich warscjeinlich zu blöd bin aber der compiler sagt:

In file included from main.c:30:
D:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h:1 
21:3:
warning: #warning "F_CPU not defined for <avr/delay.h>"
main.c:32: warning: function declaration isn't a prototype
main.c:32: warning: return type of 'main' is not `int'
main.c: In function `main':
main.c:33: warning: implicit declaration of function `portinit'
main.c:37: warning: implicit declaration of function `servo_pin_high'
main.c:39: warning: implicit declaration of function `servo_pin_low'
main.c:47:2: warning: no newline at end of file
main.c:47: error: parse error at end of input
make.exe: *** [main.o] Error 1
Gast #287435
Lesenswert?

Hallo!

Ich hab dir das hier mal in ein Archiv gepackt.
Bei mir compiliert es durch, aber ich hab halt grad kein Servo zur
Hand.
Als Servopin wird PB3 (Beim MEGA32 im DIP-Gehäuse Pin4) hergenommen.
Kannst du aber über die Definitionen leicht ändern.
Eine .h Datei ist nicht im Archiv, da alles nötige oben in der .c
steht.

Deine Netzwerkkarte ist übrigens heut gekommen und kaum macht man's
richtig, schon läuft es :-)
Hab noch nicht mit der Klemmschaltung bzw. 74LS.. experimentiert, hab
daher noch einiges Bildrauschen und falschen Weißabgleich.

Gruß,
Daniel
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren