Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: linkesprite jpeg color camera Kategorie: Programmierung Basic (von Lorenzo - 20.12.2012 20:53)
Als Antwort auf Re: linkesprite jpeg color camera von SvenA - 17.12.2012 22:57
Ich nutze:
C-Control Pro Mega128
> > > > > > > > Ich habe die Kamera der TXD an PE0  und der RXD  an PE1 angeschlossen.
> > > > > > > >
> > > > > > > > Ich habe folgendes Programm geschrieben :
> > > > > > > >
> > > > > > > >
> > > > > > > > 'Hauptprogramm
> > > > > > > > Sub main()
> > > > > > > > Dim reset(4)= {&H56, &H00, &H26, &H00} As Long
> > > > > > > > Dim returnr(4)= {&H76, &H00, &H26, &H00} As Long
> > > > > > > > Dim picture(5)= {&H56, &H00, &H36, &H01, &H00} As Long
> > > > > > > > Dim returnp(5)= {&H76, &H00, &H36, &H00, &H00} As Long
> > > > > > > >
> > > > > > > >
> > > > > > > > Serial_Init(0,SR_8BIT Or SR_1STOP Or SR_NO_PAR,SR_BD19200)
> > > > > > > >                                                   'Init RS232: 19200 bps, 8 Bit, 1 Stop, NP
> > > > > > > > Serial_WriteText(0,reset)
> > > > > > > > Serial_WriteText(0,returnr)
> > > > > > > > Serial_WriteText(0,picture)
> > > > > > > > Serial_WriteText(0,returnp)
> > > > > > > > End Sub
> > > > > > > >
> > > > > > > > Ist das Programm so richtig ?
> > > > > > > > Nachstehend das "Comunication Protocol":
> > > > > > > >
> > > > > > > > 1. Reset
> > > > > > > >
> > > > > > > > Command (HEX)   56 00 26 00
> > > > > > > > Return      (HEX)   76 00 26 00
> > > > > > > >
> > > > > > > > 2.Take picture
> > > > > > > >
> > > > > > > > Command (HEX)  56 00 36 01 00
> > > > > > > > Return      (HEX)  76 00 36 00 00
> > > > > > > >
> > > > > > > > 3.Read JPEG file size
> > > > > > > >
> > > > > > > > Command (HEX)  56 00 34 01 00
> > > > > > > > Return      (HEX)  76 00 34 00 04 00 00 XH XL
> > > > > > > >
> > > > > > > > 4.Read JPEG file content
> > > > > > > >
> > > > > > > > Command (HEX) 56 00 32 0C 00 0A 00 00 MH ML 00 00 KH KL XX XX
> > > > > > > > Return (HEX)      76 00 32 00 00
> > > > > > >
> > > > > > >
> > > > > > > du solltest auf jedenfall noch masse beider geräte, (cam und c-control) verbinden
> > > > > > >
> > > > > > >
> > > > > > > ImManual steht.... (Baumdiagramm ablauschema) bei 8.1
> > > > > > >
> > > > > > > Camera Power on
> > > > > > >
> > > > > > > INIT END ......
> > > > > > >
> > > > > > > Delay 2-3 Seconds, and send take Picture command
> > > > > > >
> > > > > > > du wartest in deinm program schon mal nicht.....
> > > > > > >
> > > > > > > auch dein einlesen der bilddaten ist mir im groben überblick etwas rätselhaft.
> > > > > > >
> > > > > > > du holst in keiner schleife die informationen schau dir punkt 8.2 (Take Jpeg ...) genau an
> > > > > > > folge den diagramverlauf...
> > > > > > >
> > > > > > >
> > > > > >
> > > > > > Vielen Dank für deine Antwort,
> > > > > >
> > > > > > ich habe ein C-Control PRO128 Projectboard.
> > > > > > Die Kamera ist an GND an Vcc an PE0 und PE1  angeschlossen.
> > > > > > Lese ich die Datei mit Serial_ReadExt ?
> > > > > > Ich werde den Diagrammverlauf besser anschauen.
> > > > > >
> > > > > > Gruesse
> > > > > > Lorenzo
> > > > >
> > > > > Hallo Lorenzo,
> > > > >
> > > > > ist wohl die elegantere lösung... da du hier leicht erkennen kannst ob noch daten ankommen (EOF)
> > > > >
> > > > > Rückgabewert
> > > > >
> > > > >  
> > > > > empfangenes byte aus der seriellen Schnittstelle
> > > > > 256 (0x100) kein Zeichen in der Schnittstelle
> > > > >
> > > > > Ist das empfangene byte=256 wird nichts mehr von der cam übertragen
> > > > >
> > > > > dann müsste deine Prüfung wie folgt ausschauen
> > > > >
> > > > >
> > > > > Do While 1   ' Endlosschleife
> > > > > byte=Serial_ReadExt(0)  
> > > > >     If byte=256 Then
> > > > >         Exit ' bricht Schleife ab
> > > > >
> > > > >     End If
> > > > > 'Ein byte von 0-255 wurde empfangen, und kann hier dann weiterverarbeitet werden
> > > > >
> > > > >
> > > > > End While
> > > > >
> > > > >  
> > > > >
> > > > > Gruss
> > > >
> > > >
> > > > Nabend Lorenzo,
> > > >
> > > > ich hab mir das Manual jetzt mal genauer angeschaut... ;) das kannst du übrigens auch.
> > > > Ich kenn die Cam Nicht, aber sieht interessant aus ;)....
> > > >
> > > > Also was mir jetzt aufgefallen ist....
> > > >
> > > > 1. Es gibt im Manual immer eine SEND und eine RETURN Combi.
> > > > Sie SendCombi ist das was du zur CAM schickst, die RETURN angaben sind das was du von der CAM erhalten
> > > > solltest im erfolgsfalle.
> > > >
> > > > Beispiel bei 7.3
> > > > Read JPEG file size
> > > > Du sendest :56 00 34 01 00  
> > > > Und erhälst als antwort Return  76 00 34 00 04 00 00 XH XL
> > > > Wobei XH und XL die grö�e des bildes darstellen.
> > > >
> > > > Kurz, alles was bei RETURN in dem Handbuch steht sind werte die du von der CAM lesen musst.
> > > > Nicht zur Cam Senden!
> > > >
> > > > Anderes Beispiel:
> > > > 7.7 im Handbuch
> > > >
> > > > 7.7 Image size (Höhe und Breite einstellen)
> > > > Command 1  
> > > > Du sendest                                    Die Cam Antwortet mit
> > > > 56 00 31 05 04 01 00 19 00  640*480      76 00 31 00 00
> > > > 56 00 31 05 04 01 00 19 11  320*240      76 00 31 00 00
> > > > 56 00 31 05 04 01 00 19 22  160*120      76 00 31 00 00
> > > >
> > > > Hoffe das hilft dir weiter ;)
> > >
> > > Ich habe meine Programm erweitert:
> > >
> > > 'Hauptprogramm
> > > Sub main()
> > >
> > > Dim byte As Byte
> > > Dim reset(4)= {&H56, &H00, &H26, &H00} As Long
> > > Dim picture(5)= {&H56, &H00, &H36, &H01, &H00} As Long
> > > Dim read(5)={&H56, &H00, &H34, &H01, &H00} As Long
> > > Dim readjpeg(9)={&H56, &H00, &H31, &H05, &H04, &H01, &H00, &H19, &H22} As Long
> > > Dim stop(5)={&H56, &H00, &H36, &H01, &H03} As Long
> > > Dim ratio(9)={&H56, &H0, &H31, &H05, &H01, &H01, &H12, &H04, &H00} As Long
> > > Dim power(7)={&H56, &H00, &H3E, &H00, &H01,&H01} As Long
> > > Dim baud(7)={&H56, &H00, &H24, &H03, &H01, &H56, &HE4} As Long
> > > Dim init_end(20)={&H36, &H32, &H35, &H0D, &H0A, &H49, &H6E, &H69, &H74, &H20, &H65
> > > , &H6E, &H69, &H74, &H20, &H65, &H6E, &H64, &H0D, &H0A} As Long
> > >
> > >
> > > Serial_Init(0,SR_8BIT Or SR_1STOP Or SR_NO_PAR,SR_BD19200)
> > > Init RS232: 19200 bps, 8 Bit, 1 Stop, NP
> > >
> > > Serial_WriteText(0,baud)
> > > Serial_WriteText(0,reset)
> > > Serial_WriteText(0,init_end)
> > > AbsDelay(3000)
> > > Serial_WriteText(0,picture)
> > > Serial_WriteText(0,ratio)
> > > Serial_WriteText(0,read)
> > > Serial_WriteText(0,readjpeg)
> > >
> > >
> > > Do While 1   ' Endlosschleife
> > >
> > >     byte=Serial_ReadExt(0)
> > >
> > >     Msg_WriteChar(byte)
> > >
> > >     If byte=256 Then
> > >     Exit ' bricht Schleife ab
> > >
> > >     End If
> > > 'Ein byte von 0-255 wurde empfangen, und kann hier dann weiteverarbeitet werden
> > >
> > > End While
> > >
> > > Serial_WriteText(0,stop)
> > >
> > >
> > > End Sub
> > >
> > >
> > > die Datenausgabe mit oder ohne Kamera ist gleich
> > >
> > > im Manual auf 7.9  UART  ist geschrieben dass MAX232 entfernt oder convertiert werden soll,
> > > wie wird das gemacht.
> > > Ich hoffe dich nicht zu sehr zu Stressen und bin für deine Hilfe dankbar-
> > >
> > > Grüsse
> > > Lorenzo
> > >
> >
> >
> > Hi Lorenzo,
> >
> > du meinst
> > UART is in RS232 level.
> >
> > Also der MAX3232 IC macht aus ein TTL Signal ein RS232 Sprich er hebt die Pegel an
> >
> > TTL = 0/5 V, RS232 0/12V (soweit ich mich erinnere)
> >
> > (nachfolgend nur vermutung, da ich das modul nicht kenne / habe)
> > Auf der Platine wird ein Chip sein mit der Bezeichnung MAX3232, Dieser macht aus einem 0/5V pegel
> > das RS232 Komforme Signal sprich 0/12V von der Cam kommend und umgekehrt.
> > Macht er aus einem RS232 Signal (0/12v) ein TTL Signal (0/5V).
> >
> > If connect to the MCU, please add a level converter or remove the MAX3232 ic.
> > Wenn du die cam an ein MCU (MicroChipUnit) anschliesst, sollst du entweder das RS232 Signal
> > durch einen zusätzlichen Konverter in TTL und verwenden oder den Chip Max3232 entfernen.
> >
> > hab mir grad nochmal das Manual angeschaut....
> >
> > unter 4.2 findest du die lösung ;)
> >
> > 4.2 Hardware connection
> > l LS - Y201 - TTL (TXD) to UART-USB (RXD).
> > l LS - Y201 - TTL (RXD) to UART-USB (TXD).
> > l LS - Y201 - TTL (GND) to UART-USB (GND). At the same time it also need to
> > connect to GND in power.
> > l LS - Y201 - TTL (VCC) to +5V DC power.
> >
> > daraus vermute ich, das der UART-USB seperat an das Cam Modul angeschlossen ist?
> >
> > Bleibt die frage, hast du dieses Modul dann oder gehst du direkt von der Cam zum µC.
> >
> > Was mir noch aufgefallen ist, deine Init der SerialCom  hast du auf 19200 Baud,
> > im Manual der Cam steht bei
> >
> > 2. Specification
> >
> > Default baud rate of serial port is 38400
> >
> >
> > du solltest ggf. diese geschwindigkeit auch im Programm einstellen statt 19200
> >
>
>
> was mir grad noch durch den kopf geht....
> deine ganzen
>
> Dim reset(4)= {&H56, &H00, &H26, &H00} As Long
>
> ect. warum Long????
> die einzelnen werte sind doch Bytewerte
>
> Verwende As Byte....
>
Hallo,

ich habe die Schaltung überprüft und habe fesstgestellt dass ein Kabel nicht richtig festgemacht war.
Jetzt wenn ich den Projektbord einschalte erhalte ich folgende Daten:

VC0703 1.00
Ctrl infr exist
user-defined sensor
625
init end

Ich habe noch Probleme mit dem Programm weil nur die Initialisirung (Serial_WriteText(0,int_end)) erfolgt.

Grüsse
Lorenzo

P.S.:
die Kamera ist die LinkSprite JPEG Color Camera TTL Interface ... und besteht aus einem Modul



    Antwort schreiben


Antworten:

Re: linkesprite jpeg color camera (von SvenA - 20.12.2012 23:13)
    Re: linkesprite jpeg color camera (von Lorenzo - 21.12.2012 15:32)
        Re: linkesprite jpeg color camera (von SvenA - 22.12.2012 17:45)
            Re: linkesprite jpeg color camera (von Lorenzo - 29.12.2012 21:39)
                Re: linkesprite jpeg color camera (von SvenA - 30.12.2012 13:38)