Show Posts
Pages: 1 ... 342 343 [344] 345 346 ... 701
5146  International / Generale / Re: Posticipo segnale d'ingresso al variare della frequenza dello stesso on: May 27, 2012, 02:28:22 pm
assolutamente no! stano che non vada in loop infinito, senza contare che è una gran bella stupidata, visto che durante quei 300microsec perderà  tutti gli interrupt
5147  International / Generale / Re: Arduino MEGA 2560 "morto"? on: May 27, 2012, 10:02:32 am
scusa non ho letto tutto il post, ma collegando la board normalmente al pc, stacchi tutte la altre USB, e da terminale dai il comando "lsusb" che succede? mi posti il risultato?
5148  International / Hardware / Re: occorente per collegare arduino ad internet con il wifi on: May 27, 2012, 09:57:43 am
l'xbee non è compatibile con il wifi fi casa. devi prendere una wifi shield, facendo attenzione che sia compatibile con protocollo standard 802.11x (dove x può essere b, g o n, in base a a quella supportata dal tuo router. diciamo che tranne la n, ormai le altre 2 sono supportate dal 99% dei router)
5149  International / Generale / Re: gestire matrice di sensori on: May 26, 2012, 09:01:46 pm
secondo me uno shift register sulle alimentazioni va più che bene.
dividi i sensori in gruppi di 6 (poichè puoi fare al max 6 letture), ogni cella di ogni gruppo è in parallelo con la corrispondente. di tutti gli altri gruppi. a questo punto con uno shift register invia un segnanle di clock, accende il pin, fa le letture, spegne il pin, e ricomincia il ciclo inviando il segnale di clock.

vengono 43 gruppi.
5150  International / Generale / Re: loop chiuso su stepper qualcuno ha gia realizzato? on: May 26, 2012, 08:52:37 pm
stavo giusto guardando qualche giorno fa il funzionamento dei motori brushless... ho trovato questo link dove si vede il funzionamento dei vari modelli (stella, delta, sinusoidale)

il controllo di passi è effettuato attraverso dei sensori hall o degli encoder direttamente all'interno del motore. ah quanto ho capito i sensori hall non contano i reali giri del rotore, ma i "giri" del campo magnetico. nell'esempio l'unico con encoder è l'esempio col brushless sinusoidale.

http://en.nanotec.com/steppermotor_animation.html

@uwe: a quanto pare il BL sono considerati stepper
5151  International / Generale / Re: Scrivere sul file di testo txt on: May 26, 2012, 08:36:55 pm
dato che lui ha già il programma lato arduino che stampa su seriale, gli basta un programma che legge la seriale e la "sputa" su file .txt

da terminale un /dev/ttyACM0 >> file.txt dovrebbe bastare, e anche i windows mettendo la giusta porta COM..
5152  International / Generale / Re: I2C questo sconosciuto on: May 26, 2012, 05:43:50 pm
paolo, attento a non confondere le inizializzazioni necessarie a far funzionare il sensore con le inizializzazioni di scale di lettura, numero di sample, modalità di funzionamento etc...
5153  International / Generale / Re: I2C questo sconosciuto on: May 26, 2012, 07:26:40 am
can la read leggi un registstro (un byte) alla volta.  tu hai fatto richiesta per 6 byte, quindi ci vogliono 6 read.

