Proyecto camara con conexion bluetooth

Buenos días a todos, en este proyecto quería familiarizarme con la captura de fotografías y su posterior tratado.
Utilizando la cámara OV7670 y Arduino Mega conseguí hace ya varios días tomar fotos y guardarlas en una SD, el siguiente paso que me propongo, es enviar la foto por bluetooth al móvil o al PC, donde sea!

También aprovecho para decir a los que estén en este mensaje buscando información sobre la captura de fotos con la OV7670 y Arduino, que es bastante complicado encontrar una fuente fiable, "hay pocos proyectos en internet" este libro os solucionara cualquier pregunta al respecto "Beginning Arduino ov7670 Camera Development", y si tenéis cualquier duda contactad conmigo e intentaremos resolverla.

El código que utilizo para escribir el archivo en la SD es el siguiente:

Código:
Serial.println(F("Iniciando transmision a la SD ..."));
   
   
   //////////////////// Code for SD Card /////////////////////////////////
   
   // Image file to write to
   File ImageOutputFile;
   
   // Create name of Photo To save based on certain parameters
   String Filename = CreatePhotoFilename();
   
   // Check if file already exists and remove it if it does.
//   CheckRemoveFile(Filename);
  
   ImageOutputFile = SD.open(Filename.c_str(), FILE_WRITE);
    
   // Test if file actually open
   if (!ImageOutputFile)
   {
     Serial.println(F("\nCritical ERROR ... Can not open Image Ouput File for output ... "));
     return;
   } 
   ////////////////////////////////////////////////////////////////////////
   
   // Set Read Buffer Pointer to start of frame
   digitalWrite(RRST, LOW);
   PulsePin(RCLK, 1); 
   PulsePin(RCLK, 1);
   PulsePin(RCLK, 1);
   digitalWrite(RRST, HIGH);

  
   unsigned long  ByteCounter = 0;
   for (int height = 0; height < PHOTO_HEIGHT; height++)
   {
     for (int width = 0; width < PHOTO_WIDTH; width++)
     {
       for (int bytenumber = 0; bytenumber < PHOTO_BYTES_PER_PIXEL; bytenumber++)
       {
         // Pulse the read clock RCLK to bring in new byte of data.
         // 7ns for RCLK High Pulse Width and Low Pulse Width .007 micro secs
         PulsePin(RCLK, 1); 
             
         // Convert Pin values to byte values for pins 0-7 of incoming pixel byte
         PinVal7 = ConvertPinValueToByteValue(digitalRead(DO7), 7);
         PinVal6 = ConvertPinValueToByteValue(digitalRead(DO6), 6);
         PinVal5 = ConvertPinValueToByteValue(digitalRead(DO5), 5);
         PinVal4 = ConvertPinValueToByteValue(digitalRead(DO4), 4);
         PinVal3 = ConvertPinValueToByteValue(digitalRead(DO3), 3);
         PinVal2 = ConvertPinValueToByteValue(digitalRead(DO2), 2);
         PinVal1 = ConvertPinValueToByteValue(digitalRead(DO1), 1);
         PinVal0 = ConvertPinValueToByteValue(digitalRead(DO0), 0);
     
         // Combine individual data from each pin into composite data in the form of a single byte
         PixelData = PinVal7 | PinVal6 | PinVal5 | PinVal4 | PinVal3 | PinVal2 | PinVal1 | PinVal0;
       
         /////////////////////////////  SD Card ////////////////////////////////

         ByteCounter = ByteCounter + ImageOutputFile.write(PixelData);       
         ///////////////////////////////////////////////////////////////////////
       }
     }
   }
   
   // Close SD Card File
   ImageOutputFile.close();

Entiendo bastante de él, y se que lee los datos de la RAM y los va escribiendo en la SD,
ahora he probado mil formas de hacer lo mismo para el bluetooth pero no hay manera.

la que mas me convence, es hacer lo mismo que con la SD pero poniendo:

ImageOutputFile = Bluetooth.print(Filename.c_str(), FILE_WRITE); pero me dice que la sentencia es arbitraria

también e probado con la función read() con resultado parecidos.
y ya bueno he agotado muchas de las opciones que tenia.

Si alguien sabe donde puedo encortar información sobre la trasmisión de Archivos por puerto serie o sabe como hacerlo se lo agradecería.
Adjunto una foto del proyecto!
Un saludo!!
 

Adjuntos

  • 20160929_085614.jpg
    20160929_085614.jpg
    61.9 KB · Visitas: 15
Última edición por un moderador:
Atrás
Arriba