INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino uno mit Kamera
29.05.2013, 08:03
Beitrag #1
Arduino uno mit Kamera
Guten Tag.

Ich bin blutiger anfänger was arduino angeht, aber für ein projekt muss ich den Arduino uno mit einer kamera verbinden und sie zum laufen bringen. Kurz zur hardware:
Arduino uno
http://www.exp-tech.de/Sensoren/LinkSpri...rarot.html

Mein problem ist das das ich über die software LSY201 die man für die kamera runterladen kein bild bekomme und über die x-ctu software kommt diese anzeige (bild)     .
Also wird irgendwas übertragen aber was?

ich habe es auch versucht über die VC0706 software, verbinden geht aber bei allem anderen kommt immer die fehler meldung "cmd time out".
Der arduino source code würde mir von der kamera homepage zugeschickt, vielleicht liegt da der fehler.
Ich sitze seit über 2 wochen dran komme einfach nicht weiter und ich bin für jede hilfe sehr dankbar

Code:
#include <SoftwareSerial.h>

byte incomingbyte;
SoftwareSerial mySerial(9,10);                     //Configure pin 9 and 10
int a=0x0000,j=0,k=0,count=0;                    //Read Starting address      
uint8_t MH,ML;
boolean EndFlag=0;
                              
void SendResetCmd();
void SendTakePhotoCmd();
void SendReadDataCmd();
void StopTakePhotoCmd();

void setup()
{
  Serial.begin(19200);
  mySerial.begin(38400);
}

void loop()
{
    //Serial.print("Beginning of loop");
     SendResetCmd();
     delay(4000);                               //After reset, wait 2-3 second to send take picture command
      
      SendTakePhotoCmd();
    //Serial.print("Sent send picture");

     while(mySerial.available()>0)
      {
        incomingbyte=mySerial.read();

      }  
      byte a[32];
      
      while(!EndFlag)
      {  
         j=0;
         k=0;
         count=0;
         SendReadDataCmd();

         delay(25);
          while(mySerial.available()>0)
          {
               incomingbyte=mySerial.read();
               k++;
               if((k>5)&&(j<32)&&(!EndFlag))
               {
               a[j]=incomingbyte;
               if((a[j-1]==0xFF)&&(a[j]==0xD9))      //Check if the picture is over
               EndFlag=1;                          
               j++;
           count++;
               }
          }
        
          for(j=0;j<count;j++)
          {   if(a[j]<0x10)
            //Serial.write((byte)a[j]);
          
              Serial.print("0");
              Serial.print(a[j],HEX);
              //Serial.print(" ");
          }                                       //Send jpeg picture over the serial port
          //Serial.println();
      }      
     while(1);
}

//Send Reset command
void SendResetCmd()
{
      mySerial.write((byte)0x56);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x26);
      mySerial.write((byte)0x00);
}

//Send take picture command
void SendTakePhotoCmd()
{
      mySerial.write((byte)0x56);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x36);
      mySerial.write((byte)0x01);
      mySerial.write((byte)0x00);  
}

//Read data
void SendReadDataCmd()
{
      MH=a/0x100;
      ML=a%0x100;
      mySerial.write((byte)0x56);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x32);
      mySerial.write((byte)0x0c);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x0a);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x00);
      mySerial.write((byte)MH);
      mySerial.write((byte)ML);  
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x20);
      mySerial.write((byte)0x00);  
      mySerial.write((byte)0x0a);
      a+=0x20;                            //address increases 32£¨set according to buffer size
}

void StopTakePhotoCmd()
{
      mySerial.write((byte)0x56);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x36);
      mySerial.write((byte)0x01);
      mySerial.write((byte)0x03);        
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.05.2013, 19:54
Beitrag #2
RE: Arduino uno mit Kamera
(29.05.2013 08:03)Dave262 schrieb:  Guten Tag.

Ich bin blutiger anfänger was arduino angeht, aber für ein projekt muss ich den Arduino uno mit einer kamera verbinden und sie zum laufen bringen. Kurz zur hardware:
Arduino uno
http://www.exp-tech.de/Sensoren/LinkSpri...rarot.html

Mein problem ist das das ich über die software LSY201 die man für die kamera runterladen kein bild bekomme und über die x-ctu software kommt diese anzeige (bild).
Also wird irgendwas übertragen aber was?

