Forum: Projekte & Code IQP 500 GSM Bildübertragung Tonerätzverfahren


von Niels K. (niels-k)


Angehängte Dateien:

Lesenswert?

Hallo.

Im Anhang befindet sich eine Entwicklung, mit der Bilddateien auch über 
GSM übertragen werden können.

Die Erklärungen sind recht umfangreich gehalten.

Behandelt wird:

- Platinenerstellung doppelseitig im Tonerätzverfahren
- IQP 500 Ansteuerung
- Datenübertragung über CSD/ GSM

Grüße
Niels

von gs (Gast)


Lesenswert?

Hallo Niels,
habe mir kurz Deine Beschreibung angesehen. Wirklich eine tolle und 
übersichtliche Arbeit. Sogar noch eine Beschreibung für das Erstellen 
von Platinen. Echt gut!

Den Code werde ich ausprobieren sobald ich die Schaltung aufgebaut habe.

Vielen Dank und Grüße

Gerhard

von Niels K. (niels-k)


Lesenswert?

Auf Grund einiger Nachfragen, werde ich demnächst ein vollständiges 
Anwendungsbeispiel aus dem Bereich der GSM-Anwendung hochladen.

Mittlerweile konnte ich den Bug bei der fehlerhaften Kommunikation bei 
der Verwendung von Delphi finden - daher kann nun alles bequem über die 
EXE gesteuert werden.

Im Beispiel wird folgendes enthalten sein:
Die EXE (PC) eröffnet die Datenverbdindung mit der entfernten 
Hauptplatine.

Die Hauptplatine nimmt den Anruf an.

Die EXE (PC) fordert ein Bild an.

Das Bild wird vollautomatisch übertragen, gespeichert und darsgestellt.

von Niels K. (niels-k)


Angehängte Dateien:

Lesenswert?

Ich habe die Software nun so weit überarbeitet, dass man diese auch als 
Nichtentwickler verstehen kann. Kurz ein paar Worte dazu:

- Zur Verwendung der Software wird ein PC mit serieller Schnittstelle 
benötigt. Diese kann auch durch einen USB-Seriell-Wandler gestellt 
werden. Weicht der COM-Port von COM1 ab, so ist dieser im Programm unter 
"Aufnahme" - "COM-Einstellungen" zu setzen. Die Einstellungen gehen nach 
Programmende verloren.

- Im Programmablauf wird die Telefonnummer des mobilen Geräts 
eingegeben. Durch Klick auf Datenverbindung aufbauen, wird eine 
Verbindung hergestellt. Anschließend kann ein Bild übertragen werden. 
Dieses Bild wird dann automatisch mit einem Zeitstempel versehen und mit 
dem Namensprefix, der frei wählbar ist, im Programmordner gespeichert.

- Die Bildaufnahmeprozeduren sind als Batch ausführbar. Es können 
beliebig viele Bilder hintereinander aufgenommen werden. Außerdem ist 
die Zeit zwischen den Aufnahmen frei wählbar (2-oo Minuten). Dabei kann 
ein Reconnect zum Mobiltelefon durchgeführt werden (Kosten...).

- Unterstützt wird das große (640x480) und das kleine (160x120) Format. 
Ferner kann der Blitz verwendet werden und die Daten direkt oder 
gepuffert ausgegeben werden.

- Es ist unbedingt das neue HEX-File auf die Hauptplatine zu flashen, da 
die PC-Software nur mit dieser angepassten Firmware funktioniert.

Das Programm PC und uC darf keinen kommerziellen Einsatz finden.

Im Anhang ist eine Zeitrafferaufnahme von 2 Stunden als Video zu sehen. 
Die Bilder wurden mit dem Programm aufgenommen und mit 
WindowsMovie-Maker zu einer Videodatei gewandelt.

von Niels K. (niels-k)


Angehängte Dateien:

Lesenswert?

Video vergessen ;-O

von Andreas M. (cheflooser)


Lesenswert?

Hallo Niels,
jetzt weiss ich wo du wohnst ;-).
Spass beiseite, tolles Projekt was du da auf die Beine gestellt hast.
Ich überlege mir schon ob ich die Platinen machen soll nach deiner 
Anleitung.
Wenn dieses "Hindernis" nicht wäre hätte ich es schon aufgebaut.
Es reizt mich immer mehr.

Gruß

Andreas

von gs (Gast)


Lesenswert?

