Pages: [1]   Go Down
Author Topic: [Progetto in corso] Stepper per foto panoramiche e timelapse  (Read 1042 times)
0 Members and 1 Guest are viewing this topic.
Senago - Milano
Offline Offline
God Member
*****
Karma: 3
Posts: 508
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Intro:
Tempo fa ho comprato un aggeggio che vantava la possibilità di fare dei bei timelapse con effetto rotazione (al posto del solito dolly che si muove in linea retta):
MUVI X-Lapse
Con mia amara sorpresa, mi sono reso subito conto che altro non è che un normalissimo timer a carica da cucina ! praticamente ha solo di più la vite per la macchina fotografica!
Onestamente mi aspettavo qualche possibilità in più, così invece il prodotto è molto limitante:
  • non è possibile decidere la durata slegata alla rotazione
  • la durata max è di un'ora
  • non è possibile scegliere un verso
Morale della favola: l'ho distrutto.

Il progetto:
L'idea è quindi di creare qualcosa che rispetti le aspettative iniziali, rimuovendo quindi i difetti del prodotto comprato.
E' venuto spontaneo l'idea di utilizzare uno stepper per poter avere la libertà di rotazione, direzione e velocità.
Per il "prodotto finito" ho ancora le idee un po' vaghe, pensavo di farlo configurabile via bluetooth anzichè con display, in modo da configurarlo da cellulare, è vero che questo da una limitazione, ma anche il vantaggio che la configurazione dovrebbe essere più intuitiva e pratica.

Materiali:
(la lista è temporanea, corrispondente allo stato attuale dello sviluppo)
  • arduino uno
  • batteria piombo 12v 1.2A
  • easy driver
  • Stepper 6v 0.8A di recupero (cod: PK244-02A-C58)

Lo stato attuale
dopo varie ricerche ho trovato un buon punto di riferimento il codice trovato su questo tutorial:
http://bildr.org/2011/06/easydriver/
Ho quindi creato un programmino di prova.
In questo caso fa una rotazione completa in mezz'ora (ma basta cambiare le variabili per settare durata e rotazione):
Code:
//////////////////////////////////////////////////////////////////
// Rotary TimeLapse Test
// by Lorenzo Boasso
// Reference project: http://bildr.org/2011/06/easydriver/
/////////////////////////////////////////////////////////////////
#define DIR_PIN 8
#define STEP_PIN 9

unsigned long time;
long currentPos = 0;
long finalPos;
long finalTime;

void setup() {
 
  Serial.begin(9600);
 
  time = millis();
   
  pinMode(DIR_PIN, OUTPUT);
  pinMode(STEP_PIN, OUTPUT);
 
  finalPos = 1600;
  finalTime = (millis() / 1000) + (60 * 30);
 
  Serial.print("Partito - ");
  Serial.print(millis() / 1000);
  Serial.print(" - ");
  Serial.println( finalTime);
 
}

void loop(){
  checkStep();
}

void checkStep(){
  long currTime = (millis()/1000);
  Serial.print("-CURRTIME: ");
  Serial.println(currTime);
  if (currentPos < finalPos){
    int tempStep = (finalPos * currTime) / finalTime; 
    Serial.print("-TEMP: ");
    Serial.println(tempStep);
 
    if (tempStep > currentPos){
      rotate(tempStep - currentPos, 0.2);
      currentPos = tempStep;
    }
  }else{
    Serial.print("Finito");
  }
 
  delay(1000);
 
}

void rotate(int steps, float speed){
  //rotate a specific number of microsteps (8 microsteps per step) - (negitive for reverse movement)
  //speed is any number from .01 -> 1 with 1 being fastest - Slower is stronger
  int dir = (steps > 0)? HIGH:LOW;
  steps = abs(steps);

  digitalWrite(DIR_PIN,dir);

  float usDelay = (1/speed) * 70;

  for(int i=0; i < steps; i++){
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(usDelay);

    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(usDelay);
  }
}