ich habe es auch versucht über die VC0706 software, verbinden geht aber bei allem anderen kommt immer die fehler meldung "cmd time out".
Der arduino source code würde mir von der kamera homepage zugeschickt, vielleicht liegt da der fehler.
Ich sitze seit über 2 wochen dran komme einfach nicht weiter und ich bin für jede hilfe sehr dankbar

Code:
#include <SoftwareSerial.h>

byte incomingbyte;
SoftwareSerial mySerial(9,10);                     //Configure pin 9 and 10
int a=0x0000,j=0,k=0,count=0;                    //Read Starting address      
uint8_t MH,ML;
boolean EndFlag=0;
                              
void SendResetCmd();
void SendTakePhotoCmd();
void SendReadDataCmd();
void StopTakePhotoCmd();

void setup()
{
  Serial.begin(19200);
  mySerial.begin(38400);
}

void loop()
{
    //Serial.print("Beginning of loop");
     SendResetCmd();
     delay(4000);                               //After reset, wait 2-3 second to send take picture command
      
      SendTakePhotoCmd();
    //Serial.print("Sent send picture");

     while(mySerial.available()>0)
      {
        incomingbyte=mySerial.read();

      }  
      byte a[32];
      
      while(!EndFlag)
      {  
         j=0;
         k=0;
         count=0;
         SendReadDataCmd();

         delay(25);
          while(mySerial.available()>0)
          {
               incomingbyte=mySerial.read();
               k++;
               if((k>5)&&(j<32)&&(!EndFlag))
               {
               a[j]=incomingbyte;
               if((a[j-1]==0xFF)&&(a[j]==0xD9))      //Check if the picture is over
               EndFlag=1;                          
               j++;
           count++;
               }
          }
        
          for(j=0;j<count;j++)
          {   if(a[j]<0x10)
            //Serial.write((byte)a[j]);
          
              Serial.print("0");
              Serial.print(a[j],HEX);
              //Serial.print(" ");
          }                                       //Send jpeg picture over the serial port
          //Serial.println();
      }      
     while(1);
}

//Send Reset command
void SendResetCmd()
{
      mySerial.write((byte)0x56);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x26);
      mySerial.write((byte)0x00);
}

//Send take picture command
void SendTakePhotoCmd()
{
      mySerial.write((byte)0x56);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x36);
      mySerial.write((byte)0x01);
      mySerial.write((byte)0x00);  
}

//Read data
void SendReadDataCmd()
{
      MH=a/0x100;
      ML=a%0x100;
      mySerial.write((byte)0x56);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x32);
      mySerial.write((byte)0x0c);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x0a);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x00);
      mySerial.write((byte)MH);
      mySerial.write((byte)ML);  
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x20);
      mySerial.write((byte)0x00);  
      mySerial.write((byte)0x0a);
      a+=0x20;                            //address increases 32£¨set according to buffer size
}

void StopTakePhotoCmd()
{
      mySerial.write((byte)0x56);
      mySerial.write((byte)0x00);
      mySerial.write((byte)0x36);
      mySerial.write((byte)0x01);
      mySerial.write((byte)0x03);        
}

...ähm, mal ne doofe Frage... welche Kameraauflösung willst du fahren und dann in Farbe oder S/W ?
Wieviele Bilder pro Sekunde sollen da umgesetzt werden ?
Soll der Arduino das Bild speichern können und dann wieder ausgeben ?
Wie soll der Arduino das Bild ausgeben ???....auf dem Textterminal als xx...yy--- Bildchen ?
Also wenn du mich fragst dann ist der ganze Arduino Laden für Bildverarbeitung einfach etliche Nummer zu klein um da was brauchbares zu implementieren....
Versuchs mal mit nem Raspberry Pi....und der ist wohl schon unterste Grenze für sowas...

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Komplexer Kamera Timelaeps Steuerung (Gimbal/Slider Kombination) fknobel 6 823 25.10.2015 14:25
Letzter Beitrag: Klaus(i)
  Arduino Ethernet Kamera 4711engel 0 639 29.05.2015 10:56
Letzter Beitrag: 4711engel
  Arduino Ethernet mit USB 2 Serial Converter/Welche Einstellungen im Arduino-Sketch lociluke 1 1.118 05.05.2015 13:40
Letzter Beitrag: Bitklopfer
  Arduino Mega-Projekt mit EEPROM auf Arduino Due portieren Foto-Ralf 17 3.144 16.03.2015 12:06
Letzter Beitrag: Foto-Ralf

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste