Vai al contenuto
PLC Forum


Curiosità Su Arduino


Messaggi consigliati

Inserita:

grazie ;)

Si le schede che fanno giarano il runtime di .NET ce ne sono varie , Netduino ect , il limte e' la ram


  • Risposte 57
  • Created
  • Ultima risposta

Top Posters In This Topic

  • walterword

    16

  • Livio Orsini

    15

  • roberto8303

    12

  • Ctec

    7

Inserita:

Ricordo, fra l'altro, che è possibile caricare sulle schede STM32F4 Discovery il MicroFramework 4.2 - 4.3 della Microsoft per programmare la board in C# tramite Visual Studio.

oVVoVe!

Scusa ma mi è venuta spontanea! Non è il voler dare adosso a microsoft sempre e comunque ma conoscendo la linea aziendale probabilmente

cercheranno di imporre una soluzione personale complicatissima e totalmente incompatibile con il resto del mondo. Spero tanto che microsoft rimanga fuori dal mondo embedded.

Inserita:

si lo spero anche io .....secondo me una soluzione embedded con linux-ubuntu precaricato e' quella della udoo che tra l'altro wrappa anche un arduino due indipendente sulla stessa scheda .....le schede con .net a bordo sono limitata in memoria ram ma possono far girare qualcosa di gia testato , piu o meno , in ambiente ,net .i tempi di risposta poi meglio lasciar perdere , non sono sicuramente idonee per un discorso real time ....

Inserita: (modificato)

Mah, e invece il codice dell'MF e' Disponibile su codeplex.

Si, i tempi non sono il massimo...la latenza e' Vergognosa. Però, Ragazzi per prototipare e'. Una cannonata. Aggiungete anche il fatto che per caricare l'hex e debbuggare e' veramente Una sciocchezza!

E il debbugger di Arduino?

Se, invece, e' un discorso di filosofia, va bene Modificato: da dkmorb

Inserita: (modificato)

Dici bene dkmorb è una questione di flosofia. Ammetto di aver giudicato senza conoscere e andrò a vedere quello che hai citato

Ti racconto solo l'ultima in cui mi sono imbattuto poco tmepo fa leggendo un libro su protocolli SSL e TLS. nel 1994 Netscape Communications lancia SSL versione 2.0 La cosa prende piede e nel 1995 Microsoft forte della sua posizione dominante decide di mettere in campo un protocollo tutto suo per internet explorer e lo chiama PCT (Private Communicatio Technology) E qui viene il bello: PCT è concettualmente e tecnicamente simile a SSL 2.0 e ha un formato compatibile. PCT è rimasto confinato all'intenro di alcuni prodotti Microsoft per SSL sappiamo com'è andata

Hanno tentato di imporre la loro versione (del tutto simile all'esistente) anzichè sostenere lo sviluppo di SSL2.0.

E anche la penultima:

Aggiornamento Win8.1 da Win8 parte lavora qualche ora (giuro qualche ora) poi esce messaggio impossibile completare l'aggiornamento ripristino la configurazione precedente (qualche ora di lavoro) alla fine riavvio rifaccio l'aggiornamento e stavolta funziona, Non ho la certezza ma sospetto che la procedura abbia prima aggiornato alcuni files e solo dopo il riavvio abbia potuto completare l'operazioen di aggiornamento. Da un sistema operativo evoluto mi aspetto che, se necessario, suddivida in fasi l'aggiornamento e mi informi con messaggi chiari di cosa succede

Non un qualcosa di oscuro e interminabile...ci è voluto un pomeriggio per riavere il controllo del pc.

Modificato: da accacca
Inserita:

io uso ancora xp e windows7 pro , non cambio per ora

Sto giocando un po con linux ubuntu e devo dire che e' proprio una bella cosa , installi di tutto , driver stampante che con win7 faccio fatica a caricare e configurare (stampante HP che non comprero' mai piu') , in ubuntu il tempo di dire che e' connessa e sei gia in stampa .

Credo valga proprio la pena iniziare a considerare linux e u suoi derivati

Inserita:

Però stavamo parlando di schede embedded...accacca...non vale! Stiamo derivando...

Ho postato anche il link per CocoxIde che usa un fork del gcc per compilare per STM32 ed è anche gratuito;-)

Non volevo aizzare flame sul solito argomento "questo sistema operativo è meglio di quello..." o "la Microsoft è la madre di tutti i mali...". E' chiaro che ognuno, se può, usa quello che vuole!

Però le tue affermazioni sembrano affermazioni un po' troppo populiste. Se ti riporto un numero N di bug importanti di Linux, cambi SO?

Negli anni, ho dedicato troppo tempo a queste discussioni infruttuose.

Puoi insultarmi liberamente, ma non scrivo più se non si parla di Arduino et similia.

Inserita:
io uso ancora xp e windows7 pro , non cambio per ora

E fai molto bene! :smile: Io sono arrivato alla conclusione che è meglio non utilizzare le versioni pari di Windows ;) quindi attenderò eventualmente Win9 consolidato.

Complimenti per il tuo 30, Che esame era?

Se ti riporto un numero N di bug importanti di Linux, cambi SO?

Anche Linux ha i suoi bei problemi, però è gratuito o quasi ed a caval donato non si guarda in bocca. :smile:

Quello che infastidisce di MS è l'esagerata protervia, anche se alcune sentenze della magistratura USA hanno un po' calmierato certi eccessi, non perdono occasione per rendersi antipatici.

Piuttosto chi sa se Roberto è riuscito ad ottenere il suo temporizzatore?

Inserita:

sistemi operativi =30 :)

Linux ha le pecche come windows e mac però la differenza principale e' che se studi e prendi mano con linux puoi creare un OS ad hoc , mirato per una tale applicazione , con windows e mac e' tutto compilato e non puoi fare nulla , ma solo accettare

C'e' una bella differenza tra essere obbligati e tacere ed essere obbligati ma poer parlare e cambiare le cose ;)

Inserita: (modificato)
int cnt1 = 10;

void setup() {

noInterrupts(); // disable all interrupts

TCCR1A = 0;

TCCR1B = 0;

TCNT1 = 64911; // preload timer

TCCR1B |= (1 << CS12); // 256 prescaler

TIMSK1 |= (1 << TOIE1); // enable timer overflow interrupt

interrupts(); // enable all interrupts

//...........................................................................................

Serial.begin(9600);

}

ISR(TIMER1_OVF_vect) // interrupt service routine

{

TCNT1 = 64911; // preload timer per interrupts ogni 10 ms

if (cnt1 > 0) {

cnt1--; // totalizzatore per 0.5"

}

else {

digitalWrite(13, digitalRead(13) ^ 1); // uscita temporizzata

cnt1 = 50; //trascorso 1", ricarico il contaore

}

}

trovato il problema l uscita 13 non era definita con pinMode(13,OUTPUT);

e non vedevo sull oscilloscopio l onda quadra sul pin13 ora tutto funziona.

E per oggi basta cosi, Buon Natale e buone feste a tutti

Modificato: da roberto8303
Inserita: (modificato)
int cnt1 = 10;
int pulsAnalog=A0;
int pulsAnalogValue=0;
unsigned long contatore;
int fittizio;
int tempo;
void setup() {
tempo=contatore;
temporale=contatore;
pinMode(13,OUTPUT);
pinMode(9,OUTPUT);
noInterrupts(); // disable all interrupts
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 64886; // preload timer
TCCR1B |= (1 << CS12); // 256 prescaler
TIMSK1 |= (1 << TOIE1); // enable timer overflow interrupt
interrupts(); // enable all interrupts
//...........................................................................................
Serial.begin(115200);
}
ISR(TIMER1_OVF_vect) { // interrupt service routine
TCNT1 = 64911; // preload timer per interrupts ogni 10 ms
digitalWrite(13, digitalRead(13)^ HIGH); // uscita temporizzata
if (cnt1 > 0) {
cnt1--; // totalizzatore per 0.1"
}
else {
cnt1 =10; //trascorso 1", ricarico il contaore
pulsAnalogValue = digitalRead(pulsAnalog); }
unsigned long int segnale=digitalRead(13);
if(segnale==1){
contatore++;}
}
void loop(){
Serial.println(contatore/50);//stampa ogni secondo//
tempo=contatore;
if (tempo==temporale+1){
digitalWrite(9,HIGH);}
if (tempo==temporale+2){
digitalWrite(9,LOW);
temporale=contatore;}}
Ho modificato il programma di Livio, aggiungendo nel loop un ritardo+1 al contatore di 10ms di base. Quindi un uscita 13 con onda quadra 10ms on/off e un uscita 9 con onda quadra di 10ms+1 on e 10ms+2 off.
Perchè nelle prove ho un onda quadra dell uscita 9 di 20ms on/off?nella foto il canale A è l uscita 13, e il canale B è la forma d onda del pin 9 quello nel loop.
ancora auguri di Buon Natale
Modificato: da roberto8303
Inserita:
unsigned long int segnale=digitalRead(13);

if(segnale==1){
  contatore++;}
}

Ti manca un "else" perchè se è alto conti, ma se è basso che fai?

Inserita:

nulla se è basso il contatore non incrementa, se è uno il contatore sale ogni 10ms e cosi funziona. pero non riesco a capire nel loop mi nell uguaglianza, se entrambi i valori sono uguale al contatore la sola differenza è di +1 quindi mi aspettavo un tempo di 1ms, invece mi sa che è di 11ms cioe 10+1ms, ma con il mio oscilloscopio non riesco a vederlo provo ad aumentare il +1 e vedere cosa ottengo...

Inserita:

contatore -> long

tempo -> int

quindi qunado fai tempo = contatore fai un casting tagliando tutto una parte della variabile contatore, cosa che sin deve fare.

Poi non capisco perchè devi usare una long per leggere un piedino, basta e avanza una int.

Dichiara le variabili correttamente in testa al programma così che siano globali, poi unifica le variabili e riprova.

La via del software è come la via della spada: lunga, difficile e piena di imprevisti :smile:

Inserita:

if ( digitalRead(13))

{

// ...................

}

Inserita:

Walter non si da la soluzione, ma ci si fa arrivare passo passo... ;)

Inserita: (modificato)

questa era facile , se non ci arrvia e' meglio che cambia mestiere ;)

Non fare anche tu come i tutor ed i professori universitari che quando scrivi loro chiedendo una cosa , da disperato , loro rispondono con altre domande spesso fuori luogo :D

La via della spada , per noi aikidoki della katana ,è praticamente la ricerca continua ed infinita ei nostri limiti , cosa che noi occidentali non capiremo mai

Modificato: da walterword
Inserita:
cosa che noi occidentali non capiremo mai

Credi? ma se tu stesso, da che ti conosco, sei sempre alla ricerca dei tuoi limiti.

(A volte, però, superi i limiti degli altri. :P:lol: )

Inserita:

purtroppo supero i miei limiti che poi invadono quelli degli altri .Ora che sono cintura marrone un po meno ....e quando prenderò la nera ancora meno

Inserita: (modificato)
questa era facile , se non ci arrvia e' meglio che cambia mestiere ;)

un mestiere ce l ho gia e non è questo, se proprio non "volessi" arrivare cosa al quanto difficile conoscendomi...posso sempre cambiare forum... :thumb_yello::lol::P

Modificato: da roberto8303
Inserita:

Roberto non essere suscettibile, dovresti saberlo che a noi piace scherzare anche quando si fa sul serio.

Poi Walter fa sto mestiere da almeno 20 anni e ogni tanto guarda i novellini con un po' di sufficienza, capita a tutti. :smile:

Inserita:

si lo so Livio, è che non ho potuto dedicarci molto tempo in questi giorni di festa

era una battuta non te la prendere

;)

si anche la mia walter :thumb_yello:

Comunque voglio esaminare un problema alla volta, ho semplificato il programma

int cnt1 = 20;
void setup() {
pinMode(13,OUTPUT);
pinMode(9,OUTPUT);
noInterrupts(); // disable all interrupts
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 64911; // preload timer
TCCR1B |= (1 << CS12); // 256 prescaler
TIMSK1 |= (1 << TOIE1); // enable timer overflow interrupt
interrupts(); // enable all interrupts
//...........................................................................................
Serial.begin(115200);
}
ISR(TIMER1_OVF_vect) { // interrupt service routine
TCNT1 = 64911; // preload timer per interrupts ogni 10 ms
digitalWrite(13, digitalRead(13)^ HIGH); // uscita temporizzata
if (cnt1 > 0) {
cnt1--; // totalizzatore per 0.1"
}
else {
cnt1 =20; //trascorso 1", ricarico il contaore
}
if (cnt1>10 && cnt1 <20){
digitalWrite(9,HIGH);}
if (cnt1>0 && cnt1<10){
digitalWrite(9,LOW);}
}
void loop(){
Serial.println(cnt1);
}

in questo caso ho sul canale pin 13 un onda quadra di 10ms e sul pin 9 un onda quadra di 100ms. Ho il cont1 che va da 20 a 0 per poi ripartire da 20 a0 all infinito.con un interrupt di 10ms, la durata di una sola unità cont1 è quindi di 10ms? o di 1 ms?e perche?sbaglio qualcosa? aspetto i vostri pareri :smile:

Inserita:
digitalWrite(13, digitalRead(13) ^ 1); // uscita temporizzata

Questa istruzione legge lo stato del pin13 e lo nega con l'istruzione "^1".

Il tic del counter, se ricordo bene, dovrebbe essere ad 1ms, dovrei fare i conti e non ho voglia, fai prima a vederlo direttamente con l'oscilloscopio.

Inserita:

si e con l oscilloscopio ho il pin13 che dura 10ms e il cnt1 da 0-10 100ms on e 10-20 100ms off :blink: è questo che non mi spiego. se il cnt1 decrementa di 1, perchè da10a 20 mi ritrovo la durata del pin9 di 100ms? e non di 10ms come mi aspettavo...

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

×
×
  • Crea nuovo/a...