Show Posts
Pages: [1]
1  International / Generale / Consigli per kit presentazione con arduino telecomando on: February 24, 2011, 08:24:47 am
A breve dovrò tenere un corso sull'arduino e per le slide da mostrare voglio crearmi un kit per le presentazioni composto da telecomando e webserverino su cui mettere le immagini per poi accedervi con un pc attraverso la rete.

Per il webserverino sono già a posto perchè ho preso questo progetto: My Arduino Web Server by physics-dude e mi è bastato associarci questo slideshow in javascript JSviewer e quindi questo è fatto.

Adesso mi manca il "telecomando" per la parte hardware volevo usare un arduino mini per il collegamento col pc il Bluetooth Mate Gold da Sparkfun (tutti e due ancora da comprare) e visto che uno dei miei ultimi acquisti è stato questo Track Ball da Sparkfun mi è venuta voglia di usarlo per il telecomando guardando nei commenti ho trovato uno sketch di esempio per variare il colore dei led muovendolo su o giu prendendo spunto dal'esempio mi sono creato questo sketch:
Code:
#define DIR_SX  3
#define DIR_DX  2

void isrSX( void ) {
Serial.print("SX");
}
void isrDX( void ) {
Serial.print("DX");
}
void setup()  {
Serial.begin(9600);
attachInterrupt(0, isrSX, CHANGE);
attachInterrupt(1, isrDX, CHANGE);
}
void loop()  {
}

che per il momento invia semplicemente una stringa via seriale ma io avrei bisogno di far vedere al pc l'arduino come se fosse una tastiera per comandare lo script sul mio attualmente sto usando Ubuntu 10.10 e girando per la rete ho trovato questo e penso di essere sulla strada giusta o mi sbaglio?

Jaba
2  Forum 2005-2010 (read only) / Italiano / Re: Adesivi Arduino on: January 22, 2011, 12:24:26 pm
Anche io preferivo il logo vecchio anche se quello nuovo è molto minimal e ha il suo perchè
3  Forum 2005-2010 (read only) / Italiano / Re: Adesivi Arduino on: January 21, 2011, 03:42:20 pm
Aggiornato per dovere di cronaca devo dire che ho semplicemente googlato un po e quando ho trovato l'immagine giusta l'ho data in pasto a questo sito e sostituito al vecchio.



Vettoriale SVG:
http://www.megaupload.com/?d=NESCURQY
Jaba
4  Forum 2005-2010 (read only) / Italiano / Re: Adesivi Arduino on: January 21, 2011, 01:44:57 pm
sinceramente ho usato il vecchio logo perché è l'unico che ho trovato in formato vettoriale ma adesso provo ad aggiornarlo.

Jaba
5  Forum 2005-2010 (read only) / Italiano / Adesivi Arduino on: January 21, 2011, 07:25:27 am
L'altro giorno mi stavo annoiando e ho cominciato a giocare con inkscape per crearmi degli adesivi per il mio pc e alla fine visto che ero li ho creato anche un adesivo per Arduino e visto che personalmente lo trovo molto bello voglio condividerlo con tutti.

Immagine PNG:


Vettoriale SVG:
http://www.megaupload.com/?d=JWOSYF8T

Per quanto mi riguarda lo metterò su ogni progetto che farò con l'arduino.

Jaba
6  Forum 2005-2010 (read only) / Italiano / Re: Consigli on: July 09, 2009, 05:34:48 am
Grazie per la risposta.

Jaba
7  Forum 2005-2010 (read only) / Italiano / Consigli on: June 09, 2009, 05:26:28 pm
Salve questo è il mio primo esperimento con l'arduino che sostanzialmente prevede 3 led (il led da "controllare", un led per segnalare il livello massimo di luminosità e un led per segnalare il livello minimo) e 3 pulsanti (un pulsante per aumentare il livello di luminosità uno per diminuirlo e l'ultimo per resettare il tutto)

Essendo questo appunto il mio primo passo nel mondo arduino volevo "farlo pre bene" e quindi mi rivolgo ai veterani: Va bene il programma che ho scritto?

Mi spiego meglio, dal punto di vista pratico funziona tutto come dovrebbe, la mia curiosita' e' soprattutto dal punto di vista formale visto che io ho seguito la logica del scrivo cosi perche funziona, c'è qualche punto che potrebbe essere perfezionato, c'è qualche convenzione che dovrei usare per imparare per bene cosicche un domani quando mi buttero' in un progeeto piu corposo non mi ritrovi con bug dovuti a errori di logica o con un sorgente troppo complicato?