Hallo Niels,
habe Deine Schaltung für die Kamera auf dem Steckbrett nach gebaut. Aber 
wie es so im richtigen Leben ist, klappt sie nicht. Daher noch einige 
Fragen:
1. Nach dem Anlegen der Spannung an der Schaltung (AtMega 8 und Kamera) 
erfolgt keine Meldung über die serielle Schnittstelle?
2. wie soll sich die LED am Pin23 (PC0) nach dem Einschalten verhalten?
3. wird TXD (ATmega) mit TX Kamera und RXD mit RX verbunden?
4. wie hast Du die FuseBit gesetzt?

Ich kann keine Funktion der Schaltung feststellen.

Gruß

Gerhard

von Niels K. (niels-k)


Lesenswert?

gs schrieb:
Hallo Gerhard. Bedauerlich, dass die Schaltung nicht auf Anhieb 
funktioniert. Ich versuche jetzt mal eine Ferndiagnose.

Fehlerquelle No 1:
Der verwendete Quarz stimmt nicht mit 11059200 Hz überein. Lösung:

> 4. wie hast Du die FuseBit gesetzt?
Die Fusebits sind auf einen externen Quarz gesetzt. BOOTSZ1=1, 
BOOTSZ0=1, SUT0=1 (Alle anderen auf 0) 0=programmed, 1=unprogrammed

> 1. Nach dem Anlegen der Spannung an der Schaltung (AtMega 8 und Kamera)
> erfolgt keine Meldung über die serielle Schnittstelle?
Unabhängig welche der beiden Softwareversionen Du verwendest, erscheint 
eine Meldung auf der softwarebasierten seriellen Schnittstelle. Dabei 
ist unbedingt zu beachten, dass Du den Pegelwandlerausgang in Richtung 
PC auf Pin D.7 legst. Der Eingang aus Richtung des PCs ist auf Pin B.1 
zu setzen.

> 2. wie soll sich die LED am Pin23 (PC0) nach dem Einschalten verhalten?
Das ist abhängig von der Softwareversion. Nach dem Einschalten ist die 
LED aber in jedem Fall aus. Erst nach Senden eines Zeichens über den 
Softwareuart erleuchtet diese.

> 3. wird TXD (ATmega) mit TX Kamera und RXD mit RX verbunden?
Nein. Das würde ja auch keinen Sinn ergeben. TXD (Atmega) geht natürlich 
auf RXD (Kamera).


Andere Fehlerquellen: Spannung ist zu hoch/ niedrig. Minimal sind 3,7 
Volt, maximal aber 4,5 Volt an der Versorgung der Kamera. Strom liegt 
bei guten 60-80 mA.

Hoffe, ich konnte helfen. Bei Fragen einfach melden.

von gs (Gast)


Lesenswert?

Hallo Niels,

der Wert des Quarzes ist mir voll durchgegangen. Diesen muss ich mir 
erst besorgen. Im Schaltplan stand 16MHz und diesen habe ich genommen. 
Den im Text angeführten Wert habe ich wohl ignoriert.

Vielen Dank für Deine Ausführungen und viele Grüße

Gerhard

von Niels K. (niels-k)


Angehängte Dateien:

Lesenswert?

gs schrieb:

> der Wert des Quarzes ist mir voll durchgegangen. Diesen muss ich mir
> erst besorgen. Im Schaltplan stand 16MHz und diesen habe ich genommen.

Ja der Wert ist da irgendwie stehen geblieben. Im Grunde könnte es auch 
mit einem 16Mhz Quarz funktionieren. Ich habe hier die aktuelle Version 
mit 16Mhz kompiliert. Probiere es einfach mal aus. Kaputt kannste da 
nicht viel machen. Das Hexfile ist übrigens zur Software kompatibel, 
daher auch ohne Hyperterminal verwendbar.

von gs (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Niels,
vielen Dank für die angepasste Version. Nachdem ich festgestellt habe, 
dass die Übertragungsrate 9600 und nicht 19200 kann ich den Datenverkehr 
auch lesen. Leider hängt sich aber anscheinend die Kommunikation auf. 
Anbei die Bildschirmkopie.

Gruß
Gerhard

von Niels K. (niels-k)


Lesenswert?

gs schrieb:
> Nachdem ich festgestellt habe,
> dass die Übertragungsrate 9600 und nicht 19200 kann ich den Datenverkehr
> auch lesen. Leider hängt sich aber anscheinend die Kommunikation auf.

Hallo Gerhard,
die aktuelle Version ist ja die fürs Mobiltelefon und arbeitet daher 
auch mit 9,6 kBps. Bis auf wenige Aussnahmen macht die Version auch das, 
was der bereits gepostete zweite Code (also der fürs Mobiltelefon) auch 
macht.

Wenn Du also eine höhere Datenrate am Ausgang erzielen möchtest, musst 
Du den Bascomquelltext ändern und auf die gewünschte Baudrate setzen.

Allerdings sollte die Parametriesierung der Kamera auch mit dem 16 Mhz 
Quarz gehen. Das tut sie aber laut Deinem Plot nicht. Die Kamera wird 
vermutlich gar nicht erkannt, denn sonst müßte man noch folgende 
Statuszeilen sehen:

ATE0
AT+CMEE=1
AT^SACD=1
AT^SACD=2,"17"
AT^SACD=2,"17,00,2,IQP5 01.05"
AT^SACD=2,"17,04,2,3"
AT^SACD=2,"17,04,OK"
AT^SACD=2,"17,04,2,1"
AT^SACD=2,"17,04,2,2,4897,3545
AT^SACD=2,"17,01,OK"
Wechsele die Datenrate ...

Wo liegt nun das Problem?
1. Untersuche, ob die Versorgungsspannung der Kamera einbricht.
2. Leuchtet die grüne LED der IQP?
3. Blinkt die grüne LED der IQP?
4. Wie schaltest Du den CTS und RTS Kanal. Möglicherweise vertauscht?
5. Hast Du einen Transistor für den RTS Kanal. Der ist unbedingt nötig, 
da hier die Kamera einen nicht unerheblichen Stromanteil bezieht.
6. Sind TX und RX der Kamera richtig mit dem UC verbunden?

Viel Erfolg beim Finden des Problems...
Viele Grüße
Niels

von gs (Gast)


Lesenswert?

Hallo Niels,
habe heute in Ruhe nochmal alles überprüft und eine kalte Lötstelle 
gefunden. So jetzt klappt alles. Vielen Dank für Deine Hilfe.
Dauert die Datenübertragung bei Dir auch so lange? Ungefähr 2 Minuten 
dauert die Übertragung bei der kleinen Auflösung. Wobei die Übertragung 
von der Kamera zum ATMega länger dauert als die Übertragung vom ATMega 
zum PC. Aber die Übertragungsrate ist doch eigentlich hier höher.

Viele Grüße
Gerhard

von Niels K. (niels-k)


Lesenswert?

Schön zu hören.

Zur "Geschwindigkeit":
Die Datenübertragung kann auf zwei Arten erfolgen. Die schnellste Art 
ist es, die Daten direkt auszugeben. Dabei ist der Haken bei "Direkt" zu 
setzen. Dadurch werden die Daten nicht im EEPROM gepuffert.

Du musst Dir das so vorstellen: Jedes Byte, das von der Kamera an den UC 
gesendet wird, wird über I2C an den EEPROM gesendet. Da die 
Schreibgeschwindigkeit des EEPROMs pro Byte aber bei rund 10ms liegt, 
dauert die Übertragung in den Speicher recht lange (5000 
Byte*10ms/Byte=50000ms=50 Sekunden).

Wenn Du die Kamera ohnehin "nur" am PC betreiben willst, solltest Du die 
Baudrate im Bascomquelltext höher ansetzen und die Daten direkt 
ausgeben. Aber im Grunde wären das "Perlen für die Säue", der Sinn der 
ganzen Anlage ist es schließlich Datensätze zu normieren, zu paketieren 
um diese an beliebige Folgeinstanzen weiterleiten zu können. So ist es 
z. B. möglich - neben CSD - die gesamte Datenflut via DTMF zu 
übertragen, z. B. im CB-Funk-Bereich (vgl. freie Datenkanäle). RFM 
Anwendungen sind ebenfalls denkbar.

von Mehmet K. (mkmk)


Lesenswert?

Kleiner Anhaltspunkt:
Wenn Du die Bilddaten (640x480, ca. 37 kBytes) auf einer SD-Karte 
ablegst:
* 10 Sekunden bei einem Kaltstart
* alle weiteren Bilder ca. 7 Sekunden

von Niels K. (niels-k)


Lesenswert?

Ja das ist klar. Die SD-Karte ist aber nicht mit einem EEPROM 
vergleichbar. Schon von der Speicherkapazität unterscheiden sich diese 
doch ganz erheblich ...

Spaß beiseite. Natürlich wäre eine MMC-Karte als Speichermedium das 
Mittel der Wahl - gerade wenn es um permantentes Aufnehmen von Bildern 
ginge. Der EEPROM ist auch mehr aus einer Laune heraus mit in die 
Zeichnung aufgenommen worden, und wo er schon mal da war ...

Wenn es um Performance geht, dann empfehle ich ohnehin die Kamera direkt 
an den PC anzuschließen. Das Schalten der Steuerleitungen kann man auch 
mit Delphi sehr einfach umsetzen. Man braucht dann wirklich nur einen PC 
und keinen weiteren Aufbau.

Mir ging es aber eher um die Fernbildübertragung im Rahmen eines SMS 
Fernschalters. Daher auch der etwas umständlich anmutende Umweg über die 
Platinen (vgl. Ausführungen im PDF).

von Niels K. (niels-k)


Angehängte Dateien:

Lesenswert?

Ab dieser Version überarbeiteten Version 0.2 sind nun auch alle – bisher 
noch nicht beschriebenen – Befehle im „GSM Fern Bild Logger“ 
funktionsfähig.

·  Bild aufnehmen (Softwareunterstützung)
·  Bildaufnahmeparameter ändern (Softwareunterstützung)
·  Guthabenabfrage (Terminal)
·  Guthabenstand per SMS versenden
·  Guthabenstand aus Speicher auslesen
·  Guthaben automatisch aufladen (nur für ALDI-Karten) (Terminal)
·  Anruf bei frei programmierbarer Nummer (Terminal)
·  Nachrichten auf Display des Mobiltelefons ausgeben
·  Automatisches Einschalten des Mobiltelefons

von Josef (Gast)


Lesenswert?

Kann Das Ihnen helfen
Beitrag "ATMEGA32_IQP500_GM862"

von Niels K. (niels-k)


Angehängte Dateien:

Lesenswert?

Nach einiger Zeit des aktiven Testens des am 13.12. geposteten Codes 
sind mir bei der Bildausgabe einige "Suboptimalitäten" ;-) aufgefallen.

