ultimamente sono un po' assente dal forum per vari impegni e mi ero perso questa discussione ovviamente, bassano per me va benissimo! se non ho impegni con l'università ci vengo molto volentieri
preciso, e vorrei chiudere l'argomento visto che è abbastanza OT, che le ruote mi sono arrivate il giorno prima perchè le dovevano fare quelli di meccanica e ci hanno messo 4 mesi... io penso di aver fatto il massimo con quello che avevo a disposizione
tornando all'arduino robot, spero che i prezzi non siano troppo alti perchè forse andrò a tenere un corso di elettronica e robotica alla caserma americana di vicenza e ne vorrei proporre l'acquisto di un paio di esemplari si sa qualcosa sul prezzo? cose del genere su pololu costano sui 150 euro, speriamo sia competitivo
Se un preside, o un professore, si fossero mai permessi di dire una cosa simile a mia figlia, che però ha seguito un iter scolastico agli antipodi del mio, per gli stessi, futili, motivi ti garantisco che se ne sarebbe pentito amaramente perché avrei sollevato un tale polverone mediatico, e ho le conoscenze per farlo, facendolo diventare zimbello d'Italia al pari della Gelmini e del suo tunnel
ma tu sei potente, io sono una persona normale
intanto qualcuno di saggio (Pitusso ) mi ha fatto notare che è meglio non pubblicare i nomi, quindi li tolgo
Chi è il preside della tua scuola e perché ha detto che ti devi vergognare ?
qua andiamo piuttosto OT comunque il preside dell'ITIS A. Rossi di Vicenza ci disse che dovevamo vergognarci per essere arrivati sesti alla romecup 2012 (con i robot finiti la notte prima perchè mancavano le ruote). Poi fu detto anche ai miei genitori quando andarono a parlare con lui e con un altro prof per capire se si potevano fare gli esami di maturità in luglio così da permetterci di andare ai mondiali in messico, visto che avevano detto su giornali e televisioni locali che l'ITIS Rossi si era qualificato per i mondiali di robotica.
beh la seriale funziona come una lista FIFO, cioè il primo carattere ricevuto è il primo ad essere letto quindi a te basta leggere un carattere alla volta con il metodo Serial.read() e in base a ciò cambi di stato... e non dimenticare che ogni carattere è in ASCII
spero di esserti stato utile, se hai altre domande chiedi pure
la storia dei Complubot non è molto diversa dalla mia, anche loro hanno iniziato ad avvicinarsi a questo mondo tramite il Soccer della RoboCup, ma evidentemente in spagna ci sono prof che si interessano ai progetti che vengono fatti dai ragazzi... a me il preside della mia scuola mi ha detto che mi devo vergognare... bah...
comunque loro sono molto bravi e quel robot penso sia uguale a questo che avevano presentato già da tempo:
Nemmeno io sto capendo niente. :-) Comunque è vero che quella di pullup le falsa, ma mettere il pin a massa no; e lavorare su un pin "casuale", senza cioè sapere come è impostato, non è "serio"; magari la arduino lo preimposta di per sè a LOW, ma che ne so?
il discorso che fai non ha fondamenti, di default i pin sono impostati come input ad alta impedenza, che non vuole assolutamente dire che sono a massa
sinceramente non sto capendo nulla di quello che fai, di quello che va e di quello che non va comunque ribadisco che secondo me una resistenza di pull-up su misure analogiche falsa le letture
eheh correggere il tuo codice mi risulta più complicato che ripensarlo perchè il tuo non è stato pensato per fare questa modifica... non ho capito se i pulsanti sono pulsanti oppure restano premuti, se restano premuti è tutto più facile
per quello che vuoi fare tu è fortemente sconsigliato l'utilizzo della funzione delay perchè blocca l'esecuzione del programma e non c'è modo di interromperla prima della sua fine nel mio codice ho usato la funzione millis (http://arduino.cc/en/Reference/Millis) che ti permette di tenere sotto controllo il tempo questa funzione ti restituisce il numero di millisecondi trascorsi da quando è iniziata l'esecuzione del programma quindi per fare un delay di 300 puoi scrivere così:
Code:
unsigned long time=millis(); while(millis()-time<=4000) { }
poi se in quei 4000ms vuoi controllare che il tasto di stop venga premuto fai così:
Code:
unsigned long time=millis(); while(millis()-time<=4000) { if(digitalRead(SB2)==HIGH) return; }