Show Posts
Pages: 1 2 [3] 4 5 ... 19
31  International / Hardware / Re: Valvola solenoide 12v - velocità apertura/chiusura on: November 02, 2012, 10:04:09 am
Elettrovalvola adatta tipo? Sto cercando di trovare qualcosa ma mi sembrano tutte cose poco precise, non adatte al mio scopo.. per questo ho trovato quel solenoide e volevo provarlo..
32  International / Hardware / Re: Valvola solenoide 12v - velocità apertura/chiusura on: November 02, 2012, 09:02:19 am
Comunque sputa il rospo!!! A cosa ti serve?

http://www.diyphotography.net/the-comprehensive-water-drop-photography-guide

Ecco qualcosa del genere..
33  International / Hardware / Re: Valvola solenoide 12v - velocità apertura/chiusura on: November 02, 2012, 08:34:42 am
Non conoscevo la pompa peristaltica ma in base a quello che sto leggendo mi pare forse troppo esagerata per le mie esigenze! Quello che vorrei fare e creare delle gocce, quindi aprire e chiudere la valvola per tipo 100 ms. Magari creare flussi di gocce una dopo l'altra.. Quindi ad esempio:
Faccio cadere ma goccia, aspetto mezzo secondo e faccio cadere una seconda goccia..
Non so se mi sto spiegando bene.. smiley

Grazie..
34  International / Hardware / Valvola solenoide 12v - velocità apertura/chiusura on: November 02, 2012, 08:08:11 am
Ciao a tutti, mi ritrovo una valvola solenoide a 12v. Avrei l'esigenza di poterla controllare ma avere una risposta abbastanza veloce. La mia intenzione sarebbe quella di poter "controllare" l'uscita delle gocce. Volevo quindi sapere se adottare un comune relè sarebbe l'ideale oppure utilizzare qualcosa di più veloce ed efficace..

Grazie a tutti
35  International / Software / Re: Arduo Memory Reminder Medicine on: November 01, 2012, 03:06:55 pm
Una cosa che dimenticavo, naturalmente è importate anche il punto in cui si utilizza freeRam(), per debug sarebbe opportuno metterlo in più punti: in fondo al loop(), oppure all'interno di altre funzioni, così da tenere sott'occhio l'utilizzo di ram..
36  International / Software / Re: Arduo Memory Reminder Medicine on: November 01, 2012, 03:01:52 pm
la variabile v è una variabile interna alla funzione freeRam, non potresti utilizzarla così..
Ecco uno sketch di esempio:

Code:
void setup()
{
Serial.begin(9600);
}

void loop()
{
int ramLibera = freeRam();
Serial.println(ramLibera);

}


int freeRam () {
  extern int __heap_start, *__brkval;
  int v;
  return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
  }


Questo mi stamperà su seriale il numero di byte liberi della ram.

Ciao

Nicola
37  International / Software / Re: Arduo Memory Reminder Medicine on: November 01, 2012, 01:33:11 pm
Per conoscere la Ram disponibile utilizza questa funzione:

Code:
int freeRam () {
  extern int __heap_start, *__brkval;
  int v;
  return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
  }

Saluti

Nicola
38  International / Software / Re: Lettura impostazioni da EEPROM on: November 01, 2012, 10:38:23 am
Allora smiley , leggendo e studiando diverse librerie (semplicissime) sono arrivato a fare questo:

.cpp
Code:
#if ARDUINO >= 100
  #include "Arduino.h"
#else
  #include "WProgram.h"
#endif

#include "Reflex.h"
#include "C:\arduino\libraries\multiCameraIrControl\multiCameraIrControl.h"

Camera::Camera(int index)
{
                   _index = index;
                   }

//other func
void Camera::scatto()
{    
  if(_index == 0)
  {
 //   Canon D5(13);
   // D5.shutterNow();
  }          
                }

e questo:

.h
Code:
#ifndef Reflex_h
#define Reflex_h

#if ARDUINO >= 100
  #include "Arduino.h"
#else
  #include "WProgram.h"
#endif



class Camera
{
      public:
          
           Camera (int index);  
            void scatto();
            
      private:
              int _index;
      };
      
#endif

per ora ho ipotizzato di fare uno sketch del genere:

Code:
#include <Reflex.h>
Camera reflex(1);

void setup()
{
}

void loop()
{
reflex.scatto();
delay(5000);
}

 con Camera reflex(1)  istanzio una nuova classe reflex di tipo Camera, la variabile int (che ora è 1) e passo, può diventare una variaible che passo dopo una lettura della eeprom..
Quello che non ho capito è come implementare ed utilizzare libreria esterne per il mio scopo, se noti infatti la parte di codice:

Code:
if(_index == 0)
  {
 //   Canon D5(13);
   // D5.shutterNow();
  }  
quelle due righe sono commentate perchè così l'ide arduino mi complila tutto (ma la libreria non fa niente ora xD ) Ma se tolgo i commeti logicamente mi da errore..

Non ho capito quindi se quando mi hai detto di includere la libreria che uso dovrei agire in questo modo?

Grazie!