Bei der direkten Verwendung von Hyperterminal kam es vor, dass zu Beginn 
einer Übertragung die serielle Schnittstelle mit den ankommenden 
Datenfluten "überfordert" war. Sollte dies der Fall sein, so ist

ab Zeile 327 folgendes einzufügen.
1
If Eepromspeicherung = 0 Then
2
Print #1 , "Beginne mit Datenausgabe (D)..."
3
Print #1 , "CAM_B"
4
waitms 50
5
If Ausgabeformat = 1 Then
6
Print #1 , Chr(255);
7
End If


Außerdem ab Zeile 391:
1
If Eepromspeicherung = 1 Then
2
Print #1 , "Beginne mit Datenausgabe (E)..."
3
Print #1 , "CAM_B"
4
waitms 50 
5
Hoechste_adresse = E_addr
6
E_addr = &H0010

einzutragen. Damit sollten mögliche Fehler behoben sein.

Als Anregung zum Zusammenbau, liegt im Anhang ein Demobild, das den 
Aufbau in einem Vogelhaus zeigt. Keine Sorge: Diese Version kam nie über 
eine Betaversion hinaus, da die Energieversorgung, auf Grund des 
verwendeten Spannungsreglers, den Akku (Bleigel 4,2 Ah/ 13,2 V) sehr 
schnell entludt. Das kleine Bild, ist ein Bild, in einen Spiegel hinein 
fotografiert.

Die Guthabenaufladeprozeduren konnte ich bisher 3 Mal nutzen. Sie 
funktionieren selbst bei wechselnden Ansagetexten variabler Länge 
einwandfrei. Nur beim automatischen Auflegen nach dem Aufladen scheint 
es nicht so klappen zu wollen - es erfolgt aber eine Trennung von Seiten 
der Kontonummer nach rund 2 Minuten Inaktivität (und damit ist die 
Leitung auch wieder frei).

von Niels K. (niels-k)


Lesenswert?

Mehmet Kendi schrieb:
> Wenn Du die Bilddaten (640x480, ca. 37 kBytes) auf einer SD-Karte
> ablegst:
> * 10 Sekunden bei einem Kaltstart
> * alle weiteren Bilder ca. 7 Sekunden

Habe es mittlerweile auf SD-Karte umgestellt - Werte konnten erreicht 
werden - allerdings nur fürs Speichern. Das Ausgeben (nach Aufnahme) 
dauert abhängig von der Baudrate (gewählt 57,6bps HEXDUMP) direkt zum 
PC, also ohne Mobiltelefon, rund 30 Sekunden. Mit SD-Karte geht es aber 
wirklich um Längen besser als mit dem EEPROM.


--> Werde die Kiste so umbauen, dass sie in Kombination mit einem 
GPS-Logger in regelmäßigen Abständen ein Bild macht, die Position 
abspeichert. Platinen dafür sind schon fertig. Fehlt nur noch die 
Programmierung. Kommt vermutlich mit eigenem Dateisystem, welches eine 
TOC mit 10000 Einträgen umfassen wird. Das entspricht in etwa 500 MByte 
bei großen Bildern bzw. 50 MByte bei kleinen Bildern - was wiederum rund 
500 km bei Fahrtem mit dem Rad mit einem Bild pro 50 Metern (25km/h--> 
1/8Bilder/s) entspricht.

von Niels K. (niels-k)


Angehängte Dateien:

Lesenswert?

Im Anhang ist ein Teil der überarbeiteten Platinen. Es handelt sich 
hierbei um die RS232-I/O-Adapterplatine. Diese Platine, die der 
Kommunikation mit dem PC dient, musste dringend erneuert werden, da die 
dünnen Leiterbahnen (gerade da im Tonerätzverfahren gefertigt) den 
harten Umgebungsbedingungen auf meinem Schreibtisch nicht gewachsen 
waren. Die Leiterbahndicke wurde deutlich erhöht, die Platinenabmaße 
reduziert. Falls es jemand nachbauen möchte, empfehle ich diese 
überarbeitete Version 1.1 zu nehmen. Anbei die Druckdateien und einige 
Bilder der bestückten Platine. Gefertigt wurde wie im PDF beschrieben.

Druckgroesse:
Breite: 100 mm
Hoehe: 63.5 mm

von Niels K. (niels-k)


Angehängte Dateien:

Lesenswert?

Mittlerweile geht die Entwicklung mit der SD-Karte in die Endphase über 
- anbei ein Video, dass mit hoher Auflösung (also für die Verhältnisse 
der Kamera hoch ;-)) aus insgesamt 280 Einzelbilder zusammengesetzt 
wurde.

Durch den Einsatz der SD-Karte wird das Gerät auch für den stationären 
Einsatz mit gelegentlicher Abfrage einiger Bilddaten interessant. Der 
Vorteil liegt darin, dass nicht permanent eine Datenverbindung 
hergestellt sein muss und dadurch Zeiten ohne Aktivität zum 
Datenaustausch genutzt werden können.

von Niels K. (niels-k)



Lesenswert?

Ein paar Vorabinformationen zur neuen Version an deren Handbuch ich 
gerade arbeite. Es wird sich um eine Kombination fast aller hier bisher 
vorgestellten Geräte handeln. Es vereint die Vorteile eines GPS-Loggers, 
mit denen eines nicht ortsgebundenen Fotoapparats.

Das Gerät verfügt über ein grundlegend neu entwickeltes Dateisystem auf 
der SD-Karte, einen Kameraanschluss, einen Anschluss für externe 
serielle Peripheriegeräte, wie z. B. PC oder Mobiltelefon, einen 
Anschluss für eine GPS-Maus, sowie einen zusätzlichen Wannenstecker zu 
Adapterplatinen, auf denen Schaltelemente untergebracht werden können.

Die Software auf PC-Seite ist in Delphi geschrieben. Im Anhang ein 
Screenshot, auf denen man im Groben erkennen kann, was alles möglich 
sein wird, u.a. Imageerstellung von eingelegten SD-Karten, direkte 
GPX-Datenerzeugung. Export zu bereits entwickelten und vorgestellten 
Matlabkomponenten, Bild/ Positionszuordnung mit interaktiver Führung. 
Klickt der Benutzer beispielsweise, auf der sich aufbauenden Karte, auf 
einen Punkt, so wird das passende Bild zur Position angezeigt.

Weiterhin lassen sich alle Mobiltelefonfunktionen nutzen. Die 
Bildqualität (Komprimierung) kann nun von Stufe 2 auf Stufe 3 und 1 
gestellt werden.

Anbei ein paar Bilder der neuen Software (Ansicht wird noch optimiert 
...), Ausschnitt aus GoogleEarth an der Position - die in der Software 
angezeigt wird - und ferner ein Bild der Prototypenplatine (die 
Endversion liegt erst im PC vor).

Fazit: Interessante Kombination mit universellen Einsatzgebieten in 
modularer Bauweise.

von Niels K. (niels-k)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.