Show Posts
Pages: 1 ... 3 4 [5] 6 7
61  International / Software / Re: Serial.print"ln" con python on: September 06, 2012, 07:10:42 am
anche io sono d'accordo con mi_ri...se tu gli chiedi di leggere una riga lui per forza aspetta i caratteri di fine riga per leggere l'informazione (volevo scrivere "riga" ma l'ho usato troppe volte in una frase smiley-lol).

giusto per capire tu vuoi che il pyton ti visualizzi a schermo 287 267 379 e poi vada a capo per ricevere il gruppo successivo di dati, potresti fare una modifica del genere
Code:
while True:
     x = sr.readline()
     print x
     println()  //non so come si scriva in pyton ma è per far capire

e nel codice arduino metti tutte println.
quello che sto pensando è questo...tu metti quello che leggi dal arduino in una variabile intera eliminando così qualunque traccia di \n\r che l'arduino possa aver inviato poi stampi tutti i valori interi sulla riga e poi quando non ci sono più valori da leggere (in questo caso dopo il terzo) metti un println manuale nel pyton...nella mia testa funziona però non ho idea se possa funzionare anche nella pratica

facci sapere  smiley
62  International / Hardware / Re: Digispark, che ne pensate? on: September 06, 2012, 07:00:50 am
quoto dall'help di kickstarter
Quote
Am I eligible to start a Kickstarter project?

To be eligible to start a Kickstarter project, you need to satisfy the requirements of Amazon Payments:

—You are 18 years of age or older.
—You are a permanent US resident with a Social Security Number (or EIN).
—You have a US address, US bank account, and US state-issued ID (driver’s license).
—You have a major US credit or debit card.
per gli europei c'è indiegogo ma sono sicuro che non è l'unico...se non avevo letto male avevo visto che c'era uno solo per italiani
63  International / Hardware / Re: Vorrei realizzare un simulatore di guida, ma mi manca un lampo di genio on: September 05, 2012, 09:17:47 am
forse da aggiungere un piccolissimo delay proprio prima della fine del loop giusto per non far impazzire il micro andando troppo veloce
Heeee!!  smiley-eek smiley-eek smiley-eek

anche io avrei fatto quella faccia un paio di settimane fa ma visto le rogne che mi ha dato con gli ultimi progetti un delay a fine loop anche di 50 millisecondi ormai ce lo metto sempre...(rileggendo quello che ho scritto nel post prima penso di dover chiarire che parlavo di esecuzione delle istruzioni e non della velocità della macchina nel simulatore, non so se PaoloP avevi capito questo smiley-lol )
64  International / Hardware / Re: Vorrei realizzare un simulatore di guida, ma mi manca un lampo di genio on: September 05, 2012, 09:00:08 am
Grazie a tutti e due...ultima domanda scema:
Il delay dove lo inserisco?

Code:
if (stateButton1 == HIGH) {
   if(stateout1 == false) {    
      digitalWrite(out1, HIGH);
      stateout1 = true;  
    }
    else {
      digitalWrite(out1, LOW);
      stateout1 = false;
     delay(250);
    }

così?
Grazie di nuovo

riguardando il terzo post (quello dove spieghi a "parole tue" quello che deve fare il programma mi sembra che quello che ti hanno postato è un pò differente da quello che vuoi...questo (togliendo il delay che hai messo) accende "out1" quando premi il bottone e lo fa rimanere acceso finche non lo premi di nuovo...se è questo quello che ti serve allora il codice secondo me funziona così com'è (forse da aggiungere un piccolissimo delay proprio prima della fine del loop giusto per non far impazzire il micro andando troppo veloce)
se invece a te serve che dopo aver premuto il pulsante "out1" rimanga acceso per 1 secondo (per esempio) e poi si spenga da solo allora quel programma va modificato un pò in questo modo:
Code:
if (stateButton1 == HIGH) {
     digitalWrite(out1, HIGH);
      delay(1000);
      digitalWrite(out1, LOW);
    }
questo è più simile a quello che avevi accennato nel terzo post.

devo però avvertirti che i delay "bloccano" l'esecuzione del programma...cioè quando il micro incontra un delay fa dei cicli a vuoto per "perdere" tempo fino a che non passa 1 secondo (in questo caso) quindi diciamo puoi fare una cosa alla volta non di più...per esempio non puoi accendere la spia della cintura e quella dell'olio in contemporanea (giusto per dire due spie a caso)

se ti serve invece che il micro faccia più cose contemporaneamente devi guardare questo esempio BlinkWithoutDelay
oppure le 2 librerie di leo72:  leOS o looper
65  International / Hardware / Re: serial monitor a richiesta on: September 05, 2012, 08:51:50 am
attenzione che quando ricolleghi la usb entra in gioco l'autoreset quindi perdi tutti i dati che hai raccolto (presumendo che stai raccogliendo dati e li visualizzi dal serial monitor).
questo è il post completo sull'autoreset http://arduino.cc/forum/index.php/topic,64405.0.html

la soluzione corta è condensatore con valore compreso tra 1 e 10 uf tra Reset e +5V.
66  International / Generale / Re: [Android IDE] cercasi collaboratori on: September 04, 2012, 01:49:45 pm
Faccio una sola osservazione, vi rendete conto che è semplicemente assurdo pensare di usare un tablet, non importa quanto pompato, per fare sviluppo software ?


come mai secondo te sarebbe assurdo? dove è il rallentamento, l'upload, la compilazione? (chiedo perchè si era accennata la stessa cosa per il Rpi ma non capisco perchè)
67  International / Hardware / Re: problemi IDE arduino e tidigino on: September 03, 2012, 06:32:43 am
qui più che problema della scheda mi sembra problema del codice...sicuro di aver messo bene tutte le librerie?
68  International / Generale / Re: [Android IDE] cercasi collaboratori on: September 02, 2012, 07:48:51 am
Ciao,
avete provato se si riesce a fare l' upload da tablet con Codebender?
http://arduino.cc/blog/2012/07/04/programming-arduino-on-the-cloud-codebender/

ho letto un commento di uno "sviluppatore"(tra virgolette perchè non so se era uno sviluppatore vero o solo una persona a caso) su un articolo che parlava di codebender e spiegava che l'applet java che permette l'upload dello sketch su android e ios non funziona...non era male come idea 
69  International / Software / Re: manipolare array di char on: August 31, 2012, 09:42:17 am
stavo cercando di testare il codice ma ho qualche problema con la strncpy, comunque '\0' viene interpretato come un carattere significa il byte 0 puoi tranquillamente aggiungerlo alla tua stringa per fare una prova

per estrarre una sottostringa utilizzando il tipo String puoi usare il metodo substring (però anche la sorgente deve essere di tipo String)
70  International / Hardware / Re: simulare un analogread tramite serial monitor e tastiera on: August 26, 2012, 04:46:22 pm
ho aggiustato il tuo codice (senza comprenderlo al 100%    smiley-cry  )   
è abbastanza normale...di solito è difficile capire programmi fatti da altri...ognuno pensa in modo diverso e quello che per me è normale per te è arabo e viceversa...se vuoi qualche commento in più dimmi la parte poco chiara e cerco di chiarire

mi sta venendo la " malsana idea   smiley-cool che si potrebbe usare per attivare/disattivare  tutte le cose in un impianto domotico semplicemente digitando un codice a 3 cifre  o meglio   magari prima si digitano 3 cifre (es: 123) e si attiva un qualcosa per 5 secondi  e finche e attivata si puo inviare il codice per spegnere una luce/altro  magari prima il serial monitor   ti stampa LUCE CANTINA ACCESA  445 X OFF,
si digita 123  e poi subito  445   e la luce si spegne smiley-razz

con un arduino 2 si potrebbe gestire anche un appartamento grande  lo scoglio piu grande e far visualizzare le cose attive in maniera leggibile sul serial monitor senza  bloccare troppo  il micro,
magari un refresh ogni 10 secondi

qualsiasi consiglio e ben accetto
sembra quello che succede con i sistemi vocali tipo quello del kinect con la xbox...prima dici xbox (il codice 123) per far capire alla console che vuoi dare un comando poi dici l'oggetto a cui vuoi dare il comando (es Luce cantina o 445) poi dai il parametro per quello oggetto (spenta o off)
trovo che sia comodo per i sistemi con riconoscimento vocale ma visto che tu vuoi fare una cosa scritta forse ci sono metodi più comodi...anche il fatto di togliere il primo comando (xbox o 123) già sarebbe un passo avanti, anche perchè se scrivi qualcosa sul serial monitor è già ovvio che vuoi dare un comando e non c'è bisogno di specificarlo di nuovo
71  International / Software / Re: problema con codici ascii on: August 25, 2012, 02:12:39 am
c'è println  smiley-grin ...è la print che alla fine però va a capo...

http://arduino.cc/en/Serial/Println

Quote
Prints data to the serial port as human-readable ASCII text followed by a carriage return character (ASCII 13, or '\r') and a newline character (ASCII 10, or '\n'). This command takes the same forms as Serial.print().
72  International / Hardware / Re: simulare un analogread tramite serial monitor e tastiera on: August 24, 2012, 04:25:22 pm
@GINGARDU
scusa se non ho commentato il codice ma ero di fretta...ho sistemato il programma...bastava riportare il vettore ai valori iniziali dopo il serial print
Code:

int vet[2] = { -2, -2 };  //numero arbitrario, usato per vedere se è stato inserito un numero o no (non so perchè tu abbia messo -3 in quello da tre cifre, il -2 non centra niente con la dimensione dell'array) non ho
//usato -1 perchè significa che non ci sono dati da leggere (secondo la serial available) quindi si poteva fare confusione
int cont = 0;
int x = 0;

void setup()
{
  // start serial port at 9600 bps:
  Serial.begin(9600);
}

void loop()
{
  while (Serial.available() > 0)
  {
    vet[cont] = Serial.read()-48;   //trasformo da codice ascii a numero utilizzabile
    cont++;
    delay(50); //sinceramente non so il motivo tecnico ma l'ho messo perchè mi si è accesa una lampadina, senza la serial available da dei "falsi negativi" cioè legge un byte, poi anche sei hai messo 2 numeri l'istruzione //dice che non c'è più niente da leggere e quindi esce dal while, forse l'esecuzione è troppo veloce per i sui gusti, non so....
  }
  if(cont > 0) //se ho letto qualcosa fai la conversione altrimenti niente
  {
    cont = 0;
    if (vet[1] == -2) //se vet[1] = a -2 cioè il valore iniziale significa che c'era solo un numero da leggere quindi è un numero da 0 a 9
    {
      x = vet[0];
    }
    else
    {
      x = vet[0] * 10 + vet[1]; //altrimenti faccio la formulina perchè è un numero da 10 a 99
    }

    Serial.println(x);
    vet[0] = -2;   //fix per il bug della versione precedente
    vet[1] = -2;
  }
}

...come il precedente...se ti servono 3 cifre ci sono da fare alcune modifiche

@leo72
da quello che leggo nella pagina del write
Serial.write(str)
str: a string to send as a series of bytes
quindi se mando "65" mando 2 byte, quello del 6 e quello de 5
o sto perdendo qualcosa?
73  International / Hardware / Re: simulare un analogread tramite serial monitor e tastiera on: August 24, 2012, 07:43:40 am
Code:

int vet[2] = { -2, -2 }; 
int cont = 0;
int x = 0;

void setup()
{
  // start serial port at 9600 bps:
  Serial.begin(9600);
}

void loop()
{
  while (Serial.available() > 0)
  {
    vet[cont] = Serial.read()-48;   
    cont++;
    delay(50);
  }
  if(cont > 0)
  {
    cont = 0;
    if (vet[1] == -2)
    {
      x = vet[0];
    }
    else
    {
      x = vet[0] * 10 + vet[1];
    }

    Serial.println(x);
  }
}


con questo codice dovresti risolvere, il serial print finale serve solo per controllare che va tutto bene...è fatto di fretta e solo per numeri di 1-2 cifre...se ti serve più elasticità (ad esempio anche centinaia) è da modificare
74  International / Hardware / Re: simulare un analogread tramite serial monitor e tastiera on: August 24, 2012, 06:39:41 am
se spedisci 65 ti spedisce un byte del valore 65 quindi in binario 1000001
a questo punto se lo leggi dal serial monitor dell'ide lui lo converte in ascii quindi 1000001 -> A, oppure se lo leggi da un altro programma fatto da te puoi scegliere se leggerlo come 1000001, o 65 o A

se invece fai una serial write con "65" allora lui capisce che deve mandare una serie di byte in questo caso 2, uno con il codice ascii del 6 e uno con il codice ascii del 5, allora sul serial monitor verrà visualizzato 65
75  International / Software / Re: Passaggio di argomenti ad una funzione on: August 04, 2012, 04:53:55 pm
è tardi quindi magari non sto pensando correttamente...ma se ricordo bene il puntatore deve essere dello stesso tipo della variabile puntata (pensando al motivo mi viene in mente il fatto che quando vai a dereferenziare il puntatore deve sapere quanti byte leggere tipo int 4 byte oppure long 8 byte...<-- ragionamento fatto ora non so quanto possa essere valido)
quindi in questo caso ti dà errore per 2 motivi, il primo è che la variabile è long, e l'altro è perchè in realtà non stai passando alla funzione un puntatore ma una variabile per passare un puntatore hai 2 modi o fai una variabile puntatore che punta a Long di questo tipo
Code:
int* punt = Long;
e poi alla funzione passi punt e non Long, oppure altro metodo che ha lo stesso risultato è usare i riferimenti mettendo una & davanti alla variabile che passi e quindi diventa &Long  (i riferimenti sono un altro modo di dire "l'indirizzo di Long")
Pages: 1 ... 3 4 [5] 6 7