EDIT: Nello sketch andava incluso anche <multiCameraIrControl.h> , ora credo funzioni! Una cosa però, ma grosso modo è quello che mi avevi consigliato? xD


EDIT2: Ho proceduto e ho apportato qualche ulteriore modifica, tipo il fatto di decidere su quale pin mandare il segnale ir.. Ho zippato tutto e lo allego, se non ti dispiace vorrei lo provassi, volevo sapere se è esatto il metodo di includere le altre librerie in questo modo..
C'è anche un file di esempio.. xD
39  International / Software / Re: Lettura impostazioni da EEPROM on: November 01, 2012, 08:05:54 am
Secondo me la soluzione più semplice è quella di scrivere una libreria tua che: 1) carichi la libreria che usi per comandare le reflex; 2) istanzi la classe adeguata alla fotocamera memorizzata in Eeprom e la passi allo sketch sotto forma di classe generica così da usare ad esempio un metodo Reflex.scatto per scattare la foto indipendentemente dal tipo di fotocamera.

PS:
per creare una lib, prendi spunto da qui:
http://www.arduino.cc/en/Hacking/LibraryTutorial
e poi apri e studia una lib già scritta

Si sarebbe l'ideale, intatno ho seguito i tuoi consigli, mi son studiato per bene il tutorial.. Vediamo che ne uscirà fuori! xD
40  International / Software / Re: Lettura impostazioni da EEPROM on: October 31, 2012, 07:00:36 am
Ne approfitto per segnalare un'altra questione che mi è venuta in mente.

ho reperito tutti i comandi che è possibile dare tramite la libreria, ecco:

Canon D5(9);  -->  D5.shutterNow(); / D5.shutterDelayed();
Minolta A900(9); ---> A900.shutterNow(); / A900.shutterDelayed();
Nikon D5000(9); ---> D5000.shutterNow();
Olympus E5(9); ---->  E5.shutterNow();/  E5.zoomin(50);/ E5.shutterNow();/ E5.zoomout(50);
Pentax K7(9);----> K7.shutterNow();
Sony A900(9); ----> A900.shutterNow(); / A900.shutterDelayed();

Il problema quindi non sussisterebbe solo nel leggere la eeprom e utilizzare CanonD5 oppure Minolta A900 ecc.. ma anche al momento dello scatto! Perchè se uso Canon D5() devo utilizzare D5.shutterNOW, se uso Minolta A900 devo usare A900.shutterNow() e così via...

Io avevo provato a fare una cosa del genere:

Code:
//MULTICAMERA IR CONTROL SELECTION (leggo la eeprom per vedere che fotocamera deve essere utilizzata
  camera_index = EEPROM.read(0);
  Serial.println(camera_index);
  /*"Canon - 0"
   "Nikon - 1"
   "Minolta - 2"
   "Olympus - 3"
   "Pentax - 4"
   "Sony"  - 5*/
 if(camera_index == 0)
  {
    Serial.println("canon");
    Canon D5(11);

  }
  if(camera_index == 1)
  {
    Serial.println("nikon");
    Nikon D5000(11);
  }
  if(camera_index == 2)
  {
    Serial.println("minolta");
    Minolta A900(11);
  }
  if(camera_index == 3)
  {
    Serial.println("olympus");
    Olympus E5(11);
  }
  if(camera_index == 4)
  {
    Serial.println("pentax");
    Pentax K7(11);
  }
  if(camera_index == 5)
  {
    Serial.println("sony");
    Sony A900(11);
  }
  
   Serial.println("Scatto con: ");
    //qui eseguo ancora una volta il controllo di camera_index per controllare che segnale ir mandare per far scattare la foto
     if(camera_index == 0)
  {
    Serial.println("canon");
    D5.shutterNow();

  }
  if(camera_index == 1)
  {
    Serial.println("nikon");
    D5000.shutterNow();
  }
  if(camera_index == 2)
  {
    Serial.println("minolta");
    A900.shutterNow()
  }
  if(camera_index == 3)
  {
    Serial.println("olympus");
    E5.shutterNow()
  }
  if(camera_index == 4)
  {
    Serial.println("pentax");
    K7.shutterNow();
  }
  if(camera_index == 5)
  {
    Serial.println("sony");
   A900.shutterNow()
  }

Ma logicamente mi da errore in d5.shutternow() perchè la classe d5 di tipo canon si trova in una codizione if..:/


EDIT:

Appena ho postato mi è venuto in mente questo:
Code:

camera_index = EEPROM.read(0);

 if(camera_index == 0)
  {
    Serial.println("canon");
    Canon D5(11);
    D5.shutterNow();

  }
  if(camera_index == 1)
  {
    Serial.println("nikon");
    Nikon D5000(11);
    D5000.shutterNow();
  }
  if(camera_index == 2)
  {
    Serial.println("minolta");
    Minolta A900(11);
    A900.shutterNow();
  }
  if(camera_index == 3)
  {
    Serial.println("olympus");
    Olympus E5(11);
    E5.shutterNow();
  }
  if(camera_index == 4)
  {
    Serial.println("pentax");
    Pentax K7(11);
    K7.shutterNow();
  }
  if(camera_index == 5)
  {
    Serial.println("sony");
    Sony A900(11);
   A900.shutterNow();
  }