Differentemente dal codice di riferimento ho cercato di fare in modo che il codice non sia bloccato finchè la rotazione non si completa.
Dovrei studiarmi la funzione rotate() in modo da integrarla maggiormente col codice e le mie necessità.
Logged

Senago - Milano
Offline Offline
God Member
*****
Karma: 3
Posts: 508
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Al momento ho però un dubbio.
Dopo aver fatto il test di funzionamento per mezz'ora, ho notato che lo stepper era molto caldo, è normale?
Io pensavo di avere casi in cui il funzionamento potrebbe essere anche di qualche ora, c'è rischio che si bruci?
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

È normale che il motore diventi molto caldo.
un motore per 6V con accumulatore 12 V puoi pilotarlo col Easydriver solo in Full-step mode non in microstep-Mode. Per questo Ti servirebbe una  tensione di alimentazione piú alta.
Ciao Uwe
« Last Edit: March 22, 2013, 02:25:57 pm by uwefed » Logged

Senago - Milano
Offline Offline
God Member
*****
Karma: 3
Posts: 508
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

È normale che il motore diventi molto caldo.
un motore per 6V con accumulatore 12 V puoi pilotarlo col Easydriver sollo in Full-step mode non in microstep-Mode. Per questo Ti servirebbe una  tensione di alimentazione piú alta.
Ciao Uwe

quindi comunque posso star tranquillo così?
Logged

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

avevo letto di un bellissimo progetto (per di più anche fatto) di un dolly che non solo faceva ciò che gli dicevi ma potevi portarlo tu a mano e lui salvava il movimento, poi cliccavi un tasto e tornava nella posizione iniziale, quindi faceva tutto lui (aveva pure il suo telecomando per la programmazione!).

in pratica usava degli encoder rotativi per determinare di quanto muoversi.

come cosa era geniale, se ritrovo il progetto te lo linko.
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Senago - Milano
Offline Offline
God Member
*****
Karma: 3
Posts: 508
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

avevo letto di un bellissimo progetto (per di più anche fatto) di un dolly che non solo faceva ciò che gli dicevi ma potevi portarlo tu a mano e lui salvava il movimento, poi cliccavi un tasto e tornava nella posizione iniziale, quindi faceva tutto lui (aveva pure il suo telecomando per la programmazione!).

in pratica usava degli encoder rotativi per determinare di quanto muoversi.

come cosa era geniale, se ritrovo il progetto te lo linko.

Interessante, grazie!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao a tutti sono nuovo del forum
se mi è possibile vorrei fare qualche domanda .. io volevo fare lo steso progetto . guardando qua e la ho scoperto ed acquistato una Adafruit Motor/Stepper/Servo Shield for Arduino..
ed un arduino 2009
pensavo di prendere l'esempio di un dolly lineare e trasformarlo per foto in timelapse a 365°
solo che non riesco ad installare le librerie.
mi da errore il programma , spero di non essere completamente off.topic dato che il progetto che abbiamo è simile ho pensato che magari potessi aiutarmi .
vi ringrazio in anticipo
Logged

Senago - Milano
Offline Offline
God Member
*****
Karma: 3
Posts: 508
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao a tutti sono nuovo del forum
se mi è possibile vorrei fare qualche domanda .. io volevo fare lo steso progetto . guardando qua e la ho scoperto ed acquistato una Adafruit Motor/Stepper/Servo Shield for Arduino..
ed un arduino 2009
pensavo di prendere l'esempio di un dolly lineare e trasformarlo per foto in timelapse a 365°
solo che non riesco ad installare le librerie.
mi da errore il programma , spero di non essere completamente off.topic dato che il progetto che abbiamo è simile ho pensato che magari potessi aiutarmi .
vi ringrazio in anticipo

sei riuscito a far qualcosa? non è che le librerie che hai scaricato sono incompatibili con l'arduino IDE che hai utilizzato?
Logged

Pages: [1]   Go Up
Jump to: