Show Posts
Pages: 1 2 [3] 4 5 ... 10
31  International / Generale / Re: [OT] Mini2440 Qtopia on: February 19, 2013, 02:20:42 am
si costano parecchio ma hanno già montato a bordo il display, alcuni sensori, usb host e le interfacce principali di comunicazione
32  International / Software / Re: KITT e PWM on: February 17, 2013, 02:06:34 pm
togli lo spazio tra array e la quadra
33  International / Generale / Re: [OT] Mini2440 Qtopia on: February 10, 2013, 10:40:11 am
si conosco il sito e ho già guardato quello che ha fatto..ma a me interesserebbe come caricare i miei programmi sulla board..i vari passaggi da eseguire..perchè non si trova nulla di decente online
34  International / Generale / [OT] Mini2440 Qtopia on: February 10, 2013, 03:43:56 am
Qualcuno di voi ha mai utilizzato questo dispositivo? è da un po che ci sto giocando ma non riesco in nessun modo a caricare i programmi fatti in QT sopra di esso..c'è qualcuno che riesce a darmi una mano?
35  International / Software / Re: Antirimbalzo avanzato - Buffer circolare on: February 04, 2013, 03:24:04 am
Ma se devo gestire una tastiera forse conviene questa soluzione, cosi evito stalli inutili (anche quei 30ms fanno la differenza)
36  International / Software / Antirimbalzo avanzato - Buffer circolare on: February 03, 2013, 06:01:44 pm
Ciao, volevo condividere con voi questo piccolo sketch per gestire in un modo un po alternativo l'antirimbalzo di un bottone. Sembra una cosa da poco ma una gestione del genere potrebbe essere utile per gestire poi con Arduino anche una piccola tastiera perchè in questo modo evito degli stalli del codice.

In pratica creo un buffer circolare per evitare di attendere anche poco tempo in un applicazione embedded. Si tratta di creare un piccolo automa che viene richiamato ad intervalli di tempo fissi, ad esempio lo richiamo all’interno di una routine di interrupt di un timer o cose simili. Ad ogni interrupt viene letto lo stato dell’ingresso, supponiamo che con il pulsante non premuto sia a 0. Lo stato del pulsante viene memorizzato in una variabile intera, es. un byte non prima di aver shiftato il suo contenuto a sx di una posizione (0)00000000. Quando il pulsante viene premuto viene premuto e per la prima volta viene letto lo stato a 1, il contenuto del byte diventa (1)000001.  Se al passaggio successivo per un rimbalzo lo stato è a zero si avrà (2)00000010. Se al passaggio successivo lo stato viene riconosciuto a 1 si avrà (3)00000101. Ne passaggi successivi ad ogni passo l’evoluzione risulta:
(4 ) 00001011
(5)  00010111
(6)  00101111
(7)  01011111
(smiley-cool  10111111
(9)  01111111
(10)11111111
Se ad ogni passo verifichi se il contenuto del byte risulta pari a 01111111 e assegni a questo valore il riconoscimento del pulsante premuto ti  rendi conto che solamente al passaggio (9) riconosci la pressione del pulsante.
Analogamente se vuoi rilevare il rilascio del pulsante senza rimbalzo puoi controllare che il contenuto sia ad esempio 11111110.

per l'esempio non ho utilizzato l'interrupt ma una chiamata in polling.

Code:

#define KEY_OFF 1000
#define KEY_PRESS 1001
#define KEY_HOLD 1011
#define KEY_REL 1010
#define btnPin 3
#define ledPin 13

//byte per lo stato del bottone
byte btnStatus = 0x0;

void setup(){
   pinMode(btnPin, INPUT);
   pinMode(ledPin, OUTPUT);
}

void loop(){
  if(getInputSwitchStatus() == KEY_PRESS){
    digitalWrite(ledPin, HIGH);
  }
  if(getInputSwitchStatus() == KEY_HOLD){
    //BOTTONE PREMUTO
  }
  if(getInputSwitchStatus() == KEY_REL){
    digitalWrite(ledPin, LOW);
  }
}

int getInputSwitchStatus(){
  //SFHIT stato tasto
  btnStatus <<= 1;
  if(digitalRead(btnPin)){
    btnStatus |= 0x01;
    delay(10);
  }
  if( btnStatus == 0 ) return KEY_OFF;
  else if( btnStatus == 0x7F ) return KEY_PRESS;
  else if( btnStatus == 0xFF ) return KEY_HOLD;
  else if( btnStatus == 0xFE ) return KEY_REL;
  else return "KEY_NO_PRESS";
}


che ve ne pare?
37  International / Software / Re: Come funziona il comando map(value, fromLow, fromHigh, toLow, toHigh)? on: January 31, 2013, 01:06:28 pm
esempio devo "mappare" i valori di una lettura analogica (che vanno quindi da 0 a 1023) a valori che vanno da 0 a 180 (i gradi di movimento di un servomotore).
Code:
int degree = map(analogValue, 0, 1023, 0, 180);

e cosi ho in pratica fatto una proporzione, in cui vado a "rimappare" i valori da una base ad un altra..più chiaro?
38  International / Software / Re: Inviare al client testo contenente virgolette on: January 31, 2013, 01:04:01 pm
precedi uno slash prima delle virgolette che vuoi inviare.

esempio

Code:
client.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
39  International / Generale / Re: Inviare sketch tramite scheda ethernet on: January 23, 2013, 05:48:59 pm
Ti linko un ottima guida per questo

www.freetronics.com/pages/how-to-upload-a-sketch-to-your-arduino-via-a-network#.UQBolzwuLGU
40  International / Generale / Re: Corso Arduino per le scuole on: January 23, 2013, 05:45:17 pm
Il corso continua a gonfie vele. Fatte le prime lezioni e ovviamente chi ha gia delle basi ovviamente riesce a capire meglio, ma e bello vedere che si collabora e ci si confronta attivamente. Il programma che ho messo giu sembra corposo, ma in realtà vuole toccare gli aspetti fondamentali su cui arduino si basa e vuole arrivare a tracciarne le potenzialità. Ovviamente essendo un ingegnere informatico spiego di piu gli aspetti di programmazione e informatica.. Nulla toglie in futuro di creare poi un "ambiente" in cui sviluppare anche tematiche legate all'eletrronica.
41  International / Generale / Re: Corso Arduino per le scuole on: January 22, 2013, 07:28:46 am
Il corso dura 20ore. Lo faccio per delle scuole ad indirizzo elettronico e informatico e quindi gli argomenti che vado a trattare sono fatti perche chi segue il corso ha gia basi di infornatica ed elettronica.. Sono corsi di aggiornamento rivolti per di piu ai professori quindi devo concentrare le cose principali in queste lezioni. Per quanto riguarda i motori DC e resto ho deciso di non affrontare l'argomento perche appunto volevo concentrarmi piu su aspetti informatici.. Il corso e comunque retribuito
42  International / Generale / Corso Arduino per le scuole on: January 21, 2013, 04:46:31 pm
Ciao, da qualche settimana ho iniziato nelle scuole della mia zona dei corsi di aggiornamento per i professori su Arduino. Ho preparato diverse slide su più o meno tutti gli argomenti che potrebbero interessare per iniziare a conoscere il dispositivo da tutti i punti di vista.

1 - Lezione su I/O digitale e analogico, Processing

2 - Lezione su le schede Arduino e le shield, sleep, interrupt e consumi, sistemi di storage, servo motori

3 - Lezione su sistemi di comunicazione (LCD, Seriale, Ethernet, Wifi, Xbee)

4 - Lezione su alcuni sensori utilizzabili con Arduino e metodi per collegare apparecchi a 12v e 220v

5 - Progetto finale

Per chi fosse interessato mi contatti in MP
43  International / Generale / Re: Consigli su progetti "modulari" e non on: January 21, 2013, 07:36:18 am
nessuno??
44  International / Software / Re: INPUT da pulsante a FotoResistenza on: January 21, 2013, 07:35:58 am
io parlavo del datasheet (documentazione) della fotoresistenza. Ogni fotoresistenza ha la propria documentazione (datasheet) con cui vedere come collegarla ad arduino

Wikipedia riporta (http://it.wikipedia.org/wiki/Fotoresistenza):

La fotoresistenza è un componente elettronico la cui resistenza è inversamente proporzionale alla quantità di luce che lo colpisce. Si comporta come un tradizionale resistore, ma il suo valore in ohm diminuisce mano a mano che aumenta l’intensità della luce che la colpisce. Ciò comporta che la corrente elettrica che transita attraverso tale componente è proporzionale all’intensità di una sorgente luminosa. In tale maniera si realizza una sorta dipotenziometro attuabile tramite la luce anziché tramite forze meccaniche o segnali elettrici.

cerca su Google le fotoresistenze LDR e vedi quanta documentazione c'è
45  International / Software / Re: INPUT da pulsante a FotoResistenza on: January 21, 2013, 02:02:01 am
beh dipende che fotoresistenza usi, perchè alcune hanno bisogno di resistenze per limitare la corrente. Comuque trovi tutti i datasheet online.
una volta trovata la configurazione ideale poi il codice è semplice (devi attaccare la fotoresistenza ad un ingresso analogico)

Code:
void loop() {
  sensorValue = analogRead(analogInPin);           
 
  Serial.print("sensor = " );
  Serial.println(sensorValue);     
 
  delay(1000);
}

e secondo me nel tuo caso potresti fare una cosa simile

Code:
void loop() {
  sensorValue = analogRead(analogInPin);           
 
  if(sensorValue > 512) {
     //BOTTONE PREMUTO
  }
  else{
     //BOTTONE NON PREMUTO
  }
}

poi ovviamente devi calibrare il valore 512 in base a dove installi il dispositivo.
Pages: 1 2 [3] 4 5 ... 10