Code:
int PinPWM = 11;                 // Imposto l'uscita da controllare
int PinMax = 12;                 // Imposto l'uscita per la segnalazione del livello massimo
int PinMin = 13;                 // Imposto l'uscita per la segnalazione del livello minimo
int LivMax = 20;                 // Variabile in cui setto il livello massimo
int LivRes = 10;                 // Variabile in cui setto il livello da far assumere dopo il reset
int LivMin = 5;                  // Variabile in cui setto il livello minimo
int PinIn1 = 2;                  // Ingresso per aumentare l'intensita'
int PinIn2 = 3;                  // Ingresso per resettare l'intensita'
int PinIn3 = 4;                  // Ingresso per diminuire l'intensita'
int Val1 = LOW;                  // Variabile in cui viene letto lo stato dell'ingresso aumenta
int Val2 = LOW;                  // Variabile in cui viene letto lo stato dell'ingresso diminuisce
int Val3 = LOW;                  // Variabile in cui viene letto lo stato dell'ingresso reset
int Val = 0;                     // variabile in cui viene settato il livello di regolazione
int ValPas = 5;                  // Variabile in cui setto i passi di aumento o diminuzione dell'intensita'
                                 //
void setup() {                   //
  //pinMode(ledPin, OUTPUT);     //
  pinMode(PinMax, OUTPUT);       // Imposto come uscita il pin per la segnalazione del livello massimo
  pinMode(PinMin, OUTPUT);       // Imposto come uscita il pin per la segnalazione del livello mainimo
  pinMode(PinIn1, INPUT);        // Imposto come ingresso il pin per aumentare
  pinMode(PinIn2, INPUT);        // Imposto come ingresso il pin pre diminuire
  pinMode(PinIn3, INPUT);        // Imposto come ingresso il pin per resettare
}                                //
                                 //
void loop(){                     //
  Val1 = digitalRead(PinIn1);    // Leggo lo stato dell'ingresso per aumentare
  Val2 = digitalRead(PinIn2);    // Leggo lo stato dell'ingresso per resettare
  Val3 = digitalRead(PinIn3);    // Leggo lo stato dell'ingresso per diminuire
  if (Val1 == HIGH) {;           // controllo se il l'ingresso dell'aumento [ch8730]® attivo
    aumenta();                   // se l'ingresso e' alto richiamo la funzione per aumentare l'intensita
    };                           //
  if (Val2 == HIGH) {;           // controllo se il l'ingresso dell reset e' attivo
    azzera();                    // se l'ingresso e' alto richiamo la funzione per resettare
    };                           //
  if (Val3 == HIGH) {;           // controllo se il l'ingresso della diminuzione [ch8730]® attivo
  diminuisce();                  // se l'ingresso e' alto richiamo la funzione per diminuire l'intensita
    };                           //
    analogWrite(PinPWM, Val);    // regolo l'uscita con il valore regolato
  delay(500);                    // aspetto mezzo per permetere di fare la regolazione
}                                //
void aumenta(){                  // Funizione per aumentare l'intensita'
  if (Val < LivMax) {;           // Controllo che il valore di intensita' sia minore del valore massimo
    (Val = (Val+=5 ));           // Se il valore e' minore lo aumento di uno step
    digitalWrite(PinMin, LOW);   // Spengo l'uscita che segnala il livello minimo
  } else {;                      // Se il livello e' superiore al livello massimo
    digitalWrite(PinMax, HIGH);  // Accendo l'uscita che segnala il livello massimo
  };                             //
}                                //
                                 //                                
void diminuisce(){               // Funzione per diminuire l'intensita'
  if (Val > LivMin) {;           // Controllo che il valore di intensita' sia maggiore del valore minimo
    (Val = (Val-=5 ));           // Se il valore e' minore lo amento di uno step
    digitalWrite(PinMax, LOW);   // Spengo l'uscita che segnala il livello massimo
  } else {;                      // Se il livello e' minore al livello minimo
    digitalWrite(PinMin, HIGH);  // Accendo l'uscita che segnala il livello minimo
  };                             //
}                                //
void azzera(){                   // Funzione per azzerare l'intensita'
  digitalWrite(PinMax, LOW);     // Spengo l'uscita che segnala il livello massimo
  digitalWrite(PinMin, LOW);     // Spengo l'uscita che segnala il livello minimo
  (Val = LivRes);                // Setto l'intensita al livello di reset
}                                //

Jaba81
Pages: [1]