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 SvenA - 17.12.2012 22:57)
Als Antwort auf Re: linkesprite jpeg color camera von SvenA - 17.12.2012 22:37
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....



    Antwort schreiben


Antworten:

Re: linkesprite jpeg color camera (von Lorenzo - 20.12.2012 20:53)
    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)