Fare una FOTO e mandarla ad un PC - Vari problemi soprattutto di memoria

Si ce l'ho fatta con un POST su una pagina PHP.
Come al solito il problema è mettere un po insieme tutto.

Ho usato un'altra libreria che era compatibile con la mia fotocamera e poi ci sono riuscito.
Nel frattempo sono anche passato al Mega perchè l'UNO era un po' limitato per altre cose che dovevo usare.

Chiedi...

N

Grazie, no solo alcune domandine =)
Quale libreria hai usato?
La cam è questa? Se si l'hai acquistata direttamente dal sito? Altrimenti dove?

Ciao e grazie

Allora mi sa che io ne ho preso un'altra ma la camera deve essere come hardware la stessa..
Adesso cerco l'ordine e ti dico.

Comunque le indicazioni di LESTO sono sempre state illuminanti.

N

Ecco la mia:
http://www.homotix.it/catalogo/telecamere-e-accessori/linksprite-jpeg-color-camera-ttl-interface

Adesso cerco il codice e ti dico la libreria.

N

Usato la libreria Adafruit

#include <Adafruit_VC0706.h>

Ciao

Grazie contecavour per le preziose informazioni XD

Ciao

Se poi vuoi altre info sono qua.
E se vuoi provare il POST segui le indicazioni di LESTO.
Io ho usato quelle.

N

un suggerimento che ho notato guardando le librerie adafruit e co: spesso comunicano usando le valorizzazione base di Seriale/SPI/i2c, quindi controllate nella libreria e nel datasheet se effettivamente state andando a valori standard (e quindi piano) o state viaggiando a massima velocità.

passare da 9600 baud a 19200baud vuol dire dimezzare i tempi, arrivare a 115200baud vuol dire 1/12 del tempo originale!

Io ho provato a variare la velocità e non ho notato grandi differenze, quindi mi sono fermato a 38400.
Oltretutto nell'IDE 1.0.1 cambiare al velocità seriale da problemi.
Quindi fa passar la poesia.

N

se usi la softseial non puoi superare i 38400 baud in ricezione. Per cambiare il bouadrate sulla 1.0.1 basta mettere l'ide in linguia inglese.

comunque parlavo della seriale arduino / camera; per esempio la tua da datasheet arriva fino a 115200baud (ovvero 3 volte più veloce), ovvio che devi mandare il comando alla camera per cambiare il baudrate e poi cambiarlo pure tu. ovvio che dovrai usare il pin 0/1 e altri pin col PC attraverso un chip USB/Seriale, oppure puoi prendere un chip SPI/I2C to Seriale, così con l'i2c o con la SPI comunichi a piena velocità con la camera e mantieni l'arduino programmabile.

in entrambi i casi c'è da riscrivere la libreria, ma si tratta di una paginetta di codice, ed è molto semplice.

Allora su mandare i comandi alla camera ho trovato molti problemi.
Sia a cambiare la risoluzione che la velocità della seriale.
Anche spegnendo e riaccendendo non vedevo modifiche e sebbene interrogassi la camera e mi dicesse che era a 460x480 (per esempio) mi scattava a 320x240.

Io la collegavo direttamente ad Arduino senza PC.
E poi mandavo il tutto tramite etherneth ad un sito.

Puoi ripetere in queste condizioni che consigli per velocizzare?
N

uhmm, allora io farei così: stacchi l'atmega e collegi la cam direttamente ai pin 0 e 1. a questo punto dal serial monitor puoi fare quello che vuoi.

Mani (a mano) i comandi per cambiare risoluzione etc.. e vediamo cosa succede

Oggi non ho la camera sotto mano.
Sto impazzendo con i sensori e amplificare la tensione e iniziando a vedere i keypad.
Appena posso mi rimetto e ci provo.

Non ho capito dove attacco però al CAM.
Se intendi ai seriali dell'ATmega ho serial1...serial3

N

fico, allora usa la serial2 o 3, mi ero dimenticato che hai il mega, va bene una qualsiasi e fai che ciò che scrivi sulla seriale PC viene rimbalzato alla seriale camera e viceversa. in pratica usi arduino da ponte. Ovviamente entrameb le seriali a 115200

per cambiare risoluzione

0x56, 0x00, 0x05, 0x04, 0x01, 0x00, 0x19, x

dove x può valere: 640x480 0x00, 320x240 0x11, 160x120 0x22 (se non erro viene influenzata l'immagine SUCCESSIVA a quella scattata)

per chiedere la risoluzione:

0x56, 0x00, 0x4, 0x4, 0x1, 0x00, 0x19

fare una foto
0x56, 0x00, 0x36, 0x01, 0x00

i valori sono in esadecimale, quindi non puoi scriverli così. DAal serial monitor dovreti inviare il carattere ascii corrispondnete, oppire da processing puoi usare ogni valore in una serial.write

Scusa quindi attacco la CAM alla seriale1 diciamo.
Poi faccio un ciclo che ogni cosa che entra da li la mando in serial.write (la seriale del serial monitor)
E ogni cosa che parte dal serial monitor venga buttata di la giusto?

Tu hai già qualche programmino o pezzo di codice che lo faccia?

N

no, ma è semplice, dovrebbe essere qualcosa del tipo

loop(){
if (serial.available())
serial1.write(serial.read())

if (serial1.available())
serial.write(serial1.read())
}

Su un Arduino MEGA puoi mettere una RAM per avere 64kByte di RAM. per esempio: http://ruggedcircuits.com/html/megaram.html
Hai provato di usare al posto del Arduino una altra piattaforma.
Ciao Uwe

Faccio al prova.
Lesto chiedo a te.
Tu hai esempi per gestire input/output da tastiera.
Nei test vorrei usare la seriale.
Tipo se devo fare un quiz domande e risposte anche aperte tipo la tabellina
Intanto metto un post dedicato.

N

Scusa Lesto, dato che uso il serial monitor per mandare i messassi, cosa scrico?
Ad esempio
per
0x56, 0x00, 0x05, 0x04, 0x01, 0x00, 0x19, 0x00 (ultimo per la risoluzione)

0x56 = 86 dec quindi metto la V (v maiuscola) ?
E se alcuni esadecinali non hanno un carattere scrivibile?

E se i baud non sono impostati bene dall'inizio riesco a comunicare?

Intanto provo a mandare la scritta di settaggio fissa?

contecavour:
Scusa Lesto, dato che uso il serial monitor per mandare i messassi, cosa scrico?
Ad esempio
per
0x56, 0x00, 0x05, 0x04, 0x01, 0x00, 0x19, 0x00 (ultimo per la risoluzione)

0x56 = 86 dec quindi metto la V (v maiuscola) ?

esatto

E se alcuni esadecinali non hanno un carattere scrivibile?

usi qualcosa tipo processing che eprmette di scivere sulla seriale

E se i baud non sono impostati bene dall'inizio riesco a comunicare?

non riesci a comunicare. dovresti vedere in risposta strani caratteri

Intanto provo a mandare la scritta di settaggio fissa?

cosa intendi?

Tu hai esempi per gestire input/output da tastiera.
Nei test vorrei usare la seriale.
Tipo se devo fare un quiz domande e risposte anche aperte tipo la tabellina
Intanto metto un post dedicato.

cosa intendi?