- leggo la eeprom e memorizzo l'index in una variabile.
- ogni volta che devo scattare la foto, vedo l'index e da lì instanzo la classe di riferimento all'index e subito dopo scatto la foto..

Dovrebbe funzionare, devo provare un paio di reflex ora..xD
Non elegantissima come soluzione per ora però.. non mi viene in mente altro per il momento!
41  International / Software / Re: Lettura impostazioni da EEPROM on: October 31, 2012, 03:02:56 am
Non potresti modificare la libreria in modo tale che sia essa stessa a leggere la EEPROM?

mh. Cioè? Non ho mai modificato/creato un libreria anche se mi piacerebbe tanto. Da dove dovrei partire per fare ciò che hai detto tu?smiley
42  International / Software / Re: Lettura impostazioni da EEPROM on: October 30, 2012, 05:34:48 pm
Ed invece io dal loop per arrivare ad utilizzare D5 utilizzo forse un paio di funzioni che si chiamano.. Era giusto per essere più ordinati e fare il controllo all'inizio.. (anche se ora che ci penso io effettuo il controllo all'inizio, poi se nel loop arrivo alla funzione che dovrebbe modificare l impostazione e scrivo il dato sulla eeprom, per refreshare tutto dopo mi servirebbe un riavvio dell'atmega no? O.o )
A questo punto allora faccio che nella funzione dove devo "inviare" il segnare ir tramite ad esempio D5 leggo la eeprom, eseguo il controllo di quello che devo utilizzare e così proseguo..
43  International / Software / Re: Lettura impostazioni da EEPROM on: October 30, 2012, 04:38:05 pm
Sisi scusa per la fretta mi sono espresso male! Io praticamente ho intenzione di leggere un dato x dalla eeprom e, utilizzare quello che leggo per impostare un dato y.. Vediamo se riesco così:)

Code:

If (x == 1)
{
Y = a;
}

If (x == 2)
{
Y = b;
}

void setup()
{
int x = eeprom.read(a);
}

void loop()
{

}



Per capire ancora meglio
Code:

#include <multiCameraIrControl.h>

Canon D5(9);

void setup()
{
}

void loop()
{
  D5.shutterNow();
  delay(5000);
  D5.shutterDelayed();
  delay(5000);
}


Io avrei bisogno di cambiare "Canon D5(9);" in base a quello che leggo dalla eeprom!

Se leggo 1 allora è Canon D5(9);
Se leggo 2 allora è Nikon(9);
...


Insomma spero di aver spiegato le mie intenzioni! smiley
44  International / Software / Lettura impostazioni da EEPROM on: October 30, 2012, 02:26:22 pm
Ciao a tutti, è la prima volta che utilizzo la libreria eeprom e ho un problema: Utilizzando la libreria multiCameraIrControl che permette di inviare sengali di scatto ir a diversi modelli di reflex, ho pensato di dare la possibilità di scegliere da un menu il modello di camera da utilizzare e quindi, il segnale ir che deve invaire.

Ora, ho creato un sistema su lcd che fa scorrere tutti i tipi di reflex disponibili, e tramite la pressione del tasto select memorizzare il "camera_index" su eeprom.
Tutto funziona correttamente per quanto riguarda la memorizzazione ma ora ho notato che la libreria ha bisogno di dichiarare il modello di camera  fuori dal loop e setup (in fase di inizializzazione quindi).

Ed invece la lettura della eeprom non avviene fuori da loop o setup, quello che sia.

A me servirebbe una cosa del genere:

-leggo su eeprom all'indirizzo X il camera_index.
-e poi in base al camera_index seleziono quello che desidero.

Tipo così:

Code:
//MULTICAMERA IR CONTROL SELECTION
  camera_index = EEPROM.read(0);
  Serial.println(camera_index);
  /*"Canon - 0"
   "Nikon - 1"
   "Minolta - 2"
   "Olympus - 3"
   "Pentax - 4"
   "Sony"  - 5*/
  if(camera_index == 0)
  {
    Serial.println("canon");
    Canon D5(11);
  }
   
  }
  if(camera_index == 1)
  {
    Serial.println("nikon");
    Nikon D5000(11);
  }
  if(camera_index == 2)
  {
    Serial.println("minolta");
    Minolta A900(11);
  }
  if(camera_index == 3)
  {
    Serial.println("olympus");
    Olympus E5(11);
  }
  if(camera_index == 4)
  {
    Serial.println("pentax");
    Pentax K7(11);
  }
  if(camera_index == 5)
  {
    Serial.println("sony");
    Sony A900(11);
  }

A me servirebbe fare questo fuori dal setup() o loop() ma a quanto pare la lettura dell'eeprom non è possibile farla lì fuori..

Qualche consiglio?

Grazie
45  International / Software / Re: Interrupt e delay() - alternative on: October 29, 2012, 04:46:14 am
Ok perfetto grazie!
Pages: 1 2 [3] 4 5 ... 19