se non ricordo male, un valore in quel sensore occupa 2 registri, quindi tu stai leggendo i 3 valori X, Y e Z (sempre che l'indirizzo di lettura sia giusto... e dubito)
quindi devi unire i due byte che corrispondono al valore in un valore (int) unico.

Ah, molto sensori non i2c non leggono in automatico, ma prima bisogna scrivere in un registro dei particolari valori (in pratica degli dirgli di partire a leggere)
5154  International / Generale / Re: Stampa on: May 26, 2012, 07:16:27 am
visto che la scritta è grande e la velocità abbastzanza altina, quello che dice stefa24 ha senso.
ora, se la scitta è sempre la stessa, allora puoi addirittura precalcolare la durata del seganle di nero e di verde, altrimenti matti un timeout, se per esempèio 10 secondi non vedi verde (ovvero molta luminosità rilevata dal sensore) allora fai scattare "l'allarme".


va benissimo un sensore come quelli per i line follower, se hai in casa un led a luce bianca(quindi sensibile a tutti i colori), o ancora meglio a luce verde, noterai che quando rileva luce contenente la componente del proprio colore si comporta da pannello solare.
se nel luogo dove vuoi mettere il sensore non c'è luce, allora basta aggiungere un secondo led in modo da illuminare il foglio, certo facendo attenzione che la luce non colpisca direttamente il sensore.
per esempio, potresti mettere il led sensore in un tubicino di cartone o di plastica, un modo che la luce possa colpirlo solo da una parte, strasformandolo in un led/pannello solare direzionale.
Tra l'altro il led lavora nell'ordine dei nanosecondi, quindi il limite di velocità dato dal sistema è il chip dell'arduino  smiley-mr-green
5155  International / Generale / Re: Stampa on: May 25, 2012, 08:37:54 pm
uhmm allora andiamo nell'elaborazione immagine... quanto è grande la scritta e quanto velocemente scorre? probabilmente arduino non ce la fa
5156  International / Generale / Re: Stampa on: May 25, 2012, 07:23:25 pm
se ti basta la differenza tra verde e nero, allora guarda i line follower come funzionano.. dato che il nero riflette meno la luce, basta un sensore luminoso. se invece vuoi proprio il colore, allora al posto di un solo sensore luminoso usi un led RGB, e in base alla % di voltaggio sui 3 colori conosci la composizione RGB del colore che stai analizzando.
5157  International / Generale / Re: I2C questo sconosciuto on: May 25, 2012, 05:02:53 pm
Così hai inviato la richiesta per leggere dal registro 2 per 6 registri. Però dopo non fai le read!!!!
5158  International / Generale / Re: Aiuto per compilazione STK500boot.c on: May 25, 2012, 01:01:07 pm
Per me state usando un approccio sbagliato, potete mettere tutti i delay che volete però non serve a nulla per il semplice motivo che il bootloader si aspetta di vedere dei dati sulla seriale per attivarsi, solo se per un certo tempo non arriva nulla cede il controllo al programma principale.
Dato che in questo caso specifico la seriale è connessa ad un bus dati con un certo traffico alla fine il bootloader vedrà sempre arrivare dei byte con la conseguente attivazione e blocco della scheda.
La soluzione è una sola, il bootloader si deve attivare solo se riceve una ben precisa sequenza di caratteri entro un certo timeout, p.e. la stringa "@***#", va da se che poi tocca usare uno script per inviare questa stringa e subito dopo far partire AvrDude per la programmazione, il timeout del bootloader dovrebbe essere di almeno 1 secondo per dare modo ad AvrDude di partire.

non sono d'accordo. anzi, ho osservato il codice ed è più facile del previsto.

lasciamo intatto il codice che abbiamo visto fin'ora. riceveremo il carattere che fa entrare il boot-loader in stato di programmzione (boot_state==1).

osserviamo questa parte di codice;
1. notiamo che il ciclo è condizionato da isLeave
2. ciclo che legge un byte fino a formare un comando
3. switch che contrlla il comando.
notamo nello switch 2 cose interessanti:
a. il comando
Code:
case CMD_LEAVE_PROGMODE_ISP:
isLeave = 1;
//* fall thru
b. il caso default:
Code:
default:
msgLength = 2;
msgBuffer[1] = STATUS_CMD_FAILED;
break;

iniziamo a dire di uscire dal while se trova un comando che non è valido:
Code:
default:
msgLength = 2;
msgBuffer[1] = STATUS_CMD_FAILED;
isLeave = 1;  //<<<<<<< modified by lesto, start sketch if command not found
break;

ora passiamo al ciclo acquisiszione comando. (che nel ciclo è precedente, riga 571)
come si può notare il ciclo è condizionasto da while ( msgParseState != ST_PROCESS )
e nello switch, in caso che il comando rilevato sia erroneo, viene azzerato tutto il processo di lettura messaggio attarverso l'istruzione
msgParseState   =   ST_START;
ma noi non vogliamo che lui ricominci la lettura, quindi nei vari casi dello switch sostituiamo il reset del comando con invece il termine comando:
msgParseState = ST_PROCESS;
i casi da modificare sono ST_GET_SEQ_NUM, ST_GET_TOKEN, ST_GET_CHECK

ed ecco che il nostro boot-loader sarà molto schizzinoso sui comandi che gli arrivano: mentre prima un comando che arrivava con sequenza o sintassi errata veniva scartato e ci si metteva in attesa del prossimo comando, ora si esce dai vari cicli e si procede ad eseguire il codice utente.
5159  International / Generale / Re: Aiuto per compilazione STK500boot.c on: May 25, 2012, 08:36:42 am
già bisogna entrare più in merito.. quando uppi il codice, poi non parte linearmente, ma mi pare ci sia un reset a fine upload.se così fosse bisogna fare in modo che invece parta lo skecth senza quel reset.
sinceramente è solo un'idea, prima di esprimermi seriamente voglio osservare bene tutto il codice, altrimenti son solo supposizioni
5160  International / Generale / Re: Aiuto per compilazione STK500boot.c on: May 25, 2012, 08:22:53 am
un ciclo vuoto non funziona, il compilatore lo elimina in automatico.(furbo, eh? smiley-mr-green)
ogni iterazione di while aumenti un contatore, e quando supera una soglia esci dal while. in pratica trasformi quel while in un for... la logica è la stessa ma "freghi" il compilatore.
Certo è più difficile stimare la durata del ciclo, ma andando a tentativi non si rompe certo niente.

DA CONTROLLARE CHE NON VENGA ACCIDENTALMENTE SOVRASCRITTO, MAGARI IN MANIERA PARZIALE LO SKETCH NEL MICRO!
Pages: 1 ... 342 343 [344] 345 346 ... 701