Si tratta di un progetto scolastico, di FOCUS STACKING, il sistema attraverso il quale una fotocamera viene spostata via arduino di un 1mm alla volta( su un tubo rettificato "filettato" da 6mm , essendo da 6mm, ogni giro completo si sposta di 1mm perfetto); ad ogni giro scatta una foto: in questo modo, essendo ogni volta spostato(il fuoco dell'obbiettivo) , le 20/30 foto verranno messe insieme da photoshop cs6, così che esce alla fine, un'immagine finale con una profondità di campo maggiore di quella ottenibile con le tecniche tradizionali (=una somma di tutte le foto).Utilizzo un arduino uno,due finecorsa(uno per lato), un motore stepper NEMA17, ed un modulo bluetooth HC-05.
<<Io, vi chiedo , quindi , se potete aiutarmi a finire il Software, perchè non riesco a capirci più.Manca tutta la parte dell'inizializzazione, ed in più ci sono dei problemi nel seguente codice. Ditemi cosa aggiungere e cosa modificare( delle cose sbagliate).>> MI SERVE ENTRO QUALCHE GIORNO...
Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentartiIN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.
Guglielmo
P.S.: Qui una serie di link utili, NON necessariamente inerenti alla tua domanda: - serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - pinout delle varie schede by xxxPighi: Pinout - link generali utili: Link Utili
Ah .. guarda che qui NESSUNO è al tuo servizio, quindi ... se ti SERVE ENTRO QUALCHE GIORNO ... paghi un consulente e te lo fai fare, altrimenti ...
... con calma, educazione e pazienzaaspetti che qualcuno che passa (... e ricorda che qui siamo tutti volontari NON pagati che aiutiamo nel nostro tempo libero) veda il tuo problema e provi ad aiutarti a risolverlo.
Non volevo essere scortese sig. Guglielmo mi scuso.Quando ho detto mi SERVE non intendevo che qualcuno debba farlo per me subito come uno schiavo:intendevo solamente che mi servirebbe entro qualche giorno.Non volevo fare il scortese.Comunque le conoscienze sono basse-medie.Grazie per la risposta.Volevo chiarire che lo scritto velocemente: non volevo fare intendere ciò che lei ha capito( so che nessuno è pagato qui, chiedo solo aiuto).
Simone27:
Non volevo essere scortese sig. Guglielmo mi scuso.
Nessun problema Simone , se si può aiutare, ben volentieri, solo ... prima devi fare la presentazione nell'apposito thread, come indicato nel mio post #1 e ... anche una attenta lettura al regolamento
... altra cosa, per aiutare chi ti deve aiutare: metti uno schema (... va bene anche fatto a penna su un foglio di carta, purché chiaro e leggibile, allegandolo come immagine) di tutti i collegamenti fatti e di tutti i componenti usati.
elimina le scritte main e motore, se vuoi lasciarle commentale altrimenti non compila
all'inizio del loop
fai un .print("a")
quindi non aspetti un carattere da bt
quindi procedi con l'analisi
se il carattere è 'a'
esegui x_sx
la funzione x_sx()
alza il pin direzione
poi si muove di 200 passi
e quando ha terminato il movimento scatta 95 foto
non credo che tu volessi questo
quindi presumo che tu voglia scattare una foto ogni x passi dove x = 200
quindi ci vuole un coclo più esterno
che:
per un totale di 20-30 scatti
fa una foto
sposta di 200 passi
fine ciclo
for (byte numFoto = 0 ; numFoto <30; numFoto++) { // ipotizzo 30 foto
digitalWrite(scatta, HIGH);
delayMicroseconds(pausa2stepper);
digitalWrite(scatta, LOW);
for (int x = 0; x < passi_x; x++) {
digitalWrite(stepPin, HIGH); // lo stePin1 viene portato a livello alto
delayMicroseconds(pausa1stepper); // delay
digitalWrite(stepPin, LOW); // lo stePin1 viene portato a livello basso
delayMicroseconds(pausa2stepper); // delay
}
}
[code]
nell'ultima funzione x_dx() manca la graffa iniziale e sicuramente anche questa è da rivedere
però bisogna capire cosa deve fare
Ciao
Mancano i pinMode() dei vari pin utilizzati nella funzione setup()
Non hai descritto nello specifico cosa vuoi ottenere, come si deve comportare il sistema nello specifico,
sappiamo solo che deve spostarsi e scattare foto in successione, ma ciò non è sufficiente a sapere come si deve comportare il sistema.
Le funzioni di spostamento devono essere rivedute in base a ciò che vuoi ottenere effettivamente.
Sarebbe opportuno avere una funzione da richiamare ad inizio programma o tramite un comando inviato
da seriale, che porta ad home la macchina, esempio hai due finecorsa, in un ciclo while, fino a che il finecorsa non è attivo, muovi verso destra "se l'home è a destra"
Dovresti descrivere il comportamento che vuoi ottenere dal sistema esattamente.
Esempio.
Muove verso sinistra, ad ogni spostamento di un millimetro scatta una foto.
Altra cosa, per valutare i caratteri ricevuti da seriale, usi una successione di if() che vengono tutti valutati ogni volta, sarebbe meglio usare una successione di "else if()", che vengono valutati solo se la
precedente è falsa, o ancora meglio usare la struttura switch() case...